/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The Job object contains details about a job.See
* Also:
AWS API
* Reference
An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline const Aws::String& GetJobArn() const{ return m_jobArn; } /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline bool JobArnHasBeenSet() const { return m_jobArnHasBeenSet; } /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline void SetJobArn(const Aws::String& value) { m_jobArnHasBeenSet = true; m_jobArn = value; } /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline void SetJobArn(Aws::String&& value) { m_jobArnHasBeenSet = true; m_jobArn = std::move(value); } /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline void SetJobArn(const char* value) { m_jobArnHasBeenSet = true; m_jobArn.assign(value); } /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline Job& WithJobArn(const Aws::String& value) { SetJobArn(value); return *this;} /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline Job& WithJobArn(Aws::String&& value) { SetJobArn(std::move(value)); return *this;} /** *An ARN identifying the job with format * "arn:aws:iot:region:account:job/jobId".
*/ inline Job& WithJobArn(const char* value) { SetJobArn(value); return *this;} /** *The unique identifier you assigned to this job when it was created.
*/ inline const Aws::String& GetJobId() const{ return m_jobId; } /** *The unique identifier you assigned to this job when it was created.
*/ inline bool JobIdHasBeenSet() const { return m_jobIdHasBeenSet; } /** *The unique identifier you assigned to this job when it was created.
*/ inline void SetJobId(const Aws::String& value) { m_jobIdHasBeenSet = true; m_jobId = value; } /** *The unique identifier you assigned to this job when it was created.
*/ inline void SetJobId(Aws::String&& value) { m_jobIdHasBeenSet = true; m_jobId = std::move(value); } /** *The unique identifier you assigned to this job when it was created.
*/ inline void SetJobId(const char* value) { m_jobIdHasBeenSet = true; m_jobId.assign(value); } /** *The unique identifier you assigned to this job when it was created.
*/ inline Job& WithJobId(const Aws::String& value) { SetJobId(value); return *this;} /** *The unique identifier you assigned to this job when it was created.
*/ inline Job& WithJobId(Aws::String&& value) { SetJobId(std::move(value)); return *this;} /** *The unique identifier you assigned to this job when it was created.
*/ inline Job& WithJobId(const char* value) { SetJobId(value); return *this;} /** *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.
*/ inline const TargetSelection& GetTargetSelection() const{ return m_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.
*/ inline bool TargetSelectionHasBeenSet() const { return m_targetSelectionHasBeenSet; } /** *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.
*/ inline void SetTargetSelection(const TargetSelection& value) { m_targetSelectionHasBeenSet = true; m_targetSelection = value; } /** *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.
*/ inline void SetTargetSelection(TargetSelection&& value) { m_targetSelectionHasBeenSet = true; m_targetSelection = std::move(value); } /** *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.
*/ inline Job& WithTargetSelection(const TargetSelection& value) { SetTargetSelection(value); return *this;} /** *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.
*/ inline Job& WithTargetSelection(TargetSelection&& value) { SetTargetSelection(std::move(value)); return *this;} /** *The status of the job, one of IN_PROGRESS,
* CANCELED, DELETION_IN_PROGRESS or
* COMPLETED.
The status of the job, one of IN_PROGRESS,
* CANCELED, DELETION_IN_PROGRESS or
* COMPLETED.
The status of the job, one of IN_PROGRESS,
* CANCELED, DELETION_IN_PROGRESS or
* COMPLETED.
The status of the job, one of IN_PROGRESS,
* CANCELED, DELETION_IN_PROGRESS or
* COMPLETED.
The status of the job, one of IN_PROGRESS,
* CANCELED, DELETION_IN_PROGRESS or
* COMPLETED.
The status of the job, one of IN_PROGRESS,
* CANCELED, DELETION_IN_PROGRESS or
* COMPLETED.
Will be true if the job was canceled with the optional
* force parameter set to true.
Will be true if the job was canceled with the optional
* force parameter set to true.
Will be true if the job was canceled with the optional
* force parameter set to true.
Will be true if the job was canceled with the optional
* force parameter set to true.
If the job was updated, provides the reason code for the update.
*/ inline const Aws::String& GetReasonCode() const{ return m_reasonCode; } /** *If the job was updated, provides the reason code for the update.
*/ inline bool ReasonCodeHasBeenSet() const { return m_reasonCodeHasBeenSet; } /** *If the job was updated, provides the reason code for the update.
*/ inline void SetReasonCode(const Aws::String& value) { m_reasonCodeHasBeenSet = true; m_reasonCode = value; } /** *If the job was updated, provides the reason code for the update.
*/ inline void SetReasonCode(Aws::String&& value) { m_reasonCodeHasBeenSet = true; m_reasonCode = std::move(value); } /** *If the job was updated, provides the reason code for the update.
*/ inline void SetReasonCode(const char* value) { m_reasonCodeHasBeenSet = true; m_reasonCode.assign(value); } /** *If the job was updated, provides the reason code for the update.
*/ inline Job& WithReasonCode(const Aws::String& value) { SetReasonCode(value); return *this;} /** *If the job was updated, provides the reason code for the update.
*/ inline Job& WithReasonCode(Aws::String&& value) { SetReasonCode(std::move(value)); return *this;} /** *If the job was updated, provides the reason code for the update.
*/ inline Job& WithReasonCode(const char* value) { SetReasonCode(value); return *this;} /** *If the job was updated, describes the reason for the update.
*/ inline const Aws::String& GetComment() const{ return m_comment; } /** *If the job was updated, describes the reason for the update.
*/ inline bool CommentHasBeenSet() const { return m_commentHasBeenSet; } /** *If the job was updated, describes the reason for the update.
*/ inline void SetComment(const Aws::String& value) { m_commentHasBeenSet = true; m_comment = value; } /** *If the job was updated, describes the reason for the update.
*/ inline void SetComment(Aws::String&& value) { m_commentHasBeenSet = true; m_comment = std::move(value); } /** *If the job was updated, describes the reason for the update.
*/ inline void SetComment(const char* value) { m_commentHasBeenSet = true; m_comment.assign(value); } /** *If the job was updated, describes the reason for the update.
*/ inline Job& WithComment(const Aws::String& value) { SetComment(value); return *this;} /** *If the job was updated, describes the reason for the update.
*/ inline Job& WithComment(Aws::String&& value) { SetComment(std::move(value)); return *this;} /** *If the job was updated, describes the reason for the update.
*/ inline Job& WithComment(const char* value) { SetComment(value); return *this;} /** *A list of IoT things and thing groups to which the job should be sent.
*/ inline const Aws::VectorA list of IoT things and thing groups to which the job should be sent.
*/ inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; } /** *A list of IoT things and thing groups to which the job should be sent.
*/ inline void SetTargets(const Aws::VectorA list of IoT things and thing groups to which the job should be sent.
*/ inline void SetTargets(Aws::VectorA list of IoT things and thing groups to which the job should be sent.
*/ inline Job& WithTargets(const Aws::VectorA list of IoT things and thing groups to which the job should be sent.
*/ inline Job& WithTargets(Aws::VectorA list of IoT things and thing groups to which the job should be sent.
*/ inline Job& AddTargets(const Aws::String& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *A list of IoT things and thing groups to which the job should be sent.
*/ inline Job& AddTargets(Aws::String&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; } /** *A list of IoT things and thing groups to which the job should be sent.
*/ inline Job& AddTargets(const char* value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *A short text description of the job.
*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *A short text description of the job.
*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *A short text description of the job.
*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *A short text description of the job.
*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *A short text description of the job.
*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *A short text description of the job.
*/ inline Job& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *A short text description of the job.
*/ inline Job& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *A short text description of the job.
*/ inline Job& WithDescription(const char* value) { SetDescription(value); return *this;} /** *Configuration for pre-signed S3 URLs.
*/ inline const PresignedUrlConfig& GetPresignedUrlConfig() const{ return m_presignedUrlConfig; } /** *Configuration for pre-signed S3 URLs.
*/ inline bool PresignedUrlConfigHasBeenSet() const { return m_presignedUrlConfigHasBeenSet; } /** *Configuration for pre-signed S3 URLs.
*/ inline void SetPresignedUrlConfig(const PresignedUrlConfig& value) { m_presignedUrlConfigHasBeenSet = true; m_presignedUrlConfig = value; } /** *Configuration for pre-signed S3 URLs.
*/ inline void SetPresignedUrlConfig(PresignedUrlConfig&& value) { m_presignedUrlConfigHasBeenSet = true; m_presignedUrlConfig = std::move(value); } /** *Configuration for pre-signed S3 URLs.
*/ inline Job& WithPresignedUrlConfig(const PresignedUrlConfig& value) { SetPresignedUrlConfig(value); return *this;} /** *Configuration for pre-signed S3 URLs.
*/ inline Job& WithPresignedUrlConfig(PresignedUrlConfig&& value) { SetPresignedUrlConfig(std::move(value)); return *this;} /** *Allows you to create a staged rollout of a job.
*/ inline const JobExecutionsRolloutConfig& GetJobExecutionsRolloutConfig() const{ return m_jobExecutionsRolloutConfig; } /** *Allows you to create a staged rollout of a job.
*/ inline bool JobExecutionsRolloutConfigHasBeenSet() const { return m_jobExecutionsRolloutConfigHasBeenSet; } /** *Allows you to create a staged rollout of a job.
*/ inline void SetJobExecutionsRolloutConfig(const JobExecutionsRolloutConfig& value) { m_jobExecutionsRolloutConfigHasBeenSet = true; m_jobExecutionsRolloutConfig = value; } /** *Allows you to create a staged rollout of a job.
*/ inline void SetJobExecutionsRolloutConfig(JobExecutionsRolloutConfig&& value) { m_jobExecutionsRolloutConfigHasBeenSet = true; m_jobExecutionsRolloutConfig = std::move(value); } /** *Allows you to create a staged rollout of a job.
*/ inline Job& WithJobExecutionsRolloutConfig(const JobExecutionsRolloutConfig& value) { SetJobExecutionsRolloutConfig(value); return *this;} /** *Allows you to create a staged rollout of a job.
*/ inline Job& WithJobExecutionsRolloutConfig(JobExecutionsRolloutConfig&& value) { SetJobExecutionsRolloutConfig(std::move(value)); return *this;} /** *Configuration for criteria to abort the job.
*/ inline const AbortConfig& GetAbortConfig() const{ return m_abortConfig; } /** *Configuration for criteria to abort the job.
*/ inline bool AbortConfigHasBeenSet() const { return m_abortConfigHasBeenSet; } /** *Configuration for criteria to abort the job.
*/ inline void SetAbortConfig(const AbortConfig& value) { m_abortConfigHasBeenSet = true; m_abortConfig = value; } /** *Configuration for criteria to abort the job.
*/ inline void SetAbortConfig(AbortConfig&& value) { m_abortConfigHasBeenSet = true; m_abortConfig = std::move(value); } /** *Configuration for criteria to abort the job.
*/ inline Job& WithAbortConfig(const AbortConfig& value) { SetAbortConfig(value); return *this;} /** *Configuration for criteria to abort the job.
*/ inline Job& WithAbortConfig(AbortConfig&& value) { SetAbortConfig(std::move(value)); return *this;} /** *The time, in seconds since the epoch, when the job was created.
*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *The time, in seconds since the epoch, when the job was created.
*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *The time, in seconds since the epoch, when the job was created.
*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *The time, in seconds since the epoch, when the job was created.
*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *The time, in seconds since the epoch, when the job was created.
*/ inline Job& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *The time, in seconds since the epoch, when the job was created.
*/ inline Job& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *The time, in seconds since the epoch, when the job was last updated.
*/ inline const Aws::Utils::DateTime& GetLastUpdatedAt() const{ return m_lastUpdatedAt; } /** *The time, in seconds since the epoch, when the job was last updated.
*/ inline bool LastUpdatedAtHasBeenSet() const { return m_lastUpdatedAtHasBeenSet; } /** *The time, in seconds since the epoch, when the job was last updated.
*/ inline void SetLastUpdatedAt(const Aws::Utils::DateTime& value) { m_lastUpdatedAtHasBeenSet = true; m_lastUpdatedAt = value; } /** *The time, in seconds since the epoch, when the job was last updated.
*/ inline void SetLastUpdatedAt(Aws::Utils::DateTime&& value) { m_lastUpdatedAtHasBeenSet = true; m_lastUpdatedAt = std::move(value); } /** *The time, in seconds since the epoch, when the job was last updated.
*/ inline Job& WithLastUpdatedAt(const Aws::Utils::DateTime& value) { SetLastUpdatedAt(value); return *this;} /** *The time, in seconds since the epoch, when the job was last updated.
*/ inline Job& WithLastUpdatedAt(Aws::Utils::DateTime&& value) { SetLastUpdatedAt(std::move(value)); return *this;} /** *The time, in seconds since the epoch, when the job was completed.
*/ inline const Aws::Utils::DateTime& GetCompletedAt() const{ return m_completedAt; } /** *The time, in seconds since the epoch, when the job was completed.
*/ inline bool CompletedAtHasBeenSet() const { return m_completedAtHasBeenSet; } /** *The time, in seconds since the epoch, when the job was completed.
*/ inline void SetCompletedAt(const Aws::Utils::DateTime& value) { m_completedAtHasBeenSet = true; m_completedAt = value; } /** *The time, in seconds since the epoch, when the job was completed.
*/ inline void SetCompletedAt(Aws::Utils::DateTime&& value) { m_completedAtHasBeenSet = true; m_completedAt = std::move(value); } /** *The time, in seconds since the epoch, when the job was completed.
*/ inline Job& WithCompletedAt(const Aws::Utils::DateTime& value) { SetCompletedAt(value); return *this;} /** *The time, in seconds since the epoch, when the job was completed.
*/ inline Job& WithCompletedAt(Aws::Utils::DateTime&& value) { SetCompletedAt(std::move(value)); return *this;} /** *Details about the job process.
*/ inline const JobProcessDetails& GetJobProcessDetails() const{ return m_jobProcessDetails; } /** *Details about the job process.
*/ inline bool JobProcessDetailsHasBeenSet() const { return m_jobProcessDetailsHasBeenSet; } /** *Details about the job process.
*/ inline void SetJobProcessDetails(const JobProcessDetails& value) { m_jobProcessDetailsHasBeenSet = true; m_jobProcessDetails = value; } /** *Details about the job process.
*/ inline void SetJobProcessDetails(JobProcessDetails&& value) { m_jobProcessDetailsHasBeenSet = true; m_jobProcessDetails = std::move(value); } /** *Details about the job process.
*/ inline Job& WithJobProcessDetails(const JobProcessDetails& value) { SetJobProcessDetails(value); return *this;} /** *Details about the job process.
*/ inline Job& WithJobProcessDetails(JobProcessDetails&& value) { SetJobProcessDetails(std::move(value)); return *this;} /** *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.
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.
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.
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.
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.
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.