/** * 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 CreateOTAUpdateRequest : public IoTRequest { public: AWS_IOT_API CreateOTAUpdateRequest(); // 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 "CreateOTAUpdate"; } AWS_IOT_API Aws::String SerializePayload() const override; /** *

The ID of the OTA update to be created.

*/ inline const Aws::String& GetOtaUpdateId() const{ return m_otaUpdateId; } /** *

The ID of the OTA update to be created.

*/ inline bool OtaUpdateIdHasBeenSet() const { return m_otaUpdateIdHasBeenSet; } /** *

The ID of the OTA update to be created.

*/ inline void SetOtaUpdateId(const Aws::String& value) { m_otaUpdateIdHasBeenSet = true; m_otaUpdateId = value; } /** *

The ID of the OTA update to be created.

*/ inline void SetOtaUpdateId(Aws::String&& value) { m_otaUpdateIdHasBeenSet = true; m_otaUpdateId = std::move(value); } /** *

The ID of the OTA update to be created.

*/ inline void SetOtaUpdateId(const char* value) { m_otaUpdateIdHasBeenSet = true; m_otaUpdateId.assign(value); } /** *

The ID of the OTA update to be created.

*/ inline CreateOTAUpdateRequest& WithOtaUpdateId(const Aws::String& value) { SetOtaUpdateId(value); return *this;} /** *

The ID of the OTA update to be created.

*/ inline CreateOTAUpdateRequest& WithOtaUpdateId(Aws::String&& value) { SetOtaUpdateId(std::move(value)); return *this;} /** *

The ID of the OTA update to be created.

*/ inline CreateOTAUpdateRequest& WithOtaUpdateId(const char* value) { SetOtaUpdateId(value); return *this;} /** *

The description of the OTA update.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the OTA update.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the OTA update.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the OTA update.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the OTA update.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the OTA update.

*/ inline CreateOTAUpdateRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the OTA update.

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

The description of the OTA update.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The devices targeted to receive OTA updates.

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

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline const Aws::Vector& GetProtocols() const{ return m_protocols; } /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline bool ProtocolsHasBeenSet() const { return m_protocolsHasBeenSet; } /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline void SetProtocols(const Aws::Vector& value) { m_protocolsHasBeenSet = true; m_protocols = value; } /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline void SetProtocols(Aws::Vector&& value) { m_protocolsHasBeenSet = true; m_protocols = std::move(value); } /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline CreateOTAUpdateRequest& WithProtocols(const Aws::Vector& value) { SetProtocols(value); return *this;} /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline CreateOTAUpdateRequest& WithProtocols(Aws::Vector&& value) { SetProtocols(std::move(value)); return *this;} /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline CreateOTAUpdateRequest& AddProtocols(const Protocol& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(value); return *this; } /** *

The protocol used to transfer the OTA update image. Valid values are [HTTP], * [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device * can choose the protocol.

*/ inline CreateOTAUpdateRequest& AddProtocols(Protocol&& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(std::move(value)); return *this; } /** *

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

*/ inline const TargetSelection& GetTargetSelection() const{ return m_targetSelection; } /** *

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

*/ inline bool TargetSelectionHasBeenSet() const { return m_targetSelectionHasBeenSet; } /** *

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

*/ inline void SetTargetSelection(const TargetSelection& value) { m_targetSelectionHasBeenSet = true; m_targetSelection = value; } /** *

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

*/ inline void SetTargetSelection(TargetSelection&& value) { m_targetSelectionHasBeenSet = true; m_targetSelection = std::move(value); } /** *

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

*/ inline CreateOTAUpdateRequest& WithTargetSelection(const TargetSelection& value) { SetTargetSelection(value); return *this;} /** *

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

*/ inline CreateOTAUpdateRequest& WithTargetSelection(TargetSelection&& value) { SetTargetSelection(std::move(value)); return *this;} /** *

Configuration for the rollout of OTA updates.

*/ inline const AwsJobExecutionsRolloutConfig& GetAwsJobExecutionsRolloutConfig() const{ return m_awsJobExecutionsRolloutConfig; } /** *

Configuration for the rollout of OTA updates.

*/ inline bool AwsJobExecutionsRolloutConfigHasBeenSet() const { return m_awsJobExecutionsRolloutConfigHasBeenSet; } /** *

Configuration for the rollout of OTA updates.

*/ inline void SetAwsJobExecutionsRolloutConfig(const AwsJobExecutionsRolloutConfig& value) { m_awsJobExecutionsRolloutConfigHasBeenSet = true; m_awsJobExecutionsRolloutConfig = value; } /** *

Configuration for the rollout of OTA updates.

*/ inline void SetAwsJobExecutionsRolloutConfig(AwsJobExecutionsRolloutConfig&& value) { m_awsJobExecutionsRolloutConfigHasBeenSet = true; m_awsJobExecutionsRolloutConfig = std::move(value); } /** *

Configuration for the rollout of OTA updates.

*/ inline CreateOTAUpdateRequest& WithAwsJobExecutionsRolloutConfig(const AwsJobExecutionsRolloutConfig& value) { SetAwsJobExecutionsRolloutConfig(value); return *this;} /** *

Configuration for the rollout of OTA updates.

*/ inline CreateOTAUpdateRequest& WithAwsJobExecutionsRolloutConfig(AwsJobExecutionsRolloutConfig&& value) { SetAwsJobExecutionsRolloutConfig(std::move(value)); return *this;} /** *

Configuration information for pre-signed URLs.

*/ inline const AwsJobPresignedUrlConfig& GetAwsJobPresignedUrlConfig() const{ return m_awsJobPresignedUrlConfig; } /** *

Configuration information for pre-signed URLs.

*/ inline bool AwsJobPresignedUrlConfigHasBeenSet() const { return m_awsJobPresignedUrlConfigHasBeenSet; } /** *

Configuration information for pre-signed URLs.

*/ inline void SetAwsJobPresignedUrlConfig(const AwsJobPresignedUrlConfig& value) { m_awsJobPresignedUrlConfigHasBeenSet = true; m_awsJobPresignedUrlConfig = value; } /** *

Configuration information for pre-signed URLs.

*/ inline void SetAwsJobPresignedUrlConfig(AwsJobPresignedUrlConfig&& value) { m_awsJobPresignedUrlConfigHasBeenSet = true; m_awsJobPresignedUrlConfig = std::move(value); } /** *

Configuration information for pre-signed URLs.

*/ inline CreateOTAUpdateRequest& WithAwsJobPresignedUrlConfig(const AwsJobPresignedUrlConfig& value) { SetAwsJobPresignedUrlConfig(value); return *this;} /** *

Configuration information for pre-signed URLs.

*/ inline CreateOTAUpdateRequest& WithAwsJobPresignedUrlConfig(AwsJobPresignedUrlConfig&& value) { SetAwsJobPresignedUrlConfig(std::move(value)); return *this;} /** *

The criteria that determine when and how a job abort takes place.

*/ inline const AwsJobAbortConfig& GetAwsJobAbortConfig() const{ return m_awsJobAbortConfig; } /** *

The criteria that determine when and how a job abort takes place.

*/ inline bool AwsJobAbortConfigHasBeenSet() const { return m_awsJobAbortConfigHasBeenSet; } /** *

The criteria that determine when and how a job abort takes place.

*/ inline void SetAwsJobAbortConfig(const AwsJobAbortConfig& value) { m_awsJobAbortConfigHasBeenSet = true; m_awsJobAbortConfig = value; } /** *

The criteria that determine when and how a job abort takes place.

*/ inline void SetAwsJobAbortConfig(AwsJobAbortConfig&& value) { m_awsJobAbortConfigHasBeenSet = true; m_awsJobAbortConfig = std::move(value); } /** *

The criteria that determine when and how a job abort takes place.

*/ inline CreateOTAUpdateRequest& WithAwsJobAbortConfig(const AwsJobAbortConfig& value) { SetAwsJobAbortConfig(value); return *this;} /** *

The criteria that determine when and how a job abort takes place.

*/ inline CreateOTAUpdateRequest& WithAwsJobAbortConfig(AwsJobAbortConfig&& value) { SetAwsJobAbortConfig(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 AwsJobTimeoutConfig& GetAwsJobTimeoutConfig() const{ return m_awsJobTimeoutConfig; } /** *

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 AwsJobTimeoutConfigHasBeenSet() const { return m_awsJobTimeoutConfigHasBeenSet; } /** *

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 SetAwsJobTimeoutConfig(const AwsJobTimeoutConfig& value) { m_awsJobTimeoutConfigHasBeenSet = true; m_awsJobTimeoutConfig = 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 SetAwsJobTimeoutConfig(AwsJobTimeoutConfig&& value) { m_awsJobTimeoutConfigHasBeenSet = true; m_awsJobTimeoutConfig = 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 CreateOTAUpdateRequest& WithAwsJobTimeoutConfig(const AwsJobTimeoutConfig& value) { SetAwsJobTimeoutConfig(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 CreateOTAUpdateRequest& WithAwsJobTimeoutConfig(AwsJobTimeoutConfig&& value) { SetAwsJobTimeoutConfig(std::move(value)); return *this;} /** *

The files to be streamed by the OTA update.

*/ inline const Aws::Vector& GetFiles() const{ return m_files; } /** *

The files to be streamed by the OTA update.

*/ inline bool FilesHasBeenSet() const { return m_filesHasBeenSet; } /** *

The files to be streamed by the OTA update.

*/ inline void SetFiles(const Aws::Vector& value) { m_filesHasBeenSet = true; m_files = value; } /** *

The files to be streamed by the OTA update.

*/ inline void SetFiles(Aws::Vector&& value) { m_filesHasBeenSet = true; m_files = std::move(value); } /** *

The files to be streamed by the OTA update.

*/ inline CreateOTAUpdateRequest& WithFiles(const Aws::Vector& value) { SetFiles(value); return *this;} /** *

The files to be streamed by the OTA update.

*/ inline CreateOTAUpdateRequest& WithFiles(Aws::Vector&& value) { SetFiles(std::move(value)); return *this;} /** *

The files to be streamed by the OTA update.

*/ inline CreateOTAUpdateRequest& AddFiles(const OTAUpdateFile& value) { m_filesHasBeenSet = true; m_files.push_back(value); return *this; } /** *

The files to be streamed by the OTA update.

*/ inline CreateOTAUpdateRequest& AddFiles(OTAUpdateFile&& value) { m_filesHasBeenSet = true; m_files.push_back(std::move(value)); return *this; } /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline CreateOTAUpdateRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline CreateOTAUpdateRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

The IAM role that grants Amazon Web Services IoT Core access to the Amazon * S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA * update job.

*/ inline CreateOTAUpdateRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline const Aws::Map& GetAdditionalParameters() const{ return m_additionalParameters; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline bool AdditionalParametersHasBeenSet() const { return m_additionalParametersHasBeenSet; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline void SetAdditionalParameters(const Aws::Map& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters = value; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline void SetAdditionalParameters(Aws::Map&& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters = std::move(value); } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& WithAdditionalParameters(const Aws::Map& value) { SetAdditionalParameters(value); return *this;} /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& WithAdditionalParameters(Aws::Map&& value) { SetAdditionalParameters(std::move(value)); return *this;} /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(const Aws::String& key, const Aws::String& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(key, value); return *this; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(Aws::String&& key, const Aws::String& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(std::move(key), value); return *this; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(const Aws::String& key, Aws::String&& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(key, std::move(value)); return *this; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(Aws::String&& key, Aws::String&& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(const char* key, Aws::String&& value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(key, std::move(value)); return *this; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(Aws::String&& key, const char* value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(std::move(key), value); return *this; } /** *

A list of additional OTA update parameters which are name-value pairs.

*/ inline CreateOTAUpdateRequest& AddAdditionalParameters(const char* key, const char* value) { m_additionalParametersHasBeenSet = true; m_additionalParameters.emplace(key, value); return *this; } /** *

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

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

Metadata which can be used to manage updates.

*/ inline CreateOTAUpdateRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_otaUpdateId; bool m_otaUpdateIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_targets; bool m_targetsHasBeenSet = false; Aws::Vector m_protocols; bool m_protocolsHasBeenSet = false; TargetSelection m_targetSelection; bool m_targetSelectionHasBeenSet = false; AwsJobExecutionsRolloutConfig m_awsJobExecutionsRolloutConfig; bool m_awsJobExecutionsRolloutConfigHasBeenSet = false; AwsJobPresignedUrlConfig m_awsJobPresignedUrlConfig; bool m_awsJobPresignedUrlConfigHasBeenSet = false; AwsJobAbortConfig m_awsJobAbortConfig; bool m_awsJobAbortConfigHasBeenSet = false; AwsJobTimeoutConfig m_awsJobTimeoutConfig; bool m_awsJobTimeoutConfigHasBeenSet = false; Aws::Vector m_files; bool m_filesHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::Map m_additionalParameters; bool m_additionalParametersHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws