com.aliyun.sdk.service.ecs20140526.models.CopySnapshotRequest Maven / Gradle / Ivy
// 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 CopySnapshotRequest} extends {@link RequestModel}
*
* CopySnapshotRequest
*/
public class CopySnapshotRequest extends Request {
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("Arn")
private java.util.List < Arn> arn;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("DestinationRegionId")
@com.aliyun.core.annotation.Validation(required = true)
private String destinationRegionId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("DestinationSnapshotDescription")
@com.aliyun.core.annotation.Validation(required = true)
private String destinationSnapshotDescription;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("DestinationSnapshotName")
@com.aliyun.core.annotation.Validation(required = true)
private String destinationSnapshotName;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("DestinationStorageLocationArn")
private String destinationStorageLocationArn;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("Encrypted")
private Boolean encrypted;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("KMSKeyId")
private String KMSKeyId;
@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("ResourceGroupId")
private String resourceGroupId;
@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;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("RetentionDays")
private Integer retentionDays;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("SnapshotId")
@com.aliyun.core.annotation.Validation(required = true)
private String snapshotId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("Tag")
private java.util.List < Tag> tag;
private CopySnapshotRequest(Builder builder) {
super(builder);
this.arn = builder.arn;
this.destinationRegionId = builder.destinationRegionId;
this.destinationSnapshotDescription = builder.destinationSnapshotDescription;
this.destinationSnapshotName = builder.destinationSnapshotName;
this.destinationStorageLocationArn = builder.destinationStorageLocationArn;
this.encrypted = builder.encrypted;
this.KMSKeyId = builder.KMSKeyId;
this.ownerId = builder.ownerId;
this.regionId = builder.regionId;
this.resourceGroupId = builder.resourceGroupId;
this.resourceOwnerAccount = builder.resourceOwnerAccount;
this.resourceOwnerId = builder.resourceOwnerId;
this.retentionDays = builder.retentionDays;
this.snapshotId = builder.snapshotId;
this.tag = builder.tag;
}
public static Builder builder() {
return new Builder();
}
public static CopySnapshotRequest create() {
return builder().build();
}
@Override
public Builder toBuilder() {
return new Builder(this);
}
/**
* @return arn
*/
public java.util.List < Arn> getArn() {
return this.arn;
}
/**
* @return destinationRegionId
*/
public String getDestinationRegionId() {
return this.destinationRegionId;
}
/**
* @return destinationSnapshotDescription
*/
public String getDestinationSnapshotDescription() {
return this.destinationSnapshotDescription;
}
/**
* @return destinationSnapshotName
*/
public String getDestinationSnapshotName() {
return this.destinationSnapshotName;
}
/**
* @return destinationStorageLocationArn
*/
public String getDestinationStorageLocationArn() {
return this.destinationStorageLocationArn;
}
/**
* @return encrypted
*/
public Boolean getEncrypted() {
return this.encrypted;
}
/**
* @return KMSKeyId
*/
public String getKMSKeyId() {
return this.KMSKeyId;
}
/**
* @return ownerId
*/
public Long getOwnerId() {
return this.ownerId;
}
/**
* @return regionId
*/
public String getRegionId() {
return this.regionId;
}
/**
* @return resourceGroupId
*/
public String getResourceGroupId() {
return this.resourceGroupId;
}
/**
* @return resourceOwnerAccount
*/
public String getResourceOwnerAccount() {
return this.resourceOwnerAccount;
}
/**
* @return resourceOwnerId
*/
public Long getResourceOwnerId() {
return this.resourceOwnerId;
}
/**
* @return retentionDays
*/
public Integer getRetentionDays() {
return this.retentionDays;
}
/**
* @return snapshotId
*/
public String getSnapshotId() {
return this.snapshotId;
}
/**
* @return tag
*/
public java.util.List < Tag> getTag() {
return this.tag;
}
public static final class Builder extends Request.Builder {
private java.util.List < Arn> arn;
private String destinationRegionId;
private String destinationSnapshotDescription;
private String destinationSnapshotName;
private String destinationStorageLocationArn;
private Boolean encrypted;
private String KMSKeyId;
private Long ownerId;
private String regionId;
private String resourceGroupId;
private String resourceOwnerAccount;
private Long resourceOwnerId;
private Integer retentionDays;
private String snapshotId;
private java.util.List < Tag> tag;
private Builder() {
super();
}
private Builder(CopySnapshotRequest request) {
super(request);
this.arn = request.arn;
this.destinationRegionId = request.destinationRegionId;
this.destinationSnapshotDescription = request.destinationSnapshotDescription;
this.destinationSnapshotName = request.destinationSnapshotName;
this.destinationStorageLocationArn = request.destinationStorageLocationArn;
this.encrypted = request.encrypted;
this.KMSKeyId = request.KMSKeyId;
this.ownerId = request.ownerId;
this.regionId = request.regionId;
this.resourceGroupId = request.resourceGroupId;
this.resourceOwnerAccount = request.resourceOwnerAccount;
this.resourceOwnerId = request.resourceOwnerId;
this.retentionDays = request.retentionDays;
this.snapshotId = request.snapshotId;
this.tag = request.tag;
}
/**
* >This parameter is currently in invitational preview and unavailable for public use.
*/
public Builder arn(java.util.List < Arn> arn) {
this.putQueryParameter("Arn", arn);
this.arn = arn;
return this;
}
/**
* The ID of the destination region to which to copy the source snapshot.
*/
public Builder destinationRegionId(String destinationRegionId) {
this.putQueryParameter("DestinationRegionId", destinationRegionId);
this.destinationRegionId = destinationRegionId;
return this;
}
/**
* The description of the new snapshot. The description must be 2 to 256 characters in length and cannot start with http:// or https://.
*
*
* This parameter is empty by default.
*/
public Builder destinationSnapshotDescription(String destinationSnapshotDescription) {
this.putQueryParameter("DestinationSnapshotDescription", destinationSnapshotDescription);
this.destinationSnapshotDescription = destinationSnapshotDescription;
return this;
}
/**
* The name of the new snapshot. The name must be 2 to 128 characters in length. It must start with a letter and cannot start http:// or https://. The name can contain digits, letters, colons (:), underscores (\_), and hyphens (-).
*
*
* This parameter is empty by default.
*/
public Builder destinationSnapshotName(String destinationSnapshotName) {
this.putQueryParameter("DestinationSnapshotName", destinationSnapshotName);
this.destinationSnapshotName = destinationSnapshotName;
return this;
}
/**
* > This parameter is not publicly available.
*/
public Builder destinationStorageLocationArn(String destinationStorageLocationArn) {
this.putQueryParameter("DestinationStorageLocationArn", destinationStorageLocationArn);
this.destinationStorageLocationArn = destinationStorageLocationArn;
return this;
}
/**
* Specifies whether to encrypt the new snapshot. Valid values:
*
*
* * true
* * false
*
* Default value: false.
*/
public Builder encrypted(Boolean encrypted) {
this.putQueryParameter("Encrypted", encrypted);
this.encrypted = encrypted;
return this;
}
/**
* The ID of the customer master key (CMK) in Key Management Service (KMS) in the destination region.
*/
public Builder KMSKeyId(String KMSKeyId) {
this.putQueryParameter("KMSKeyId", KMSKeyId);
this.KMSKeyId = KMSKeyId;
return this;
}
/**
* OwnerId.
*/
public Builder ownerId(Long ownerId) {
this.putQueryParameter("OwnerId", ownerId);
this.ownerId = ownerId;
return this;
}
/**
* The region ID of the source snapshot. 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;
}
/**
* This parameter is not publicly available.
*/
public Builder resourceGroupId(String resourceGroupId) {
this.putQueryParameter("ResourceGroupId", resourceGroupId);
this.resourceGroupId = resourceGroupId;
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;
}
/**
* The retention period of the new snapshot. Unit: days. The new snapshot is automatically released when its retention period ends. Valid values: 1 to 65536.
*
*
* This parameter is empty by default, which indicates that the snapshot is not automatically released.
*/
public Builder retentionDays(Integer retentionDays) {
this.putQueryParameter("RetentionDays", retentionDays);
this.retentionDays = retentionDays;
return this;
}
/**
* The ID of the source snapshot.
*/
public Builder snapshotId(String snapshotId) {
this.putQueryParameter("SnapshotId", snapshotId);
this.snapshotId = snapshotId;
return this;
}
/**
* The tag key and value of the new snapshot.
*/
public Builder tag(java.util.List < Tag> tag) {
this.putQueryParameter("Tag", tag);
this.tag = tag;
return this;
}
@Override
public CopySnapshotRequest build() {
return new CopySnapshotRequest(this);
}
}
public static class Arn extends TeaModel {
@com.aliyun.core.annotation.NameInMap("AssumeRoleFor")
private Long assumeRoleFor;
@com.aliyun.core.annotation.NameInMap("RoleType")
private String roleType;
@com.aliyun.core.annotation.NameInMap("Rolearn")
private String rolearn;
private Arn(Builder builder) {
this.assumeRoleFor = builder.assumeRoleFor;
this.roleType = builder.roleType;
this.rolearn = builder.rolearn;
}
public static Builder builder() {
return new Builder();
}
public static Arn create() {
return builder().build();
}
/**
* @return assumeRoleFor
*/
public Long getAssumeRoleFor() {
return this.assumeRoleFor;
}
/**
* @return roleType
*/
public String getRoleType() {
return this.roleType;
}
/**
* @return rolearn
*/
public String getRolearn() {
return this.rolearn;
}
public static final class Builder {
private Long assumeRoleFor;
private String roleType;
private String rolearn;
/**
* > This parameter is not publicly available.
*/
public Builder assumeRoleFor(Long assumeRoleFor) {
this.assumeRoleFor = assumeRoleFor;
return this;
}
/**
* > This parameter is not publicly available.
*/
public Builder roleType(String roleType) {
this.roleType = roleType;
return this;
}
/**
* > This parameter is not publicly available.
*/
public Builder rolearn(String rolearn) {
this.rolearn = rolearn;
return this;
}
public Arn build() {
return new Arn(this);
}
}
}
public static class Tag extends TeaModel {
@com.aliyun.core.annotation.NameInMap("Key")
private String key;
@com.aliyun.core.annotation.NameInMap("Value")
private String value;
private Tag(Builder builder) {
this.key = builder.key;
this.value = builder.value;
}
public static Builder builder() {
return new Builder();
}
public static Tag 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 key of tag N to add to the new snapshot. The tag key cannot be an empty string. It can be up to 128 characters in length and cannot start with acs: or aliyun. It cannot contain http:// or https://.
*/
public Builder key(String key) {
this.key = key;
return this;
}
/**
* The value of tag N to add to the new snapshot. The tag value can be an empty string. It can be up to 128 characters in length and cannot start with acs: or aliyun. It cannot contain http:// or https://.
*/
public Builder value(String value) {
this.value = value;
return this;
}
public Tag build() {
return new Tag(this);
}
}
}
}