Interface CfnCapacityProvider.InstanceRequirementsRequestProperty

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
CfnCapacityProvider.InstanceRequirementsRequestProperty.Jsii$Proxy
Enclosing class:
CfnCapacityProvider

@Stability(Stable) public static interface CfnCapacityProvider.InstanceRequirementsRequestProperty extends software.amazon.jsii.JsiiSerializable
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.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.ecs.*;
 InstanceRequirementsRequestProperty instanceRequirementsRequestProperty = InstanceRequirementsRequestProperty.builder()
         .memoryMiB(MemoryMiBRequestProperty.builder()
                 .min(123)
                 // the properties below are optional
                 .max(123)
                 .build())
         .vCpuCount(VCpuCountRangeRequestProperty.builder()
                 .min(123)
                 // the properties below are optional
                 .max(123)
                 .build())
         // the properties below are optional
         .acceleratorCount(AcceleratorCountRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .acceleratorManufacturers(List.of("acceleratorManufacturers"))
         .acceleratorNames(List.of("acceleratorNames"))
         .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .acceleratorTypes(List.of("acceleratorTypes"))
         .allowedInstanceTypes(List.of("allowedInstanceTypes"))
         .bareMetal("bareMetal")
         .baselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .burstablePerformance("burstablePerformance")
         .cpuManufacturers(List.of("cpuManufacturers"))
         .excludedInstanceTypes(List.of("excludedInstanceTypes"))
         .instanceGenerations(List.of("instanceGenerations"))
         .localStorage("localStorage")
         .localStorageTypes(List.of("localStorageTypes"))
         .maxSpotPriceAsPercentageOfOptimalOnDemandPrice(123)
         .memoryGiBPerVCpu(MemoryGiBPerVCpuRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .networkBandwidthGbps(NetworkBandwidthGbpsRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .networkInterfaceCount(NetworkInterfaceCountRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .onDemandMaxPricePercentageOverLowestPrice(123)
         .requireHibernateSupport(false)
         .spotMaxPricePercentageOverLowestPrice(123)
         .totalLocalStorageGb(TotalLocalStorageGBRequestProperty.builder()
                 .max(123)
                 .min(123)
                 .build())
         .build();
 

See Also: