Class: AWSCDK::ECS::CfnCapacityProvider::InstanceRequirementsRequestProperty

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

Overview

The instance requirements for attribute-based instance type selection.

Instead of specifying exact instance types, you define requirements such as vCPU count, memory size, network performance, and accelerator specifications. Amazon ECS automatically selects Amazon EC2 instance types that match these requirements, providing flexibility and helping to mitigate capacity constraints.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(memory_mib:, v_cpu_count:, accelerator_count: nil, accelerator_manufacturers: nil, accelerator_names: nil, accelerator_total_memory_mib: nil, accelerator_types: nil, allowed_instance_types: nil, bare_metal: nil, baseline_ebs_bandwidth_mbps: nil, burstable_performance: nil, cpu_manufacturers: nil, excluded_instance_types: nil, instance_generations: nil, local_storage: nil, local_storage_types: nil, max_spot_price_as_percentage_of_optimal_on_demand_price: nil, memory_gib_per_v_cpu: nil, network_bandwidth_gbps: nil, network_interface_count: nil, on_demand_max_price_percentage_over_lowest_price: nil, require_hibernate_support: nil, spot_max_price_percentage_over_lowest_price: nil, total_local_storage_gb: nil) ⇒ InstanceRequirementsRequestProperty

Returns a new instance of InstanceRequirementsRequestProperty.

Parameters:



1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
# File 'ecs/cfn_capacity_provider.rb', line 1073

def initialize(memory_mib:, v_cpu_count:, accelerator_count: nil, accelerator_manufacturers: nil, accelerator_names: nil, accelerator_total_memory_mib: nil, accelerator_types: nil, allowed_instance_types: nil, bare_metal: nil, baseline_ebs_bandwidth_mbps: nil, burstable_performance: nil, cpu_manufacturers: nil, excluded_instance_types: nil, instance_generations: nil, local_storage: nil, local_storage_types: nil, max_spot_price_as_percentage_of_optimal_on_demand_price: nil, memory_gib_per_v_cpu: nil, network_bandwidth_gbps: nil, network_interface_count: nil, on_demand_max_price_percentage_over_lowest_price: nil, require_hibernate_support: nil, spot_max_price_percentage_over_lowest_price: nil, total_local_storage_gb: nil)
  @memory_mib = memory_mib.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::MemoryMiBRequestProperty.new(**memory_mib.transform_keys(&:to_sym)) : memory_mib
  Jsii::Type.check_type(@memory_mib, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5NZW1vcnlNaUJSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "memoryMiB")
  @v_cpu_count = v_cpu_count.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::VCpuCountRangeRequestProperty.new(**v_cpu_count.transform_keys(&:to_sym)) : v_cpu_count
  Jsii::Type.check_type(@v_cpu_count, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5WQ3B1Q291bnRSYW5nZVJlcXVlc3RQcm9wZXJ0eSJ9XX19")), "vCpuCount")
  @accelerator_count = accelerator_count.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::AcceleratorCountRequestProperty.new(**accelerator_count.transform_keys(&:to_sym)) : accelerator_count
  Jsii::Type.check_type(@accelerator_count, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5BY2NlbGVyYXRvckNvdW50UmVxdWVzdFByb3BlcnR5In1dfX0=")), "acceleratorCount") unless @accelerator_count.nil?
  @accelerator_manufacturers = accelerator_manufacturers
  Jsii::Type.check_type(@accelerator_manufacturers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "acceleratorManufacturers") unless @accelerator_manufacturers.nil?
  @accelerator_names = accelerator_names
  Jsii::Type.check_type(@accelerator_names, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "acceleratorNames") unless @accelerator_names.nil?
  @accelerator_total_memory_mib = accelerator_total_memory_mib.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::AcceleratorTotalMemoryMiBRequestProperty.new(**accelerator_total_memory_mib.transform_keys(&:to_sym)) : accelerator_total_memory_mib
  Jsii::Type.check_type(@accelerator_total_memory_mib, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5BY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCUmVxdWVzdFByb3BlcnR5In1dfX0=")), "acceleratorTotalMemoryMiB") unless @accelerator_total_memory_mib.nil?
  @accelerator_types = accelerator_types
  Jsii::Type.check_type(@accelerator_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "acceleratorTypes") unless @accelerator_types.nil?
  @allowed_instance_types = allowed_instance_types
  Jsii::Type.check_type(@allowed_instance_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "allowedInstanceTypes") unless @allowed_instance_types.nil?
  @bare_metal = bare_metal
  Jsii::Type.check_type(@bare_metal, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "bareMetal") unless @bare_metal.nil?
  @baseline_ebs_bandwidth_mbps = baseline_ebs_bandwidth_mbps.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::BaselineEbsBandwidthMbpsRequestProperty.new(**baseline_ebs_bandwidth_mbps.transform_keys(&:to_sym)) : baseline_ebs_bandwidth_mbps
  Jsii::Type.check_type(@baseline_ebs_bandwidth_mbps, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5CYXNlbGluZUVic0JhbmR3aWR0aE1icHNSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "baselineEbsBandwidthMbps") unless @baseline_ebs_bandwidth_mbps.nil?
  @burstable_performance = burstable_performance
  Jsii::Type.check_type(@burstable_performance, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "burstablePerformance") unless @burstable_performance.nil?
  @cpu_manufacturers = cpu_manufacturers
  Jsii::Type.check_type(@cpu_manufacturers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "cpuManufacturers") unless @cpu_manufacturers.nil?
  @excluded_instance_types = excluded_instance_types
  Jsii::Type.check_type(@excluded_instance_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "excludedInstanceTypes") unless @excluded_instance_types.nil?
  @instance_generations = instance_generations
  Jsii::Type.check_type(@instance_generations, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "instanceGenerations") unless @instance_generations.nil?
  @local_storage = local_storage
  Jsii::Type.check_type(@local_storage, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "localStorage") unless @local_storage.nil?
  @local_storage_types = local_storage_types
  Jsii::Type.check_type(@local_storage_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "localStorageTypes") unless @local_storage_types.nil?
  @max_spot_price_as_percentage_of_optimal_on_demand_price = max_spot_price_as_percentage_of_optimal_on_demand_price
  Jsii::Type.check_type(@max_spot_price_as_percentage_of_optimal_on_demand_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "maxSpotPriceAsPercentageOfOptimalOnDemandPrice") unless @max_spot_price_as_percentage_of_optimal_on_demand_price.nil?
  @memory_gib_per_v_cpu = memory_gib_per_v_cpu.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::MemoryGiBPerVCpuRequestProperty.new(**memory_gib_per_v_cpu.transform_keys(&:to_sym)) : memory_gib_per_v_cpu
  Jsii::Type.check_type(@memory_gib_per_v_cpu, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5NZW1vcnlHaUJQZXJWQ3B1UmVxdWVzdFByb3BlcnR5In1dfX0=")), "memoryGiBPerVCpu") unless @memory_gib_per_v_cpu.nil?
  @network_bandwidth_gbps = network_bandwidth_gbps.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::NetworkBandwidthGbpsRequestProperty.new(**network_bandwidth_gbps.transform_keys(&:to_sym)) : network_bandwidth_gbps
  Jsii::Type.check_type(@network_bandwidth_gbps, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5OZXR3b3JrQmFuZHdpZHRoR2Jwc1JlcXVlc3RQcm9wZXJ0eSJ9XX19")), "networkBandwidthGbps") unless @network_bandwidth_gbps.nil?
  @network_interface_count = network_interface_count.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::NetworkInterfaceCountRequestProperty.new(**network_interface_count.transform_keys(&:to_sym)) : network_interface_count
  Jsii::Type.check_type(@network_interface_count, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5OZXR3b3JrSW50ZXJmYWNlQ291bnRSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "networkInterfaceCount") unless @network_interface_count.nil?
  @on_demand_max_price_percentage_over_lowest_price = on_demand_max_price_percentage_over_lowest_price
  Jsii::Type.check_type(@on_demand_max_price_percentage_over_lowest_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "onDemandMaxPricePercentageOverLowestPrice") unless @on_demand_max_price_percentage_over_lowest_price.nil?
  @require_hibernate_support = require_hibernate_support
  Jsii::Type.check_type(@require_hibernate_support, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "requireHibernateSupport") unless @require_hibernate_support.nil?
  @spot_max_price_percentage_over_lowest_price = spot_max_price_percentage_over_lowest_price
  Jsii::Type.check_type(@spot_max_price_percentage_over_lowest_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "spotMaxPricePercentageOverLowestPrice") unless @spot_max_price_percentage_over_lowest_price.nil?
  @total_local_storage_gb = total_local_storage_gb.is_a?(Hash) ? ::AWSCDK::ECS::CfnCapacityProvider::TotalLocalStorageGBRequestProperty.new(**total_local_storage_gb.transform_keys(&:to_sym)) : total_local_storage_gb
  Jsii::Type.check_type(@total_local_storage_gb, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3MuQ2ZuQ2FwYWNpdHlQcm92aWRlci5Ub3RhbExvY2FsU3RvcmFnZUdCUmVxdWVzdFByb3BlcnR5In1dfX0=")), "totalLocalStorageGb") unless @total_local_storage_gb.nil?
end

Instance Attribute Details

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

The minimum and maximum number of accelerators for the instance types.

This is used when you need instances with specific numbers of GPUs or other accelerators.



1144
1145
1146
# File 'ecs/cfn_capacity_provider.rb', line 1144

def accelerator_count
  @accelerator_count
end

#accelerator_manufacturersArray<String>? (readonly)

The accelerator manufacturers to include.

You can specify nvidia , amd , amazon-web-services , or xilinx depending on your accelerator requirements.



1151
1152
1153
# File 'ecs/cfn_capacity_provider.rb', line 1151

def accelerator_manufacturers
  @accelerator_manufacturers
end

#accelerator_namesArray<String>? (readonly)

The specific accelerator names to include.

For example, you can specify a100 , v100 , k80 , or other specific accelerator models.



1158
1159
1160
# File 'ecs/cfn_capacity_provider.rb', line 1158

def accelerator_names
  @accelerator_names
end

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

The minimum and maximum total accelerator memory in mebibytes (MiB).

This is important for GPU workloads that require specific amounts of video memory.



1165
1166
1167
# File 'ecs/cfn_capacity_provider.rb', line 1165

def accelerator_total_memory_mib
  @accelerator_total_memory_mib
end

#accelerator_typesArray<String>? (readonly)

The accelerator types to include.

You can specify gpu for graphics processing units, fpga for field programmable gate arrays, or inference for machine learning inference accelerators.



1172
1173
1174
# File 'ecs/cfn_capacity_provider.rb', line 1172

def accelerator_types
  @accelerator_types
end

#allowed_instance_typesArray<String>? (readonly)

The instance types to include in the selection.

When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.



1179
1180
1181
# File 'ecs/cfn_capacity_provider.rb', line 1179

def allowed_instance_types
  @allowed_instance_types
end

#bare_metalString? (readonly)

Indicates whether to include bare metal instance types.

Set to included to allow bare metal instances, excluded to exclude them, or required to use only bare metal instances.



1186
1187
1188
# File 'ecs/cfn_capacity_provider.rb', line 1186

def bare_metal
  @bare_metal
end

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

The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps).

This is important for workloads with high storage I/O requirements.



1193
1194
1195
# File 'ecs/cfn_capacity_provider.rb', line 1193

def baseline_ebs_bandwidth_mbps
  @baseline_ebs_bandwidth_mbps
end

#burstable_performanceString? (readonly)

Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g).

Set to included to allow burstable instances, excluded to exclude them, or required to use only burstable instances.



1200
1201
1202
# File 'ecs/cfn_capacity_provider.rb', line 1200

def burstable_performance
  @burstable_performance
end

#cpu_manufacturersArray<String>? (readonly)

The CPU manufacturers to include or exclude.

You can specify intel , amd , or amazon-web-services to control which CPU types are used for your workloads.



1207
1208
1209
# File 'ecs/cfn_capacity_provider.rb', line 1207

def cpu_manufacturers
  @cpu_manufacturers
end

#excluded_instance_typesArray<String>? (readonly)

The instance types to exclude from selection.

Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.



1214
1215
1216
# File 'ecs/cfn_capacity_provider.rb', line 1214

def excluded_instance_types
  @excluded_instance_types
end

#instance_generationsArray<String>? (readonly)

The instance generations to include.

You can specify current to use the latest generation instances, or previous to include previous generation instances for cost optimization.



1221
1222
1223
# File 'ecs/cfn_capacity_provider.rb', line 1221

def instance_generations
  @instance_generations
end

#local_storageString? (readonly)

Indicates whether to include instance types with local storage.

Set to included to allow local storage, excluded to exclude it, or required to use only instances with local storage.



1228
1229
1230
# File 'ecs/cfn_capacity_provider.rb', line 1228

def local_storage
  @local_storage
end

#local_storage_typesArray<String>? (readonly)

The local storage types to include.

You can specify hdd for hard disk drives, ssd for solid state drives, or both.



1235
1236
1237
# File 'ecs/cfn_capacity_provider.rb', line 1235

def local_storage_types
  @local_storage_types
end

#max_spot_price_as_percentage_of_optimal_on_demand_priceNumeric? (readonly)

The maximum price for Spot instances as a percentage of the optimal On-Demand price.

This provides more precise cost control for Spot instance selection.



1242
1243
1244
# File 'ecs/cfn_capacity_provider.rb', line 1242

def max_spot_price_as_percentage_of_optimal_on_demand_price
  @max_spot_price_as_percentage_of_optimal_on_demand_price
end

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

The minimum and maximum amount of memory per vCPU in gibibytes (GiB).

This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.



1249
1250
1251
# File 'ecs/cfn_capacity_provider.rb', line 1249

def memory_gib_per_v_cpu
  @memory_gib_per_v_cpu
end

#memory_mibAWSCDK::IResolvable, AWSCDK::ECS::CfnCapacityProvider::MemoryMiBRequestProperty (readonly)

The minimum and maximum amount of memory in mebibytes (MiB) for the instance types.

Amazon ECS selects instance types that have memory within this range.



1130
1131
1132
# File 'ecs/cfn_capacity_provider.rb', line 1130

def memory_mib
  @memory_mib
end

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

The minimum and maximum network bandwidth in gigabits per second (Gbps).

This is crucial for network-intensive workloads that require high throughput.



1256
1257
1258
# File 'ecs/cfn_capacity_provider.rb', line 1256

def network_bandwidth_gbps
  @network_bandwidth_gbps
end

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

The minimum and maximum number of network interfaces for the instance types.

This is useful for workloads that require multiple network interfaces.



1263
1264
1265
# File 'ecs/cfn_capacity_provider.rb', line 1263

def network_interface_count
  @network_interface_count
end

#on_demand_max_price_percentage_over_lowest_priceNumeric? (readonly)

The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price.

The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.



1270
1271
1272
# File 'ecs/cfn_capacity_provider.rb', line 1270

def on_demand_max_price_percentage_over_lowest_price
  @on_demand_max_price_percentage_over_lowest_price
end

#require_hibernate_supportBoolean, ... (readonly)

Indicates whether the instance types must support hibernation.

When set to true , only instance types that support hibernation are selected.



1277
1278
1279
# File 'ecs/cfn_capacity_provider.rb', line 1277

def require_hibernate_support
  @require_hibernate_support
end

#spot_max_price_percentage_over_lowest_priceNumeric? (readonly)

The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance.

This helps control Spot instance costs while maintaining access to capacity.



1284
1285
1286
# File 'ecs/cfn_capacity_provider.rb', line 1284

def spot_max_price_percentage_over_lowest_price
  @spot_max_price_percentage_over_lowest_price
end

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

The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.



1289
1290
1291
# File 'ecs/cfn_capacity_provider.rb', line 1289

def total_local_storage_gb
  @total_local_storage_gb
end

#v_cpu_countAWSCDK::IResolvable, AWSCDK::ECS::CfnCapacityProvider::VCpuCountRangeRequestProperty (readonly)

The minimum and maximum number of vCPUs for the instance types.

Amazon ECS selects instance types that have vCPU counts within this range.



1137
1138
1139
# File 'ecs/cfn_capacity_provider.rb', line 1137

def v_cpu_count
  @v_cpu_count
end

Class Method Details

.jsii_propertiesObject



1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
# File 'ecs/cfn_capacity_provider.rb', line 1291

def self.jsii_properties
  {
    :memory_mib => "memoryMiB",
    :v_cpu_count => "vCpuCount",
    :accelerator_count => "acceleratorCount",
    :accelerator_manufacturers => "acceleratorManufacturers",
    :accelerator_names => "acceleratorNames",
    :accelerator_total_memory_mib => "acceleratorTotalMemoryMiB",
    :accelerator_types => "acceleratorTypes",
    :allowed_instance_types => "allowedInstanceTypes",
    :bare_metal => "bareMetal",
    :baseline_ebs_bandwidth_mbps => "baselineEbsBandwidthMbps",
    :burstable_performance => "burstablePerformance",
    :cpu_manufacturers => "cpuManufacturers",
    :excluded_instance_types => "excludedInstanceTypes",
    :instance_generations => "instanceGenerations",
    :local_storage => "localStorage",
    :local_storage_types => "localStorageTypes",
    :max_spot_price_as_percentage_of_optimal_on_demand_price => "maxSpotPriceAsPercentageOfOptimalOnDemandPrice",
    :memory_gib_per_v_cpu => "memoryGiBPerVCpu",
    :network_bandwidth_gbps => "networkBandwidthGbps",
    :network_interface_count => "networkInterfaceCount",
    :on_demand_max_price_percentage_over_lowest_price => "onDemandMaxPricePercentageOverLowestPrice",
    :require_hibernate_support => "requireHibernateSupport",
    :spot_max_price_percentage_over_lowest_price => "spotMaxPricePercentageOverLowestPrice",
    :total_local_storage_gb => "totalLocalStorageGb",
  }
end

Instance Method Details

#to_jsiiObject



1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
# File 'ecs/cfn_capacity_provider.rb', line 1320

def to_jsii
  result = {}
  result.merge!({
    "memoryMiB" => @memory_mib,
    "vCpuCount" => @v_cpu_count,
    "acceleratorCount" => @accelerator_count,
    "acceleratorManufacturers" => @accelerator_manufacturers,
    "acceleratorNames" => @accelerator_names,
    "acceleratorTotalMemoryMiB" => @accelerator_total_memory_mib,
    "acceleratorTypes" => @accelerator_types,
    "allowedInstanceTypes" => @allowed_instance_types,
    "bareMetal" => @bare_metal,
    "baselineEbsBandwidthMbps" => @baseline_ebs_bandwidth_mbps,
    "burstablePerformance" => @burstable_performance,
    "cpuManufacturers" => @cpu_manufacturers,
    "excludedInstanceTypes" => @excluded_instance_types,
    "instanceGenerations" => @instance_generations,
    "localStorage" => @local_storage,
    "localStorageTypes" => @local_storage_types,
    "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" => @max_spot_price_as_percentage_of_optimal_on_demand_price,
    "memoryGiBPerVCpu" => @memory_gib_per_v_cpu,
    "networkBandwidthGbps" => @network_bandwidth_gbps,
    "networkInterfaceCount" => @network_interface_count,
    "onDemandMaxPricePercentageOverLowestPrice" => @on_demand_max_price_percentage_over_lowest_price,
    "requireHibernateSupport" => @require_hibernate_support,
    "spotMaxPricePercentageOverLowestPrice" => @spot_max_price_percentage_over_lowest_price,
    "totalLocalStorageGb" => @total_local_storage_gb,
  })
  result.compact
end