// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateDeployment`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`target_arn(impl Into<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::target_arn) / [`set_target_arn(Option<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_target_arn):<br>required: **true**<br><p>The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target IoT thing or thing group. When creating a subdeployment, the targetARN can only be a thing group.</p><br>
/// - [`deployment_name(impl Into<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::deployment_name) / [`set_deployment_name(Option<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_deployment_name):<br>required: **false**<br><p>The name of the deployment.</p><br>
/// - [`components(impl Into<String>, ComponentDeploymentSpecification)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::components) / [`set_components(Option<HashMap::<String, ComponentDeploymentSpecification>>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_components):<br>required: **false**<br><p>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.</p><br>
/// - [`iot_job_configuration(DeploymentIoTJobConfiguration)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::iot_job_configuration) / [`set_iot_job_configuration(Option<DeploymentIoTJobConfiguration>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_iot_job_configuration):<br>required: **false**<br><p>The job configuration for the deployment configuration. The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration.</p><br>
/// - [`deployment_policies(DeploymentPolicies)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::deployment_policies) / [`set_deployment_policies(Option<DeploymentPolicies>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_deployment_policies):<br>required: **false**<br><p>The deployment policies for the deployment. These policies define how the deployment updates components and handles failure.</p><br>
/// - [`parent_target_arn(impl Into<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::parent_target_arn) / [`set_parent_target_arn(Option<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_parent_target_arn):<br>required: **false**<br><p>The parent deployment's target <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> within a subdeployment.</p><br>
/// - [`tags(impl Into<String>, impl Into<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::tags) / [`set_tags(Option<HashMap::<String, String>>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_tags):<br>required: **false**<br><p>A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>IoT Greengrass V2 Developer Guide</i>.</p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::set_client_token):<br>required: **false**<br><p>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.</p><br>
/// - On success, responds with [`CreateDeploymentOutput`](crate::operation::create_deployment::CreateDeploymentOutput) with field(s):
/// - [`deployment_id(Option<String>)`](crate::operation::create_deployment::CreateDeploymentOutput::deployment_id): <p>The ID of the deployment.</p>
/// - [`iot_job_id(Option<String>)`](crate::operation::create_deployment::CreateDeploymentOutput::iot_job_id): <p>The ID of the IoT job that applies the deployment to target devices.</p>
/// - [`iot_job_arn(Option<String>)`](crate::operation::create_deployment::CreateDeploymentOutput::iot_job_arn): <p>The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IoT job that applies the deployment to target devices.</p>
/// - On failure, responds with [`SdkError<CreateDeploymentError>`](crate::operation::create_deployment::CreateDeploymentError)
pub fn create_deployment(&self) -> crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder {
crate::operation::create_deployment::builders::CreateDeploymentFluentBuilder::new(self.handle.clone())
}
}