aws-sdk-codedeploy 1.100.0

AWS SDK for AWS CodeDeploy
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Represents the input of a <code>CreateDeploymentConfig</code> operation.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreateDeploymentConfigInput {
    /// <p>The name of the deployment configuration to create.</p>
    pub deployment_config_name: ::std::option::Option<::std::string::String>,
    /// <p>The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.</p>
    /// <p>The type parameter takes either of the following values:</p>
    /// <ul>
    /// <li>
    /// <p>HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.</p></li>
    /// <li>
    /// <p>FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.</p></li>
    /// </ul>
    /// <p>The value parameter takes an integer.</p>
    /// <p>For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.</p>
    pub minimum_healthy_hosts: ::std::option::Option<crate::types::MinimumHealthyHosts>,
    /// <p>The configuration that specifies how the deployment traffic is routed.</p>
    pub traffic_routing_config: ::std::option::Option<crate::types::TrafficRoutingConfig>,
    /// <p>The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).</p>
    pub compute_platform: ::std::option::Option<crate::types::ComputePlatform>,
    /// <p>Configure the <code>ZonalConfig</code> object if you want CodeDeploy to deploy your application to one <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones">Availability Zone</a> at a time, within an Amazon Web Services Region.</p>
    /// <p>For more information about the zonal configuration feature, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations-create.html#zonal-config">zonal configuration</a> in the <i>CodeDeploy User Guide</i>.</p>
    pub zonal_config: ::std::option::Option<crate::types::ZonalConfig>,
}
impl CreateDeploymentConfigInput {
    /// <p>The name of the deployment configuration to create.</p>
    pub fn deployment_config_name(&self) -> ::std::option::Option<&str> {
        self.deployment_config_name.as_deref()
    }
    /// <p>The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.</p>
    /// <p>The type parameter takes either of the following values:</p>
    /// <ul>
    /// <li>
    /// <p>HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.</p></li>
    /// <li>
    /// <p>FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.</p></li>
    /// </ul>
    /// <p>The value parameter takes an integer.</p>
    /// <p>For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.</p>
    pub fn minimum_healthy_hosts(&self) -> ::std::option::Option<&crate::types::MinimumHealthyHosts> {
        self.minimum_healthy_hosts.as_ref()
    }
    /// <p>The configuration that specifies how the deployment traffic is routed.</p>
    pub fn traffic_routing_config(&self) -> ::std::option::Option<&crate::types::TrafficRoutingConfig> {
        self.traffic_routing_config.as_ref()
    }
    /// <p>The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).</p>
    pub fn compute_platform(&self) -> ::std::option::Option<&crate::types::ComputePlatform> {
        self.compute_platform.as_ref()
    }
    /// <p>Configure the <code>ZonalConfig</code> object if you want CodeDeploy to deploy your application to one <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones">Availability Zone</a> at a time, within an Amazon Web Services Region.</p>
    /// <p>For more information about the zonal configuration feature, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations-create.html#zonal-config">zonal configuration</a> in the <i>CodeDeploy User Guide</i>.</p>
    pub fn zonal_config(&self) -> ::std::option::Option<&crate::types::ZonalConfig> {
        self.zonal_config.as_ref()
    }
}
impl CreateDeploymentConfigInput {
    /// Creates a new builder-style object to manufacture [`CreateDeploymentConfigInput`](crate::operation::create_deployment_config::CreateDeploymentConfigInput).
    pub fn builder() -> crate::operation::create_deployment_config::builders::CreateDeploymentConfigInputBuilder {
        crate::operation::create_deployment_config::builders::CreateDeploymentConfigInputBuilder::default()
    }
}

/// A builder for [`CreateDeploymentConfigInput`](crate::operation::create_deployment_config::CreateDeploymentConfigInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateDeploymentConfigInputBuilder {
    pub(crate) deployment_config_name: ::std::option::Option<::std::string::String>,
    pub(crate) minimum_healthy_hosts: ::std::option::Option<crate::types::MinimumHealthyHosts>,
    pub(crate) traffic_routing_config: ::std::option::Option<crate::types::TrafficRoutingConfig>,
    pub(crate) compute_platform: ::std::option::Option<crate::types::ComputePlatform>,
    pub(crate) zonal_config: ::std::option::Option<crate::types::ZonalConfig>,
}
impl CreateDeploymentConfigInputBuilder {
    /// <p>The name of the deployment configuration to create.</p>
    /// This field is required.
    pub fn deployment_config_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.deployment_config_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the deployment configuration to create.</p>
    pub fn set_deployment_config_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.deployment_config_name = input;
        self
    }
    /// <p>The name of the deployment configuration to create.</p>
    pub fn get_deployment_config_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.deployment_config_name
    }
    /// <p>The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.</p>
    /// <p>The type parameter takes either of the following values:</p>
    /// <ul>
    /// <li>
    /// <p>HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.</p></li>
    /// <li>
    /// <p>FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.</p></li>
    /// </ul>
    /// <p>The value parameter takes an integer.</p>
    /// <p>For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.</p>
    pub fn minimum_healthy_hosts(mut self, input: crate::types::MinimumHealthyHosts) -> Self {
        self.minimum_healthy_hosts = ::std::option::Option::Some(input);
        self
    }
    /// <p>The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.</p>
    /// <p>The type parameter takes either of the following values:</p>
    /// <ul>
    /// <li>
    /// <p>HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.</p></li>
    /// <li>
    /// <p>FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.</p></li>
    /// </ul>
    /// <p>The value parameter takes an integer.</p>
    /// <p>For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.</p>
    pub fn set_minimum_healthy_hosts(mut self, input: ::std::option::Option<crate::types::MinimumHealthyHosts>) -> Self {
        self.minimum_healthy_hosts = input;
        self
    }
    /// <p>The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.</p>
    /// <p>The type parameter takes either of the following values:</p>
    /// <ul>
    /// <li>
    /// <p>HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.</p></li>
    /// <li>
    /// <p>FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.</p></li>
    /// </ul>
    /// <p>The value parameter takes an integer.</p>
    /// <p>For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.</p>
    pub fn get_minimum_healthy_hosts(&self) -> &::std::option::Option<crate::types::MinimumHealthyHosts> {
        &self.minimum_healthy_hosts
    }
    /// <p>The configuration that specifies how the deployment traffic is routed.</p>
    pub fn traffic_routing_config(mut self, input: crate::types::TrafficRoutingConfig) -> Self {
        self.traffic_routing_config = ::std::option::Option::Some(input);
        self
    }
    /// <p>The configuration that specifies how the deployment traffic is routed.</p>
    pub fn set_traffic_routing_config(mut self, input: ::std::option::Option<crate::types::TrafficRoutingConfig>) -> Self {
        self.traffic_routing_config = input;
        self
    }
    /// <p>The configuration that specifies how the deployment traffic is routed.</p>
    pub fn get_traffic_routing_config(&self) -> &::std::option::Option<crate::types::TrafficRoutingConfig> {
        &self.traffic_routing_config
    }
    /// <p>The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).</p>
    pub fn compute_platform(mut self, input: crate::types::ComputePlatform) -> Self {
        self.compute_platform = ::std::option::Option::Some(input);
        self
    }
    /// <p>The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).</p>
    pub fn set_compute_platform(mut self, input: ::std::option::Option<crate::types::ComputePlatform>) -> Self {
        self.compute_platform = input;
        self
    }
    /// <p>The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).</p>
    pub fn get_compute_platform(&self) -> &::std::option::Option<crate::types::ComputePlatform> {
        &self.compute_platform
    }
    /// <p>Configure the <code>ZonalConfig</code> object if you want CodeDeploy to deploy your application to one <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones">Availability Zone</a> at a time, within an Amazon Web Services Region.</p>
    /// <p>For more information about the zonal configuration feature, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations-create.html#zonal-config">zonal configuration</a> in the <i>CodeDeploy User Guide</i>.</p>
    pub fn zonal_config(mut self, input: crate::types::ZonalConfig) -> Self {
        self.zonal_config = ::std::option::Option::Some(input);
        self
    }
    /// <p>Configure the <code>ZonalConfig</code> object if you want CodeDeploy to deploy your application to one <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones">Availability Zone</a> at a time, within an Amazon Web Services Region.</p>
    /// <p>For more information about the zonal configuration feature, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations-create.html#zonal-config">zonal configuration</a> in the <i>CodeDeploy User Guide</i>.</p>
    pub fn set_zonal_config(mut self, input: ::std::option::Option<crate::types::ZonalConfig>) -> Self {
        self.zonal_config = input;
        self
    }
    /// <p>Configure the <code>ZonalConfig</code> object if you want CodeDeploy to deploy your application to one <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones">Availability Zone</a> at a time, within an Amazon Web Services Region.</p>
    /// <p>For more information about the zonal configuration feature, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations-create.html#zonal-config">zonal configuration</a> in the <i>CodeDeploy User Guide</i>.</p>
    pub fn get_zonal_config(&self) -> &::std::option::Option<crate::types::ZonalConfig> {
        &self.zonal_config
    }
    /// Consumes the builder and constructs a [`CreateDeploymentConfigInput`](crate::operation::create_deployment_config::CreateDeploymentConfigInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<
        crate::operation::create_deployment_config::CreateDeploymentConfigInput,
        ::aws_smithy_types::error::operation::BuildError,
    > {
        ::std::result::Result::Ok(crate::operation::create_deployment_config::CreateDeploymentConfigInput {
            deployment_config_name: self.deployment_config_name,
            minimum_healthy_hosts: self.minimum_healthy_hosts,
            traffic_routing_config: self.traffic_routing_config,
            compute_platform: self.compute_platform,
            zonal_config: self.zonal_config,
        })
    }
}