All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.sdk.service.ecs20140526.models.CreateSnapshotGroupRequest Maven / Gradle / Ivy

There is a newer version: 5.0.29
Show newest version
// 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 CreateSnapshotGroupRequest} extends {@link RequestModel}
 *
 * 

CreateSnapshotGroupRequest

*/ public class CreateSnapshotGroupRequest extends Request { @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("Description") private String description; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("DiskId") private java.util.List < String > diskId; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("ExcludeDiskId") private java.util.List < String > excludeDiskId; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("InstanceId") private String instanceId; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("InstantAccess") private Boolean instantAccess; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("InstantAccessRetentionDays") private Integer instantAccessRetentionDays; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("Name") private String name; @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("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("StorageLocationArn") private String storageLocationArn; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("Tag") private java.util.List < Tag> tag; private CreateSnapshotGroupRequest(Builder builder) { super(builder); this.description = builder.description; this.diskId = builder.diskId; this.excludeDiskId = builder.excludeDiskId; this.instanceId = builder.instanceId; this.instantAccess = builder.instantAccess; this.instantAccessRetentionDays = builder.instantAccessRetentionDays; this.name = builder.name; this.ownerAccount = builder.ownerAccount; this.ownerId = builder.ownerId; this.regionId = builder.regionId; this.resourceGroupId = builder.resourceGroupId; this.resourceOwnerAccount = builder.resourceOwnerAccount; this.resourceOwnerId = builder.resourceOwnerId; this.storageLocationArn = builder.storageLocationArn; this.tag = builder.tag; } public static Builder builder() { return new Builder(); } public static CreateSnapshotGroupRequest create() { return builder().build(); } @Override public Builder toBuilder() { return new Builder(this); } /** * @return description */ public String getDescription() { return this.description; } /** * @return diskId */ public java.util.List < String > getDiskId() { return this.diskId; } /** * @return excludeDiskId */ public java.util.List < String > getExcludeDiskId() { return this.excludeDiskId; } /** * @return instanceId */ public String getInstanceId() { return this.instanceId; } /** * @return instantAccess */ public Boolean getInstantAccess() { return this.instantAccess; } /** * @return instantAccessRetentionDays */ public Integer getInstantAccessRetentionDays() { return this.instantAccessRetentionDays; } /** * @return name */ public String getName() { return this.name; } /** * @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 resourceGroupId */ public String getResourceGroupId() { return this.resourceGroupId; } /** * @return resourceOwnerAccount */ public String getResourceOwnerAccount() { return this.resourceOwnerAccount; } /** * @return resourceOwnerId */ public Long getResourceOwnerId() { return this.resourceOwnerId; } /** * @return storageLocationArn */ public String getStorageLocationArn() { return this.storageLocationArn; } /** * @return tag */ public java.util.List < Tag> getTag() { return this.tag; } public static final class Builder extends Request.Builder { private String description; private java.util.List < String > diskId; private java.util.List < String > excludeDiskId; private String instanceId; private Boolean instantAccess; private Integer instantAccessRetentionDays; private String name; private String ownerAccount; private Long ownerId; private String regionId; private String resourceGroupId; private String resourceOwnerAccount; private Long resourceOwnerId; private String storageLocationArn; private java.util.List < Tag> tag; private Builder() { super(); } private Builder(CreateSnapshotGroupRequest request) { super(request); this.description = request.description; this.diskId = request.diskId; this.excludeDiskId = request.excludeDiskId; this.instanceId = request.instanceId; this.instantAccess = request.instantAccess; this.instantAccessRetentionDays = request.instantAccessRetentionDays; this.name = request.name; this.ownerAccount = request.ownerAccount; this.ownerId = request.ownerId; this.regionId = request.regionId; this.resourceGroupId = request.resourceGroupId; this.resourceOwnerAccount = request.resourceOwnerAccount; this.resourceOwnerId = request.resourceOwnerId; this.storageLocationArn = request.storageLocationArn; this.tag = request.tag; } /** * The description of the snapshot-consistent group. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`. */ public Builder description(String description) { this.putQueryParameter("Description", description); this.description = description; return this; } /** * The ID of cloud disk N for which you want to create snapshots. You can specify multiple cloud disk IDs across instances within the same zone. Valid values of N: 1 to 16. A single snapshot-consistent group can contain snapshots of up to 16 cloud disks whose total disk size does not exceed 32 TiB. *

* * Take note of the following items: * * * You cannot specify both DiskId.N and `ExcludeDiskId.N` in the same request. * * If `InstanceId` is set, you can use DiskId.N to specify only cloud disks attached to the instance specified by InstanceId, and you cannot use DiskId.N to specify cloud disks attached to multiple instances. */ public Builder diskId(java.util.List < String > diskId) { this.putQueryParameter("DiskId", diskId); this.diskId = diskId; return this; } /** * The ID of cloud disk N for which you do not want to create snapshots. If this parameter is specified, the created snapshot-consistent group does not contain snapshots of the cloud disk. Valid values of N: 1 to 16. *

* * This parameter is empty by default, which indicates that snapshots are created for all the disks of the instance. * * > You cannot specify ExcludeDiskId.N and `DiskId.N` in the same request. */ public Builder excludeDiskId(java.util.List < String > excludeDiskId) { this.putQueryParameter("ExcludeDiskId", excludeDiskId); this.excludeDiskId = excludeDiskId; return this; } /** * The instance ID. */ public Builder instanceId(String instanceId) { this.putQueryParameter("InstanceId", instanceId); this.instanceId = instanceId; return this; } /** * Specifies whether to enable the instant access feature. Valid values: *

* * * true * * false * * Default value: false. * * > This parameter is no longer used. By default, new normal snapshots of ESSDs are upgraded to instant access snapshots free of charge without the need for additional configurations. For more information, see [Use the instant access feature](~~193667~~). */ public Builder instantAccess(Boolean instantAccess) { this.putQueryParameter("InstantAccess", instantAccess); this.instantAccess = instantAccess; return this; } /** * The number of days for which the instant access feature is available. Unit: days. Valid values: 1 to 65535. *

* * This parameter takes effect only when `InstantAccess` is set to true. The instant access feature is automatically disabled when the specified duration ends. * * This parameter is left empty by default, which indicates that the instant access feature is automatically disabled for snapshots when the snapshots are released. * * > This parameter is no longer used. By default, new normal snapshots of ESSDs are upgraded to instant access snapshots free of charge without the need for additional configurations. For more information, see [Use the instant access feature](~~193667~~). */ public Builder instantAccessRetentionDays(Integer instantAccessRetentionDays) { this.putQueryParameter("InstantAccessRetentionDays", instantAccessRetentionDays); this.instantAccessRetentionDays = instantAccessRetentionDays; return this; } /** * The name of the snapshot-consistent group. The name must be 2 to 128 characters in length. The name can contain letters, digits, periods (.), underscores (\_), hyphens (-), and colons (:). It must start with a letter and cannot start with `http://` or `https://`. */ public Builder name(String name) { this.putQueryParameter("Name", name); this.name = name; 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 of the instance. You can call the [DescribeRegions](~~25609~~) operation to query the most recent list of regions. */ public Builder regionId(String regionId) { this.putQueryParameter("RegionId", regionId); this.regionId = regionId; return this; } /** * The ID of the resource group to which the snapshot-consistent group belongs. */ 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; } /** * > This parameter is unavailable for public use. */ public Builder storageLocationArn(String storageLocationArn) { this.putQueryParameter("StorageLocationArn", storageLocationArn); this.storageLocationArn = storageLocationArn; return this; } /** * The list of tags. */ public Builder tag(java.util.List < Tag> tag) { this.putQueryParameter("Tag", tag); this.tag = tag; return this; } @Override public CreateSnapshotGroupRequest build() { return new CreateSnapshotGroupRequest(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 of the snapshot-consistent group. Valid values of N: 1 to 20. The tag key cannot be an empty string. The tag key 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 of the snapshot-consistent group. Valid values of N: 1 to 20. The tag value can be an empty string. It can be up to 128 characters in length and cannot start with `acs:`. It cannot contain `http://` or `https://`. */ public Builder value(String value) { this.value = value; return this; } public Tag build() { return new Tag(this); } } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy