java.lang.Object
software.amazon.awssdk.services.iot.model.Job
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Job.Builder,Job>

@Generated("software.amazon.awssdk:codegen") public final class Job extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Job.Builder,Job>

The Job object contains details about a job.

See Also:
  • Method Details

    • jobArn

      public final String jobArn()

      An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".

      Returns:
      An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
    • jobId

      public final String jobId()

      The unique identifier you assigned to this job when it was created.

      Returns:
      The unique identifier you assigned to this job when it was created.
    • targetSelection

      public final TargetSelection targetSelection()

      Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group.

      We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. By using continuous jobs, devices that join the group receive the job execution even after the job has been created.

      If the service returns an enum value that is not available in the current SDK version, targetSelection will return TargetSelection.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from targetSelectionAsString().

      Returns:
      Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group.

      We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. By using continuous jobs, devices that join the group receive the job execution even after the job has been created.

      See Also:
    • targetSelectionAsString

      public final String targetSelectionAsString()

      Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group.

      We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. By using continuous jobs, devices that join the group receive the job execution even after the job has been created.

      If the service returns an enum value that is not available in the current SDK version, targetSelection will return TargetSelection.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from targetSelectionAsString().

      Returns:
      Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group.

      We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing group targets. By using continuous jobs, devices that join the group receive the job execution even after the job has been created.

      See Also:
    • status

      public final JobStatus status()

      The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS or COMPLETED.

      If the service returns an enum value that is not available in the current SDK version, status will return JobStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS or COMPLETED.
      See Also:
    • statusAsString

      public final String statusAsString()

      The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS or COMPLETED.

      If the service returns an enum value that is not available in the current SDK version, status will return JobStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS or COMPLETED.
      See Also:
    • forceCanceled

      public final Boolean forceCanceled()

      Will be true if the job was canceled with the optional force parameter set to true.

      Returns:
      Will be true if the job was canceled with the optional force parameter set to true.
    • reasonCode

      public final String reasonCode()

      If the job was updated, provides the reason code for the update.

      Returns:
      If the job was updated, provides the reason code for the update.
    • comment

      public final String comment()

      If the job was updated, describes the reason for the update.

      Returns:
      If the job was updated, describes the reason for the update.
    • hasTargets

      public final boolean hasTargets()
      For responses, this returns true if the service returned a value for the Targets property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • targets

      public final List<String> targets()

      A list of IoT things and thing groups to which the job should be sent.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTargets() method.

      Returns:
      A list of IoT things and thing groups to which the job should be sent.
    • description

      public final String description()

      A short text description of the job.

      Returns:
      A short text description of the job.
    • presignedUrlConfig

      public final PresignedUrlConfig presignedUrlConfig()

      Configuration for pre-signed S3 URLs.

      Returns:
      Configuration for pre-signed S3 URLs.
    • jobExecutionsRolloutConfig

      public final JobExecutionsRolloutConfig jobExecutionsRolloutConfig()

      Allows you to create a staged rollout of a job.

      Returns:
      Allows you to create a staged rollout of a job.
    • abortConfig

      public final AbortConfig abortConfig()

      Configuration for criteria to abort the job.

      Returns:
      Configuration for criteria to abort the job.
    • createdAt

      public final Instant createdAt()

      The time, in seconds since the epoch, when the job was created.

      Returns:
      The time, in seconds since the epoch, when the job was created.
    • lastUpdatedAt

      public final Instant lastUpdatedAt()

      The time, in seconds since the epoch, when the job was last updated.

      Returns:
      The time, in seconds since the epoch, when the job was last updated.
    • completedAt

      public final Instant completedAt()

      The time, in seconds since the epoch, when the job was completed.

      Returns:
      The time, in seconds since the epoch, when the job was completed.
    • jobProcessDetails

      public final JobProcessDetails jobProcessDetails()

      Details about the job process.

      Returns:
      Details about the job process.
    • timeoutConfig

      public final TimeoutConfig timeoutConfig()

      Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to IN_PROGRESS. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to TIMED_OUT.

      Returns:
      Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to IN_PROGRESS. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to TIMED_OUT.
    • namespaceId

      public final String namespaceId()

      The namespace used to indicate that a job is a customer-managed job.

      When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

      $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

      The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

      Returns:
      The namespace used to indicate that a job is a customer-managed job.

      When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

      $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

      The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

    • jobTemplateArn

      public final String jobTemplateArn()

      The ARN of the job template used to create the job.

      Returns:
      The ARN of the job template used to create the job.
    • jobExecutionsRetryConfig

      public final JobExecutionsRetryConfig jobExecutionsRetryConfig()

      The configuration for the criteria to retry the job.

      Returns:
      The configuration for the criteria to retry the job.
    • hasDocumentParameters

      public final boolean hasDocumentParameters()
      For responses, this returns true if the service returned a value for the DocumentParameters property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • documentParameters

      public final Map<String,String> documentParameters()

      A key-value map that pairs the patterns that need to be replaced in a managed template job document schema. You can use the description of each key as a guidance to specify the inputs during runtime when creating a job.

      documentParameters can only be used when creating jobs from Amazon Web Services managed templates. This parameter can't be used with custom job templates or to create jobs from them.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasDocumentParameters() method.

      Returns:
      A key-value map that pairs the patterns that need to be replaced in a managed template job document schema. You can use the description of each key as a guidance to specify the inputs during runtime when creating a job.

      documentParameters can only be used when creating jobs from Amazon Web Services managed templates. This parameter can't be used with custom job templates or to create jobs from them.

    • isConcurrent

      public final Boolean isConcurrent()

      Indicates whether a job is concurrent. Will be true when a job is rolling out new job executions or canceling previously created executions, otherwise false.

      Returns:
      Indicates whether a job is concurrent. Will be true when a job is rolling out new job executions or canceling previously created executions, otherwise false.
    • schedulingConfig

      public final SchedulingConfig schedulingConfig()

      The configuration that allows you to schedule a job for a future date and time in addition to specifying the end behavior for each job execution.

      Returns:
      The configuration that allows you to schedule a job for a future date and time in addition to specifying the end behavior for each job execution.
    • hasScheduledJobRollouts

      public final boolean hasScheduledJobRollouts()
      For responses, this returns true if the service returned a value for the ScheduledJobRollouts property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • scheduledJobRollouts

      public final List<ScheduledJobRollout> scheduledJobRollouts()

      Displays the next seven maintenance window occurrences and their start times.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasScheduledJobRollouts() method.

      Returns:
      Displays the next seven maintenance window occurrences and their start times.
    • hasDestinationPackageVersions

      public final boolean hasDestinationPackageVersions()
      For responses, this returns true if the service returned a value for the DestinationPackageVersions property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • destinationPackageVersions

      public final List<String> destinationPackageVersions()

      The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

      Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasDestinationPackageVersions() method.

      Returns:
      The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes. The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.The package version must be in either the Published or Deprecated state when the job deploys. For more information, see Package version lifecycle.

      Note:The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.

    • toBuilder

      public Job.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<Job.Builder,Job>
      Returns:
      a builder for type T
    • builder

      public static Job.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Job.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.