/** * 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 namespace Aws { namespace IoT { namespace Model { /** */ class CreateJobRequest : public IoTRequest { public: AWS_IOT_API CreateJobRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateJob"; } AWS_IOT_API Aws::String SerializePayload() const override; /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline const Aws::String& GetJobId() const{ return m_jobId; } /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline bool JobIdHasBeenSet() const { return m_jobIdHasBeenSet; } /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline void SetJobId(const Aws::String& value) { m_jobIdHasBeenSet = true; m_jobId = value; } /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline void SetJobId(Aws::String&& value) { m_jobIdHasBeenSet = true; m_jobId = std::move(value); } /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline void SetJobId(const char* value) { m_jobIdHasBeenSet = true; m_jobId.assign(value); } /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline CreateJobRequest& WithJobId(const Aws::String& value) { SetJobId(value); return *this;} /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline CreateJobRequest& WithJobId(Aws::String&& value) { SetJobId(std::move(value)); return *this;} /** *

A job identifier which must be unique for your Amazon Web Services account. * We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for * use here.

*/ inline CreateJobRequest& WithJobId(const char* value) { SetJobId(value); return *this;} /** *

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

*/ inline const Aws::Vector& GetTargets() const{ return m_targets; } /** *

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

*/ inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; } /** *

A list of 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 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 things and thing groups to which the job should be sent.

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

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

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

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

*/ inline CreateJobRequest& AddTargets(const Aws::String& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *

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

*/ inline CreateJobRequest& AddTargets(Aws::String&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; } /** *

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

*/ inline CreateJobRequest& AddTargets(const char* value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline const Aws::String& GetDocumentSource() const{ return m_documentSource; } /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline bool DocumentSourceHasBeenSet() const { return m_documentSourceHasBeenSet; } /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline void SetDocumentSource(const Aws::String& value) { m_documentSourceHasBeenSet = true; m_documentSource = value; } /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline void SetDocumentSource(Aws::String&& value) { m_documentSourceHasBeenSet = true; m_documentSource = std::move(value); } /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline void SetDocumentSource(const char* value) { m_documentSourceHasBeenSet = true; m_documentSource.assign(value); } /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline CreateJobRequest& WithDocumentSource(const Aws::String& value) { SetDocumentSource(value); return *this;} /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline CreateJobRequest& WithDocumentSource(Aws::String&& value) { SetDocumentSource(std::move(value)); return *this;} /** *

An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 * object URL and is required if you don't specify a value for * document.

For example, --document-source * https://s3.region-code.amazonaws.com/example-firmware/device-firmware.1.0 *

For more information, see Methods * for accessing a bucket.

*/ inline CreateJobRequest& WithDocumentSource(const char* value) { SetDocumentSource(value); return *this;} /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline const Aws::String& GetDocument() const{ return m_document; } /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline bool DocumentHasBeenSet() const { return m_documentHasBeenSet; } /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline void SetDocument(const Aws::String& value) { m_documentHasBeenSet = true; m_document = value; } /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline void SetDocument(Aws::String&& value) { m_documentHasBeenSet = true; m_document = std::move(value); } /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline void SetDocument(const char* value) { m_documentHasBeenSet = true; m_document.assign(value); } /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline CreateJobRequest& WithDocument(const Aws::String& value) { SetDocument(value); return *this;} /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline CreateJobRequest& WithDocument(Aws::String&& value) { SetDocument(std::move(value)); return *this;} /** *

The job document. Required if you don't specify a value for * documentSource.

*/ inline CreateJobRequest& WithDocument(const char* value) { SetDocument(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 CreateJobRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A short text description of the job.

*/ inline CreateJobRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A short text description of the job.

*/ inline CreateJobRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Configuration information for pre-signed S3 URLs.

*/ inline const PresignedUrlConfig& GetPresignedUrlConfig() const{ return m_presignedUrlConfig; } /** *

Configuration information for pre-signed S3 URLs.

*/ inline bool PresignedUrlConfigHasBeenSet() const { return m_presignedUrlConfigHasBeenSet; } /** *

Configuration information for pre-signed S3 URLs.

*/ inline void SetPresignedUrlConfig(const PresignedUrlConfig& value) { m_presignedUrlConfigHasBeenSet = true; m_presignedUrlConfig = value; } /** *

Configuration information for pre-signed S3 URLs.

*/ inline void SetPresignedUrlConfig(PresignedUrlConfig&& value) { m_presignedUrlConfigHasBeenSet = true; m_presignedUrlConfig = std::move(value); } /** *

Configuration information for pre-signed S3 URLs.

*/ inline CreateJobRequest& WithPresignedUrlConfig(const PresignedUrlConfig& value) { SetPresignedUrlConfig(value); return *this;} /** *

Configuration information for pre-signed S3 URLs.

*/ inline CreateJobRequest& WithPresignedUrlConfig(PresignedUrlConfig&& value) { SetPresignedUrlConfig(std::move(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 thing when the thing 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 thing when the thing 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 thing when the thing 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 thing when the thing 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 thing when the thing 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 CreateJobRequest& 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 thing when the thing 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 CreateJobRequest& WithTargetSelection(TargetSelection&& value) { SetTargetSelection(std::move(value)); return *this;} /** *

Allows you to create a staged rollout of the job.

*/ inline const JobExecutionsRolloutConfig& GetJobExecutionsRolloutConfig() const{ return m_jobExecutionsRolloutConfig; } /** *

Allows you to create a staged rollout of the job.

*/ inline bool JobExecutionsRolloutConfigHasBeenSet() const { return m_jobExecutionsRolloutConfigHasBeenSet; } /** *

Allows you to create a staged rollout of the job.

*/ inline void SetJobExecutionsRolloutConfig(const JobExecutionsRolloutConfig& value) { m_jobExecutionsRolloutConfigHasBeenSet = true; m_jobExecutionsRolloutConfig = value; } /** *

Allows you to create a staged rollout of the job.

*/ inline void SetJobExecutionsRolloutConfig(JobExecutionsRolloutConfig&& value) { m_jobExecutionsRolloutConfigHasBeenSet = true; m_jobExecutionsRolloutConfig = std::move(value); } /** *

Allows you to create a staged rollout of the job.

*/ inline CreateJobRequest& WithJobExecutionsRolloutConfig(const JobExecutionsRolloutConfig& value) { SetJobExecutionsRolloutConfig(value); return *this;} /** *

Allows you to create a staged rollout of the job.

*/ inline CreateJobRequest& WithJobExecutionsRolloutConfig(JobExecutionsRolloutConfig&& value) { SetJobExecutionsRolloutConfig(std::move(value)); return *this;} /** *

Allows you to create the criteria to abort a job.

*/ inline const AbortConfig& GetAbortConfig() const{ return m_abortConfig; } /** *

Allows you to create the criteria to abort a job.

*/ inline bool AbortConfigHasBeenSet() const { return m_abortConfigHasBeenSet; } /** *

Allows you to create the criteria to abort a job.

*/ inline void SetAbortConfig(const AbortConfig& value) { m_abortConfigHasBeenSet = true; m_abortConfig = value; } /** *

Allows you to create the criteria to abort a job.

*/ inline void SetAbortConfig(AbortConfig&& value) { m_abortConfigHasBeenSet = true; m_abortConfig = std::move(value); } /** *

Allows you to create the criteria to abort a job.

*/ inline CreateJobRequest& WithAbortConfig(const AbortConfig& value) { SetAbortConfig(value); return *this;} /** *

Allows you to create the criteria to abort a job.

*/ inline CreateJobRequest& WithAbortConfig(AbortConfig&& value) { SetAbortConfig(std::move(value)); return *this;} /** *

Specifies the amount of time each device has to finish its execution of the * job. The 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 time 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. The 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 time 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. The 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 time 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. The 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 time 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. The 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 time expires, it will be automatically set to * TIMED_OUT.

*/ inline CreateJobRequest& WithTimeoutConfig(const TimeoutConfig& value) { SetTimeoutConfig(value); return *this;} /** *

Specifies the amount of time each device has to finish its execution of the * job. The 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 time expires, it will be automatically set to * TIMED_OUT.

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

Metadata which can be used to manage the job.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Metadata which can be used to manage the job.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Metadata which can be used to manage the job.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Metadata which can be used to manage the job.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Metadata which can be used to manage the job.

*/ inline CreateJobRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Metadata which can be used to manage the job.

*/ inline CreateJobRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Metadata which can be used to manage the job.

*/ inline CreateJobRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Metadata which can be used to manage the job.

*/ inline CreateJobRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(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 CreateJobRequest& 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 CreateJobRequest& 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 CreateJobRequest& 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 CreateJobRequest& WithJobTemplateArn(const Aws::String& value) { SetJobTemplateArn(value); return *this;} /** *

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

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

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

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

Allows you to create the criteria to retry a job.

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

Allows you to create the criteria to retry a job.

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

Allows you to create the criteria to retry a job.

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

Allows you to create the criteria to retry a job.

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

Allows you to create the criteria to retry a job.

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

Allows you to create the criteria to retry a job.

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

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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); } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& WithDocumentParameters(const Aws::Map& value) { SetDocumentParameters(value); return *this;} /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& WithDocumentParameters(Aws::Map&& value) { SetDocumentParameters(std::move(value)); return *this;} /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(const Aws::String& key, const Aws::String& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, value); return *this; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(Aws::String&& key, const Aws::String& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(std::move(key), value); return *this; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(const Aws::String& key, Aws::String&& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, std::move(value)); return *this; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(Aws::String&& key, Aws::String&& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(const char* key, Aws::String&& value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, std::move(value)); return *this; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(Aws::String&& key, const char* value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(std::move(key), value); return *this; } /** *

Parameters of an Amazon Web Services managed template that you can specify to * create the job document.

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 CreateJobRequest& AddDocumentParameters(const char* key, const char* value) { m_documentParametersHasBeenSet = true; m_documentParameters.emplace(key, 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 CreateJobRequest& 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 CreateJobRequest& WithSchedulingConfig(SchedulingConfig&& value) { SetSchedulingConfig(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 CreateJobRequest& 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 CreateJobRequest& 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 CreateJobRequest& 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 CreateJobRequest& 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 CreateJobRequest& AddDestinationPackageVersions(const char* value) { m_destinationPackageVersionsHasBeenSet = true; m_destinationPackageVersions.push_back(value); return *this; } private: Aws::String m_jobId; bool m_jobIdHasBeenSet = false; Aws::Vector m_targets; bool m_targetsHasBeenSet = false; Aws::String m_documentSource; bool m_documentSourceHasBeenSet = false; Aws::String m_document; bool m_documentHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; PresignedUrlConfig m_presignedUrlConfig; bool m_presignedUrlConfigHasBeenSet = false; TargetSelection m_targetSelection; bool m_targetSelectionHasBeenSet = false; JobExecutionsRolloutConfig m_jobExecutionsRolloutConfig; bool m_jobExecutionsRolloutConfigHasBeenSet = false; AbortConfig m_abortConfig; bool m_abortConfigHasBeenSet = false; TimeoutConfig m_timeoutConfig; bool m_timeoutConfigHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = 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; SchedulingConfig m_schedulingConfig; bool m_schedulingConfigHasBeenSet = false; Aws::Vector m_destinationPackageVersions; bool m_destinationPackageVersionsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws