1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`UpdateDeploymentStrategy`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`deployment_strategy_id(impl Into<String>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::deployment_strategy_id) / [`set_deployment_strategy_id(Option<String>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::set_deployment_strategy_id): <p>The deployment strategy ID.</p>
    ///   - [`description(impl Into<String>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::set_description): <p>A description of the deployment strategy.</p>
    ///   - [`deployment_duration_in_minutes(i32)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::deployment_duration_in_minutes) / [`set_deployment_duration_in_minutes(Option<i32>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::set_deployment_duration_in_minutes): <p>Total amount of time for a deployment to last.</p>
    ///   - [`final_bake_time_in_minutes(i32)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::final_bake_time_in_minutes) / [`set_final_bake_time_in_minutes(Option<i32>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::set_final_bake_time_in_minutes): <p>The amount of time that AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic rollback.</p>
    ///   - [`growth_factor(f32)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::growth_factor) / [`set_growth_factor(Option<f32>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::set_growth_factor): <p>The percentage of targets to receive a deployed configuration during each interval.</p>
    ///   - [`growth_type(GrowthType)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::growth_type) / [`set_growth_type(Option<GrowthType>)`](crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::set_growth_type): <p>The algorithm used to define how percentage grows over time. AppConfig supports the following growth types:</p>  <p> <b>Linear</b>: For this type, AppConfig processes the deployment by increments of the growth factor evenly distributed over the deployment time. For example, a linear deployment that uses a growth factor of 20 initially makes the configuration available to 20 percent of the targets. After 1/5th of the deployment time has passed, the system updates the percentage to 40 percent. This continues until 100% of the targets are set to receive the deployed configuration.</p>  <p> <b>Exponential</b>: For this type, AppConfig processes the deployment exponentially using the following formula: <code>G*(2^N)</code>. In this formula, <code>G</code> is the growth factor specified by the user and <code>N</code> is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:</p>  <p> <code>2*(2^0)</code> </p>  <p> <code>2*(2^1)</code> </p>  <p> <code>2*(2^2)</code> </p>  <p>Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.</p>
    /// - On success, responds with [`UpdateDeploymentStrategyOutput`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput) with field(s):
    ///   - [`id(Option<String>)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::id): <p>The deployment strategy ID.</p>
    ///   - [`name(Option<String>)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::name): <p>The name of the deployment strategy.</p>
    ///   - [`description(Option<String>)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::description): <p>The description of the deployment strategy.</p>
    ///   - [`deployment_duration_in_minutes(i32)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::deployment_duration_in_minutes): <p>Total amount of time the deployment lasted.</p>
    ///   - [`growth_type(Option<GrowthType>)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::growth_type): <p>The algorithm used to define how percentage grew over time.</p>
    ///   - [`growth_factor(f32)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::growth_factor): <p>The percentage of targets that received a deployed configuration during each interval.</p>
    ///   - [`final_bake_time_in_minutes(i32)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::final_bake_time_in_minutes): <p>The amount of time that AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic rollback.</p>
    ///   - [`replicate_to(Option<ReplicateTo>)`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyOutput::replicate_to): <p>Save the deployment strategy to a Systems Manager (SSM) document.</p>
    /// - On failure, responds with [`SdkError<UpdateDeploymentStrategyError>`](crate::operation::update_deployment_strategy::UpdateDeploymentStrategyError)
    pub fn update_deployment_strategy(&self) -> crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder {
        crate::operation::update_deployment_strategy::builders::UpdateDeploymentStrategyFluentBuilder::new(self.handle.clone())
    }
}