com.aliyun.sdk.service.ess20220222.models.DescribeScalingConfigurationsResponseBody Maven / Gradle / Ivy
Show all versions of alibabacloud-ess20220222 Show documentation
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sdk.service.ess20220222.models;
import darabonba.core.RequestModel;
import darabonba.core.TeaModel;
import com.aliyun.sdk.gateway.pop.models.*;
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public class DescribeScalingConfigurationsResponseBody extends TeaModel {
@com.aliyun.core.annotation.NameInMap("PageNumber")
private Integer pageNumber;
@com.aliyun.core.annotation.NameInMap("PageSize")
private Integer pageSize;
@com.aliyun.core.annotation.NameInMap("RequestId")
private String requestId;
@com.aliyun.core.annotation.NameInMap("ScalingConfigurations")
private java.util.List < ScalingConfigurations> scalingConfigurations;
@com.aliyun.core.annotation.NameInMap("TotalCount")
private Integer totalCount;
private DescribeScalingConfigurationsResponseBody(Builder builder) {
this.pageNumber = builder.pageNumber;
this.pageSize = builder.pageSize;
this.requestId = builder.requestId;
this.scalingConfigurations = builder.scalingConfigurations;
this.totalCount = builder.totalCount;
}
public static Builder builder() {
return new Builder();
}
public static DescribeScalingConfigurationsResponseBody create() {
return builder().build();
}
/**
* @return pageNumber
*/
public Integer getPageNumber() {
return this.pageNumber;
}
/**
* @return pageSize
*/
public Integer getPageSize() {
return this.pageSize;
}
/**
* @return requestId
*/
public String getRequestId() {
return this.requestId;
}
/**
* @return scalingConfigurations
*/
public java.util.List < ScalingConfigurations> getScalingConfigurations() {
return this.scalingConfigurations;
}
/**
* @return totalCount
*/
public Integer getTotalCount() {
return this.totalCount;
}
public static final class Builder {
private Integer pageNumber;
private Integer pageSize;
private String requestId;
private java.util.List < ScalingConfigurations> scalingConfigurations;
private Integer totalCount;
/**
* The page number of the returned page.
*
* example:
* 1
*/
public Builder pageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
return this;
}
/**
* The number of entries returned per page.
*
* example:
* 50
*/
public Builder pageSize(Integer pageSize) {
this.pageSize = pageSize;
return this;
}
/**
* The ID of the request.
*
* example:
* 473469C7-AA6F-4DC5-B3DB-A3DC0DE3****
*/
public Builder requestId(String requestId) {
this.requestId = requestId;
return this;
}
/**
* The scaling configurations.
*/
public Builder scalingConfigurations(java.util.List < ScalingConfigurations> scalingConfigurations) {
this.scalingConfigurations = scalingConfigurations;
return this;
}
/**
* The total number of scaling configurations.
*
* example:
* 1
*/
public Builder totalCount(Integer totalCount) {
this.totalCount = totalCount;
return this;
}
public DescribeScalingConfigurationsResponseBody build() {
return new DescribeScalingConfigurationsResponseBody(this);
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class CustomPriorities extends TeaModel {
@com.aliyun.core.annotation.NameInMap("InstanceType")
private String instanceType;
@com.aliyun.core.annotation.NameInMap("VswitchId")
private String vswitchId;
private CustomPriorities(Builder builder) {
this.instanceType = builder.instanceType;
this.vswitchId = builder.vswitchId;
}
public static Builder builder() {
return new Builder();
}
public static CustomPriorities create() {
return builder().build();
}
/**
* @return instanceType
*/
public String getInstanceType() {
return this.instanceType;
}
/**
* @return vswitchId
*/
public String getVswitchId() {
return this.vswitchId;
}
public static final class Builder {
private String instanceType;
private String vswitchId;
/**
* The ECS instance type.
*
* example:
* ecs.c6a.4xlarge
*/
public Builder instanceType(String instanceType) {
this.instanceType = instanceType;
return this;
}
/**
* The vSwitch ID.
*
* example:
* vsw-bp14zolna43z266bq****
*/
public Builder vswitchId(String vswitchId) {
this.vswitchId = vswitchId;
return this;
}
public CustomPriorities build() {
return new CustomPriorities(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class DataDisks extends TeaModel {
@com.aliyun.core.annotation.NameInMap("AutoSnapshotPolicyId")
private String autoSnapshotPolicyId;
@com.aliyun.core.annotation.NameInMap("BurstingEnabled")
private Boolean burstingEnabled;
@com.aliyun.core.annotation.NameInMap("Categories")
private java.util.List < String > categories;
@com.aliyun.core.annotation.NameInMap("Category")
private String category;
@com.aliyun.core.annotation.NameInMap("DeleteWithInstance")
private Boolean deleteWithInstance;
@com.aliyun.core.annotation.NameInMap("Description")
private String description;
@com.aliyun.core.annotation.NameInMap("Device")
private String device;
@com.aliyun.core.annotation.NameInMap("DiskName")
private String diskName;
@com.aliyun.core.annotation.NameInMap("Encrypted")
private String encrypted;
@com.aliyun.core.annotation.NameInMap("KMSKeyId")
private String KMSKeyId;
@com.aliyun.core.annotation.NameInMap("PerformanceLevel")
private String performanceLevel;
@com.aliyun.core.annotation.NameInMap("ProvisionedIops")
private Long provisionedIops;
@com.aliyun.core.annotation.NameInMap("Size")
private Integer size;
@com.aliyun.core.annotation.NameInMap("SnapshotId")
private String snapshotId;
private DataDisks(Builder builder) {
this.autoSnapshotPolicyId = builder.autoSnapshotPolicyId;
this.burstingEnabled = builder.burstingEnabled;
this.categories = builder.categories;
this.category = builder.category;
this.deleteWithInstance = builder.deleteWithInstance;
this.description = builder.description;
this.device = builder.device;
this.diskName = builder.diskName;
this.encrypted = builder.encrypted;
this.KMSKeyId = builder.KMSKeyId;
this.performanceLevel = builder.performanceLevel;
this.provisionedIops = builder.provisionedIops;
this.size = builder.size;
this.snapshotId = builder.snapshotId;
}
public static Builder builder() {
return new Builder();
}
public static DataDisks create() {
return builder().build();
}
/**
* @return autoSnapshotPolicyId
*/
public String getAutoSnapshotPolicyId() {
return this.autoSnapshotPolicyId;
}
/**
* @return burstingEnabled
*/
public Boolean getBurstingEnabled() {
return this.burstingEnabled;
}
/**
* @return categories
*/
public java.util.List < String > getCategories() {
return this.categories;
}
/**
* @return category
*/
public String getCategory() {
return this.category;
}
/**
* @return deleteWithInstance
*/
public Boolean getDeleteWithInstance() {
return this.deleteWithInstance;
}
/**
* @return description
*/
public String getDescription() {
return this.description;
}
/**
* @return device
*/
public String getDevice() {
return this.device;
}
/**
* @return diskName
*/
public String getDiskName() {
return this.diskName;
}
/**
* @return encrypted
*/
public String getEncrypted() {
return this.encrypted;
}
/**
* @return KMSKeyId
*/
public String getKMSKeyId() {
return this.KMSKeyId;
}
/**
* @return performanceLevel
*/
public String getPerformanceLevel() {
return this.performanceLevel;
}
/**
* @return provisionedIops
*/
public Long getProvisionedIops() {
return this.provisionedIops;
}
/**
* @return size
*/
public Integer getSize() {
return this.size;
}
/**
* @return snapshotId
*/
public String getSnapshotId() {
return this.snapshotId;
}
public static final class Builder {
private String autoSnapshotPolicyId;
private Boolean burstingEnabled;
private java.util.List < String > categories;
private String category;
private Boolean deleteWithInstance;
private String description;
private String device;
private String diskName;
private String encrypted;
private String KMSKeyId;
private String performanceLevel;
private Long provisionedIops;
private Integer size;
private String snapshotId;
/**
* The ID of the automatic snapshot policy that is applied to the data disk.
*
* example:
* sp-bp19nq9enxqkomib****
*/
public Builder autoSnapshotPolicyId(String autoSnapshotPolicyId) {
this.autoSnapshotPolicyId = autoSnapshotPolicyId;
return this;
}
/**
* Indicates whether the Performance Burst feature is enabled for the data disk. Valid values:
*
* - true
* - false
*
*
* This parameter is available only when you set DataDisk.Category
to cloud_auto
.
*
*
* example:
* false
*/
public Builder burstingEnabled(Boolean burstingEnabled) {
this.burstingEnabled = burstingEnabled;
return this;
}
/**
* The categories of the data disks. The values are sorted based on their priorities. The first value has the highest priority. If Auto Scaling cannot create instances by using the disk category of the highest priority, Auto Scaling creates instances by using the disk category of the next highest priority. Valid values:
*
* - cloud: basic disk. DeleteWithInstance of a basic disk created along with the ECS instance is set to true.
* - cloud_efficiency: ultra disk.
* - cloud_ssd: standard SSD.
* - cloud_essd: ESSD.
*
*/
public Builder categories(java.util.List < String > categories) {
this.categories = categories;
return this;
}
/**
* The category of the data disk. Valid values:
*
* - cloud: basic disk. DeleteWithInstance of a basic disk created along with the ECS instance is set to true.
* - cloud_efficiency: ultra disk.
* - cloud_ssd: standard SSD.
* - ephemeral_ssd: local SSD.
* - cloud_essd: ESSD.
* - cloud_auto: ESSD AutoPL.
*
*
* example:
* cloud
*/
public Builder category(String category) {
this.category = category;
return this;
}
/**
* Indicates whether the data disk is released when the instance to which the data disk is attached is released. Valid values:
*
* - true
* - false
*
*
* example:
* true
*/
public Builder deleteWithInstance(Boolean deleteWithInstance) {
this.deleteWithInstance = deleteWithInstance;
return this;
}
/**
* The description of the data disk.
*
* example:
* FinanceDept
*/
public Builder description(String description) {
this.description = description;
return this;
}
/**
* The mount target of the data disk.
*
* example:
* /dev/xvdb
*/
public Builder device(String device) {
this.device = device;
return this;
}
/**
* The name of the data disk.
*
* example:
* cloud_ssdData
*/
public Builder diskName(String diskName) {
this.diskName = diskName;
return this;
}
/**
* Indicates whether the data disk is encrypted. Valid values:
*
* - true
* - false
*
* Default value: false.
*
* example:
* false
*/
public Builder encrypted(String encrypted) {
this.encrypted = encrypted;
return this;
}
/**
* The ID of the Key Management Service (KMS) key that is applied to the data disk.
*
* example:
* 0e478b7a-4262-4802-b8cb-00d3fb40****
*/
public Builder KMSKeyId(String KMSKeyId) {
this.KMSKeyId = KMSKeyId;
return this;
}
/**
* The PL of the data disk that is an ESSD.
*
* example:
* PL1
*/
public Builder performanceLevel(String performanceLevel) {
this.performanceLevel = performanceLevel;
return this;
}
/**
* The provisioned IOPS of the data disk.
*
* IOPS measures the number of read and write operations that an Elastic Block Storage (EBS) device can process per second.
*
*
* example:
* 100
*/
public Builder provisionedIops(Long provisionedIops) {
this.provisionedIops = provisionedIops;
return this;
}
/**
* The size of the data disk. Unit: GB. Valid values:
*
* - 5 to 2000 if you set Category to cloud.
* - 20 to 32768 if you set Category to cloud_efficiency.
* - 20 to 32768 if you set Category to cloud_ssd.
* - 20 to 32768 if you set Category to cloud_essd.
* - 5 to 800 if you set Category to ephemeral_ssd.
*
*
* example:
* 200
*/
public Builder size(Integer size) {
this.size = size;
return this;
}
/**
* The ID of the snapshot based on which the data disk is created.
*
* example:
* s-23f2i****
*/
public Builder snapshotId(String snapshotId) {
this.snapshotId = snapshotId;
return this;
}
public DataDisks build() {
return new DataDisks(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class InstancePatternInfos extends TeaModel {
@com.aliyun.core.annotation.NameInMap("Architectures")
private java.util.List < String > architectures;
@com.aliyun.core.annotation.NameInMap("BurstablePerformance")
private String burstablePerformance;
@com.aliyun.core.annotation.NameInMap("Cores")
private Integer cores;
@com.aliyun.core.annotation.NameInMap("CpuArchitectures")
private java.util.List < String > cpuArchitectures;
@com.aliyun.core.annotation.NameInMap("ExcludedInstanceTypes")
private java.util.List < String > excludedInstanceTypes;
@com.aliyun.core.annotation.NameInMap("GpuSpecs")
private java.util.List < String > gpuSpecs;
@com.aliyun.core.annotation.NameInMap("InstanceCategories")
private java.util.List < String > instanceCategories;
@com.aliyun.core.annotation.NameInMap("InstanceFamilyLevel")
private String instanceFamilyLevel;
@com.aliyun.core.annotation.NameInMap("InstanceTypeFamilies")
private java.util.List < String > instanceTypeFamilies;
@com.aliyun.core.annotation.NameInMap("MaxPrice")
private Float maxPrice;
@com.aliyun.core.annotation.NameInMap("MaximumCpuCoreCount")
private Integer maximumCpuCoreCount;
@com.aliyun.core.annotation.NameInMap("MaximumGpuAmount")
private Integer maximumGpuAmount;
@com.aliyun.core.annotation.NameInMap("MaximumMemorySize")
private Float maximumMemorySize;
@com.aliyun.core.annotation.NameInMap("Memory")
private Float memory;
@com.aliyun.core.annotation.NameInMap("MinimumBaselineCredit")
private Integer minimumBaselineCredit;
@com.aliyun.core.annotation.NameInMap("MinimumCpuCoreCount")
private Integer minimumCpuCoreCount;
@com.aliyun.core.annotation.NameInMap("MinimumEniIpv6AddressQuantity")
private Integer minimumEniIpv6AddressQuantity;
@com.aliyun.core.annotation.NameInMap("MinimumEniPrivateIpAddressQuantity")
private Integer minimumEniPrivateIpAddressQuantity;
@com.aliyun.core.annotation.NameInMap("MinimumEniQuantity")
private Integer minimumEniQuantity;
@com.aliyun.core.annotation.NameInMap("MinimumGpuAmount")
private Integer minimumGpuAmount;
@com.aliyun.core.annotation.NameInMap("MinimumInitialCredit")
private Integer minimumInitialCredit;
@com.aliyun.core.annotation.NameInMap("MinimumMemorySize")
private Float minimumMemorySize;
@com.aliyun.core.annotation.NameInMap("PhysicalProcessorModels")
private java.util.List < String > physicalProcessorModels;
private InstancePatternInfos(Builder builder) {
this.architectures = builder.architectures;
this.burstablePerformance = builder.burstablePerformance;
this.cores = builder.cores;
this.cpuArchitectures = builder.cpuArchitectures;
this.excludedInstanceTypes = builder.excludedInstanceTypes;
this.gpuSpecs = builder.gpuSpecs;
this.instanceCategories = builder.instanceCategories;
this.instanceFamilyLevel = builder.instanceFamilyLevel;
this.instanceTypeFamilies = builder.instanceTypeFamilies;
this.maxPrice = builder.maxPrice;
this.maximumCpuCoreCount = builder.maximumCpuCoreCount;
this.maximumGpuAmount = builder.maximumGpuAmount;
this.maximumMemorySize = builder.maximumMemorySize;
this.memory = builder.memory;
this.minimumBaselineCredit = builder.minimumBaselineCredit;
this.minimumCpuCoreCount = builder.minimumCpuCoreCount;
this.minimumEniIpv6AddressQuantity = builder.minimumEniIpv6AddressQuantity;
this.minimumEniPrivateIpAddressQuantity = builder.minimumEniPrivateIpAddressQuantity;
this.minimumEniQuantity = builder.minimumEniQuantity;
this.minimumGpuAmount = builder.minimumGpuAmount;
this.minimumInitialCredit = builder.minimumInitialCredit;
this.minimumMemorySize = builder.minimumMemorySize;
this.physicalProcessorModels = builder.physicalProcessorModels;
}
public static Builder builder() {
return new Builder();
}
public static InstancePatternInfos create() {
return builder().build();
}
/**
* @return architectures
*/
public java.util.List < String > getArchitectures() {
return this.architectures;
}
/**
* @return burstablePerformance
*/
public String getBurstablePerformance() {
return this.burstablePerformance;
}
/**
* @return cores
*/
public Integer getCores() {
return this.cores;
}
/**
* @return cpuArchitectures
*/
public java.util.List < String > getCpuArchitectures() {
return this.cpuArchitectures;
}
/**
* @return excludedInstanceTypes
*/
public java.util.List < String > getExcludedInstanceTypes() {
return this.excludedInstanceTypes;
}
/**
* @return gpuSpecs
*/
public java.util.List < String > getGpuSpecs() {
return this.gpuSpecs;
}
/**
* @return instanceCategories
*/
public java.util.List < String > getInstanceCategories() {
return this.instanceCategories;
}
/**
* @return instanceFamilyLevel
*/
public String getInstanceFamilyLevel() {
return this.instanceFamilyLevel;
}
/**
* @return instanceTypeFamilies
*/
public java.util.List < String > getInstanceTypeFamilies() {
return this.instanceTypeFamilies;
}
/**
* @return maxPrice
*/
public Float getMaxPrice() {
return this.maxPrice;
}
/**
* @return maximumCpuCoreCount
*/
public Integer getMaximumCpuCoreCount() {
return this.maximumCpuCoreCount;
}
/**
* @return maximumGpuAmount
*/
public Integer getMaximumGpuAmount() {
return this.maximumGpuAmount;
}
/**
* @return maximumMemorySize
*/
public Float getMaximumMemorySize() {
return this.maximumMemorySize;
}
/**
* @return memory
*/
public Float getMemory() {
return this.memory;
}
/**
* @return minimumBaselineCredit
*/
public Integer getMinimumBaselineCredit() {
return this.minimumBaselineCredit;
}
/**
* @return minimumCpuCoreCount
*/
public Integer getMinimumCpuCoreCount() {
return this.minimumCpuCoreCount;
}
/**
* @return minimumEniIpv6AddressQuantity
*/
public Integer getMinimumEniIpv6AddressQuantity() {
return this.minimumEniIpv6AddressQuantity;
}
/**
* @return minimumEniPrivateIpAddressQuantity
*/
public Integer getMinimumEniPrivateIpAddressQuantity() {
return this.minimumEniPrivateIpAddressQuantity;
}
/**
* @return minimumEniQuantity
*/
public Integer getMinimumEniQuantity() {
return this.minimumEniQuantity;
}
/**
* @return minimumGpuAmount
*/
public Integer getMinimumGpuAmount() {
return this.minimumGpuAmount;
}
/**
* @return minimumInitialCredit
*/
public Integer getMinimumInitialCredit() {
return this.minimumInitialCredit;
}
/**
* @return minimumMemorySize
*/
public Float getMinimumMemorySize() {
return this.minimumMemorySize;
}
/**
* @return physicalProcessorModels
*/
public java.util.List < String > getPhysicalProcessorModels() {
return this.physicalProcessorModels;
}
public static final class Builder {
private java.util.List < String > architectures;
private String burstablePerformance;
private Integer cores;
private java.util.List < String > cpuArchitectures;
private java.util.List < String > excludedInstanceTypes;
private java.util.List < String > gpuSpecs;
private java.util.List < String > instanceCategories;
private String instanceFamilyLevel;
private java.util.List < String > instanceTypeFamilies;
private Float maxPrice;
private Integer maximumCpuCoreCount;
private Integer maximumGpuAmount;
private Float maximumMemorySize;
private Float memory;
private Integer minimumBaselineCredit;
private Integer minimumCpuCoreCount;
private Integer minimumEniIpv6AddressQuantity;
private Integer minimumEniPrivateIpAddressQuantity;
private Integer minimumEniQuantity;
private Integer minimumGpuAmount;
private Integer minimumInitialCredit;
private Float minimumMemorySize;
private java.util.List < String > physicalProcessorModels;
/**
* The architecture types of the instance types. Valid values:
*
* - X86: x86
* - Heterogeneous: heterogeneous computing, such as GPU-accelerated or FPGA-accelerated
* - BareMetal: ECS Bare Metal Instance
* - Arm: Arm
* - SuperComputeCluster: Super Computing Cluster
*
*/
public Builder architectures(java.util.List < String > architectures) {
this.architectures = architectures;
return this;
}
/**
* Indicates whether burstable instance types are included. Valid values:
*
* - Exclude: Burstable instance types are not included.
* - Include: Burstable instance types are included.
* - Required: Only burstable instance types are included.
*
*
* example:
* Include
*/
public Builder burstablePerformance(String burstablePerformance) {
this.burstablePerformance = burstablePerformance;
return this;
}
/**
* The number of vCPUs of the instance type.
*
* example:
* 2
*/
public Builder cores(Integer cores) {
this.cores = cores;
return this;
}
/**
* The CPU architectures of the instance types. Valid values:
*
* You can specify 1 to 2 CPU architectures.
*
*
* - x86
* - Arm
*
*/
public Builder cpuArchitectures(java.util.List < String > cpuArchitectures) {
this.cpuArchitectures = cpuArchitectures;
return this;
}
/**
* The instance types that are excluded. You can use wildcard characters, such as an asterisk (*), to exclude an instance type or an instance family. Examples:
*
* - ecs.c6.large: The ecs.c6.large instance type is excluded.
* - ecs.c6.*: The c6 instance family is excluded.
*
*/
public Builder excludedInstanceTypes(java.util.List < String > excludedInstanceTypes) {
this.excludedInstanceTypes = excludedInstanceTypes;
return this;
}
/**
* The GPU models.
*/
public Builder gpuSpecs(java.util.List < String > gpuSpecs) {
this.gpuSpecs = gpuSpecs;
return this;
}
/**
* The categories of the instance.families. Valid values:
*
* You can specify 1 to 10 categories.
*
*
* - General-purpose
* - Compute-optimized
* - Memory-optimized
* - Big data
* - Local SSDs
* - High Clock Speed
* - Enhanced
* - Shared
* - Compute-optimized with GPU
* - Visual Compute-optimized
* - Heterogeneous Service
* - Compute-optimized with FPGA
* - Compute-optimized with NPU
* - ECS Bare Metal
* - Super Computing Cluster
* - High Performance Compute
*
*/
public Builder instanceCategories(java.util.List < String > instanceCategories) {
this.instanceCategories = instanceCategories;
return this;
}
/**
* The level of the instance family.
*
* - EntryLevel: entry level (shared instance types). Instance types of this level are the most cost-effective but may not provide stable computing performance. Instance types of this level are suitable for scenarios in which the CPU utilization is low. For more information, see Shared instance families.
* - EnterpriseLevel: enterprise level. Instance types of this level provide stable performance and dedicated resources, and are suitable for scenarios that require high stability. For more information, see Overview of instance families.
* - CreditEntryLevel: credit entry level (burstable instance types). CPU credits are used to ensure computing performance. Instance types of this level are suitable for scenarios in which the CPU utilization is low but may fluctuate in specific cases. For more information, see Overview of burstable instances.
*
*
* example:
* EnterpriseLevel
*/
public Builder instanceFamilyLevel(String instanceFamilyLevel) {
this.instanceFamilyLevel = instanceFamilyLevel;
return this;
}
/**
* The instance families that are queried. You can query 1 to 10 instance families in each call.
*/
public Builder instanceTypeFamilies(java.util.List < String > instanceTypeFamilies) {
this.instanceTypeFamilies = instanceTypeFamilies;
return this;
}
/**
* The maximum hourly price for the pay-as-you-go or preemptible instances.
*
* example:
* 2
*/
public Builder maxPrice(Float maxPrice) {
this.maxPrice = maxPrice;
return this;
}
/**
* The maximum number of vCPUs per instance type.
*
* The value of MaximumCpuCoreCount cannot exceed four times the value of MinimumCpuCoreCount.
*
*
* example:
* 4
*/
public Builder maximumCpuCoreCount(Integer maximumCpuCoreCount) {
this.maximumCpuCoreCount = maximumCpuCoreCount;
return this;
}
/**
* The maximum number of GPUs per instance. The value must be a positive integer.
*
* example:
* 2
*/
public Builder maximumGpuAmount(Integer maximumGpuAmount) {
this.maximumGpuAmount = maximumGpuAmount;
return this;
}
/**
* The maximum memory size per instance. Unit: GiB.
*
* example:
* 4
*/
public Builder maximumMemorySize(Float maximumMemorySize) {
this.maximumMemorySize = maximumMemorySize;
return this;
}
/**
* The memory size of the instance type. Unit: GiB.
*
* example:
* 4
*/
public Builder memory(Float memory) {
this.memory = memory;
return this;
}
/**
* The baseline vCPU computing performance (overall baseline performance of all vCPUs) per t5 or t6 burstable instance.
*
* example:
* 12
*/
public Builder minimumBaselineCredit(Integer minimumBaselineCredit) {
this.minimumBaselineCredit = minimumBaselineCredit;
return this;
}
/**
* The minimum number of vCPUs per instance type.
*
* example:
* 2
*/
public Builder minimumCpuCoreCount(Integer minimumCpuCoreCount) {
this.minimumCpuCoreCount = minimumCpuCoreCount;
return this;
}
/**
* The minimum number of IPv6 addresses per ENI.
*
* example:
* 1
*/
public Builder minimumEniIpv6AddressQuantity(Integer minimumEniIpv6AddressQuantity) {
this.minimumEniIpv6AddressQuantity = minimumEniIpv6AddressQuantity;
return this;
}
/**
* The minimum number of IPv4 addresses per ENI.
*
* example:
* 2
*/
public Builder minimumEniPrivateIpAddressQuantity(Integer minimumEniPrivateIpAddressQuantity) {
this.minimumEniPrivateIpAddressQuantity = minimumEniPrivateIpAddressQuantity;
return this;
}
/**
* The minimum number of elastic network interfaces (ENIs) per instance.
*
* example:
* 2
*/
public Builder minimumEniQuantity(Integer minimumEniQuantity) {
this.minimumEniQuantity = minimumEniQuantity;
return this;
}
/**
* The minimum number of GPUs per instance. The value must be a positive integer.
*
* example:
* 2
*/
public Builder minimumGpuAmount(Integer minimumGpuAmount) {
this.minimumGpuAmount = minimumGpuAmount;
return this;
}
/**
* The initial vCPU credits per t5 or t6 burstable instance.
*
* example:
* 12
*/
public Builder minimumInitialCredit(Integer minimumInitialCredit) {
this.minimumInitialCredit = minimumInitialCredit;
return this;
}
/**
* The minimum memory size per instance. Unit: GiB.
*
* example:
* 4
*/
public Builder minimumMemorySize(Float minimumMemorySize) {
this.minimumMemorySize = minimumMemorySize;
return this;
}
/**
* The processor models of the instance types. You can specify 1 to 10 processor models.
*/
public Builder physicalProcessorModels(java.util.List < String > physicalProcessorModels) {
this.physicalProcessorModels = physicalProcessorModels;
return this;
}
public InstancePatternInfos build() {
return new InstancePatternInfos(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class NetworkInterfaces extends TeaModel {
@com.aliyun.core.annotation.NameInMap("InstanceType")
private String instanceType;
@com.aliyun.core.annotation.NameInMap("Ipv6AddressCount")
private Integer ipv6AddressCount;
@com.aliyun.core.annotation.NameInMap("NetworkInterfaceTrafficMode")
private String networkInterfaceTrafficMode;
@com.aliyun.core.annotation.NameInMap("SecurityGroupIds")
private java.util.List < String > securityGroupIds;
private NetworkInterfaces(Builder builder) {
this.instanceType = builder.instanceType;
this.ipv6AddressCount = builder.ipv6AddressCount;
this.networkInterfaceTrafficMode = builder.networkInterfaceTrafficMode;
this.securityGroupIds = builder.securityGroupIds;
}
public static Builder builder() {
return new Builder();
}
public static NetworkInterfaces create() {
return builder().build();
}
/**
* @return instanceType
*/
public String getInstanceType() {
return this.instanceType;
}
/**
* @return ipv6AddressCount
*/
public Integer getIpv6AddressCount() {
return this.ipv6AddressCount;
}
/**
* @return networkInterfaceTrafficMode
*/
public String getNetworkInterfaceTrafficMode() {
return this.networkInterfaceTrafficMode;
}
/**
* @return securityGroupIds
*/
public java.util.List < String > getSecurityGroupIds() {
return this.securityGroupIds;
}
public static final class Builder {
private String instanceType;
private Integer ipv6AddressCount;
private String networkInterfaceTrafficMode;
private java.util.List < String > securityGroupIds;
/**
* The ENI type. Valid values:
*
* - Primary: the primary ENI
* - Secondary: the secondary ENI
*
*
* example:
* Primary
*/
public Builder instanceType(String instanceType) {
this.instanceType = instanceType;
return this;
}
/**
* The number of randomly generated IPv6 addresses that are allocated to the primary ENI.
*
* example:
* 1
*/
public Builder ipv6AddressCount(Integer ipv6AddressCount) {
this.ipv6AddressCount = ipv6AddressCount;
return this;
}
/**
* The communication mode of the ENI. Valid values:
*
* - Standard: The TCP communication mode is used.
* - HighPerformance: The Elastic RDMA Interface (ERI) is enabled and the remote direct memory access (RDMA) communication mode is used.
*
*
* example:
* HighPerformance
*/
public Builder networkInterfaceTrafficMode(String networkInterfaceTrafficMode) {
this.networkInterfaceTrafficMode = networkInterfaceTrafficMode;
return this;
}
/**
* The IDs of the security groups to which the ENIs belong.
*/
public Builder securityGroupIds(java.util.List < String > securityGroupIds) {
this.securityGroupIds = securityGroupIds;
return this;
}
public NetworkInterfaces build() {
return new NetworkInterfaces(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class SchedulerOptions extends TeaModel {
@com.aliyun.core.annotation.NameInMap("ManagedPrivateSpaceId")
private String managedPrivateSpaceId;
private SchedulerOptions(Builder builder) {
this.managedPrivateSpaceId = builder.managedPrivateSpaceId;
}
public static Builder builder() {
return new Builder();
}
public static SchedulerOptions create() {
return builder().build();
}
/**
* @return managedPrivateSpaceId
*/
public String getManagedPrivateSpaceId() {
return this.managedPrivateSpaceId;
}
public static final class Builder {
private String managedPrivateSpaceId;
/**
*
* This parameter is in invitational preview and is not available for use.
*
*
* example:
* testManagedPrivateSpaceId
*/
public Builder managedPrivateSpaceId(String managedPrivateSpaceId) {
this.managedPrivateSpaceId = managedPrivateSpaceId;
return this;
}
public SchedulerOptions build() {
return new SchedulerOptions(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class SecurityOptions extends TeaModel {
@com.aliyun.core.annotation.NameInMap("ConfidentialComputingMode")
private String confidentialComputingMode;
private SecurityOptions(Builder builder) {
this.confidentialComputingMode = builder.confidentialComputingMode;
}
public static Builder builder() {
return new Builder();
}
public static SecurityOptions create() {
return builder().build();
}
/**
* @return confidentialComputingMode
*/
public String getConfidentialComputingMode() {
return this.confidentialComputingMode;
}
public static final class Builder {
private String confidentialComputingMode;
/**
* 机密计算模式。可能值:
*
* - Enclave:表示ECS实例使用Enclave构建机密计算环境。更多信息,请参见使用Enclave构建机密计算环境。
* - TDX:表示构建TDX机密计算环境。更多信息,请参见构建TDX机密计算环境。
*
*
* example:
* TDX
*/
public Builder confidentialComputingMode(String confidentialComputingMode) {
this.confidentialComputingMode = confidentialComputingMode;
return this;
}
public SecurityOptions build() {
return new SecurityOptions(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class SpotPriceLimits extends TeaModel {
@com.aliyun.core.annotation.NameInMap("InstanceType")
private String instanceType;
@com.aliyun.core.annotation.NameInMap("PriceLimit")
private Float priceLimit;
private SpotPriceLimits(Builder builder) {
this.instanceType = builder.instanceType;
this.priceLimit = builder.priceLimit;
}
public static Builder builder() {
return new Builder();
}
public static SpotPriceLimits create() {
return builder().build();
}
/**
* @return instanceType
*/
public String getInstanceType() {
return this.instanceType;
}
/**
* @return priceLimit
*/
public Float getPriceLimit() {
return this.priceLimit;
}
public static final class Builder {
private String instanceType;
private Float priceLimit;
/**
* The instance type of the preemptible instances.
*
* example:
* ecs.g6.large
*/
public Builder instanceType(String instanceType) {
this.instanceType = instanceType;
return this;
}
/**
* The price limit of the preemptible instances.
*
* example:
* 0.125
*/
public Builder priceLimit(Float priceLimit) {
this.priceLimit = priceLimit;
return this;
}
public SpotPriceLimits build() {
return new SpotPriceLimits(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class Tags extends TeaModel {
@com.aliyun.core.annotation.NameInMap("Key")
private String key;
@com.aliyun.core.annotation.NameInMap("Value")
private String value;
private Tags(Builder builder) {
this.key = builder.key;
this.value = builder.value;
}
public static Builder builder() {
return new Builder();
}
public static Tags create() {
return builder().build();
}
/**
* @return key
*/
public String getKey() {
return this.key;
}
/**
* @return value
*/
public String getValue() {
return this.value;
}
public static final class Builder {
private String key;
private String value;
/**
* The tag key of the ECS instance. You can specify up to 20 tags for each ECS instance.
* The tag key cannot be an empty string. The tag key can be up to 128 characters in length. It cannot start with acs:
or aliyun
and cannot contain http://
or https://
.
*
* example:
* binary
*/
public Builder key(String key) {
this.key = key;
return this;
}
/**
* The tag value of the ECS instance. You can specify up to 20 tags for each ECS instance.
* The tag value can be an empty string. The tag value can be up to 128 characters in length. It cannot start with acs:
and cannot contain http://
or https://
.
*
* example:
* alterTable
*/
public Builder value(String value) {
this.value = value;
return this;
}
public Tags build() {
return new Tags(this);
}
}
}
/**
*
* {@link DescribeScalingConfigurationsResponseBody} extends {@link TeaModel}
*
* DescribeScalingConfigurationsResponseBody
*/
public static class ScalingConfigurations extends TeaModel {
@com.aliyun.core.annotation.NameInMap("Affinity")
private String affinity;
@com.aliyun.core.annotation.NameInMap("Cpu")
private Integer cpu;
@com.aliyun.core.annotation.NameInMap("CreationTime")
private String creationTime;
@com.aliyun.core.annotation.NameInMap("CreditSpecification")
private String creditSpecification;
@com.aliyun.core.annotation.NameInMap("CustomPriorities")
private java.util.List < CustomPriorities> customPriorities;
@com.aliyun.core.annotation.NameInMap("DataDisks")
private java.util.List < DataDisks> dataDisks;
@com.aliyun.core.annotation.NameInMap("DedicatedHostClusterId")
private String dedicatedHostClusterId;
@com.aliyun.core.annotation.NameInMap("DedicatedHostId")
private String dedicatedHostId;
@com.aliyun.core.annotation.NameInMap("DeletionProtection")
private Boolean deletionProtection;
@com.aliyun.core.annotation.NameInMap("DeploymentSetId")
private String deploymentSetId;
@com.aliyun.core.annotation.NameInMap("HostName")
private String hostName;
@com.aliyun.core.annotation.NameInMap("HpcClusterId")
private String hpcClusterId;
@com.aliyun.core.annotation.NameInMap("HttpEndpoint")
private String httpEndpoint;
@com.aliyun.core.annotation.NameInMap("HttpTokens")
private String httpTokens;
@com.aliyun.core.annotation.NameInMap("ImageFamily")
private String imageFamily;
@com.aliyun.core.annotation.NameInMap("ImageId")
private String imageId;
@com.aliyun.core.annotation.NameInMap("ImageName")
private String imageName;
@com.aliyun.core.annotation.NameInMap("ImageOptionsLoginAsNonRoot")
private Boolean imageOptionsLoginAsNonRoot;
@com.aliyun.core.annotation.NameInMap("ImageOwnerAlias")
private String imageOwnerAlias;
@com.aliyun.core.annotation.NameInMap("InstanceDescription")
private String instanceDescription;
@com.aliyun.core.annotation.NameInMap("InstanceGeneration")
private String instanceGeneration;
@com.aliyun.core.annotation.NameInMap("InstanceName")
private String instanceName;
@com.aliyun.core.annotation.NameInMap("InstancePatternInfos")
private java.util.List < InstancePatternInfos> instancePatternInfos;
@com.aliyun.core.annotation.NameInMap("InstanceType")
private String instanceType;
@com.aliyun.core.annotation.NameInMap("InstanceTypes")
private java.util.List < String > instanceTypes;
@com.aliyun.core.annotation.NameInMap("InternetChargeType")
private String internetChargeType;
@com.aliyun.core.annotation.NameInMap("InternetMaxBandwidthIn")
private Integer internetMaxBandwidthIn;
@com.aliyun.core.annotation.NameInMap("InternetMaxBandwidthOut")
private Integer internetMaxBandwidthOut;
@com.aliyun.core.annotation.NameInMap("IoOptimized")
private String ioOptimized;
@com.aliyun.core.annotation.NameInMap("Ipv6AddressCount")
private Integer ipv6AddressCount;
@com.aliyun.core.annotation.NameInMap("KeyPairName")
private String keyPairName;
@com.aliyun.core.annotation.NameInMap("LifecycleState")
private String lifecycleState;
@com.aliyun.core.annotation.NameInMap("LoadBalancerWeight")
private Integer loadBalancerWeight;
@com.aliyun.core.annotation.NameInMap("Memory")
private Integer memory;
@com.aliyun.core.annotation.NameInMap("NetworkInterfaces")
private java.util.List < NetworkInterfaces> networkInterfaces;
@com.aliyun.core.annotation.NameInMap("PasswordInherit")
private Boolean passwordInherit;
@com.aliyun.core.annotation.NameInMap("PasswordSetted")
private Boolean passwordSetted;
@com.aliyun.core.annotation.NameInMap("PrivatePoolOptions.Id")
private String privatePoolOptions_id;
@com.aliyun.core.annotation.NameInMap("PrivatePoolOptions.MatchCriteria")
private String privatePoolOptions_matchCriteria;
@com.aliyun.core.annotation.NameInMap("RamRoleName")
private String ramRoleName;
@com.aliyun.core.annotation.NameInMap("ResourceGroupId")
private String resourceGroupId;
@com.aliyun.core.annotation.NameInMap("ScalingConfigurationId")
private String scalingConfigurationId;
@com.aliyun.core.annotation.NameInMap("ScalingConfigurationName")
private String scalingConfigurationName;
@com.aliyun.core.annotation.NameInMap("ScalingGroupId")
private String scalingGroupId;
@com.aliyun.core.annotation.NameInMap("SchedulerOptions")
private SchedulerOptions schedulerOptions;
@com.aliyun.core.annotation.NameInMap("SecurityEnhancementStrategy")
private String securityEnhancementStrategy;
@com.aliyun.core.annotation.NameInMap("SecurityGroupId")
private String securityGroupId;
@com.aliyun.core.annotation.NameInMap("SecurityGroupIds")
private java.util.List < String > securityGroupIds;
@com.aliyun.core.annotation.NameInMap("SecurityOptions")
private SecurityOptions securityOptions;
@com.aliyun.core.annotation.NameInMap("SpotDuration")
private Integer spotDuration;
@com.aliyun.core.annotation.NameInMap("SpotInterruptionBehavior")
private String spotInterruptionBehavior;
@com.aliyun.core.annotation.NameInMap("SpotPriceLimits")
private java.util.List < SpotPriceLimits> spotPriceLimits;
@com.aliyun.core.annotation.NameInMap("SpotStrategy")
private String spotStrategy;
@com.aliyun.core.annotation.NameInMap("StorageSetId")
private String storageSetId;
@com.aliyun.core.annotation.NameInMap("StorageSetPartitionNumber")
private Integer storageSetPartitionNumber;
@com.aliyun.core.annotation.NameInMap("SystemDiskAutoSnapshotPolicyId")
private String systemDiskAutoSnapshotPolicyId;
@com.aliyun.core.annotation.NameInMap("SystemDiskBurstingEnabled")
private Boolean systemDiskBurstingEnabled;
@com.aliyun.core.annotation.NameInMap("SystemDiskCategories")
private java.util.List < String > systemDiskCategories;
@com.aliyun.core.annotation.NameInMap("SystemDiskCategory")
private String systemDiskCategory;
@com.aliyun.core.annotation.NameInMap("SystemDiskDescription")
private String systemDiskDescription;
@com.aliyun.core.annotation.NameInMap("SystemDiskEncryptAlgorithm")
private String systemDiskEncryptAlgorithm;
@com.aliyun.core.annotation.NameInMap("SystemDiskEncrypted")
private Boolean systemDiskEncrypted;
@com.aliyun.core.annotation.NameInMap("SystemDiskKMSKeyId")
private String systemDiskKMSKeyId;
@com.aliyun.core.annotation.NameInMap("SystemDiskName")
private String systemDiskName;
@com.aliyun.core.annotation.NameInMap("SystemDiskPerformanceLevel")
private String systemDiskPerformanceLevel;
@com.aliyun.core.annotation.NameInMap("SystemDiskProvisionedIops")
private Long systemDiskProvisionedIops;
@com.aliyun.core.annotation.NameInMap("SystemDiskSize")
private Integer systemDiskSize;
@com.aliyun.core.annotation.NameInMap("Tags")
private java.util.List < Tags> tags;
@com.aliyun.core.annotation.NameInMap("Tenancy")
private String tenancy;
@com.aliyun.core.annotation.NameInMap("UserData")
private String userData;
@com.aliyun.core.annotation.NameInMap("WeightedCapacities")
private java.util.List < Integer > weightedCapacities;
@com.aliyun.core.annotation.NameInMap("ZoneId")
private String zoneId;
private ScalingConfigurations(Builder builder) {
this.affinity = builder.affinity;
this.cpu = builder.cpu;
this.creationTime = builder.creationTime;
this.creditSpecification = builder.creditSpecification;
this.customPriorities = builder.customPriorities;
this.dataDisks = builder.dataDisks;
this.dedicatedHostClusterId = builder.dedicatedHostClusterId;
this.dedicatedHostId = builder.dedicatedHostId;
this.deletionProtection = builder.deletionProtection;
this.deploymentSetId = builder.deploymentSetId;
this.hostName = builder.hostName;
this.hpcClusterId = builder.hpcClusterId;
this.httpEndpoint = builder.httpEndpoint;
this.httpTokens = builder.httpTokens;
this.imageFamily = builder.imageFamily;
this.imageId = builder.imageId;
this.imageName = builder.imageName;
this.imageOptionsLoginAsNonRoot = builder.imageOptionsLoginAsNonRoot;
this.imageOwnerAlias = builder.imageOwnerAlias;
this.instanceDescription = builder.instanceDescription;
this.instanceGeneration = builder.instanceGeneration;
this.instanceName = builder.instanceName;
this.instancePatternInfos = builder.instancePatternInfos;
this.instanceType = builder.instanceType;
this.instanceTypes = builder.instanceTypes;
this.internetChargeType = builder.internetChargeType;
this.internetMaxBandwidthIn = builder.internetMaxBandwidthIn;
this.internetMaxBandwidthOut = builder.internetMaxBandwidthOut;
this.ioOptimized = builder.ioOptimized;
this.ipv6AddressCount = builder.ipv6AddressCount;
this.keyPairName = builder.keyPairName;
this.lifecycleState = builder.lifecycleState;
this.loadBalancerWeight = builder.loadBalancerWeight;
this.memory = builder.memory;
this.networkInterfaces = builder.networkInterfaces;
this.passwordInherit = builder.passwordInherit;
this.passwordSetted = builder.passwordSetted;
this.privatePoolOptions_id = builder.privatePoolOptions_id;
this.privatePoolOptions_matchCriteria = builder.privatePoolOptions_matchCriteria;
this.ramRoleName = builder.ramRoleName;
this.resourceGroupId = builder.resourceGroupId;
this.scalingConfigurationId = builder.scalingConfigurationId;
this.scalingConfigurationName = builder.scalingConfigurationName;
this.scalingGroupId = builder.scalingGroupId;
this.schedulerOptions = builder.schedulerOptions;
this.securityEnhancementStrategy = builder.securityEnhancementStrategy;
this.securityGroupId = builder.securityGroupId;
this.securityGroupIds = builder.securityGroupIds;
this.securityOptions = builder.securityOptions;
this.spotDuration = builder.spotDuration;
this.spotInterruptionBehavior = builder.spotInterruptionBehavior;
this.spotPriceLimits = builder.spotPriceLimits;
this.spotStrategy = builder.spotStrategy;
this.storageSetId = builder.storageSetId;
this.storageSetPartitionNumber = builder.storageSetPartitionNumber;
this.systemDiskAutoSnapshotPolicyId = builder.systemDiskAutoSnapshotPolicyId;
this.systemDiskBurstingEnabled = builder.systemDiskBurstingEnabled;
this.systemDiskCategories = builder.systemDiskCategories;
this.systemDiskCategory = builder.systemDiskCategory;
this.systemDiskDescription = builder.systemDiskDescription;
this.systemDiskEncryptAlgorithm = builder.systemDiskEncryptAlgorithm;
this.systemDiskEncrypted = builder.systemDiskEncrypted;
this.systemDiskKMSKeyId = builder.systemDiskKMSKeyId;
this.systemDiskName = builder.systemDiskName;
this.systemDiskPerformanceLevel = builder.systemDiskPerformanceLevel;
this.systemDiskProvisionedIops = builder.systemDiskProvisionedIops;
this.systemDiskSize = builder.systemDiskSize;
this.tags = builder.tags;
this.tenancy = builder.tenancy;
this.userData = builder.userData;
this.weightedCapacities = builder.weightedCapacities;
this.zoneId = builder.zoneId;
}
public static Builder builder() {
return new Builder();
}
public static ScalingConfigurations create() {
return builder().build();
}
/**
* @return affinity
*/
public String getAffinity() {
return this.affinity;
}
/**
* @return cpu
*/
public Integer getCpu() {
return this.cpu;
}
/**
* @return creationTime
*/
public String getCreationTime() {
return this.creationTime;
}
/**
* @return creditSpecification
*/
public String getCreditSpecification() {
return this.creditSpecification;
}
/**
* @return customPriorities
*/
public java.util.List < CustomPriorities> getCustomPriorities() {
return this.customPriorities;
}
/**
* @return dataDisks
*/
public java.util.List < DataDisks> getDataDisks() {
return this.dataDisks;
}
/**
* @return dedicatedHostClusterId
*/
public String getDedicatedHostClusterId() {
return this.dedicatedHostClusterId;
}
/**
* @return dedicatedHostId
*/
public String getDedicatedHostId() {
return this.dedicatedHostId;
}
/**
* @return deletionProtection
*/
public Boolean getDeletionProtection() {
return this.deletionProtection;
}
/**
* @return deploymentSetId
*/
public String getDeploymentSetId() {
return this.deploymentSetId;
}
/**
* @return hostName
*/
public String getHostName() {
return this.hostName;
}
/**
* @return hpcClusterId
*/
public String getHpcClusterId() {
return this.hpcClusterId;
}
/**
* @return httpEndpoint
*/
public String getHttpEndpoint() {
return this.httpEndpoint;
}
/**
* @return httpTokens
*/
public String getHttpTokens() {
return this.httpTokens;
}
/**
* @return imageFamily
*/
public String getImageFamily() {
return this.imageFamily;
}
/**
* @return imageId
*/
public String getImageId() {
return this.imageId;
}
/**
* @return imageName
*/
public String getImageName() {
return this.imageName;
}
/**
* @return imageOptionsLoginAsNonRoot
*/
public Boolean getImageOptionsLoginAsNonRoot() {
return this.imageOptionsLoginAsNonRoot;
}
/**
* @return imageOwnerAlias
*/
public String getImageOwnerAlias() {
return this.imageOwnerAlias;
}
/**
* @return instanceDescription
*/
public String getInstanceDescription() {
return this.instanceDescription;
}
/**
* @return instanceGeneration
*/
public String getInstanceGeneration() {
return this.instanceGeneration;
}
/**
* @return instanceName
*/
public String getInstanceName() {
return this.instanceName;
}
/**
* @return instancePatternInfos
*/
public java.util.List < InstancePatternInfos> getInstancePatternInfos() {
return this.instancePatternInfos;
}
/**
* @return instanceType
*/
public String getInstanceType() {
return this.instanceType;
}
/**
* @return instanceTypes
*/
public java.util.List < String > getInstanceTypes() {
return this.instanceTypes;
}
/**
* @return internetChargeType
*/
public String getInternetChargeType() {
return this.internetChargeType;
}
/**
* @return internetMaxBandwidthIn
*/
public Integer getInternetMaxBandwidthIn() {
return this.internetMaxBandwidthIn;
}
/**
* @return internetMaxBandwidthOut
*/
public Integer getInternetMaxBandwidthOut() {
return this.internetMaxBandwidthOut;
}
/**
* @return ioOptimized
*/
public String getIoOptimized() {
return this.ioOptimized;
}
/**
* @return ipv6AddressCount
*/
public Integer getIpv6AddressCount() {
return this.ipv6AddressCount;
}
/**
* @return keyPairName
*/
public String getKeyPairName() {
return this.keyPairName;
}
/**
* @return lifecycleState
*/
public String getLifecycleState() {
return this.lifecycleState;
}
/**
* @return loadBalancerWeight
*/
public Integer getLoadBalancerWeight() {
return this.loadBalancerWeight;
}
/**
* @return memory
*/
public Integer getMemory() {
return this.memory;
}
/**
* @return networkInterfaces
*/
public java.util.List < NetworkInterfaces> getNetworkInterfaces() {
return this.networkInterfaces;
}
/**
* @return passwordInherit
*/
public Boolean getPasswordInherit() {
return this.passwordInherit;
}
/**
* @return passwordSetted
*/
public Boolean getPasswordSetted() {
return this.passwordSetted;
}
/**
* @return privatePoolOptions_id
*/
public String getPrivatePoolOptions_id() {
return this.privatePoolOptions_id;
}
/**
* @return privatePoolOptions_matchCriteria
*/
public String getPrivatePoolOptions_matchCriteria() {
return this.privatePoolOptions_matchCriteria;
}
/**
* @return ramRoleName
*/
public String getRamRoleName() {
return this.ramRoleName;
}
/**
* @return resourceGroupId
*/
public String getResourceGroupId() {
return this.resourceGroupId;
}
/**
* @return scalingConfigurationId
*/
public String getScalingConfigurationId() {
return this.scalingConfigurationId;
}
/**
* @return scalingConfigurationName
*/
public String getScalingConfigurationName() {
return this.scalingConfigurationName;
}
/**
* @return scalingGroupId
*/
public String getScalingGroupId() {
return this.scalingGroupId;
}
/**
* @return schedulerOptions
*/
public SchedulerOptions getSchedulerOptions() {
return this.schedulerOptions;
}
/**
* @return securityEnhancementStrategy
*/
public String getSecurityEnhancementStrategy() {
return this.securityEnhancementStrategy;
}
/**
* @return securityGroupId
*/
public String getSecurityGroupId() {
return this.securityGroupId;
}
/**
* @return securityGroupIds
*/
public java.util.List < String > getSecurityGroupIds() {
return this.securityGroupIds;
}
/**
* @return securityOptions
*/
public SecurityOptions getSecurityOptions() {
return this.securityOptions;
}
/**
* @return spotDuration
*/
public Integer getSpotDuration() {
return this.spotDuration;
}
/**
* @return spotInterruptionBehavior
*/
public String getSpotInterruptionBehavior() {
return this.spotInterruptionBehavior;
}
/**
* @return spotPriceLimits
*/
public java.util.List < SpotPriceLimits> getSpotPriceLimits() {
return this.spotPriceLimits;
}
/**
* @return spotStrategy
*/
public String getSpotStrategy() {
return this.spotStrategy;
}
/**
* @return storageSetId
*/
public String getStorageSetId() {
return this.storageSetId;
}
/**
* @return storageSetPartitionNumber
*/
public Integer getStorageSetPartitionNumber() {
return this.storageSetPartitionNumber;
}
/**
* @return systemDiskAutoSnapshotPolicyId
*/
public String getSystemDiskAutoSnapshotPolicyId() {
return this.systemDiskAutoSnapshotPolicyId;
}
/**
* @return systemDiskBurstingEnabled
*/
public Boolean getSystemDiskBurstingEnabled() {
return this.systemDiskBurstingEnabled;
}
/**
* @return systemDiskCategories
*/
public java.util.List < String > getSystemDiskCategories() {
return this.systemDiskCategories;
}
/**
* @return systemDiskCategory
*/
public String getSystemDiskCategory() {
return this.systemDiskCategory;
}
/**
* @return systemDiskDescription
*/
public String getSystemDiskDescription() {
return this.systemDiskDescription;
}
/**
* @return systemDiskEncryptAlgorithm
*/
public String getSystemDiskEncryptAlgorithm() {
return this.systemDiskEncryptAlgorithm;
}
/**
* @return systemDiskEncrypted
*/
public Boolean getSystemDiskEncrypted() {
return this.systemDiskEncrypted;
}
/**
* @return systemDiskKMSKeyId
*/
public String getSystemDiskKMSKeyId() {
return this.systemDiskKMSKeyId;
}
/**
* @return systemDiskName
*/
public String getSystemDiskName() {
return this.systemDiskName;
}
/**
* @return systemDiskPerformanceLevel
*/
public String getSystemDiskPerformanceLevel() {
return this.systemDiskPerformanceLevel;
}
/**
* @return systemDiskProvisionedIops
*/
public Long getSystemDiskProvisionedIops() {
return this.systemDiskProvisionedIops;
}
/**
* @return systemDiskSize
*/
public Integer getSystemDiskSize() {
return this.systemDiskSize;
}
/**
* @return tags
*/
public java.util.List < Tags> getTags() {
return this.tags;
}
/**
* @return tenancy
*/
public String getTenancy() {
return this.tenancy;
}
/**
* @return userData
*/
public String getUserData() {
return this.userData;
}
/**
* @return weightedCapacities
*/
public java.util.List < Integer > getWeightedCapacities() {
return this.weightedCapacities;
}
/**
* @return zoneId
*/
public String getZoneId() {
return this.zoneId;
}
public static final class Builder {
private String affinity;
private Integer cpu;
private String creationTime;
private String creditSpecification;
private java.util.List < CustomPriorities> customPriorities;
private java.util.List < DataDisks> dataDisks;
private String dedicatedHostClusterId;
private String dedicatedHostId;
private Boolean deletionProtection;
private String deploymentSetId;
private String hostName;
private String hpcClusterId;
private String httpEndpoint;
private String httpTokens;
private String imageFamily;
private String imageId;
private String imageName;
private Boolean imageOptionsLoginAsNonRoot;
private String imageOwnerAlias;
private String instanceDescription;
private String instanceGeneration;
private String instanceName;
private java.util.List < InstancePatternInfos> instancePatternInfos;
private String instanceType;
private java.util.List < String > instanceTypes;
private String internetChargeType;
private Integer internetMaxBandwidthIn;
private Integer internetMaxBandwidthOut;
private String ioOptimized;
private Integer ipv6AddressCount;
private String keyPairName;
private String lifecycleState;
private Integer loadBalancerWeight;
private Integer memory;
private java.util.List < NetworkInterfaces> networkInterfaces;
private Boolean passwordInherit;
private Boolean passwordSetted;
private String privatePoolOptions_id;
private String privatePoolOptions_matchCriteria;
private String ramRoleName;
private String resourceGroupId;
private String scalingConfigurationId;
private String scalingConfigurationName;
private String scalingGroupId;
private SchedulerOptions schedulerOptions;
private String securityEnhancementStrategy;
private String securityGroupId;
private java.util.List < String > securityGroupIds;
private SecurityOptions securityOptions;
private Integer spotDuration;
private String spotInterruptionBehavior;
private java.util.List < SpotPriceLimits> spotPriceLimits;
private String spotStrategy;
private String storageSetId;
private Integer storageSetPartitionNumber;
private String systemDiskAutoSnapshotPolicyId;
private Boolean systemDiskBurstingEnabled;
private java.util.List < String > systemDiskCategories;
private String systemDiskCategory;
private String systemDiskDescription;
private String systemDiskEncryptAlgorithm;
private Boolean systemDiskEncrypted;
private String systemDiskKMSKeyId;
private String systemDiskName;
private String systemDiskPerformanceLevel;
private Long systemDiskProvisionedIops;
private Integer systemDiskSize;
private java.util.List < Tags> tags;
private String tenancy;
private String userData;
private java.util.List < Integer > weightedCapacities;
private String zoneId;
/**
* Indicates whether the ECS instance on a dedicated host is associated with the dedicated host. Valid values:
*
* - default: The instance is not associated with the dedicated host. If you restart an instance that was stopped in Economical Mode and the original dedicated host of the instance has insufficient resources, the instance is automatically deployed to another dedicated host in the automatic deployment resource pool.
* - host: The instance is associated with the dedicated host. If you restart an instance that was stopped in Economical Mode, the instance remains on the original dedicated host. If the available resources of the original dedicated host are insufficient, the instance cannot be restarted.
*
*
* example:
* default
*/
public Builder affinity(String affinity) {
this.affinity = affinity;
return this;
}
/**
* The number of vCPUs.
* You can specify CPU and Memory to define the range of instance types. For example, if you set CPU to 2 and Memory to 16, the instance types that have 2 vCPUs and 16 GiB are returned. If you specify CPU and Memory, Auto Scaling determines the available instance types based on factors such as I/O optimization requirements and zones and preferentially creates instances by using the lowest-priced instance type.
*
* You can specify CPU and Memory to define instance types only when you set Scaling Policy to Cost Optimization and no instance type is specified in the scaling configuration.
*
*
* example:
* 2
*/
public Builder cpu(Integer cpu) {
this.cpu = cpu;
return this;
}
/**
* The time at which the scaling configuration was created.
*
* example:
* 2014-08-14T10:58Z
*/
public Builder creationTime(String creationTime) {
this.creationTime = creationTime;
return this;
}
/**
* The performance mode of the burstable instances. Valid values:
*
* - Standard: the standard mode. For more information, see the "Standard mode" section in the Overview of burstable instances topic.
* - Unlimited: the unlimited mode. For more information, see the "Unlimited mode" section in Overview of burstable instances.
*
*
* example:
* Standard
*/
public Builder creditSpecification(String creditSpecification) {
this.creditSpecification = creditSpecification;
return this;
}
/**
* The priority of the custom ECS instance type + vSwitch combination.
*
* This parameter takes effect only when Scaling Policy of the scaling group is set to Priority Policy.
*
* If Auto Scaling cannot create ECS instances by using the custom ECS instance type + vSwitch combination of the highest priority, Auto Scaling creates ECS instances by using the custom ECS instance type + vSwitch combination of the next highest priority.
*
* If you specify the priorities of only a portion of custom ECS instance type + vSwitch combinations, Auto Scaling preferentially creates ECS instances by using the custom combinations that have specified priorities. If the custom combinations that have specified priorities do not provide sufficient resources, Auto Scaling creates ECS instances by using the custom combinations that do not have specified priorities based on the specified orders of vSwitches and instance types.
*
*
* - Example: the specified order of vSwitches for your scaling group is vsw1 and vsw2 and the specified order of instance types in your scaling configuration is type1 and type 2. In addition, you use CustomPriorities to specify ["vsw2+type2", "vsw1+type2"]. In this example, the vsw2+type2 combination has the highest priority and the vsw2+type1 combination has the lowest priority. The vsw1+type2 combination has a higher priority than the vsw1+type1 combination.
*
*/
public Builder customPriorities(java.util.List < CustomPriorities> customPriorities) {
this.customPriorities = customPriorities;
return this;
}
/**
* The data disks.
*/
public Builder dataDisks(java.util.List < DataDisks> dataDisks) {
this.dataDisks = dataDisks;
return this;
}
/**
* The ID of the dedicated host cluster.
*
* example:
* dc-zm04u8r3lohsq****
*/
public Builder dedicatedHostClusterId(String dedicatedHostClusterId) {
this.dedicatedHostClusterId = dedicatedHostClusterId;
return this;
}
/**
* The ID of the dedicated host on which the ECS instance is created. Preemptible instances are not supported by dedicated hosts. Therefore, if you specify DedicatedHostId, SpotStrategy and SpotPriceLimit are ignored.
* You can call the DescribeDedicatedHosts operation to query the IDs of dedicated hosts.
*
* example:
* dh-bp67acfmxazb4p****
*/
public Builder dedicatedHostId(String dedicatedHostId) {
this.dedicatedHostId = dedicatedHostId;
return this;
}
/**
* Indicates whether Release Protection is enabled for the ECS instances. You can specify this parameter to determine whether the ECS instances can be deleted by using the ECS console or calling the DeleteInstance operation. Valid values:
*
* - true: Release Protection is enabled for the ECS instances. You cannot delete the ECS instances by using the ECS console or calling the DeleteInstance operation.
* - false: Release Protection is disabled for the ECS instances. You can delete the ECS instances by using the ECS console or calling the DeleteInstance operation.
*
*
* You can enable Release Protection for only pay-as-you-go instances to prevent unexpected instance deletion during scale-in events. The Release Protection feature does not affect normal scaling activities. In other words, an instance that meets the criteria of scale-in policies may be removed from a scaling group during a scale-in event even if you enabled Release Protection for the instance.
*
*
* example:
* false
*/
public Builder deletionProtection(Boolean deletionProtection) {
this.deletionProtection = deletionProtection;
return this;
}
/**
* The ID of the deployment set to which the Elastic Compute Service (ECS) instances belong.
*
* example:
* ds-bp1frxuzdg87zh4p****
*/
public Builder deploymentSetId(String deploymentSetId) {
this.deploymentSetId = deploymentSetId;
return this;
}
/**
* The hostname series of the ECS instances.
*
* example:
* LocalHost
*/
public Builder hostName(String hostName) {
this.hostName = hostName;
return this;
}
/**
* The ID of the High Performance Computing (HPC) cluster to which the ECS instances belong.
*
* example:
* hpc-clus****
*/
public Builder hpcClusterId(String hpcClusterId) {
this.hpcClusterId = hpcClusterId;
return this;
}
/**
* HttpEndpoint.
*/
public Builder httpEndpoint(String httpEndpoint) {
this.httpEndpoint = httpEndpoint;
return this;
}
/**
* HttpTokens.
*/
public Builder httpTokens(String httpTokens) {
this.httpTokens = httpTokens;
return this;
}
/**
* The name of the image family. You can specify this parameter to obtain the latest available images in the current image family for instance creation. If you specify ImageId, you cannot specify ImageFamily
.
*
* example:
* hangzhou-daily-update
*/
public Builder imageFamily(String imageFamily) {
this.imageFamily = imageFamily;
return this;
}
/**
* The ID of the image file that provides the image resource for Auto Scaling to create ECS instances.
*
* example:
* centos6u5_64_20G_aliaegis_2014****.vhd
*/
public Builder imageId(String imageId) {
this.imageId = imageId;
return this;
}
/**
* The name of the image file.
*
* example:
* centos6u5_64_20G_aliaegis_2014****.vhd
*/
public Builder imageName(String imageName) {
this.imageName = imageName;
return this;
}
/**
* Indicates whether the ecs-user username can be used to log on to an ECS instance created from the scaling configuration. Valid values:
*
* - true
* - false
*
*
* example:
* false
*/
public Builder imageOptionsLoginAsNonRoot(Boolean imageOptionsLoginAsNonRoot) {
this.imageOptionsLoginAsNonRoot = imageOptionsLoginAsNonRoot;
return this;
}
/**
* The image source. Valid values:
*
* - system: a public image provided by Alibaba Cloud
* - self: a custom image that you created
* - others: a shared image from another Alibaba Cloud account or a community image published by another Alibaba Cloud account
* - marketplace: an Alibaba Cloud Marketplace image
*
*
* example:
* system
*/
public Builder imageOwnerAlias(String imageOwnerAlias) {
this.imageOwnerAlias = imageOwnerAlias;
return this;
}
/**
* The description of the ECS instances.
*
* example:
* FinanceDept
*/
public Builder instanceDescription(String instanceDescription) {
this.instanceDescription = instanceDescription;
return this;
}
/**
* The generation of the ECS instances.
*
* example:
* ecs-3
*/
public Builder instanceGeneration(String instanceGeneration) {
this.instanceGeneration = instanceGeneration;
return this;
}
/**
* The naming series of the ECS instances.
*
* example:
* instance****
*/
public Builder instanceName(String instanceName) {
this.instanceName = instanceName;
return this;
}
/**
* The intelligent configuration settings, which determine the available instance types.
*/
public Builder instancePatternInfos(java.util.List < InstancePatternInfos> instancePatternInfos) {
this.instancePatternInfos = instancePatternInfos;
return this;
}
/**
* The instance types of the ECS instances.
*
* example:
* ecs.g6.large
*/
public Builder instanceType(String instanceType) {
this.instanceType = instanceType;
return this;
}
/**
* The ECS instance types.
*/
public Builder instanceTypes(java.util.List < String > instanceTypes) {
this.instanceTypes = instanceTypes;
return this;
}
/**
* The billing method for network usage. Valid values:
*
* - PayByBandwidth: pay-by-bandwidth. You are charged for the bandwidth that you specified by using InternetMaxBandwidthOut.
* - PayByTraffic: pay-by-traffic. You are charged for the actual traffic that you used. InternetMaxBandwidthOut specifies only the maximum available bandwidth.
*
*
* example:
* PayByTraffic
*/
public Builder internetChargeType(String internetChargeType) {
this.internetChargeType = internetChargeType;
return this;
}
/**
* The maximum inbound bandwidth. Unit: Mbit/s. Valid values: 1 to 200.
*
* example:
* 200
*/
public Builder internetMaxBandwidthIn(Integer internetMaxBandwidthIn) {
this.internetMaxBandwidthIn = internetMaxBandwidthIn;
return this;
}
/**
* The maximum outbound bandwidth. Unit: Mbit/s. Valid values:
*
* - 0 to 1024 if you set InternetChargeType to PayByBandwidth. If you leave this parameter empty, this parameter is automatically set to 0.
* - 0 to 1024 if you set InternetChargeType to PayByTraffic. If you leave this parameter empty, an error is returned.
*
*
* example:
* 0
*/
public Builder internetMaxBandwidthOut(Integer internetMaxBandwidthOut) {
this.internetMaxBandwidthOut = internetMaxBandwidthOut;
return this;
}
/**
* Indicates whether the ECS instances are I/O optimized. Valid values:
*
* - none: The ECS instances are not I/O optimized.
* - optimized: The ECS instances are I/O optimized.
*
*
* example:
* none
*/
public Builder ioOptimized(String ioOptimized) {
this.ioOptimized = ioOptimized;
return this;
}
/**
* The number of randomly generated IPv6 addresses that are allocated to the elastic network interface (ENI).
*
* example:
* 1
*/
public Builder ipv6AddressCount(Integer ipv6AddressCount) {
this.ipv6AddressCount = ipv6AddressCount;
return this;
}
/**
* The name of the key pair that is used to log on to an ECS instance created from the scaling configuration.
*
* example:
* keypair****
*/
public Builder keyPairName(String keyPairName) {
this.keyPairName = keyPairName;
return this;
}
/**
* The status of the scaling configuration in the scaling group. Valid values:
*
* - Active: The scaling configuration is active in the scaling group. Auto Scaling uses the scaling configuration that is in the Active state to create ECS instances during scale-out events.
* - Inactive: The scaling configuration is inactive in the scaling group. Scaling configurations that are in the Inactive state are still contained in the scaling group, but Auto Scaling does not use the inactive scaling configurations to create ECS instances during scale-out events.
*
*
* example:
* Active
*/
public Builder lifecycleState(String lifecycleState) {
this.lifecycleState = lifecycleState;
return this;
}
/**
* The weight of an ECS instance as a backend server. Valid values: 1 to 100.
*
* example:
* 1
*/
public Builder loadBalancerWeight(Integer loadBalancerWeight) {
this.loadBalancerWeight = loadBalancerWeight;
return this;
}
/**
* The memory size. Unit: GiB.
* You can specify CPU and Memory to define the range of instance types. For example, if you set CPU to 2 and Memory to 16, the instance types that have 2 vCPUs and 16 GiB are returned. If you specify CPU and Memory, Auto Scaling determines the available instance types based on factors such as I/O optimization requirements and zones and preferentially creates instances by using the lowest-priced instance type.
*
* You can specify CPU and Memory to define instance types only when you set Scaling Policy to Cost Optimization and no instance type is specified in the scaling configuration.
*
*
* example:
* 16
*/
public Builder memory(Integer memory) {
this.memory = memory;
return this;
}
/**
* The ENIs.
*/
public Builder networkInterfaces(java.util.List < NetworkInterfaces> networkInterfaces) {
this.networkInterfaces = networkInterfaces;
return this;
}
/**
* Indicates whether the password preconfigured in the image is used.
*
* example:
* true
*/
public Builder passwordInherit(Boolean passwordInherit) {
this.passwordInherit = passwordInherit;
return this;
}
/**
* Indicates whether a password is configured for the instance.
*
* example:
* false
*/
public Builder passwordSetted(Boolean passwordSetted) {
this.passwordSetted = passwordSetted;
return this;
}
/**
* PrivatePoolOptions.Id.
*/
public Builder privatePoolOptions_id(String privatePoolOptions_id) {
this.privatePoolOptions_id = privatePoolOptions_id;
return this;
}
/**
* PrivatePoolOptions.MatchCriteria.
*/
public Builder privatePoolOptions_matchCriteria(String privatePoolOptions_matchCriteria) {
this.privatePoolOptions_matchCriteria = privatePoolOptions_matchCriteria;
return this;
}
/**
* The name of the Resource Access Management (RAM) role assumed by the ECS instances. This name is provided and maintained by RAM. You can call the ListRoles operation to query the available RAM roles.
*
* example:
* ramrole****
*/
public Builder ramRoleName(String ramRoleName) {
this.ramRoleName = ramRoleName;
return this;
}
/**
* The ID of the resource group to which the ECS instances belong.
*
* example:
* rg-aekzn2ou7xo****
*/
public Builder resourceGroupId(String resourceGroupId) {
this.resourceGroupId = resourceGroupId;
return this;
}
/**
* The ID of the scaling configuration.
*
* example:
* asc-bp1ezrfgoyn5kijl****
*/
public Builder scalingConfigurationId(String scalingConfigurationId) {
this.scalingConfigurationId = scalingConfigurationId;
return this;
}
/**
* The name of the scaling configuration.
*
* example:
* scalingconfigura****
*/
public Builder scalingConfigurationName(String scalingConfigurationName) {
this.scalingConfigurationName = scalingConfigurationName;
return this;
}
/**
* The ID of the scaling group to which the scaling configuration belongs.
*
* example:
* asg-bp17pelvl720x3v7****
*/
public Builder scalingGroupId(String scalingGroupId) {
this.scalingGroupId = scalingGroupId;
return this;
}
/**
*
* This parameter is in invitational preview and is not available for use.
*
*/
public Builder schedulerOptions(SchedulerOptions schedulerOptions) {
this.schedulerOptions = schedulerOptions;
return this;
}
/**
* Indicates whether Security Hardening is enabled. Valid values:
*
* - Active: Security Hardening is enabled. This value is applicable to only public images.
* - Deactive: Security Hardening is disabled. This value is applicable to all images.
*
*
* example:
* Active
*/
public Builder securityEnhancementStrategy(String securityEnhancementStrategy) {
this.securityEnhancementStrategy = securityEnhancementStrategy;
return this;
}
/**
* The ID of the security group to which the ECS instances belong. ECS instances that belong to the same security group can communicate with each other.
*
* example:
* sg-bp18kz60mefs****
*/
public Builder securityGroupId(String securityGroupId) {
this.securityGroupId = securityGroupId;
return this;
}
/**
* The IDs of the security groups to which the ECS instances belong. ECS instances that belong to the same security group can communicate with each other.
*/
public Builder securityGroupIds(java.util.List < String > securityGroupIds) {
this.securityGroupIds = securityGroupIds;
return this;
}
/**
* 安全选项。
*/
public Builder securityOptions(SecurityOptions securityOptions) {
this.securityOptions = securityOptions;
return this;
}
/**
* The protection period of the preemptible instances. Unit: hours.
*
* example:
* 1
*/
public Builder spotDuration(Integer spotDuration) {
this.spotDuration = spotDuration;
return this;
}
/**
* The interruption event of the preemptible instances.
*
* example:
* Terminate
*/
public Builder spotInterruptionBehavior(String spotInterruptionBehavior) {
this.spotInterruptionBehavior = spotInterruptionBehavior;
return this;
}
/**
* The preemptible instances.
*/
public Builder spotPriceLimits(java.util.List < SpotPriceLimits> spotPriceLimits) {
this.spotPriceLimits = spotPriceLimits;
return this;
}
/**
* The preemption policy that is applied to pay-as-you-go instances. Valid values:
*
* - NoSpot: The instances are created as regular pay-as-you-go instances.
* - SpotWithPriceLimit: The instances are created as preemptible instances that have a user-defined maximum hourly price.
* - SpotAsPriceGo: The instances are preemptible instances for which the market price at the time of purchase is automatically used as the bid price.
*
*
* example:
* NoSpot
*/
public Builder spotStrategy(String spotStrategy) {
this.spotStrategy = spotStrategy;
return this;
}
/**
* The ID of the storage set.
*
* example:
* ss-bp67acfmxazb4p****
*/
public Builder storageSetId(String storageSetId) {
this.storageSetId = storageSetId;
return this;
}
/**
* The maximum number of partitions in the storage set. The value is an integer that is greater than or equal to 2.
*
* example:
* 2
*/
public Builder storageSetPartitionNumber(Integer storageSetPartitionNumber) {
this.storageSetPartitionNumber = storageSetPartitionNumber;
return this;
}
/**
* The ID of the automatic snapshot policy that is applied to the system disk.
*
* example:
* sp-bp12m37ccmxvbmi5****
*/
public Builder systemDiskAutoSnapshotPolicyId(String systemDiskAutoSnapshotPolicyId) {
this.systemDiskAutoSnapshotPolicyId = systemDiskAutoSnapshotPolicyId;
return this;
}
/**
* Indicates whether the Performance Burst feature is enabled for the system disk. Valid values:
*
* - true
* - false
*
*
* This parameter is available only when you set SystemDisk.Category to cloud_auto.
*
*
* example:
* false
*/
public Builder systemDiskBurstingEnabled(Boolean systemDiskBurstingEnabled) {
this.systemDiskBurstingEnabled = systemDiskBurstingEnabled;
return this;
}
/**
* The categories of the system disks. The values are sorted based on their priorities. The first value has the highest priority. If Auto Scaling cannot create instances by using the disk category of the highest priority, Auto Scaling creates instances by using the disk category of the next highest priority. Valid values:
*
* - cloud: basic disk
* - cloud_efficiency: ultra disk
* - cloud_ssd: standard SSD
* - cloud_essd: ESSD
*
*/
public Builder systemDiskCategories(java.util.List < String > systemDiskCategories) {
this.systemDiskCategories = systemDiskCategories;
return this;
}
/**
* The category of the system disk. Valid values:
*
* - cloud: basic disk
* - cloud_efficiency: ultra disk
* - cloud_ssd: standard SSD
* - ephemeral_ssd: local SSD
* - cloud_essd: enterprise SSD (ESSD)
* - cloud_auto: ESSD AutoPL
*
*
* example:
* cloud
*/
public Builder systemDiskCategory(String systemDiskCategory) {
this.systemDiskCategory = systemDiskCategory;
return this;
}
/**
* The description of the system disk.
*
* example:
* Test system disk.
*/
public Builder systemDiskDescription(String systemDiskDescription) {
this.systemDiskDescription = systemDiskDescription;
return this;
}
/**
* The encryption algorithm that is applied to the system disk. Valid values:
*
* - AES-256
* - SM4-128
*
*
* example:
* AES-256
*/
public Builder systemDiskEncryptAlgorithm(String systemDiskEncryptAlgorithm) {
this.systemDiskEncryptAlgorithm = systemDiskEncryptAlgorithm;
return this;
}
/**
* Indicates whether the system disk is encrypted. Valid values:
*
* - true
* - false
*
*
* example:
* false
*/
public Builder systemDiskEncrypted(Boolean systemDiskEncrypted) {
this.systemDiskEncrypted = systemDiskEncrypted;
return this;
}
/**
* The ID of the KMS key that is applied to the system disk.
*
* example:
* 0e478b7a-4262-4802-b8cb-00d3fb40****
*/
public Builder systemDiskKMSKeyId(String systemDiskKMSKeyId) {
this.systemDiskKMSKeyId = systemDiskKMSKeyId;
return this;
}
/**
* The name of the system disk.
*
* example:
* cloud_ssd_Test
*/
public Builder systemDiskName(String systemDiskName) {
this.systemDiskName = systemDiskName;
return this;
}
/**
* The performance level (PL) of the system disk that is an ESSD.
*
* example:
* PL1
*/
public Builder systemDiskPerformanceLevel(String systemDiskPerformanceLevel) {
this.systemDiskPerformanceLevel = systemDiskPerformanceLevel;
return this;
}
/**
* The provisioned IOPS of the system disk.
*
* IOPS measures the number of read and write operations that an EBS device can process per second.
*
*
* example:
* 100
*/
public Builder systemDiskProvisionedIops(Long systemDiskProvisionedIops) {
this.systemDiskProvisionedIops = systemDiskProvisionedIops;
return this;
}
/**
* The size of the system disk. Unit: GiB.
*
* example:
* 100
*/
public Builder systemDiskSize(Integer systemDiskSize) {
this.systemDiskSize = systemDiskSize;
return this;
}
/**
* The tags.
*/
public Builder tags(java.util.List < Tags> tags) {
this.tags = tags;
return this;
}
/**
* Indicates whether the ECS instance is created on a dedicated host. Valid values:
*
* - default: The ECS instance is created on a non-dedicated host.
* - host: The ECS instance is created on a dedicated host. If you do not specify DedicatedHostId, the system selects a dedicated host for the ECS instance.
*
* Default value: default.
*
* example:
* default
*/
public Builder tenancy(String tenancy) {
this.tenancy = tenancy;
return this;
}
/**
* The user data of the ECS instances.
*
* example:
* echo hello ecs!
*/
public Builder userData(String userData) {
this.userData = userData;
return this;
}
/**
* The weights of the instance types. The value of this parameter indicates the capacity of an instance of the specified instance type in the scaling group. A higher weight indicates that a smaller number of instances of the instance type are required to meet the expected capacity requirement.
*/
public Builder weightedCapacities(java.util.List < Integer > weightedCapacities) {
this.weightedCapacities = weightedCapacities;
return this;
}
/**
* The ID of the zone in which the ECS instances are created. You can call the DescribeZones operation to query the zone IDs.
*
* example:
* cn-hangzhou-g
*/
public Builder zoneId(String zoneId) {
this.zoneId = zoneId;
return this;
}
public ScalingConfigurations build() {
return new ScalingConfigurations(this);
}
}
}
}