Class: AWSCDK::ECS::CfnCapacityProvider::InstanceLaunchTemplateProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
ecs/cfn_capacity_provider.rb

Overview

The launch template configuration for Amazon ECS Managed Instances.

This defines how Amazon ECS launches Amazon EC2 instances, including the instance profile for your tasks, network and storage configuration, capacity options, and instance requirements for flexible instance type selection.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ec2_instance_profile_arn:, network_configuration:, capacity_option_type: nil, capacity_reservations: nil, fips_enabled: nil, instance_metadata_tags_propagation: nil, instance_requirements: nil, local_storage_configuration: nil, monitoring: nil, storage_configuration: nil) ⇒ InstanceLaunchTemplateProperty

Returns a new instance of InstanceLaunchTemplateProperty.

Parameters:



916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
# File 'ecs/cfn_capacity_provider.rb', line 916

def initialize(ec2_instance_profile_arn:, network_configuration:, capacity_option_type: nil, capacity_reservations: nil, fips_enabled: nil, instance_metadata_tags_propagation: nil, instance_requirements: nil, local_storage_configuration: nil, monitoring: nil, storage_configuration: nil)
  @ec2_instance_profile_arn = ec2_instance_profile_arn
  Jsii::Type.check_type(@ec2_instance_profile_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ec2InstanceProfileArn")
  @network_configuration = network_configuration.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::ManagedInstancesNetworkConfigurationProperty.new(**network_configuration.transform_keys(&:to_sym)) : network_configuration
  Jsii::Type.check_type(@network_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5NYW5hZ2VkSW5zdGFuY2VzTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "networkConfiguration")
  @capacity_option_type = capacity_option_type
  Jsii::Type.check_type(@capacity_option_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "capacityOptionType") unless @capacity_option_type.nil?
  @capacity_reservations = capacity_reservations.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::CapacityReservationRequestProperty.new(**capacity_reservations.transform_keys(&:to_sym)) : capacity_reservations
  Jsii::Type.check_type(@capacity_reservations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5DYXBhY2l0eVJlc2VydmF0aW9uUmVxdWVzdFByb3BlcnR5In1dfX0=")), "capacityReservations") unless @capacity_reservations.nil?
  @fips_enabled = fips_enabled
  Jsii::Type.check_type(@fips_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "fipsEnabled") unless @fips_enabled.nil?
  @instance_metadata_tags_propagation = 
  Jsii::Type.check_type(@instance_metadata_tags_propagation, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "instanceMetadataTagsPropagation") unless @instance_metadata_tags_propagation.nil?
  @instance_requirements = instance_requirements.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::InstanceRequirementsRequestProperty.new(**instance_requirements.transform_keys(&:to_sym)) : instance_requirements
  Jsii::Type.check_type(@instance_requirements, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5JbnN0YW5jZVJlcXVpcmVtZW50c1JlcXVlc3RQcm9wZXJ0eSJ9XX19")), "instanceRequirements") unless @instance_requirements.nil?
  @local_storage_configuration = local_storage_configuration.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::ManagedInstancesLocalStorageConfigurationProperty.new(**local_storage_configuration.transform_keys(&:to_sym)) : local_storage_configuration
  Jsii::Type.check_type(@local_storage_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5NYW5hZ2VkSW5zdGFuY2VzTG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "localStorageConfiguration") unless @local_storage_configuration.nil?
  @monitoring = monitoring
  Jsii::Type.check_type(@monitoring, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "monitoring") unless @monitoring.nil?
  @storage_configuration = storage_configuration.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::ManagedInstancesStorageConfigurationProperty.new(**storage_configuration.transform_keys(&:to_sym)) : storage_configuration
  Jsii::Type.check_type(@storage_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5NYW5hZ2VkSW5zdGFuY2VzU3RvcmFnZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "storageConfiguration") unless @storage_configuration.nil?
end

Instance Attribute Details

#capacity_option_typeString? (readonly)

The capacity option type.

This determines whether Amazon ECS launches On-Demand or Spot Instances for your managed instance capacity provider.

Valid values are:

  • ON_DEMAND - Launches standard On-Demand Instances. On-Demand Instances provide predictable pricing and availability.
  • SPOT - Launches Spot Instances that use spare Amazon EC2 capacity at reduced cost. Spot Instances can be interrupted by Amazon EC2 with a two-minute notification when the capacity is needed back.

The default is On-Demand

For more information about Amazon EC2 capacity options, see Instance purchasing options in the Amazon EC2 User Guide .



970
971
972
# File 'ecs/cfn_capacity_provider.rb', line 970

def capacity_option_type
  @capacity_option_type
end

#ec2_instance_profile_arnString (readonly)

The Amazon Resource Name (ARN) of the instance profile that Amazon ECS applies to Amazon ECS Managed Instances.

This instance profile must include the necessary permissions for your tasks to access AWS services and resources.

For more information, see Amazon ECS instance profile for Managed Instances in the Amazon ECS Developer Guide .



947
948
949
# File 'ecs/cfn_capacity_provider.rb', line 947

def ec2_instance_profile_arn
  @ec2_instance_profile_arn
end

#fips_enabledBoolean, ... (readonly)



976
977
978
# File 'ecs/cfn_capacity_provider.rb', line 976

def fips_enabled
  @fips_enabled
end

#instance_metadata_tags_propagationBoolean, ... (readonly)



979
980
981
# File 'ecs/cfn_capacity_provider.rb', line 979

def 
  @instance_metadata_tags_propagation
end

#instance_requirementsAWSCDK::IResolvable, ... (readonly)

The instance requirements. You can specify:.

  • The instance types
  • Instance requirements such as vCPU count, memory, network performance, and accelerator specifications

Amazon ECS automatically selects the instances that match the specified criteria.



989
990
991
# File 'ecs/cfn_capacity_provider.rb', line 989

def instance_requirements
  @instance_requirements
end

#monitoringString? (readonly)

CloudWatch provides two categories of monitoring: basic monitoring and detailed monitoring.

By default, your managed instance is configured for basic monitoring. You can optionally enable detailed monitoring to help you more quickly identify and act on operational issues. You can enable or turn off detailed monitoring at launch or when the managed instance is running or stopped. For more information, see Detailed monitoring for Amazon ECS Managed Instances in the Amazon ECS Developer Guide.



999
1000
1001
# File 'ecs/cfn_capacity_provider.rb', line 999

def monitoring
  @monitoring
end

#network_configurationAWSCDK::IResolvable, AWSCDK::ECS::CfnCapacityProvider::ManagedInstancesNetworkConfigurationProperty (readonly)

The network configuration for Amazon ECS Managed Instances.

This specifies the subnets and security groups that instances use for network connectivity.



954
955
956
# File 'ecs/cfn_capacity_provider.rb', line 954

def network_configuration
  @network_configuration
end

#storage_configurationAWSCDK::IResolvable, ... (readonly)

The storage configuration for Amazon ECS Managed Instances.

This defines the root volume size and type for the instances.



1006
1007
1008
# File 'ecs/cfn_capacity_provider.rb', line 1006

def storage_configuration
  @storage_configuration
end

Class Method Details

.jsii_propertiesObject



1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
# File 'ecs/cfn_capacity_provider.rb', line 1008

def self.jsii_properties
  {
    :ec2_instance_profile_arn => "ec2InstanceProfileArn",
    :network_configuration => "networkConfiguration",
    :capacity_option_type => "capacityOptionType",
    :capacity_reservations => "capacityReservations",
    :fips_enabled => "fipsEnabled",
    :instance_metadata_tags_propagation => "instanceMetadataTagsPropagation",
    :instance_requirements => "instanceRequirements",
    :local_storage_configuration => "localStorageConfiguration",
    :monitoring => "monitoring",
    :storage_configuration => "storageConfiguration",
  }
end

Instance Method Details

#to_jsiiObject



1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
# File 'ecs/cfn_capacity_provider.rb', line 1023

def to_jsii
  result = {}
  result.merge!({
    "ec2InstanceProfileArn" => @ec2_instance_profile_arn,
    "networkConfiguration" => @network_configuration,
    "capacityOptionType" => @capacity_option_type,
    "capacityReservations" => @capacity_reservations,
    "fipsEnabled" => @fips_enabled,
    "instanceMetadataTagsPropagation" => @instance_metadata_tags_propagation,
    "instanceRequirements" => @instance_requirements,
    "localStorageConfiguration" => @local_storage_configuration,
    "monitoring" => @monitoring,
    "storageConfiguration" => @storage_configuration,
  })
  result.compact
end