/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.appconfig.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS * API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateDeploymentStrategyRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* A name for the deployment strategy. *
*/ private String name; /** ** A description of the deployment strategy. *
*/ private String description; /** ** Total amount of time for a deployment to last. *
*/ private Integer deploymentDurationInMinutes; /** ** Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has been * deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is triggered * during this time, AppConfig rolls back the deployment. You must configure permissions for AppConfig to roll back * based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User Guide. *
*/ private Integer finalBakeTimeInMinutes; /** ** The percentage of targets to receive a deployed configuration during each interval. *
*/ private Float growthFactor; /** ** The algorithm used to define how percentage grows over time. AppConfig supports the following growth types: *
*
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the
* value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those deployments
* are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the
* targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following formula:
* G*(2^N)
. In this formula, G
is the growth factor specified by the user and
* N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. *
*/ private String growthType; /** ** Save the deployment strategy to a Systems Manager (SSM) document. *
*/ private String replicateTo; /** ** Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each * tag consists of a key and an optional value, both of which you define. *
*/ private java.util.Map* A name for the deployment strategy. *
* * @param name * A name for the deployment strategy. */ public void setName(String name) { this.name = name; } /** ** A name for the deployment strategy. *
* * @return A name for the deployment strategy. */ public String getName() { return this.name; } /** ** A name for the deployment strategy. *
* * @param name * A name for the deployment strategy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDeploymentStrategyRequest withName(String name) { setName(name); return this; } /** ** A description of the deployment strategy. *
* * @param description * A description of the deployment strategy. */ public void setDescription(String description) { this.description = description; } /** ** A description of the deployment strategy. *
* * @return A description of the deployment strategy. */ public String getDescription() { return this.description; } /** ** A description of the deployment strategy. *
* * @param description * A description of the deployment strategy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDeploymentStrategyRequest withDescription(String description) { setDescription(description); return this; } /** ** Total amount of time for a deployment to last. *
* * @param deploymentDurationInMinutes * Total amount of time for a deployment to last. */ public void setDeploymentDurationInMinutes(Integer deploymentDurationInMinutes) { this.deploymentDurationInMinutes = deploymentDurationInMinutes; } /** ** Total amount of time for a deployment to last. *
* * @return Total amount of time for a deployment to last. */ public Integer getDeploymentDurationInMinutes() { return this.deploymentDurationInMinutes; } /** ** Total amount of time for a deployment to last. *
* * @param deploymentDurationInMinutes * Total amount of time for a deployment to last. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDeploymentStrategyRequest withDeploymentDurationInMinutes(Integer deploymentDurationInMinutes) { setDeploymentDurationInMinutes(deploymentDurationInMinutes); return this; } /** ** Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has been * deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is triggered * during this time, AppConfig rolls back the deployment. You must configure permissions for AppConfig to roll back * based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User Guide. *
* * @param finalBakeTimeInMinutes * Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has * been deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is * triggered during this time, AppConfig rolls back the deployment. You must configure permissions for * AppConfig to roll back based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User * Guide. */ public void setFinalBakeTimeInMinutes(Integer finalBakeTimeInMinutes) { this.finalBakeTimeInMinutes = finalBakeTimeInMinutes; } /** ** Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has been * deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is triggered * during this time, AppConfig rolls back the deployment. You must configure permissions for AppConfig to roll back * based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User Guide. *
* * @return Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has * been deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is * triggered during this time, AppConfig rolls back the deployment. You must configure permissions for * AppConfig to roll back based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User * Guide. */ public Integer getFinalBakeTimeInMinutes() { return this.finalBakeTimeInMinutes; } /** ** Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has been * deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is triggered * during this time, AppConfig rolls back the deployment. You must configure permissions for AppConfig to roll back * based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User Guide. *
* * @param finalBakeTimeInMinutes * Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has * been deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is * triggered during this time, AppConfig rolls back the deployment. You must configure permissions for * AppConfig to roll back based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User * Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDeploymentStrategyRequest withFinalBakeTimeInMinutes(Integer finalBakeTimeInMinutes) { setFinalBakeTimeInMinutes(finalBakeTimeInMinutes); return this; } /** ** The percentage of targets to receive a deployed configuration during each interval. *
* * @param growthFactor * The percentage of targets to receive a deployed configuration during each interval. */ public void setGrowthFactor(Float growthFactor) { this.growthFactor = growthFactor; } /** ** The percentage of targets to receive a deployed configuration during each interval. *
* * @return The percentage of targets to receive a deployed configuration during each interval. */ public Float getGrowthFactor() { return this.growthFactor; } /** ** The percentage of targets to receive a deployed configuration during each interval. *
* * @param growthFactor * The percentage of targets to receive a deployed configuration during each interval. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDeploymentStrategyRequest withGrowthFactor(Float growthFactor) { setGrowthFactor(growthFactor); return this; } /** ** The algorithm used to define how percentage grows over time. AppConfig supports the following growth types: *
*
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the
* value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those deployments
* are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the
* targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following formula:
* G*(2^N)
. In this formula, G
is the growth factor specified by the user and
* N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. *
* * @param growthType * The algorithm used to define how percentage grows over time. AppConfig supports the following growth * types: *
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets
* by the value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those
* deployments are complete, the system deploys the configuration to the next 10 percent. This continues
* until 100% of the targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following
* formula: G*(2^N)
. In this formula, G
is the growth factor specified by the user
* and N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. * @see GrowthType */ public void setGrowthType(String growthType) { this.growthType = growthType; } /** *
* The algorithm used to define how percentage grows over time. AppConfig supports the following growth types: *
*
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the
* value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those deployments
* are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the
* targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following formula:
* G*(2^N)
. In this formula, G
is the growth factor specified by the user and
* N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. *
* * @return The algorithm used to define how percentage grows over time. AppConfig supports the following growth * types: *
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets
* by the value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those
* deployments are complete, the system deploys the configuration to the next 10 percent. This continues
* until 100% of the targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following
* formula: G*(2^N)
. In this formula, G
is the growth factor specified by the user
* and N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. * @see GrowthType */ public String getGrowthType() { return this.growthType; } /** *
* The algorithm used to define how percentage grows over time. AppConfig supports the following growth types: *
*
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the
* value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those deployments
* are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the
* targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following formula:
* G*(2^N)
. In this formula, G
is the growth factor specified by the user and
* N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. *
* * @param growthType * The algorithm used to define how percentage grows over time. AppConfig supports the following growth * types: *
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets
* by the value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those
* deployments are complete, the system deploys the configuration to the next 10 percent. This continues
* until 100% of the targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following
* formula: G*(2^N)
. In this formula, G
is the growth factor specified by the user
* and N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. * @return Returns a reference to this object so that method calls can be chained together. * @see GrowthType */ public CreateDeploymentStrategyRequest withGrowthType(String growthType) { setGrowthType(growthType); return this; } /** *
* The algorithm used to define how percentage grows over time. AppConfig supports the following growth types: *
*
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the
* value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those deployments
* are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the
* targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following formula:
* G*(2^N)
. In this formula, G
is the growth factor specified by the user and
* N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. *
* * @param growthType * The algorithm used to define how percentage grows over time. AppConfig supports the following growth * types: *
* Linear: For this type, AppConfig processes the deployment by dividing the total number of targets
* by the value specified for Step percentage
. For example, a linear deployment that uses a
* Step percentage
of 10 deploys the configuration to 10 percent of the hosts. After those
* deployments are complete, the system deploys the configuration to the next 10 percent. This continues
* until 100% of the targets have successfully received the configuration.
*
* Exponential: For this type, AppConfig processes the deployment exponentially using the following
* formula: G*(2^N)
. In this formula, G
is the growth factor specified by the user
* and N
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:
*
* 2*(2^0)
*
* 2*(2^1)
*
* 2*(2^2)
*
* 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. * @return Returns a reference to this object so that method calls can be chained together. * @see GrowthType */ public CreateDeploymentStrategyRequest withGrowthType(GrowthType growthType) { this.growthType = growthType.toString(); return this; } /** *
* Save the deployment strategy to a Systems Manager (SSM) document. *
* * @param replicateTo * Save the deployment strategy to a Systems Manager (SSM) document. * @see ReplicateTo */ public void setReplicateTo(String replicateTo) { this.replicateTo = replicateTo; } /** ** Save the deployment strategy to a Systems Manager (SSM) document. *
* * @return Save the deployment strategy to a Systems Manager (SSM) document. * @see ReplicateTo */ public String getReplicateTo() { return this.replicateTo; } /** ** Save the deployment strategy to a Systems Manager (SSM) document. *
* * @param replicateTo * Save the deployment strategy to a Systems Manager (SSM) document. * @return Returns a reference to this object so that method calls can be chained together. * @see ReplicateTo */ public CreateDeploymentStrategyRequest withReplicateTo(String replicateTo) { setReplicateTo(replicateTo); return this; } /** ** Save the deployment strategy to a Systems Manager (SSM) document. *
* * @param replicateTo * Save the deployment strategy to a Systems Manager (SSM) document. * @return Returns a reference to this object so that method calls can be chained together. * @see ReplicateTo */ public CreateDeploymentStrategyRequest withReplicateTo(ReplicateTo replicateTo) { this.replicateTo = replicateTo.toString(); return this; } /** ** Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each * tag consists of a key and an optional value, both of which you define. *
* * @return Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig * resources. Each tag consists of a key and an optional value, both of which you define. */ public java.util.Map* Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each * tag consists of a key and an optional value, both of which you define. *
* * @param tags * Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. * Each tag consists of a key and an optional value, both of which you define. */ public void setTags(java.util.Map* Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each * tag consists of a key and an optional value, both of which you define. *
* * @param tags * Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. * Each tag consists of a key and an optional value, both of which you define. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDeploymentStrategyRequest withTags(java.util.Map