Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.aws.ec2.inputs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsAcceleratorCountArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsMemoryMibArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs;
import com.pulumi.aws.ec2.inputs.LaunchTemplateInstanceRequirementsVcpuCountArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class LaunchTemplateInstanceRequirementsArgs extends com.pulumi.resources.ResourceArgs {
public static final LaunchTemplateInstanceRequirementsArgs Empty = new LaunchTemplateInstanceRequirementsArgs();
/**
* Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.
*
*/
@Import(name="acceleratorCount")
private @Nullable Output acceleratorCount;
/**
* @return Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.
*
*/
public Optional> acceleratorCount() {
return Optional.ofNullable(this.acceleratorCount);
}
/**
* List of accelerator manufacturer names. Default is any manufacturer.
*
*/
@Import(name="acceleratorManufacturers")
private @Nullable Output> acceleratorManufacturers;
/**
* @return List of accelerator manufacturer names. Default is any manufacturer.
*
*/
public Optional>> acceleratorManufacturers() {
return Optional.ofNullable(this.acceleratorManufacturers);
}
/**
* List of accelerator names. Default is any acclerator.
*
*/
@Import(name="acceleratorNames")
private @Nullable Output> acceleratorNames;
/**
* @return List of accelerator names. Default is any acclerator.
*
*/
public Optional>> acceleratorNames() {
return Optional.ofNullable(this.acceleratorNames);
}
/**
* Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
*
*/
@Import(name="acceleratorTotalMemoryMib")
private @Nullable Output acceleratorTotalMemoryMib;
/**
* @return Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
*
*/
public Optional> acceleratorTotalMemoryMib() {
return Optional.ofNullable(this.acceleratorTotalMemoryMib);
}
/**
* List of accelerator types. Default is any accelerator type.
*
*/
@Import(name="acceleratorTypes")
private @Nullable Output> acceleratorTypes;
/**
* @return List of accelerator types. Default is any accelerator type.
*
*/
public Optional>> acceleratorTypes() {
return Optional.ofNullable(this.acceleratorTypes);
}
/**
* List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (\*), to allow an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are allowing all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is all instance types.
*
* > **NOTE:** If you specify `allowed_instance_types`, you can't specify `excluded_instance_types`.
*
*/
@Import(name="allowedInstanceTypes")
private @Nullable Output> allowedInstanceTypes;
/**
* @return List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (\*), to allow an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are allowing all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is all instance types.
*
* > **NOTE:** If you specify `allowed_instance_types`, you can't specify `excluded_instance_types`.
*
*/
public Optional>> allowedInstanceTypes() {
return Optional.ofNullable(this.allowedInstanceTypes);
}
/**
* Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
*/
@Import(name="bareMetal")
private @Nullable Output bareMetal;
/**
* @return Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
*/
public Optional> bareMetal() {
return Optional.ofNullable(this.bareMetal);
}
/**
* Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
*
*/
@Import(name="baselineEbsBandwidthMbps")
private @Nullable Output baselineEbsBandwidthMbps;
/**
* @return Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
*
*/
public Optional> baselineEbsBandwidthMbps() {
return Optional.ofNullable(this.baselineEbsBandwidthMbps);
}
/**
* Indicate whether burstable performance instance types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
*/
@Import(name="burstablePerformance")
private @Nullable Output burstablePerformance;
/**
* @return Indicate whether burstable performance instance types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
*/
public Optional> burstablePerformance() {
return Optional.ofNullable(this.burstablePerformance);
}
/**
* List of CPU manufacturer names. Default is any manufacturer.
*
* > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
*
*/
@Import(name="cpuManufacturers")
private @Nullable Output> cpuManufacturers;
/**
* @return List of CPU manufacturer names. Default is any manufacturer.
*
* > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
*
*/
public Optional>> cpuManufacturers() {
return Optional.ofNullable(this.cpuManufacturers);
}
/**
* List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*), to exclude an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
*
* > **NOTE:** If you specify `excluded_instance_types`, you can't specify `allowed_instance_types`.
*
*/
@Import(name="excludedInstanceTypes")
private @Nullable Output> excludedInstanceTypes;
/**
* @return List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*), to exclude an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
*
* > **NOTE:** If you specify `excluded_instance_types`, you can't specify `allowed_instance_types`.
*
*/
public Optional>> excludedInstanceTypes() {
return Optional.ofNullable(this.excludedInstanceTypes);
}
/**
* List of instance generation names. Default is any generation.
*
*/
@Import(name="instanceGenerations")
private @Nullable Output> instanceGenerations;
/**
* @return List of instance generation names. Default is any generation.
*
*/
public Optional>> instanceGenerations() {
return Optional.ofNullable(this.instanceGenerations);
}
/**
* Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
*
*/
@Import(name="localStorage")
private @Nullable Output localStorage;
/**
* @return Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
*
*/
public Optional> localStorage() {
return Optional.ofNullable(this.localStorage);
}
/**
* List of local storage type names. Default any storage type.
*
*/
@Import(name="localStorageTypes")
private @Nullable Output> localStorageTypes;
/**
* @return List of local storage type names. Default any storage type.
*
*/
public Optional>> localStorageTypes() {
return Optional.ofNullable(this.localStorageTypes);
}
/**
* The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
*
*/
@Import(name="maxSpotPriceAsPercentageOfOptimalOnDemandPrice")
private @Nullable Output maxSpotPriceAsPercentageOfOptimalOnDemandPrice;
/**
* @return The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
*
*/
public Optional> maxSpotPriceAsPercentageOfOptimalOnDemandPrice() {
return Optional.ofNullable(this.maxSpotPriceAsPercentageOfOptimalOnDemandPrice);
}
/**
* Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
*
*/
@Import(name="memoryGibPerVcpu")
private @Nullable Output memoryGibPerVcpu;
/**
* @return Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
*
*/
public Optional> memoryGibPerVcpu() {
return Optional.ofNullable(this.memoryGibPerVcpu);
}
/**
* Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.
*
*/
@Import(name="memoryMib", required=true)
private Output memoryMib;
/**
* @return Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.
*
*/
public Output memoryMib() {
return this.memoryMib;
}
/**
* Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.
*
*/
@Import(name="networkBandwidthGbps")
private @Nullable Output networkBandwidthGbps;
/**
* @return Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.
*
*/
public Optional> networkBandwidthGbps() {
return Optional.ofNullable(this.networkBandwidthGbps);
}
/**
* Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
*
*/
@Import(name="networkInterfaceCount")
private @Nullable Output networkInterfaceCount;
/**
* @return Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
*
*/
public Optional> networkInterfaceCount() {
return Optional.ofNullable(this.networkInterfaceCount);
}
/**
* The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
*/
@Import(name="onDemandMaxPricePercentageOverLowestPrice")
private @Nullable Output onDemandMaxPricePercentageOverLowestPrice;
/**
* @return The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
*/
public Optional> onDemandMaxPricePercentageOverLowestPrice() {
return Optional.ofNullable(this.onDemandMaxPricePercentageOverLowestPrice);
}
/**
* Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
*
*/
@Import(name="requireHibernateSupport")
private @Nullable Output requireHibernateSupport;
/**
* @return Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
*
*/
public Optional> requireHibernateSupport() {
return Optional.ofNullable(this.requireHibernateSupport);
}
/**
* The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
*/
@Import(name="spotMaxPricePercentageOverLowestPrice")
private @Nullable Output spotMaxPricePercentageOverLowestPrice;
/**
* @return The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
*/
public Optional> spotMaxPricePercentageOverLowestPrice() {
return Optional.ofNullable(this.spotMaxPricePercentageOverLowestPrice);
}
/**
* Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
*
*/
@Import(name="totalLocalStorageGb")
private @Nullable Output totalLocalStorageGb;
/**
* @return Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
*
*/
public Optional> totalLocalStorageGb() {
return Optional.ofNullable(this.totalLocalStorageGb);
}
/**
* Block describing the minimum and maximum number of vCPUs. Default is no maximum.
*
*/
@Import(name="vcpuCount", required=true)
private Output vcpuCount;
/**
* @return Block describing the minimum and maximum number of vCPUs. Default is no maximum.
*
*/
public Output vcpuCount() {
return this.vcpuCount;
}
private LaunchTemplateInstanceRequirementsArgs() {}
private LaunchTemplateInstanceRequirementsArgs(LaunchTemplateInstanceRequirementsArgs $) {
this.acceleratorCount = $.acceleratorCount;
this.acceleratorManufacturers = $.acceleratorManufacturers;
this.acceleratorNames = $.acceleratorNames;
this.acceleratorTotalMemoryMib = $.acceleratorTotalMemoryMib;
this.acceleratorTypes = $.acceleratorTypes;
this.allowedInstanceTypes = $.allowedInstanceTypes;
this.bareMetal = $.bareMetal;
this.baselineEbsBandwidthMbps = $.baselineEbsBandwidthMbps;
this.burstablePerformance = $.burstablePerformance;
this.cpuManufacturers = $.cpuManufacturers;
this.excludedInstanceTypes = $.excludedInstanceTypes;
this.instanceGenerations = $.instanceGenerations;
this.localStorage = $.localStorage;
this.localStorageTypes = $.localStorageTypes;
this.maxSpotPriceAsPercentageOfOptimalOnDemandPrice = $.maxSpotPriceAsPercentageOfOptimalOnDemandPrice;
this.memoryGibPerVcpu = $.memoryGibPerVcpu;
this.memoryMib = $.memoryMib;
this.networkBandwidthGbps = $.networkBandwidthGbps;
this.networkInterfaceCount = $.networkInterfaceCount;
this.onDemandMaxPricePercentageOverLowestPrice = $.onDemandMaxPricePercentageOverLowestPrice;
this.requireHibernateSupport = $.requireHibernateSupport;
this.spotMaxPricePercentageOverLowestPrice = $.spotMaxPricePercentageOverLowestPrice;
this.totalLocalStorageGb = $.totalLocalStorageGb;
this.vcpuCount = $.vcpuCount;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(LaunchTemplateInstanceRequirementsArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private LaunchTemplateInstanceRequirementsArgs $;
public Builder() {
$ = new LaunchTemplateInstanceRequirementsArgs();
}
public Builder(LaunchTemplateInstanceRequirementsArgs defaults) {
$ = new LaunchTemplateInstanceRequirementsArgs(Objects.requireNonNull(defaults));
}
/**
* @param acceleratorCount Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder acceleratorCount(@Nullable Output acceleratorCount) {
$.acceleratorCount = acceleratorCount;
return this;
}
/**
* @param acceleratorCount Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder acceleratorCount(LaunchTemplateInstanceRequirementsAcceleratorCountArgs acceleratorCount) {
return acceleratorCount(Output.of(acceleratorCount));
}
/**
* @param acceleratorManufacturers List of accelerator manufacturer names. Default is any manufacturer.
*
* @return builder
*
*/
public Builder acceleratorManufacturers(@Nullable Output> acceleratorManufacturers) {
$.acceleratorManufacturers = acceleratorManufacturers;
return this;
}
/**
* @param acceleratorManufacturers List of accelerator manufacturer names. Default is any manufacturer.
*
* @return builder
*
*/
public Builder acceleratorManufacturers(List acceleratorManufacturers) {
return acceleratorManufacturers(Output.of(acceleratorManufacturers));
}
/**
* @param acceleratorManufacturers List of accelerator manufacturer names. Default is any manufacturer.
*
* @return builder
*
*/
public Builder acceleratorManufacturers(String... acceleratorManufacturers) {
return acceleratorManufacturers(List.of(acceleratorManufacturers));
}
/**
* @param acceleratorNames List of accelerator names. Default is any acclerator.
*
* @return builder
*
*/
public Builder acceleratorNames(@Nullable Output> acceleratorNames) {
$.acceleratorNames = acceleratorNames;
return this;
}
/**
* @param acceleratorNames List of accelerator names. Default is any acclerator.
*
* @return builder
*
*/
public Builder acceleratorNames(List acceleratorNames) {
return acceleratorNames(Output.of(acceleratorNames));
}
/**
* @param acceleratorNames List of accelerator names. Default is any acclerator.
*
* @return builder
*
*/
public Builder acceleratorNames(String... acceleratorNames) {
return acceleratorNames(List.of(acceleratorNames));
}
/**
* @param acceleratorTotalMemoryMib Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder acceleratorTotalMemoryMib(@Nullable Output acceleratorTotalMemoryMib) {
$.acceleratorTotalMemoryMib = acceleratorTotalMemoryMib;
return this;
}
/**
* @param acceleratorTotalMemoryMib Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder acceleratorTotalMemoryMib(LaunchTemplateInstanceRequirementsAcceleratorTotalMemoryMibArgs acceleratorTotalMemoryMib) {
return acceleratorTotalMemoryMib(Output.of(acceleratorTotalMemoryMib));
}
/**
* @param acceleratorTypes List of accelerator types. Default is any accelerator type.
*
* @return builder
*
*/
public Builder acceleratorTypes(@Nullable Output> acceleratorTypes) {
$.acceleratorTypes = acceleratorTypes;
return this;
}
/**
* @param acceleratorTypes List of accelerator types. Default is any accelerator type.
*
* @return builder
*
*/
public Builder acceleratorTypes(List acceleratorTypes) {
return acceleratorTypes(Output.of(acceleratorTypes));
}
/**
* @param acceleratorTypes List of accelerator types. Default is any accelerator type.
*
* @return builder
*
*/
public Builder acceleratorTypes(String... acceleratorTypes) {
return acceleratorTypes(List.of(acceleratorTypes));
}
/**
* @param allowedInstanceTypes List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (\*), to allow an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are allowing all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is all instance types.
*
* > **NOTE:** If you specify `allowed_instance_types`, you can't specify `excluded_instance_types`.
*
* @return builder
*
*/
public Builder allowedInstanceTypes(@Nullable Output> allowedInstanceTypes) {
$.allowedInstanceTypes = allowedInstanceTypes;
return this;
}
/**
* @param allowedInstanceTypes List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (\*), to allow an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are allowing all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is all instance types.
*
* > **NOTE:** If you specify `allowed_instance_types`, you can't specify `excluded_instance_types`.
*
* @return builder
*
*/
public Builder allowedInstanceTypes(List allowedInstanceTypes) {
return allowedInstanceTypes(Output.of(allowedInstanceTypes));
}
/**
* @param allowedInstanceTypes List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (\*), to allow an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are allowing all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is all instance types.
*
* > **NOTE:** If you specify `allowed_instance_types`, you can't specify `excluded_instance_types`.
*
* @return builder
*
*/
public Builder allowedInstanceTypes(String... allowedInstanceTypes) {
return allowedInstanceTypes(List.of(allowedInstanceTypes));
}
/**
* @param bareMetal Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
* @return builder
*
*/
public Builder bareMetal(@Nullable Output bareMetal) {
$.bareMetal = bareMetal;
return this;
}
/**
* @param bareMetal Indicate whether bare metal instace types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
* @return builder
*
*/
public Builder bareMetal(String bareMetal) {
return bareMetal(Output.of(bareMetal));
}
/**
* @param baselineEbsBandwidthMbps Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder baselineEbsBandwidthMbps(@Nullable Output baselineEbsBandwidthMbps) {
$.baselineEbsBandwidthMbps = baselineEbsBandwidthMbps;
return this;
}
/**
* @param baselineEbsBandwidthMbps Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder baselineEbsBandwidthMbps(LaunchTemplateInstanceRequirementsBaselineEbsBandwidthMbpsArgs baselineEbsBandwidthMbps) {
return baselineEbsBandwidthMbps(Output.of(baselineEbsBandwidthMbps));
}
/**
* @param burstablePerformance Indicate whether burstable performance instance types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
* @return builder
*
*/
public Builder burstablePerformance(@Nullable Output burstablePerformance) {
$.burstablePerformance = burstablePerformance;
return this;
}
/**
* @param burstablePerformance Indicate whether burstable performance instance types should be `included`, `excluded`, or `required`. Default is `excluded`.
*
* @return builder
*
*/
public Builder burstablePerformance(String burstablePerformance) {
return burstablePerformance(Output.of(burstablePerformance));
}
/**
* @param cpuManufacturers List of CPU manufacturer names. Default is any manufacturer.
*
* > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
*
* @return builder
*
*/
public Builder cpuManufacturers(@Nullable Output> cpuManufacturers) {
$.cpuManufacturers = cpuManufacturers;
return this;
}
/**
* @param cpuManufacturers List of CPU manufacturer names. Default is any manufacturer.
*
* > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
*
* @return builder
*
*/
public Builder cpuManufacturers(List cpuManufacturers) {
return cpuManufacturers(Output.of(cpuManufacturers));
}
/**
* @param cpuManufacturers List of CPU manufacturer names. Default is any manufacturer.
*
* > **NOTE:** Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
*
* @return builder
*
*/
public Builder cpuManufacturers(String... cpuManufacturers) {
return cpuManufacturers(List.of(cpuManufacturers));
}
/**
* @param excludedInstanceTypes List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*), to exclude an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
*
* > **NOTE:** If you specify `excluded_instance_types`, you can't specify `allowed_instance_types`.
*
* @return builder
*
*/
public Builder excludedInstanceTypes(@Nullable Output> excludedInstanceTypes) {
$.excludedInstanceTypes = excludedInstanceTypes;
return this;
}
/**
* @param excludedInstanceTypes List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*), to exclude an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
*
* > **NOTE:** If you specify `excluded_instance_types`, you can't specify `allowed_instance_types`.
*
* @return builder
*
*/
public Builder excludedInstanceTypes(List excludedInstanceTypes) {
return excludedInstanceTypes(Output.of(excludedInstanceTypes));
}
/**
* @param excludedInstanceTypes List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (\*), to exclude an instance type, size, or generation. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`. For example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.
*
* > **NOTE:** If you specify `excluded_instance_types`, you can't specify `allowed_instance_types`.
*
* @return builder
*
*/
public Builder excludedInstanceTypes(String... excludedInstanceTypes) {
return excludedInstanceTypes(List.of(excludedInstanceTypes));
}
/**
* @param instanceGenerations List of instance generation names. Default is any generation.
*
* @return builder
*
*/
public Builder instanceGenerations(@Nullable Output> instanceGenerations) {
$.instanceGenerations = instanceGenerations;
return this;
}
/**
* @param instanceGenerations List of instance generation names. Default is any generation.
*
* @return builder
*
*/
public Builder instanceGenerations(List instanceGenerations) {
return instanceGenerations(Output.of(instanceGenerations));
}
/**
* @param instanceGenerations List of instance generation names. Default is any generation.
*
* @return builder
*
*/
public Builder instanceGenerations(String... instanceGenerations) {
return instanceGenerations(List.of(instanceGenerations));
}
/**
* @param localStorage Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
*
* @return builder
*
*/
public Builder localStorage(@Nullable Output localStorage) {
$.localStorage = localStorage;
return this;
}
/**
* @param localStorage Indicate whether instance types with local storage volumes are `included`, `excluded`, or `required`. Default is `included`.
*
* @return builder
*
*/
public Builder localStorage(String localStorage) {
return localStorage(Output.of(localStorage));
}
/**
* @param localStorageTypes List of local storage type names. Default any storage type.
*
* @return builder
*
*/
public Builder localStorageTypes(@Nullable Output> localStorageTypes) {
$.localStorageTypes = localStorageTypes;
return this;
}
/**
* @param localStorageTypes List of local storage type names. Default any storage type.
*
* @return builder
*
*/
public Builder localStorageTypes(List localStorageTypes) {
return localStorageTypes(Output.of(localStorageTypes));
}
/**
* @param localStorageTypes List of local storage type names. Default any storage type.
*
* @return builder
*
*/
public Builder localStorageTypes(String... localStorageTypes) {
return localStorageTypes(List.of(localStorageTypes));
}
/**
* @param maxSpotPriceAsPercentageOfOptimalOnDemandPrice The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
*
* @return builder
*
*/
public Builder maxSpotPriceAsPercentageOfOptimalOnDemandPrice(@Nullable Output maxSpotPriceAsPercentageOfOptimalOnDemandPrice) {
$.maxSpotPriceAsPercentageOfOptimalOnDemandPrice = maxSpotPriceAsPercentageOfOptimalOnDemandPrice;
return this;
}
/**
* @param maxSpotPriceAsPercentageOfOptimalOnDemandPrice The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with `spot_max_price_percentage_over_lowest_price`
*
* @return builder
*
*/
public Builder maxSpotPriceAsPercentageOfOptimalOnDemandPrice(Integer maxSpotPriceAsPercentageOfOptimalOnDemandPrice) {
return maxSpotPriceAsPercentageOfOptimalOnDemandPrice(Output.of(maxSpotPriceAsPercentageOfOptimalOnDemandPrice));
}
/**
* @param memoryGibPerVcpu Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder memoryGibPerVcpu(@Nullable Output memoryGibPerVcpu) {
$.memoryGibPerVcpu = memoryGibPerVcpu;
return this;
}
/**
* @param memoryGibPerVcpu Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder memoryGibPerVcpu(LaunchTemplateInstanceRequirementsMemoryGibPerVcpuArgs memoryGibPerVcpu) {
return memoryGibPerVcpu(Output.of(memoryGibPerVcpu));
}
/**
* @param memoryMib Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.
*
* @return builder
*
*/
public Builder memoryMib(Output memoryMib) {
$.memoryMib = memoryMib;
return this;
}
/**
* @param memoryMib Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.
*
* @return builder
*
*/
public Builder memoryMib(LaunchTemplateInstanceRequirementsMemoryMibArgs memoryMib) {
return memoryMib(Output.of(memoryMib));
}
/**
* @param networkBandwidthGbps Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder networkBandwidthGbps(@Nullable Output networkBandwidthGbps) {
$.networkBandwidthGbps = networkBandwidthGbps;
return this;
}
/**
* @param networkBandwidthGbps Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder networkBandwidthGbps(LaunchTemplateInstanceRequirementsNetworkBandwidthGbpsArgs networkBandwidthGbps) {
return networkBandwidthGbps(Output.of(networkBandwidthGbps));
}
/**
* @param networkInterfaceCount Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder networkInterfaceCount(@Nullable Output networkInterfaceCount) {
$.networkInterfaceCount = networkInterfaceCount;
return this;
}
/**
* @param networkInterfaceCount Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder networkInterfaceCount(LaunchTemplateInstanceRequirementsNetworkInterfaceCountArgs networkInterfaceCount) {
return networkInterfaceCount(Output.of(networkInterfaceCount));
}
/**
* @param onDemandMaxPricePercentageOverLowestPrice The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
* @return builder
*
*/
public Builder onDemandMaxPricePercentageOverLowestPrice(@Nullable Output onDemandMaxPricePercentageOverLowestPrice) {
$.onDemandMaxPricePercentageOverLowestPrice = onDemandMaxPricePercentageOverLowestPrice;
return this;
}
/**
* @param onDemandMaxPricePercentageOverLowestPrice The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
* @return builder
*
*/
public Builder onDemandMaxPricePercentageOverLowestPrice(Integer onDemandMaxPricePercentageOverLowestPrice) {
return onDemandMaxPricePercentageOverLowestPrice(Output.of(onDemandMaxPricePercentageOverLowestPrice));
}
/**
* @param requireHibernateSupport Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
*
* @return builder
*
*/
public Builder requireHibernateSupport(@Nullable Output requireHibernateSupport) {
$.requireHibernateSupport = requireHibernateSupport;
return this;
}
/**
* @param requireHibernateSupport Indicate whether instance types must support On-Demand Instance Hibernation, either `true` or `false`. Default is `false`.
*
* @return builder
*
*/
public Builder requireHibernateSupport(Boolean requireHibernateSupport) {
return requireHibernateSupport(Output.of(requireHibernateSupport));
}
/**
* @param spotMaxPricePercentageOverLowestPrice The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
* @return builder
*
*/
public Builder spotMaxPricePercentageOverLowestPrice(@Nullable Output spotMaxPricePercentageOverLowestPrice) {
$.spotMaxPricePercentageOverLowestPrice = spotMaxPricePercentageOverLowestPrice;
return this;
}
/**
* @param spotMaxPricePercentageOverLowestPrice The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with `max_spot_price_as_percentage_of_optimal_on_demand_price`
*
* If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.
*
* @return builder
*
*/
public Builder spotMaxPricePercentageOverLowestPrice(Integer spotMaxPricePercentageOverLowestPrice) {
return spotMaxPricePercentageOverLowestPrice(Output.of(spotMaxPricePercentageOverLowestPrice));
}
/**
* @param totalLocalStorageGb Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder totalLocalStorageGb(@Nullable Output totalLocalStorageGb) {
$.totalLocalStorageGb = totalLocalStorageGb;
return this;
}
/**
* @param totalLocalStorageGb Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.
*
* @return builder
*
*/
public Builder totalLocalStorageGb(LaunchTemplateInstanceRequirementsTotalLocalStorageGbArgs totalLocalStorageGb) {
return totalLocalStorageGb(Output.of(totalLocalStorageGb));
}
/**
* @param vcpuCount Block describing the minimum and maximum number of vCPUs. Default is no maximum.
*
* @return builder
*
*/
public Builder vcpuCount(Output vcpuCount) {
$.vcpuCount = vcpuCount;
return this;
}
/**
* @param vcpuCount Block describing the minimum and maximum number of vCPUs. Default is no maximum.
*
* @return builder
*
*/
public Builder vcpuCount(LaunchTemplateInstanceRequirementsVcpuCountArgs vcpuCount) {
return vcpuCount(Output.of(vcpuCount));
}
public LaunchTemplateInstanceRequirementsArgs build() {
if ($.memoryMib == null) {
throw new MissingRequiredPropertyException("LaunchTemplateInstanceRequirementsArgs", "memoryMib");
}
if ($.vcpuCount == null) {
throw new MissingRequiredPropertyException("LaunchTemplateInstanceRequirementsArgs", "vcpuCount");
}
return $;
}
}
}