/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace IoT { namespace Model { /** *

The Job object contains details about a job.

See * Also:

AWS API * Reference

*/ class Job { public: AWS_IOT_API Job(); AWS_IOT_API Job(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API Job& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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.

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.

*/ 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.

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.

*/ 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.

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.

*/ 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.

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.

*/ 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.

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.

*/ 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.

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.

*/ 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.

*/ inline const JobStatus& GetStatus() const{ return m_status; } /** *

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

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

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

*/ inline void SetStatus(const JobStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

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

*/ inline void SetStatus(JobStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

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

*/ inline Job& WithStatus(const JobStatus& value) { SetStatus(value); return *this;} /** *

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

*/ inline Job& WithStatus(JobStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

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

*/ inline bool GetForceCanceled() const{ return m_forceCanceled; } /** *

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

*/ inline bool ForceCanceledHasBeenSet() const { return m_forceCanceledHasBeenSet; } /** *

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

*/ inline void SetForceCanceled(bool value) { m_forceCanceledHasBeenSet = true; m_forceCanceled = value; } /** *

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

*/ inline Job& WithForceCanceled(bool value) { SetForceCanceled(value); return *this;} /** *

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::Vector& GetTargets() const{ return m_targets; } /** *

A 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::Vector& value) { m_targetsHasBeenSet = true; m_targets = value; } /** *

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

*/ inline void SetTargets(Aws::Vector&& value) { m_targetsHasBeenSet = true; m_targets = std::move(value); } /** *

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

*/ inline Job& WithTargets(const Aws::Vector& value) { SetTargets(value); return *this;} /** *

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

*/ inline Job& WithTargets(Aws::Vector&& value) { SetTargets(std::move(value)); return *this;} /** *

A 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.

*/ inline const TimeoutConfig& GetTimeoutConfig() const{ return m_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.

*/ inline bool TimeoutConfigHasBeenSet() const { return m_timeoutConfigHasBeenSet; } /** *

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.

*/ inline void SetTimeoutConfig(const TimeoutConfig& value) { m_timeoutConfigHasBeenSet = true; m_timeoutConfig = value; } /** *

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.

*/ inline void SetTimeoutConfig(TimeoutConfig&& value) { m_timeoutConfigHasBeenSet = true; m_timeoutConfig = std::move(value); } /** *

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.

*/ inline Job& WithTimeoutConfig(const TimeoutConfig& value) { SetTimeoutConfig(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.

*/ inline Job& WithTimeoutConfig(TimeoutConfig&& value) { SetTimeoutConfig(std::move(value)); return *this;} /** *

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 in public preview.

* */ inline const Aws::String& GetNamespaceId() const{ return m_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 in public preview.

* */ inline bool NamespaceIdHasBeenSet() const { return m_namespaceIdHasBeenSet; } /** *

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 in public preview.

* */ inline void SetNamespaceId(const Aws::String& value) { m_namespaceIdHasBeenSet = true; m_namespaceId = value; } /** *

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 in public preview.

* */ inline void SetNamespaceId(Aws::String&& value) { m_namespaceIdHasBeenSet = true; m_namespaceId = std::move(value); } /** *

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 in public preview.

* */ inline void SetNamespaceId(const char* value) { m_namespaceIdHasBeenSet = true; m_namespaceId.assign(value); } /** *

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 in public preview.

* */ inline Job& WithNamespaceId(const Aws::String& value) { SetNamespaceId(value); return *this;} /** *

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 in public preview.

* */ inline Job& WithNamespaceId(Aws::String&& value) { SetNamespaceId(std::move(value)); return *this;} /** *

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 in public preview.

* */ inline Job& WithNamespaceId(const char* value) { SetNamespaceId(value); return *this;} /** *

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

*/ inline const Aws::String& GetJobTemplateArn() const{ return m_jobTemplateArn; } /** *

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

*/ inline bool JobTemplateArnHasBeenSet() const { return m_jobTemplateArnHasBeenSet; } /** *

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

*/ inline void SetJobTemplateArn(const Aws::String& value) { m_jobTemplateArnHasBeenSet = true; m_jobTemplateArn = value; } /** *

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

*/ inline void SetJobTemplateArn(Aws::String&& value) { m_jobTemplateArnHasBeenSet = true; m_jobTemplateArn = std::move(value); } /** *

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

*/ inline void SetJobTemplateArn(const char* value) { m_jobTemplateArnHasBeenSet = true; m_jobTemplateArn.assign(value); } /** *

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

*/ inline Job& WithJobTemplateArn(const Aws::String& value) { SetJobTemplateArn(value); return *this;} /** *

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

*/ inline Job& WithJobTemplateArn(Aws::String&& value) { SetJobTemplateArn(std::move(value)); return *this;} /** *

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

*/ inline Job& WithJobTemplateArn(const char* value) { SetJobTemplateArn(value); return *this;} /** *

The configuration for the criteria to retry the job.

*/ inline const JobExecutionsRetryConfig& GetJobExecutionsRetryConfig() const{ return m_jobExecutionsRetryConfig; } /** *

The configuration for the criteria to retry the job.

*/ inline bool JobExecutionsRetryConfigHasBeenSet() const { return m_jobExecutionsRetryConfigHasBeenSet; } /** *

The configuration for the criteria to retry the job.

*/ inline void SetJobExecutionsRetryConfig(const JobExecutionsRetryConfig& value) { m_jobExecutionsRetryConfigHasBeenSet = true; m_jobExecutionsRetryConfig = value; } /** *

The configuration for the criteria to retry the job.

*/ inline void SetJobExecutionsRetryConfig(JobExecutionsRetryConfig&& value) { m_jobExecutionsRetryConfigHasBeenSet = true; m_jobExecutionsRetryConfig = std::move(value); } /** *

The configuration for the criteria to retry the job.

*/ inline Job& WithJobExecutionsRetryConfig(const JobExecutionsRetryConfig& value) { SetJobExecutionsRetryConfig(value); return *this;} /** *

The configuration for the criteria to retry the job.

*/ inline Job& WithJobExecutionsRetryConfig(JobExecutionsRetryConfig&& value) { SetJobExecutionsRetryConfig(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::Map& GetDocumentParameters() const{ return m_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.

*/ inline bool DocumentParametersHasBeenSet() const { return m_documentParametersHasBeenSet; } /** *

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.

*/ inline void SetDocumentParameters(const Aws::Map& value) { m_documentParametersHasBeenSet = true; m_documentParameters = value; } /** *

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.

*/ inline void SetDocumentParameters(Aws::Map&& value) { m_documentParametersHasBeenSet = true; m_documentParameters = std::move(value); } /** *

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.

*/ inline Job& WithDocumentParameters(const Aws::Map& value) { SetDocumentParameters(value); return *this;} /** *

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.

*/ inline Job& WithDocumentParameters(Aws::Map&& value) { SetDocumentParameters(std::move(value)); return *this;} /** *

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.

*/ inline Job& AddDocumentParameters(const Aws::String& key, const Aws::String& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, value); return *this; } /** *

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.

*/ inline Job& AddDocumentParameters(Aws::String&& key, const Aws::String& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(std::move(key), value); return *this; } /** *

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.

*/ inline Job& AddDocumentParameters(const Aws::String& key, Aws::String&& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, std::move(value)); return *this; } /** *

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.

*/ inline Job& AddDocumentParameters(Aws::String&& key, Aws::String&& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

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.

*/ inline Job& AddDocumentParameters(const char* key, Aws::String&& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, std::move(value)); return *this; } /** *

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.

*/ inline Job& AddDocumentParameters(Aws::String&& key, const char* value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(std::move(key), value); return *this; } /** *

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.

*/ inline Job& AddDocumentParameters(const char* key, const char* value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, value); return *this; } /** *

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.

*/ inline bool GetIsConcurrent() const{ return m_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.

*/ inline bool IsConcurrentHasBeenSet() const { return m_isConcurrentHasBeenSet; } /** *

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.

*/ inline void SetIsConcurrent(bool value) { m_isConcurrentHasBeenSet = true; m_isConcurrent = value; } /** *

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.

*/ inline Job& WithIsConcurrent(bool value) { SetIsConcurrent(value); return *this;} /** *

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.

*/ inline const SchedulingConfig& GetSchedulingConfig() const{ return m_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.

*/ inline bool SchedulingConfigHasBeenSet() const { return m_schedulingConfigHasBeenSet; } /** *

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.

*/ inline void SetSchedulingConfig(const SchedulingConfig& value) { m_schedulingConfigHasBeenSet = true; m_schedulingConfig = value; } /** *

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.

*/ inline void SetSchedulingConfig(SchedulingConfig&& value) { m_schedulingConfigHasBeenSet = true; m_schedulingConfig = std::move(value); } /** *

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.

*/ inline Job& WithSchedulingConfig(const SchedulingConfig& value) { SetSchedulingConfig(value); return *this;} /** *

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.

*/ inline Job& WithSchedulingConfig(SchedulingConfig&& value) { SetSchedulingConfig(std::move(value)); return *this;} /** *

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

*/ inline const Aws::Vector& GetScheduledJobRollouts() const{ return m_scheduledJobRollouts; } /** *

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

*/ inline bool ScheduledJobRolloutsHasBeenSet() const { return m_scheduledJobRolloutsHasBeenSet; } /** *

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

*/ inline void SetScheduledJobRollouts(const Aws::Vector& value) { m_scheduledJobRolloutsHasBeenSet = true; m_scheduledJobRollouts = value; } /** *

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

*/ inline void SetScheduledJobRollouts(Aws::Vector&& value) { m_scheduledJobRolloutsHasBeenSet = true; m_scheduledJobRollouts = std::move(value); } /** *

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

*/ inline Job& WithScheduledJobRollouts(const Aws::Vector& value) { SetScheduledJobRollouts(value); return *this;} /** *

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

*/ inline Job& WithScheduledJobRollouts(Aws::Vector&& value) { SetScheduledJobRollouts(std::move(value)); return *this;} /** *

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

*/ inline Job& AddScheduledJobRollouts(const ScheduledJobRollout& value) { m_scheduledJobRolloutsHasBeenSet = true; m_scheduledJobRollouts.push_back(value); return *this; } /** *

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

*/ inline Job& AddScheduledJobRollouts(ScheduledJobRollout&& value) { m_scheduledJobRolloutsHasBeenSet = true; m_scheduledJobRollouts.push_back(std::move(value)); return *this; } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline const Aws::Vector& GetDestinationPackageVersions() const{ return m_destinationPackageVersions; } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline bool DestinationPackageVersionsHasBeenSet() const { return m_destinationPackageVersionsHasBeenSet; } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline void SetDestinationPackageVersions(const Aws::Vector& value) { m_destinationPackageVersionsHasBeenSet = true; m_destinationPackageVersions = value; } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline void SetDestinationPackageVersions(Aws::Vector&& value) { m_destinationPackageVersionsHasBeenSet = true; m_destinationPackageVersions = std::move(value); } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline Job& WithDestinationPackageVersions(const Aws::Vector& value) { SetDestinationPackageVersions(value); return *this;} /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline Job& WithDestinationPackageVersions(Aws::Vector&& value) { SetDestinationPackageVersions(std::move(value)); return *this;} /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline Job& AddDestinationPackageVersions(const Aws::String& value) { m_destinationPackageVersionsHasBeenSet = true; m_destinationPackageVersions.push_back(value); return *this; } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline Job& AddDestinationPackageVersions(Aws::String&& value) { m_destinationPackageVersionsHasBeenSet = true; m_destinationPackageVersions.push_back(std::move(value)); return *this; } /** *

The package version Amazon Resource Names (ARNs) that are installed on the * device when the job successfully completes.

Note:The following * Length Constraints relates to a single string. Up to five strings are * allowed.

*/ inline Job& AddDestinationPackageVersions(const char* value) { m_destinationPackageVersionsHasBeenSet = true; m_destinationPackageVersions.push_back(value); return *this; } private: Aws::String m_jobArn; bool m_jobArnHasBeenSet = false; Aws::String m_jobId; bool m_jobIdHasBeenSet = false; TargetSelection m_targetSelection; bool m_targetSelectionHasBeenSet = false; JobStatus m_status; bool m_statusHasBeenSet = false; bool m_forceCanceled; bool m_forceCanceledHasBeenSet = false; Aws::String m_reasonCode; bool m_reasonCodeHasBeenSet = false; Aws::String m_comment; bool m_commentHasBeenSet = false; Aws::Vector m_targets; bool m_targetsHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; PresignedUrlConfig m_presignedUrlConfig; bool m_presignedUrlConfigHasBeenSet = false; JobExecutionsRolloutConfig m_jobExecutionsRolloutConfig; bool m_jobExecutionsRolloutConfigHasBeenSet = false; AbortConfig m_abortConfig; bool m_abortConfigHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedAt; bool m_lastUpdatedAtHasBeenSet = false; Aws::Utils::DateTime m_completedAt; bool m_completedAtHasBeenSet = false; JobProcessDetails m_jobProcessDetails; bool m_jobProcessDetailsHasBeenSet = false; TimeoutConfig m_timeoutConfig; bool m_timeoutConfigHasBeenSet = false; Aws::String m_namespaceId; bool m_namespaceIdHasBeenSet = false; Aws::String m_jobTemplateArn; bool m_jobTemplateArnHasBeenSet = false; JobExecutionsRetryConfig m_jobExecutionsRetryConfig; bool m_jobExecutionsRetryConfigHasBeenSet = false; Aws::Map m_documentParameters; bool m_documentParametersHasBeenSet = false; bool m_isConcurrent; bool m_isConcurrentHasBeenSet = false; SchedulingConfig m_schedulingConfig; bool m_schedulingConfigHasBeenSet = false; Aws::Vector m_scheduledJobRollouts; bool m_scheduledJobRolloutsHasBeenSet = false; Aws::Vector m_destinationPackageVersions; bool m_destinationPackageVersionsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws