com.aliyun.sdk.service.ecs20140526.models.DescribeInstanceModificationPriceRequest Maven / Gradle / Ivy
Show all versions of alibabacloud-ecs20140526 Show documentation
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sdk.service.ecs20140526.models;
import darabonba.core.RequestModel;
import darabonba.core.TeaModel;
import com.aliyun.sdk.gateway.pop.models.*;
/**
* {@link DescribeInstanceModificationPriceRequest} extends {@link RequestModel}
*
* DescribeInstanceModificationPriceRequest
*/
public class DescribeInstanceModificationPriceRequest extends Request {
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("SystemDisk")
private SystemDisk systemDisk;
@com.aliyun.core.annotation.Host
@com.aliyun.core.annotation.NameInMap("SourceRegionId")
private String sourceRegionId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("DataDisk")
private java.util.List < DataDisk> dataDisk;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("InstanceId")
@com.aliyun.core.annotation.Validation(required = true)
private String instanceId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("InstanceType")
private String instanceType;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("OwnerAccount")
private String ownerAccount;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("OwnerId")
private Long ownerId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("RegionId")
@com.aliyun.core.annotation.Validation(required = true)
private String regionId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ResourceOwnerAccount")
private String resourceOwnerAccount;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ResourceOwnerId")
private Long resourceOwnerId;
private DescribeInstanceModificationPriceRequest(Builder builder) {
super(builder);
this.systemDisk = builder.systemDisk;
this.sourceRegionId = builder.sourceRegionId;
this.dataDisk = builder.dataDisk;
this.instanceId = builder.instanceId;
this.instanceType = builder.instanceType;
this.ownerAccount = builder.ownerAccount;
this.ownerId = builder.ownerId;
this.regionId = builder.regionId;
this.resourceOwnerAccount = builder.resourceOwnerAccount;
this.resourceOwnerId = builder.resourceOwnerId;
}
public static Builder builder() {
return new Builder();
}
public static DescribeInstanceModificationPriceRequest create() {
return builder().build();
}
@Override
public Builder toBuilder() {
return new Builder(this);
}
/**
* @return systemDisk
*/
public SystemDisk getSystemDisk() {
return this.systemDisk;
}
/**
* @return sourceRegionId
*/
public String getSourceRegionId() {
return this.sourceRegionId;
}
/**
* @return dataDisk
*/
public java.util.List < DataDisk> getDataDisk() {
return this.dataDisk;
}
/**
* @return instanceId
*/
public String getInstanceId() {
return this.instanceId;
}
/**
* @return instanceType
*/
public String getInstanceType() {
return this.instanceType;
}
/**
* @return ownerAccount
*/
public String getOwnerAccount() {
return this.ownerAccount;
}
/**
* @return ownerId
*/
public Long getOwnerId() {
return this.ownerId;
}
/**
* @return regionId
*/
public String getRegionId() {
return this.regionId;
}
/**
* @return resourceOwnerAccount
*/
public String getResourceOwnerAccount() {
return this.resourceOwnerAccount;
}
/**
* @return resourceOwnerId
*/
public Long getResourceOwnerId() {
return this.resourceOwnerId;
}
public static final class Builder extends Request.Builder {
private SystemDisk systemDisk;
private String sourceRegionId;
private java.util.List < DataDisk> dataDisk;
private String instanceId;
private String instanceType;
private String ownerAccount;
private Long ownerId;
private String regionId;
private String resourceOwnerAccount;
private Long resourceOwnerId;
private Builder() {
super();
}
private Builder(DescribeInstanceModificationPriceRequest request) {
super(request);
this.systemDisk = request.systemDisk;
this.sourceRegionId = request.sourceRegionId;
this.dataDisk = request.dataDisk;
this.instanceId = request.instanceId;
this.instanceType = request.instanceType;
this.ownerAccount = request.ownerAccount;
this.ownerId = request.ownerId;
this.regionId = request.regionId;
this.resourceOwnerAccount = request.resourceOwnerAccount;
this.resourceOwnerId = request.resourceOwnerId;
}
/**
* SystemDisk.
*/
public Builder systemDisk(SystemDisk systemDisk) {
this.putQueryParameter("SystemDisk", systemDisk);
this.systemDisk = systemDisk;
return this;
}
/**
* SourceRegionId.
*/
public Builder sourceRegionId(String sourceRegionId) {
this.putHostParameter("SourceRegionId", sourceRegionId);
this.sourceRegionId = sourceRegionId;
return this;
}
/**
* The information about data disks.
*/
public Builder dataDisk(java.util.List < DataDisk> dataDisk) {
this.putQueryParameter("DataDisk", dataDisk);
this.dataDisk = dataDisk;
return this;
}
/**
* The ID of the instance for which you want to query pricing information for a configuration upgrade.
*/
public Builder instanceId(String instanceId) {
this.putQueryParameter("InstanceId", instanceId);
this.instanceId = instanceId;
return this;
}
/**
* The new instance type. We recommend that you call the [DescribeResourcesModification](~~66187~~) operation to query the instance types available for configuration upgrades in a specified zone.
*
*
* > When you call the DescribeInstanceModificationPrice operation, you must specify at least one of the following parameters: `InstanceType` and `DataDisk.N.*`.
*/
public Builder instanceType(String instanceType) {
this.putQueryParameter("InstanceType", instanceType);
this.instanceType = instanceType;
return this;
}
/**
* OwnerAccount.
*/
public Builder ownerAccount(String ownerAccount) {
this.putQueryParameter("OwnerAccount", ownerAccount);
this.ownerAccount = ownerAccount;
return this;
}
/**
* OwnerId.
*/
public Builder ownerId(Long ownerId) {
this.putQueryParameter("OwnerId", ownerId);
this.ownerId = ownerId;
return this;
}
/**
* The region ID. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.
*/
public Builder regionId(String regionId) {
this.putQueryParameter("RegionId", regionId);
this.regionId = regionId;
return this;
}
/**
* ResourceOwnerAccount.
*/
public Builder resourceOwnerAccount(String resourceOwnerAccount) {
this.putQueryParameter("ResourceOwnerAccount", resourceOwnerAccount);
this.resourceOwnerAccount = resourceOwnerAccount;
return this;
}
/**
* ResourceOwnerId.
*/
public Builder resourceOwnerId(Long resourceOwnerId) {
this.putQueryParameter("ResourceOwnerId", resourceOwnerId);
this.resourceOwnerId = resourceOwnerId;
return this;
}
@Override
public DescribeInstanceModificationPriceRequest build() {
return new DescribeInstanceModificationPriceRequest(this);
}
}
public static class SystemDisk extends TeaModel {
@com.aliyun.core.annotation.NameInMap("Category")
private String category;
private SystemDisk(Builder builder) {
this.category = builder.category;
}
public static Builder builder() {
return new Builder();
}
public static SystemDisk create() {
return builder().build();
}
/**
* @return category
*/
public String getCategory() {
return this.category;
}
public static final class Builder {
private String category;
/**
* The category of the system disk. You must specify this parameter only when you upgrade a non-I/O optimized instance of a retired instance type to an I/O optimized instance of an available instance type. For more information about instance types, see [Instance families](~~25378~~) and [Retired instance types](~~55263~~).
*
*
* Valid values:
*
* * cloud_efficiency: ultra disk
* * cloud_ssd: standard SSD
*
* This parameter is empty by default.
*/
public Builder category(String category) {
this.category = category;
return this;
}
public SystemDisk build() {
return new SystemDisk(this);
}
}
}
public static class DataDisk extends TeaModel {
@com.aliyun.core.annotation.NameInMap("Category")
private String category;
@com.aliyun.core.annotation.NameInMap("PerformanceLevel")
private String performanceLevel;
@com.aliyun.core.annotation.NameInMap("Size")
private Integer size;
private DataDisk(Builder builder) {
this.category = builder.category;
this.performanceLevel = builder.performanceLevel;
this.size = builder.size;
}
public static Builder builder() {
return new Builder();
}
public static DataDisk create() {
return builder().build();
}
/**
* @return category
*/
public String getCategory() {
return this.category;
}
/**
* @return performanceLevel
*/
public String getPerformanceLevel() {
return this.performanceLevel;
}
/**
* @return size
*/
public Integer getSize() {
return this.size;
}
public static final class Builder {
private String category;
private String performanceLevel;
private Integer size;
/**
* The category of data disk N. You can specify this parameter if you want to query the pricing information about newly attached subscription data disks. Valid values of N: 1 to 16. Valid values:
*
*
* * cloud_efficiency: utra disk.
* * cloud_ssd: standard SSD.
* * cloud_essd: ESSD.
* * cloud: basic disk.
*
* This parameter is empty by default.
*
* > When you call the DescribeInstanceModificationPrice operation, you must specify at least one of the following parameters: `InstanceType` and `DataDisk.N.*`.
*/
public Builder category(String category) {
this.category = category;
return this;
}
/**
* The performance level of data disk N that is an enhanced SSD (ESSD). The value of N must be the same as that in `DataDisk.N.Category` when DataDisk.N.Category is set to cloud_essd. Valid values:
*
*
* * PL0: A single ESSD can deliver up to 10,000 random read/write IOPS.
* * PL1: A single ESSD can deliver up to 50,000 random read/write IOPS.
* * PL2: A single ESSD can deliver up to 100,000 random read/write IOPS.
* * PL3: A single ESSD can deliver up to 1,000,000 random read/write IOPS.
*
* Default value: PL1.
*
* For more information about ESSD performance levels, see [ESSDs](~~122389~~).
*/
public Builder performanceLevel(String performanceLevel) {
this.performanceLevel = performanceLevel;
return this;
}
/**
* The capacity of data disk N. Valid values of N: 1 to 16. Unit: GiB. Valid values:
*
*
* * Valid values when DataDisk.N.Category is set to cloud_efficiency: 20 to 32768.
*
* * Valid values when DataDisk.N.Category is set to cloud_ssd: 20 to 32768.
*
* * Valid values when DataDisk.N.Category is set to cloud_essd: vary based on the `DataDisk.N.PerformanceLevel` value.
*
* * Valid values when DataDisk.N.PerformanceLevel is set to PL0: 1 to 32768.
* * Valid values when DataDisk.N.PerformanceLevel is set to PL1: 20 to 32768.
* * Valid values when DataDisk.N.PerformanceLevel is set to PL2: 461 to 32768.
* * Valid values when DataDisk.N.PerformanceLevel is set to PL3: 1261 to 32768.
*
* * Valid values when DataDisk.N.Category is set to cloud: 5 to 2000.
*
* The default value is the minimum capacity allowed for the specified data disk category.
*/
public Builder size(Integer size) {
this.size = size;
return this;
}
public DataDisk build() {
return new DataDisk(this);
}
}
}
}