/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.securityhub.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* The attributes for the Amazon EC2 instance types. *
* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AwsEc2LaunchTemplateDataInstanceRequirementsDetails implements Serializable, Cloneable, StructuredPojo { /** ** The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an * instance. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails acceleratorCount; /** ** Indicates whether instance types must have accelerators by specific manufacturers. *
*/ private java.util.List* The accelerators that must be on the instance type. *
*/ private java.util.List* The minimum and maximum amount of total accelerator memory, in MiB. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails acceleratorTotalMemoryMiB; /** ** The accelerator types that must be on the instance type. *
*/ private java.util.List* Indicates whether bare metal instance types must be included, excluded, or required. *
*/ private String bareMetal; /** ** The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized instances * in the Amazon EC2 User Guide. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails baselineEbsBandwidthMbps; /** ** Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. *
*/ private String burstablePerformance; /** ** The CPU manufacturers to include. *
*/ private java.util.List* The instance types to exclude. *
*/ private java.util.List* Indicates whether current or previous generation instance types are included. *
*/ private java.util.List* Indicates whether instance types with instance store volumes are included, excluded, or required. For more * information, see Amazon EC2 * instance store in the Amazon EC2 User Guide. *
*/ private String localStorage; /** ** The type of local storage that is required. *
*/ private java.util.List* The minimum and maximum amount of memory per vCPU, in GiB. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails memoryGiBPerVCpu; /** ** The minimum and maximum amount of memory, in MiB. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails memoryMiB; /** ** The minimum and maximum number of network interfaces. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails 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 above the least expensive current generation M, C, or R instance type with your * specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types * priced above your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* Indicates whether instance types must support hibernation for On-Demand Instances. *
*/ private Boolean requireHibernateSupport; /** ** The price protection threshold for Spot Instances. This is the maximum you'll pay for a Spot Instance, expressed * as a percentage above the least expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above * your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The minimum and maximum amount of total local storage, in GB. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails totalLocalStorageGB; /** ** The minimum and maximum number of vCPUs. *
*/ private AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails vCpuCount; /** ** The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an * instance. *
* * @param acceleratorCount * The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on * an instance. */ public void setAcceleratorCount(AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails acceleratorCount) { this.acceleratorCount = acceleratorCount; } /** ** The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an * instance. *
* * @return The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on * an instance. */ public AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails getAcceleratorCount() { return this.acceleratorCount; } /** ** The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on an * instance. *
* * @param acceleratorCount * The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on * an instance. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorCount( AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails acceleratorCount) { setAcceleratorCount(acceleratorCount); return this; } /** ** Indicates whether instance types must have accelerators by specific manufacturers. *
* * @return Indicates whether instance types must have accelerators by specific manufacturers. */ public java.util.List* Indicates whether instance types must have accelerators by specific manufacturers. *
* * @param acceleratorManufacturers * Indicates whether instance types must have accelerators by specific manufacturers. */ public void setAcceleratorManufacturers(java.util.Collection* Indicates whether instance types must have accelerators by specific manufacturers. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setAcceleratorManufacturers(java.util.Collection)} or * {@link #withAcceleratorManufacturers(java.util.Collection)} if you want to override the existing values. *
* * @param acceleratorManufacturers * Indicates whether instance types must have accelerators by specific manufacturers. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorManufacturers(String... acceleratorManufacturers) { if (this.acceleratorManufacturers == null) { setAcceleratorManufacturers(new java.util.ArrayList* Indicates whether instance types must have accelerators by specific manufacturers. *
* * @param acceleratorManufacturers * Indicates whether instance types must have accelerators by specific manufacturers. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorManufacturers(java.util.Collection* The accelerators that must be on the instance type. *
* * @return The accelerators that must be on the instance type. */ public java.util.List* The accelerators that must be on the instance type. *
* * @param acceleratorNames * The accelerators that must be on the instance type. */ public void setAcceleratorNames(java.util.Collection* The accelerators that must be on the instance type. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setAcceleratorNames(java.util.Collection)} or {@link #withAcceleratorNames(java.util.Collection)} if you * want to override the existing values. *
* * @param acceleratorNames * The accelerators that must be on the instance type. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorNames(String... acceleratorNames) { if (this.acceleratorNames == null) { setAcceleratorNames(new java.util.ArrayList* The accelerators that must be on the instance type. *
* * @param acceleratorNames * The accelerators that must be on the instance type. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorNames(java.util.Collection* The minimum and maximum amount of total accelerator memory, in MiB. *
* * @param acceleratorTotalMemoryMiB * The minimum and maximum amount of total accelerator memory, in MiB. */ public void setAcceleratorTotalMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails acceleratorTotalMemoryMiB) { this.acceleratorTotalMemoryMiB = acceleratorTotalMemoryMiB; } /** ** The minimum and maximum amount of total accelerator memory, in MiB. *
* * @return The minimum and maximum amount of total accelerator memory, in MiB. */ public AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails getAcceleratorTotalMemoryMiB() { return this.acceleratorTotalMemoryMiB; } /** ** The minimum and maximum amount of total accelerator memory, in MiB. *
* * @param acceleratorTotalMemoryMiB * The minimum and maximum amount of total accelerator memory, in MiB. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorTotalMemoryMiB( AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails acceleratorTotalMemoryMiB) { setAcceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB); return this; } /** ** The accelerator types that must be on the instance type. *
* * @return The accelerator types that must be on the instance type. */ public java.util.List* The accelerator types that must be on the instance type. *
* * @param acceleratorTypes * The accelerator types that must be on the instance type. */ public void setAcceleratorTypes(java.util.Collection* The accelerator types that must be on the instance type. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setAcceleratorTypes(java.util.Collection)} or {@link #withAcceleratorTypes(java.util.Collection)} if you * want to override the existing values. *
* * @param acceleratorTypes * The accelerator types that must be on the instance type. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorTypes(String... acceleratorTypes) { if (this.acceleratorTypes == null) { setAcceleratorTypes(new java.util.ArrayList* The accelerator types that must be on the instance type. *
* * @param acceleratorTypes * The accelerator types that must be on the instance type. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withAcceleratorTypes(java.util.Collection* Indicates whether bare metal instance types must be included, excluded, or required. *
* * @param bareMetal * Indicates whether bare metal instance types must be included, excluded, or required. */ public void setBareMetal(String bareMetal) { this.bareMetal = bareMetal; } /** ** Indicates whether bare metal instance types must be included, excluded, or required. *
* * @return Indicates whether bare metal instance types must be included, excluded, or required. */ public String getBareMetal() { return this.bareMetal; } /** ** Indicates whether bare metal instance types must be included, excluded, or required. *
* * @param bareMetal * Indicates whether bare metal instance types must be included, excluded, or required. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withBareMetal(String bareMetal) { setBareMetal(bareMetal); return this; } /** ** The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized instances * in the Amazon EC2 User Guide. *
* * @param baselineEbsBandwidthMbps * The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized * instances in the Amazon EC2 User Guide. */ public void setBaselineEbsBandwidthMbps(AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails baselineEbsBandwidthMbps) { this.baselineEbsBandwidthMbps = baselineEbsBandwidthMbps; } /** ** The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized instances * in the Amazon EC2 User Guide. *
* * @return The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized * instances in the Amazon EC2 User Guide. */ public AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails getBaselineEbsBandwidthMbps() { return this.baselineEbsBandwidthMbps; } /** ** The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized instances * in the Amazon EC2 User Guide. *
* * @param baselineEbsBandwidthMbps * The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see Amazon EBS optimized * instances in the Amazon EC2 User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withBaselineEbsBandwidthMbps( AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails baselineEbsBandwidthMbps) { setBaselineEbsBandwidthMbps(baselineEbsBandwidthMbps); return this; } /** ** Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. *
* * @param burstablePerformance * Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. */ public void setBurstablePerformance(String burstablePerformance) { this.burstablePerformance = burstablePerformance; } /** ** Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. *
* * @return Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. */ public String getBurstablePerformance() { return this.burstablePerformance; } /** ** Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. *
* * @param burstablePerformance * Indicates whether burstable performance T instance types are included, excluded, or required. For more * information, Burstable * performance instances in the Amazon EC2 User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withBurstablePerformance(String burstablePerformance) { setBurstablePerformance(burstablePerformance); return this; } /** ** The CPU manufacturers to include. *
* * @return The CPU manufacturers to include. */ public java.util.List* The CPU manufacturers to include. *
* * @param cpuManufacturers * The CPU manufacturers to include. */ public void setCpuManufacturers(java.util.Collection* The CPU manufacturers to include. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setCpuManufacturers(java.util.Collection)} or {@link #withCpuManufacturers(java.util.Collection)} if you * want to override the existing values. *
* * @param cpuManufacturers * The CPU manufacturers to include. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withCpuManufacturers(String... cpuManufacturers) { if (this.cpuManufacturers == null) { setCpuManufacturers(new java.util.ArrayList* The CPU manufacturers to include. *
* * @param cpuManufacturers * The CPU manufacturers to include. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withCpuManufacturers(java.util.Collection* The instance types to exclude. *
* * @return The instance types to exclude. */ public java.util.List* The instance types to exclude. *
* * @param excludedInstanceTypes * The instance types to exclude. */ public void setExcludedInstanceTypes(java.util.Collection* The instance types to exclude. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setExcludedInstanceTypes(java.util.Collection)} or * {@link #withExcludedInstanceTypes(java.util.Collection)} if you want to override the existing values. *
* * @param excludedInstanceTypes * The instance types to exclude. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withExcludedInstanceTypes(String... excludedInstanceTypes) { if (this.excludedInstanceTypes == null) { setExcludedInstanceTypes(new java.util.ArrayList* The instance types to exclude. *
* * @param excludedInstanceTypes * The instance types to exclude. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withExcludedInstanceTypes(java.util.Collection* Indicates whether current or previous generation instance types are included. *
* * @return Indicates whether current or previous generation instance types are included. */ public java.util.List* Indicates whether current or previous generation instance types are included. *
* * @param instanceGenerations * Indicates whether current or previous generation instance types are included. */ public void setInstanceGenerations(java.util.Collection* Indicates whether current or previous generation instance types are included. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setInstanceGenerations(java.util.Collection)} or {@link #withInstanceGenerations(java.util.Collection)} * if you want to override the existing values. *
* * @param instanceGenerations * Indicates whether current or previous generation instance types are included. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withInstanceGenerations(String... instanceGenerations) { if (this.instanceGenerations == null) { setInstanceGenerations(new java.util.ArrayList* Indicates whether current or previous generation instance types are included. *
* * @param instanceGenerations * Indicates whether current or previous generation instance types are included. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withInstanceGenerations(java.util.Collection* Indicates whether instance types with instance store volumes are included, excluded, or required. For more * information, see Amazon EC2 * instance store in the Amazon EC2 User Guide. *
* * @param localStorage * Indicates whether instance types with instance store volumes are included, excluded, or required. For more * information, see Amazon * EC2 instance store in the Amazon EC2 User Guide. */ public void setLocalStorage(String localStorage) { this.localStorage = localStorage; } /** ** Indicates whether instance types with instance store volumes are included, excluded, or required. For more * information, see Amazon EC2 * instance store in the Amazon EC2 User Guide. *
* * @return Indicates whether instance types with instance store volumes are included, excluded, or required. For * more information, see Amazon EC2 instance * store in the Amazon EC2 User Guide. */ public String getLocalStorage() { return this.localStorage; } /** ** Indicates whether instance types with instance store volumes are included, excluded, or required. For more * information, see Amazon EC2 * instance store in the Amazon EC2 User Guide. *
* * @param localStorage * Indicates whether instance types with instance store volumes are included, excluded, or required. For more * information, see Amazon * EC2 instance store in the Amazon EC2 User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withLocalStorage(String localStorage) { setLocalStorage(localStorage); return this; } /** ** The type of local storage that is required. *
* * @return The type of local storage that is required. */ public java.util.List* The type of local storage that is required. *
* * @param localStorageTypes * The type of local storage that is required. */ public void setLocalStorageTypes(java.util.Collection* The type of local storage that is required. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setLocalStorageTypes(java.util.Collection)} or {@link #withLocalStorageTypes(java.util.Collection)} if * you want to override the existing values. *
* * @param localStorageTypes * The type of local storage that is required. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withLocalStorageTypes(String... localStorageTypes) { if (this.localStorageTypes == null) { setLocalStorageTypes(new java.util.ArrayList* The type of local storage that is required. *
* * @param localStorageTypes * The type of local storage that is required. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withLocalStorageTypes(java.util.Collection* The minimum and maximum amount of memory per vCPU, in GiB. *
* * @param memoryGiBPerVCpu * The minimum and maximum amount of memory per vCPU, in GiB. */ public void setMemoryGiBPerVCpu(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails memoryGiBPerVCpu) { this.memoryGiBPerVCpu = memoryGiBPerVCpu; } /** ** The minimum and maximum amount of memory per vCPU, in GiB. *
* * @return The minimum and maximum amount of memory per vCPU, in GiB. */ public AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails getMemoryGiBPerVCpu() { return this.memoryGiBPerVCpu; } /** ** The minimum and maximum amount of memory per vCPU, in GiB. *
* * @param memoryGiBPerVCpu * The minimum and maximum amount of memory per vCPU, in GiB. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withMemoryGiBPerVCpu( AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails memoryGiBPerVCpu) { setMemoryGiBPerVCpu(memoryGiBPerVCpu); return this; } /** ** The minimum and maximum amount of memory, in MiB. *
* * @param memoryMiB * The minimum and maximum amount of memory, in MiB. */ public void setMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails memoryMiB) { this.memoryMiB = memoryMiB; } /** ** The minimum and maximum amount of memory, in MiB. *
* * @return The minimum and maximum amount of memory, in MiB. */ public AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails getMemoryMiB() { return this.memoryMiB; } /** ** The minimum and maximum amount of memory, in MiB. *
* * @param memoryMiB * The minimum and maximum amount of memory, in MiB. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails memoryMiB) { setMemoryMiB(memoryMiB); return this; } /** ** The minimum and maximum number of network interfaces. *
* * @param networkInterfaceCount * The minimum and maximum number of network interfaces. */ public void setNetworkInterfaceCount(AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails networkInterfaceCount) { this.networkInterfaceCount = networkInterfaceCount; } /** ** The minimum and maximum number of network interfaces. *
* * @return The minimum and maximum number of network interfaces. */ public AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails getNetworkInterfaceCount() { return this.networkInterfaceCount; } /** ** The minimum and maximum number of network interfaces. *
* * @param networkInterfaceCount * The minimum and maximum number of network interfaces. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withNetworkInterfaceCount( AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails networkInterfaceCount) { setNetworkInterfaceCount(networkInterfaceCount); return this; } /** ** The price protection threshold for On-Demand Instances. This is the maximum you'll pay for an On-Demand Instance, * expressed as a percentage above the least expensive current generation M, C, or R instance type with your * specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types * priced above your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*/
public void setOnDemandMaxPricePercentageOverLowestPrice(Integer onDemandMaxPricePercentageOverLowestPrice) {
this.onDemandMaxPricePercentageOverLowestPrice = 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 above the least expensive current generation M, C, or R instance type with your * specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types * priced above your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*/
public Integer getOnDemandMaxPricePercentageOverLowestPrice() {
return this.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 above the least expensive current generation M, C, or R instance type with your * specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types * priced above your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withOnDemandMaxPricePercentageOverLowestPrice(Integer onDemandMaxPricePercentageOverLowestPrice) {
setOnDemandMaxPricePercentageOverLowestPrice(onDemandMaxPricePercentageOverLowestPrice);
return this;
}
/**
*
* Indicates whether instance types must support hibernation for On-Demand Instances. *
* * @param requireHibernateSupport * Indicates whether instance types must support hibernation for On-Demand Instances. */ public void setRequireHibernateSupport(Boolean requireHibernateSupport) { this.requireHibernateSupport = requireHibernateSupport; } /** ** Indicates whether instance types must support hibernation for On-Demand Instances. *
* * @return Indicates whether instance types must support hibernation for On-Demand Instances. */ public Boolean getRequireHibernateSupport() { return this.requireHibernateSupport; } /** ** Indicates whether instance types must support hibernation for On-Demand Instances. *
* * @param requireHibernateSupport * Indicates whether instance types must support hibernation for On-Demand Instances. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withRequireHibernateSupport(Boolean requireHibernateSupport) { setRequireHibernateSupport(requireHibernateSupport); return this; } /** ** Indicates whether instance types must support hibernation for On-Demand Instances. *
* * @return Indicates whether instance types must support hibernation for On-Demand Instances. */ public Boolean isRequireHibernateSupport() { return this.requireHibernateSupport; } /** ** The price protection threshold for Spot Instances. This is the maximum you'll pay for a Spot Instance, expressed * as a percentage above the least expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above * your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*/
public void setSpotMaxPricePercentageOverLowestPrice(Integer spotMaxPricePercentageOverLowestPrice) {
this.spotMaxPricePercentageOverLowestPrice = spotMaxPricePercentageOverLowestPrice;
}
/**
*
* The price protection threshold for Spot Instances. This is the maximum you'll pay for a Spot Instance, expressed * as a percentage above the least expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above * your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*/
public Integer getSpotMaxPricePercentageOverLowestPrice() {
return this.spotMaxPricePercentageOverLowestPrice;
}
/**
*
* The price protection threshold for Spot Instances. This is the maximum you'll pay for a Spot Instance, expressed * as a percentage above the least expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above * your threshold. *
** The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
*
* The parameter accepts an integer, which Amazon EC2 interprets as a percentage. *
*
* A high value, such as 999999
, turns off price protection.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withSpotMaxPricePercentageOverLowestPrice(Integer spotMaxPricePercentageOverLowestPrice) {
setSpotMaxPricePercentageOverLowestPrice(spotMaxPricePercentageOverLowestPrice);
return this;
}
/**
*
* The minimum and maximum amount of total local storage, in GB. *
* * @param totalLocalStorageGB * The minimum and maximum amount of total local storage, in GB. */ public void setTotalLocalStorageGB(AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails totalLocalStorageGB) { this.totalLocalStorageGB = totalLocalStorageGB; } /** ** The minimum and maximum amount of total local storage, in GB. *
* * @return The minimum and maximum amount of total local storage, in GB. */ public AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails getTotalLocalStorageGB() { return this.totalLocalStorageGB; } /** ** The minimum and maximum amount of total local storage, in GB. *
* * @param totalLocalStorageGB * The minimum and maximum amount of total local storage, in GB. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withTotalLocalStorageGB( AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails totalLocalStorageGB) { setTotalLocalStorageGB(totalLocalStorageGB); return this; } /** ** The minimum and maximum number of vCPUs. *
* * @param vCpuCount * The minimum and maximum number of vCPUs. */ public void setVCpuCount(AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails vCpuCount) { this.vCpuCount = vCpuCount; } /** ** The minimum and maximum number of vCPUs. *
* * @return The minimum and maximum number of vCPUs. */ public AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails getVCpuCount() { return this.vCpuCount; } /** ** The minimum and maximum number of vCPUs. *
* * @param vCpuCount * The minimum and maximum number of vCPUs. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsEc2LaunchTemplateDataInstanceRequirementsDetails withVCpuCount(AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails vCpuCount) { setVCpuCount(vCpuCount); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getAcceleratorCount() != null) sb.append("AcceleratorCount: ").append(getAcceleratorCount()).append(","); if (getAcceleratorManufacturers() != null) sb.append("AcceleratorManufacturers: ").append(getAcceleratorManufacturers()).append(","); if (getAcceleratorNames() != null) sb.append("AcceleratorNames: ").append(getAcceleratorNames()).append(","); if (getAcceleratorTotalMemoryMiB() != null) sb.append("AcceleratorTotalMemoryMiB: ").append(getAcceleratorTotalMemoryMiB()).append(","); if (getAcceleratorTypes() != null) sb.append("AcceleratorTypes: ").append(getAcceleratorTypes()).append(","); if (getBareMetal() != null) sb.append("BareMetal: ").append(getBareMetal()).append(","); if (getBaselineEbsBandwidthMbps() != null) sb.append("BaselineEbsBandwidthMbps: ").append(getBaselineEbsBandwidthMbps()).append(","); if (getBurstablePerformance() != null) sb.append("BurstablePerformance: ").append(getBurstablePerformance()).append(","); if (getCpuManufacturers() != null) sb.append("CpuManufacturers: ").append(getCpuManufacturers()).append(","); if (getExcludedInstanceTypes() != null) sb.append("ExcludedInstanceTypes: ").append(getExcludedInstanceTypes()).append(","); if (getInstanceGenerations() != null) sb.append("InstanceGenerations: ").append(getInstanceGenerations()).append(","); if (getLocalStorage() != null) sb.append("LocalStorage: ").append(getLocalStorage()).append(","); if (getLocalStorageTypes() != null) sb.append("LocalStorageTypes: ").append(getLocalStorageTypes()).append(","); if (getMemoryGiBPerVCpu() != null) sb.append("MemoryGiBPerVCpu: ").append(getMemoryGiBPerVCpu()).append(","); if (getMemoryMiB() != null) sb.append("MemoryMiB: ").append(getMemoryMiB()).append(","); if (getNetworkInterfaceCount() != null) sb.append("NetworkInterfaceCount: ").append(getNetworkInterfaceCount()).append(","); if (getOnDemandMaxPricePercentageOverLowestPrice() != null) sb.append("OnDemandMaxPricePercentageOverLowestPrice: ").append(getOnDemandMaxPricePercentageOverLowestPrice()).append(","); if (getRequireHibernateSupport() != null) sb.append("RequireHibernateSupport: ").append(getRequireHibernateSupport()).append(","); if (getSpotMaxPricePercentageOverLowestPrice() != null) sb.append("SpotMaxPricePercentageOverLowestPrice: ").append(getSpotMaxPricePercentageOverLowestPrice()).append(","); if (getTotalLocalStorageGB() != null) sb.append("TotalLocalStorageGB: ").append(getTotalLocalStorageGB()).append(","); if (getVCpuCount() != null) sb.append("VCpuCount: ").append(getVCpuCount()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof AwsEc2LaunchTemplateDataInstanceRequirementsDetails == false) return false; AwsEc2LaunchTemplateDataInstanceRequirementsDetails other = (AwsEc2LaunchTemplateDataInstanceRequirementsDetails) obj; if (other.getAcceleratorCount() == null ^ this.getAcceleratorCount() == null) return false; if (other.getAcceleratorCount() != null && other.getAcceleratorCount().equals(this.getAcceleratorCount()) == false) return false; if (other.getAcceleratorManufacturers() == null ^ this.getAcceleratorManufacturers() == null) return false; if (other.getAcceleratorManufacturers() != null && other.getAcceleratorManufacturers().equals(this.getAcceleratorManufacturers()) == false) return false; if (other.getAcceleratorNames() == null ^ this.getAcceleratorNames() == null) return false; if (other.getAcceleratorNames() != null && other.getAcceleratorNames().equals(this.getAcceleratorNames()) == false) return false; if (other.getAcceleratorTotalMemoryMiB() == null ^ this.getAcceleratorTotalMemoryMiB() == null) return false; if (other.getAcceleratorTotalMemoryMiB() != null && other.getAcceleratorTotalMemoryMiB().equals(this.getAcceleratorTotalMemoryMiB()) == false) return false; if (other.getAcceleratorTypes() == null ^ this.getAcceleratorTypes() == null) return false; if (other.getAcceleratorTypes() != null && other.getAcceleratorTypes().equals(this.getAcceleratorTypes()) == false) return false; if (other.getBareMetal() == null ^ this.getBareMetal() == null) return false; if (other.getBareMetal() != null && other.getBareMetal().equals(this.getBareMetal()) == false) return false; if (other.getBaselineEbsBandwidthMbps() == null ^ this.getBaselineEbsBandwidthMbps() == null) return false; if (other.getBaselineEbsBandwidthMbps() != null && other.getBaselineEbsBandwidthMbps().equals(this.getBaselineEbsBandwidthMbps()) == false) return false; if (other.getBurstablePerformance() == null ^ this.getBurstablePerformance() == null) return false; if (other.getBurstablePerformance() != null && other.getBurstablePerformance().equals(this.getBurstablePerformance()) == false) return false; if (other.getCpuManufacturers() == null ^ this.getCpuManufacturers() == null) return false; if (other.getCpuManufacturers() != null && other.getCpuManufacturers().equals(this.getCpuManufacturers()) == false) return false; if (other.getExcludedInstanceTypes() == null ^ this.getExcludedInstanceTypes() == null) return false; if (other.getExcludedInstanceTypes() != null && other.getExcludedInstanceTypes().equals(this.getExcludedInstanceTypes()) == false) return false; if (other.getInstanceGenerations() == null ^ this.getInstanceGenerations() == null) return false; if (other.getInstanceGenerations() != null && other.getInstanceGenerations().equals(this.getInstanceGenerations()) == false) return false; if (other.getLocalStorage() == null ^ this.getLocalStorage() == null) return false; if (other.getLocalStorage() != null && other.getLocalStorage().equals(this.getLocalStorage()) == false) return false; if (other.getLocalStorageTypes() == null ^ this.getLocalStorageTypes() == null) return false; if (other.getLocalStorageTypes() != null && other.getLocalStorageTypes().equals(this.getLocalStorageTypes()) == false) return false; if (other.getMemoryGiBPerVCpu() == null ^ this.getMemoryGiBPerVCpu() == null) return false; if (other.getMemoryGiBPerVCpu() != null && other.getMemoryGiBPerVCpu().equals(this.getMemoryGiBPerVCpu()) == false) return false; if (other.getMemoryMiB() == null ^ this.getMemoryMiB() == null) return false; if (other.getMemoryMiB() != null && other.getMemoryMiB().equals(this.getMemoryMiB()) == false) return false; if (other.getNetworkInterfaceCount() == null ^ this.getNetworkInterfaceCount() == null) return false; if (other.getNetworkInterfaceCount() != null && other.getNetworkInterfaceCount().equals(this.getNetworkInterfaceCount()) == false) return false; if (other.getOnDemandMaxPricePercentageOverLowestPrice() == null ^ this.getOnDemandMaxPricePercentageOverLowestPrice() == null) return false; if (other.getOnDemandMaxPricePercentageOverLowestPrice() != null && other.getOnDemandMaxPricePercentageOverLowestPrice().equals(this.getOnDemandMaxPricePercentageOverLowestPrice()) == false) return false; if (other.getRequireHibernateSupport() == null ^ this.getRequireHibernateSupport() == null) return false; if (other.getRequireHibernateSupport() != null && other.getRequireHibernateSupport().equals(this.getRequireHibernateSupport()) == false) return false; if (other.getSpotMaxPricePercentageOverLowestPrice() == null ^ this.getSpotMaxPricePercentageOverLowestPrice() == null) return false; if (other.getSpotMaxPricePercentageOverLowestPrice() != null && other.getSpotMaxPricePercentageOverLowestPrice().equals(this.getSpotMaxPricePercentageOverLowestPrice()) == false) return false; if (other.getTotalLocalStorageGB() == null ^ this.getTotalLocalStorageGB() == null) return false; if (other.getTotalLocalStorageGB() != null && other.getTotalLocalStorageGB().equals(this.getTotalLocalStorageGB()) == false) return false; if (other.getVCpuCount() == null ^ this.getVCpuCount() == null) return false; if (other.getVCpuCount() != null && other.getVCpuCount().equals(this.getVCpuCount()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAcceleratorCount() == null) ? 0 : getAcceleratorCount().hashCode()); hashCode = prime * hashCode + ((getAcceleratorManufacturers() == null) ? 0 : getAcceleratorManufacturers().hashCode()); hashCode = prime * hashCode + ((getAcceleratorNames() == null) ? 0 : getAcceleratorNames().hashCode()); hashCode = prime * hashCode + ((getAcceleratorTotalMemoryMiB() == null) ? 0 : getAcceleratorTotalMemoryMiB().hashCode()); hashCode = prime * hashCode + ((getAcceleratorTypes() == null) ? 0 : getAcceleratorTypes().hashCode()); hashCode = prime * hashCode + ((getBareMetal() == null) ? 0 : getBareMetal().hashCode()); hashCode = prime * hashCode + ((getBaselineEbsBandwidthMbps() == null) ? 0 : getBaselineEbsBandwidthMbps().hashCode()); hashCode = prime * hashCode + ((getBurstablePerformance() == null) ? 0 : getBurstablePerformance().hashCode()); hashCode = prime * hashCode + ((getCpuManufacturers() == null) ? 0 : getCpuManufacturers().hashCode()); hashCode = prime * hashCode + ((getExcludedInstanceTypes() == null) ? 0 : getExcludedInstanceTypes().hashCode()); hashCode = prime * hashCode + ((getInstanceGenerations() == null) ? 0 : getInstanceGenerations().hashCode()); hashCode = prime * hashCode + ((getLocalStorage() == null) ? 0 : getLocalStorage().hashCode()); hashCode = prime * hashCode + ((getLocalStorageTypes() == null) ? 0 : getLocalStorageTypes().hashCode()); hashCode = prime * hashCode + ((getMemoryGiBPerVCpu() == null) ? 0 : getMemoryGiBPerVCpu().hashCode()); hashCode = prime * hashCode + ((getMemoryMiB() == null) ? 0 : getMemoryMiB().hashCode()); hashCode = prime * hashCode + ((getNetworkInterfaceCount() == null) ? 0 : getNetworkInterfaceCount().hashCode()); hashCode = prime * hashCode + ((getOnDemandMaxPricePercentageOverLowestPrice() == null) ? 0 : getOnDemandMaxPricePercentageOverLowestPrice().hashCode()); hashCode = prime * hashCode + ((getRequireHibernateSupport() == null) ? 0 : getRequireHibernateSupport().hashCode()); hashCode = prime * hashCode + ((getSpotMaxPricePercentageOverLowestPrice() == null) ? 0 : getSpotMaxPricePercentageOverLowestPrice().hashCode()); hashCode = prime * hashCode + ((getTotalLocalStorageGB() == null) ? 0 : getTotalLocalStorageGB().hashCode()); hashCode = prime * hashCode + ((getVCpuCount() == null) ? 0 : getVCpuCount().hashCode()); return hashCode; } @Override public AwsEc2LaunchTemplateDataInstanceRequirementsDetails clone() { try { return (AwsEc2LaunchTemplateDataInstanceRequirementsDetails) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.securityhub.model.transform.AwsEc2LaunchTemplateDataInstanceRequirementsDetailsMarshaller.getInstance().marshall(this, protocolMarshaller); } }