Class AsgCapacityProvider.Builder

java.lang.Object
software.amazon.awscdk.services.ecs.AsgCapacityProvider.Builder
All Implemented Interfaces:
software.amazon.jsii.Builder<AsgCapacityProvider>
Enclosing class:
AsgCapacityProvider

@Stability(Stable) public static final class AsgCapacityProvider.Builder extends Object implements software.amazon.jsii.Builder<AsgCapacityProvider>
A fluent builder for AsgCapacityProvider.
  • Method Details

    • create

      @Stability(Stable) public static AsgCapacityProvider.Builder create(software.constructs.Construct scope, String id)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      Returns:
      a new instance of AsgCapacityProvider.Builder.
    • canContainersAccessInstanceRole

      @Stability(Stable) public AsgCapacityProvider.Builder canContainersAccessInstanceRole(Boolean canContainersAccessInstanceRole)
      Specifies whether the containers can access the container instance role.

      Default: false

      Parameters:
      canContainersAccessInstanceRole - Specifies whether the containers can access the container instance role. This parameter is required.
      Returns:
      this
    • machineImageType

      @Stability(Stable) public AsgCapacityProvider.Builder machineImageType(MachineImageType machineImageType)
      What type of machine image this is.

      Depending on the setting, different UserData will automatically be added to the AutoScalingGroup to configure it properly for use with ECS.

      If you create an AutoScalingGroup yourself and are adding it via addAutoScalingGroup(), you must specify this value. If you are adding an autoScalingGroup via addCapacity, this value will be determined from the machineImage you pass.

      Default: - Automatically determined from `machineImage`, if available, otherwise `MachineImageType.AMAZON_LINUX_2`.

      Parameters:
      machineImageType - What type of machine image this is. This parameter is required.
      Returns:
      this
    • spotInstanceDraining

      @Stability(Stable) public AsgCapacityProvider.Builder spotInstanceDraining(Boolean spotInstanceDraining)
      Specify whether to enable Automated Draining for Spot Instances running Amazon ECS Services.

      For more information, see Using Spot Instances.

      Default: false

      Parameters:
      spotInstanceDraining - Specify whether to enable Automated Draining for Spot Instances running Amazon ECS Services. This parameter is required.
      Returns:
      this
    • topicEncryptionKey

      @Stability(Stable) public AsgCapacityProvider.Builder topicEncryptionKey(IKey topicEncryptionKey)
      If AddAutoScalingGroupCapacityOptions.taskDrainTime is non-zero, then the ECS cluster creates an SNS Topic to as part of a system to drain instances of tasks when the instance is being shut down. If this property is provided, then this key will be used to encrypt the contents of that SNS Topic. See SNS Data Encryption for more information.

      Default: The SNS Topic will not be encrypted.

      Parameters:
      topicEncryptionKey - If AddAutoScalingGroupCapacityOptions.taskDrainTime is non-zero, then the ECS cluster creates an SNS Topic to as part of a system to drain instances of tasks when the instance is being shut down. If this property is provided, then this key will be used to encrypt the contents of that SNS Topic. See SNS Data Encryption for more information. This parameter is required.
      Returns:
      this
    • autoScalingGroup

      @Stability(Stable) public AsgCapacityProvider.Builder autoScalingGroup(IAutoScalingGroup autoScalingGroup)
      The autoscaling group to add as a Capacity Provider.

      Parameters:
      autoScalingGroup - The autoscaling group to add as a Capacity Provider. This parameter is required.
      Returns:
      this
    • capacityProviderName

      @Stability(Stable) public AsgCapacityProvider.Builder capacityProviderName(String capacityProviderName)
      The name of the capacity provider.

      If a name is specified, it cannot start with aws, ecs, or fargate. If no name is specified, a default name in the CFNStackName-CFNResourceName-RandomString format is used. If the stack name starts with aws, ecs, or fargate, a unique resource name is generated that starts with cp-.

      Default: CloudFormation-generated name

      Parameters:
      capacityProviderName - The name of the capacity provider. This parameter is required.
      Returns:
      this
    • enableManagedDraining

      @Stability(Stable) public AsgCapacityProvider.Builder enableManagedDraining(Boolean enableManagedDraining)
      Managed instance draining facilitates graceful termination of Amazon ECS instances.

      This allows your service workloads to stop safely and be rescheduled to non-terminating instances. Infrastructure maintenance and updates are preformed without disruptions to workloads. To use managed instance draining, set enableManagedDraining to true.

      Default: true

      Parameters:
      enableManagedDraining - Managed instance draining facilitates graceful termination of Amazon ECS instances. This parameter is required.
      Returns:
      this
    • enableManagedScaling

      @Stability(Stable) public AsgCapacityProvider.Builder enableManagedScaling(Boolean enableManagedScaling)
      When enabled the scale-in and scale-out actions of the cluster's Auto Scaling Group will be managed for you.

      This means your cluster will automatically scale instances based on the load your tasks put on the cluster. For more information, see Using Managed Scaling in the ECS Developer Guide.

      Default: true

      Parameters:
      enableManagedScaling - When enabled the scale-in and scale-out actions of the cluster's Auto Scaling Group will be managed for you. This parameter is required.
      Returns:
      this
    • enableManagedTerminationProtection

      @Stability(Stable) public AsgCapacityProvider.Builder enableManagedTerminationProtection(Boolean enableManagedTerminationProtection)
      When enabled the Auto Scaling Group will only terminate EC2 instances that no longer have running non-daemon tasks.

      Scale-in protection will be automatically enabled on instances. When all non-daemon tasks are stopped on an instance, ECS initiates the scale-in process and turns off scale-in protection for the instance. The Auto Scaling Group can then terminate the instance. For more information see Managed termination protection in the ECS Developer Guide.

      Managed scaling must also be enabled.

      Default: true

      Parameters:
      enableManagedTerminationProtection - When enabled the Auto Scaling Group will only terminate EC2 instances that no longer have running non-daemon tasks. This parameter is required.
      Returns:
      this
    • instanceWarmupPeriod

      @Stability(Stable) public AsgCapacityProvider.Builder instanceWarmupPeriod(Number instanceWarmupPeriod)
      The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group.

      Must be between 0 and 10000.

      Default: 300

      Parameters:
      instanceWarmupPeriod - The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. This parameter is required.
      Returns:
      this
    • maximumScalingStepSize

      @Stability(Stable) public AsgCapacityProvider.Builder maximumScalingStepSize(Number maximumScalingStepSize)
      Maximum scaling step size.

      In most cases this should be left alone.

      Default: 1000

      Parameters:
      maximumScalingStepSize - Maximum scaling step size. This parameter is required.
      Returns:
      this
    • minimumScalingStepSize

      @Stability(Stable) public AsgCapacityProvider.Builder minimumScalingStepSize(Number minimumScalingStepSize)
      Minimum scaling step size.

      In most cases this should be left alone.

      Default: 1

      Parameters:
      minimumScalingStepSize - Minimum scaling step size. This parameter is required.
      Returns:
      this
    • targetCapacityPercent

      @Stability(Stable) public AsgCapacityProvider.Builder targetCapacityPercent(Number targetCapacityPercent)
      Target capacity percent.

      In most cases this should be left alone.

      Default: 100

      Parameters:
      targetCapacityPercent - Target capacity percent. This parameter is required.
      Returns:
      this
    • build

      @Stability(Stable) public AsgCapacityProvider build()
      Specified by:
      build in interface software.amazon.jsii.Builder<AsgCapacityProvider>
      Returns:
      a newly built instance of AsgCapacityProvider.