/** * 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 namespace Aws { namespace GreengrassV2 { namespace Model { /** */ class CreateDeploymentRequest : public GreengrassV2Request { public: AWS_GREENGRASSV2_API CreateDeploymentRequest(); // 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 "CreateDeployment"; } AWS_GREENGRASSV2_API Aws::String SerializePayload() const override; /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline const Aws::String& GetTargetArn() const{ return m_targetArn; } /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline bool TargetArnHasBeenSet() const { return m_targetArnHasBeenSet; } /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline void SetTargetArn(const Aws::String& value) { m_targetArnHasBeenSet = true; m_targetArn = value; } /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline void SetTargetArn(Aws::String&& value) { m_targetArnHasBeenSet = true; m_targetArn = std::move(value); } /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline void SetTargetArn(const char* value) { m_targetArnHasBeenSet = true; m_targetArn.assign(value); } /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline CreateDeploymentRequest& WithTargetArn(const Aws::String& value) { SetTargetArn(value); return *this;} /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline CreateDeploymentRequest& WithTargetArn(Aws::String&& value) { SetTargetArn(std::move(value)); return *this;} /** *

The ARN * of the target IoT thing or thing group. When creating a subdeployment, the * targetARN can only be a thing group.

*/ inline CreateDeploymentRequest& WithTargetArn(const char* value) { SetTargetArn(value); return *this;} /** *

The name of the deployment.

*/ inline const Aws::String& GetDeploymentName() const{ return m_deploymentName; } /** *

The name of the deployment.

*/ inline bool DeploymentNameHasBeenSet() const { return m_deploymentNameHasBeenSet; } /** *

The name of the deployment.

*/ inline void SetDeploymentName(const Aws::String& value) { m_deploymentNameHasBeenSet = true; m_deploymentName = value; } /** *

The name of the deployment.

*/ inline void SetDeploymentName(Aws::String&& value) { m_deploymentNameHasBeenSet = true; m_deploymentName = std::move(value); } /** *

The name of the deployment.

*/ inline void SetDeploymentName(const char* value) { m_deploymentNameHasBeenSet = true; m_deploymentName.assign(value); } /** *

The name of the deployment.

*/ inline CreateDeploymentRequest& WithDeploymentName(const Aws::String& value) { SetDeploymentName(value); return *this;} /** *

The name of the deployment.

*/ inline CreateDeploymentRequest& WithDeploymentName(Aws::String&& value) { SetDeploymentName(std::move(value)); return *this;} /** *

The name of the deployment.

*/ inline CreateDeploymentRequest& WithDeploymentName(const char* value) { SetDeploymentName(value); return *this;} /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline const Aws::Map& GetComponents() const{ return m_components; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline bool ComponentsHasBeenSet() const { return m_componentsHasBeenSet; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline void SetComponents(const Aws::Map& value) { m_componentsHasBeenSet = true; m_components = value; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline void SetComponents(Aws::Map&& value) { m_componentsHasBeenSet = true; m_components = std::move(value); } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& WithComponents(const Aws::Map& value) { SetComponents(value); return *this;} /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& WithComponents(Aws::Map&& value) { SetComponents(std::move(value)); return *this;} /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& AddComponents(const Aws::String& key, const ComponentDeploymentSpecification& value) { m_componentsHasBeenSet = true; m_components.emplace(key, value); return *this; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& AddComponents(Aws::String&& key, const ComponentDeploymentSpecification& value) { m_componentsHasBeenSet = true; m_components.emplace(std::move(key), value); return *this; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& AddComponents(const Aws::String& key, ComponentDeploymentSpecification&& value) { m_componentsHasBeenSet = true; m_components.emplace(key, std::move(value)); return *this; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& AddComponents(Aws::String&& key, ComponentDeploymentSpecification&& value) { m_componentsHasBeenSet = true; m_components.emplace(std::move(key), std::move(value)); return *this; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& AddComponents(const char* key, ComponentDeploymentSpecification&& value) { m_componentsHasBeenSet = true; m_components.emplace(key, std::move(value)); return *this; } /** *

The components to deploy. This is a dictionary, where each key is the name of * a component, and each key's value is the version and configuration to deploy for * that component.

*/ inline CreateDeploymentRequest& AddComponents(const char* key, const ComponentDeploymentSpecification& value) { m_componentsHasBeenSet = true; m_components.emplace(key, value); return *this; } /** *

The job configuration for the deployment configuration. The job configuration * specifies the rollout, timeout, and stop configurations for the deployment * configuration.

*/ inline const DeploymentIoTJobConfiguration& GetIotJobConfiguration() const{ return m_iotJobConfiguration; } /** *

The job configuration for the deployment configuration. The job configuration * specifies the rollout, timeout, and stop configurations for the deployment * configuration.

*/ inline bool IotJobConfigurationHasBeenSet() const { return m_iotJobConfigurationHasBeenSet; } /** *

The job configuration for the deployment configuration. The job configuration * specifies the rollout, timeout, and stop configurations for the deployment * configuration.

*/ inline void SetIotJobConfiguration(const DeploymentIoTJobConfiguration& value) { m_iotJobConfigurationHasBeenSet = true; m_iotJobConfiguration = value; } /** *

The job configuration for the deployment configuration. The job configuration * specifies the rollout, timeout, and stop configurations for the deployment * configuration.

*/ inline void SetIotJobConfiguration(DeploymentIoTJobConfiguration&& value) { m_iotJobConfigurationHasBeenSet = true; m_iotJobConfiguration = std::move(value); } /** *

The job configuration for the deployment configuration. The job configuration * specifies the rollout, timeout, and stop configurations for the deployment * configuration.

*/ inline CreateDeploymentRequest& WithIotJobConfiguration(const DeploymentIoTJobConfiguration& value) { SetIotJobConfiguration(value); return *this;} /** *

The job configuration for the deployment configuration. The job configuration * specifies the rollout, timeout, and stop configurations for the deployment * configuration.

*/ inline CreateDeploymentRequest& WithIotJobConfiguration(DeploymentIoTJobConfiguration&& value) { SetIotJobConfiguration(std::move(value)); return *this;} /** *

The deployment policies for the deployment. These policies define how the * deployment updates components and handles failure.

*/ inline const DeploymentPolicies& GetDeploymentPolicies() const{ return m_deploymentPolicies; } /** *

The deployment policies for the deployment. These policies define how the * deployment updates components and handles failure.

*/ inline bool DeploymentPoliciesHasBeenSet() const { return m_deploymentPoliciesHasBeenSet; } /** *

The deployment policies for the deployment. These policies define how the * deployment updates components and handles failure.

*/ inline void SetDeploymentPolicies(const DeploymentPolicies& value) { m_deploymentPoliciesHasBeenSet = true; m_deploymentPolicies = value; } /** *

The deployment policies for the deployment. These policies define how the * deployment updates components and handles failure.

*/ inline void SetDeploymentPolicies(DeploymentPolicies&& value) { m_deploymentPoliciesHasBeenSet = true; m_deploymentPolicies = std::move(value); } /** *

The deployment policies for the deployment. These policies define how the * deployment updates components and handles failure.

*/ inline CreateDeploymentRequest& WithDeploymentPolicies(const DeploymentPolicies& value) { SetDeploymentPolicies(value); return *this;} /** *

The deployment policies for the deployment. These policies define how the * deployment updates components and handles failure.

*/ inline CreateDeploymentRequest& WithDeploymentPolicies(DeploymentPolicies&& value) { SetDeploymentPolicies(std::move(value)); return *this;} /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline const Aws::String& GetParentTargetArn() const{ return m_parentTargetArn; } /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline bool ParentTargetArnHasBeenSet() const { return m_parentTargetArnHasBeenSet; } /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline void SetParentTargetArn(const Aws::String& value) { m_parentTargetArnHasBeenSet = true; m_parentTargetArn = value; } /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline void SetParentTargetArn(Aws::String&& value) { m_parentTargetArnHasBeenSet = true; m_parentTargetArn = std::move(value); } /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline void SetParentTargetArn(const char* value) { m_parentTargetArnHasBeenSet = true; m_parentTargetArn.assign(value); } /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline CreateDeploymentRequest& WithParentTargetArn(const Aws::String& value) { SetParentTargetArn(value); return *this;} /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline CreateDeploymentRequest& WithParentTargetArn(Aws::String&& value) { SetParentTargetArn(std::move(value)); return *this;} /** *

The parent deployment's target ARN * within a subdeployment.

*/ inline CreateDeploymentRequest& WithParentTargetArn(const char* value) { SetParentTargetArn(value); return *this;} /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

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

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

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

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

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

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

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

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

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

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

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

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A list of key-value pairs that contain metadata for the resource. For more * information, see Tag * your resources in the IoT Greengrass V2 Developer Guide.

*/ inline CreateDeploymentRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline CreateDeploymentRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline CreateDeploymentRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique, case-sensitive identifier that you can provide to ensure that the * request is idempotent. Idempotency means that the request is successfully * processed only once, even if you send the request multiple times. When a request * succeeds, and you specify the same client token for subsequent successful * requests, the IoT Greengrass V2 service returns the successful response that it * caches from the previous request. IoT Greengrass V2 caches successful responses * for idempotent requests for up to 8 hours.

*/ inline CreateDeploymentRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} private: Aws::String m_targetArn; bool m_targetArnHasBeenSet = false; Aws::String m_deploymentName; bool m_deploymentNameHasBeenSet = false; Aws::Map m_components; bool m_componentsHasBeenSet = false; DeploymentIoTJobConfiguration m_iotJobConfiguration; bool m_iotJobConfigurationHasBeenSet = false; DeploymentPolicies m_deploymentPolicies; bool m_deploymentPoliciesHasBeenSet = false; Aws::String m_parentTargetArn; bool m_parentTargetArnHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; }; } // namespace Model } // namespace GreengrassV2 } // namespace Aws