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

com.pulumi.alicloud.cloudstoragegateway.GatewayBlockVolumeArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.cloudstoragegateway;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class GatewayBlockVolumeArgs extends com.pulumi.resources.ResourceArgs {

    public static final GatewayBlockVolumeArgs Empty = new GatewayBlockVolumeArgs();

    /**
     * The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.
     * 
     */
    @Import(name="cacheMode")
    private @Nullable Output cacheMode;

    /**
     * @return The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.
     * 
     */
    public Optional> cacheMode() {
        return Optional.ofNullable(this.cacheMode);
    }

    /**
     * Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: `false`.
     * 
     */
    @Import(name="chapEnabled")
    private @Nullable Output chapEnabled;

    /**
     * @return Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: `false`.
     * 
     */
    public Optional> chapEnabled() {
        return Optional.ofNullable(this.chapEnabled);
    }

    /**
     * The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
     * 
     */
    @Import(name="chapInPassword")
    private @Nullable Output chapInPassword;

    /**
     * @return The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
     * 
     */
    public Optional> chapInPassword() {
        return Optional.ofNullable(this.chapInPassword);
    }

    /**
     * The Inbound CHAP user. The `chap_in_user` must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
     * 
     */
    @Import(name="chapInUser")
    private @Nullable Output chapInUser;

    /**
     * @return The Inbound CHAP user. The `chap_in_user` must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
     * 
     */
    public Optional> chapInUser() {
        return Optional.ofNullable(this.chapInUser);
    }

    /**
     * The Block volume storage allocation unit.  Valid values: `8192`, `16384`, `32768`, `65536`, `131072`. Default value: `32768`. Unit: `Byte`.
     * 
     */
    @Import(name="chunkSize")
    private @Nullable Output chunkSize;

    /**
     * @return The Block volume storage allocation unit.  Valid values: `8192`, `16384`, `32768`, `65536`, `131072`. Default value: `32768`. Unit: `Byte`.
     * 
     */
    public Optional> chunkSize() {
        return Optional.ofNullable(this.chunkSize);
    }

    /**
     * The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.
     * 
     */
    @Import(name="gatewayBlockVolumeName", required=true)
    private Output gatewayBlockVolumeName;

    /**
     * @return The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.
     * 
     */
    public Output gatewayBlockVolumeName() {
        return this.gatewayBlockVolumeName;
    }

    /**
     * The Gateway ID.
     * 
     */
    @Import(name="gatewayId", required=true)
    private Output gatewayId;

    /**
     * @return The Gateway ID.
     * 
     */
    public Output gatewayId() {
        return this.gatewayId;
    }

    /**
     * Whether to delete the source data. Default value `true`. **NOTE:** When `is_source_deletion` is `true`, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.
     * 
     */
    @Import(name="isSourceDeletion")
    private @Nullable Output isSourceDeletion;

    /**
     * @return Whether to delete the source data. Default value `true`. **NOTE:** When `is_source_deletion` is `true`, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.
     * 
     */
    public Optional> isSourceDeletion() {
        return Optional.ofNullable(this.isSourceDeletion);
    }

    /**
     * The Cache disk to local path. **NOTE:**  When the `cache_mode` is  `Cache` is,The `chap_in_password` is valid.
     * 
     */
    @Import(name="localPath")
    private @Nullable Output localPath;

    /**
     * @return The Cache disk to local path. **NOTE:**  When the `cache_mode` is  `Cache` is,The `chap_in_password` is valid.
     * 
     */
    public Optional> localPath() {
        return Optional.ofNullable(this.localPath);
    }

    /**
     * The name of the OSS Bucket.
     * 
     */
    @Import(name="ossBucketName", required=true)
    private Output ossBucketName;

    /**
     * @return The name of the OSS Bucket.
     * 
     */
    public Output ossBucketName() {
        return this.ossBucketName;
    }

    /**
     * Whether to enable SSL access your OSS Buckets. Default value: `true`.
     * 
     */
    @Import(name="ossBucketSsl")
    private @Nullable Output ossBucketSsl;

    /**
     * @return Whether to enable SSL access your OSS Buckets. Default value: `true`.
     * 
     */
    public Optional> ossBucketSsl() {
        return Optional.ofNullable(this.ossBucketSsl);
    }

    /**
     * The endpoint of the OSS Bucket.
     * 
     */
    @Import(name="ossEndpoint", required=true)
    private Output ossEndpoint;

    /**
     * @return The endpoint of the OSS Bucket.
     * 
     */
    public Output ossEndpoint() {
        return this.ossEndpoint;
    }

    /**
     * The Protocol. Valid values: `iSCSI`.
     * 
     */
    @Import(name="protocol", required=true)
    private Output protocol;

    /**
     * @return The Protocol. Valid values: `iSCSI`.
     * 
     */
    public Output protocol() {
        return this.protocol;
    }

    /**
     * The recovery.
     * 
     */
    @Import(name="recovery")
    private @Nullable Output recovery;

    /**
     * @return The recovery.
     * 
     */
    public Optional> recovery() {
        return Optional.ofNullable(this.recovery);
    }

    /**
     * The Volume size. Valid values: `1` to `262144`. Unit: `Byte`.
     * 
     */
    @Import(name="size")
    private @Nullable Output size;

    /**
     * @return The Volume size. Valid values: `1` to `262144`. Unit: `Byte`.
     * 
     */
    public Optional> size() {
        return Optional.ofNullable(this.size);
    }

    private GatewayBlockVolumeArgs() {}

    private GatewayBlockVolumeArgs(GatewayBlockVolumeArgs $) {
        this.cacheMode = $.cacheMode;
        this.chapEnabled = $.chapEnabled;
        this.chapInPassword = $.chapInPassword;
        this.chapInUser = $.chapInUser;
        this.chunkSize = $.chunkSize;
        this.gatewayBlockVolumeName = $.gatewayBlockVolumeName;
        this.gatewayId = $.gatewayId;
        this.isSourceDeletion = $.isSourceDeletion;
        this.localPath = $.localPath;
        this.ossBucketName = $.ossBucketName;
        this.ossBucketSsl = $.ossBucketSsl;
        this.ossEndpoint = $.ossEndpoint;
        this.protocol = $.protocol;
        this.recovery = $.recovery;
        this.size = $.size;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(GatewayBlockVolumeArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private GatewayBlockVolumeArgs $;

        public Builder() {
            $ = new GatewayBlockVolumeArgs();
        }

        public Builder(GatewayBlockVolumeArgs defaults) {
            $ = new GatewayBlockVolumeArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param cacheMode The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.
         * 
         * @return builder
         * 
         */
        public Builder cacheMode(@Nullable Output cacheMode) {
            $.cacheMode = cacheMode;
            return this;
        }

        /**
         * @param cacheMode The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.
         * 
         * @return builder
         * 
         */
        public Builder cacheMode(String cacheMode) {
            return cacheMode(Output.of(cacheMode));
        }

        /**
         * @param chapEnabled Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: `false`.
         * 
         * @return builder
         * 
         */
        public Builder chapEnabled(@Nullable Output chapEnabled) {
            $.chapEnabled = chapEnabled;
            return this;
        }

        /**
         * @param chapEnabled Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: `false`.
         * 
         * @return builder
         * 
         */
        public Builder chapEnabled(Boolean chapEnabled) {
            return chapEnabled(Output.of(chapEnabled));
        }

        /**
         * @param chapInPassword The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
         * 
         * @return builder
         * 
         */
        public Builder chapInPassword(@Nullable Output chapInPassword) {
            $.chapInPassword = chapInPassword;
            return this;
        }

        /**
         * @param chapInPassword The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
         * 
         * @return builder
         * 
         */
        public Builder chapInPassword(String chapInPassword) {
            return chapInPassword(Output.of(chapInPassword));
        }

        /**
         * @param chapInUser The Inbound CHAP user. The `chap_in_user` must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
         * 
         * @return builder
         * 
         */
        public Builder chapInUser(@Nullable Output chapInUser) {
            $.chapInUser = chapInUser;
            return this;
        }

        /**
         * @param chapInUser The Inbound CHAP user. The `chap_in_user` must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the `chap_enabled` is  `true` is,The `chap_in_password` is valid.
         * 
         * @return builder
         * 
         */
        public Builder chapInUser(String chapInUser) {
            return chapInUser(Output.of(chapInUser));
        }

        /**
         * @param chunkSize The Block volume storage allocation unit.  Valid values: `8192`, `16384`, `32768`, `65536`, `131072`. Default value: `32768`. Unit: `Byte`.
         * 
         * @return builder
         * 
         */
        public Builder chunkSize(@Nullable Output chunkSize) {
            $.chunkSize = chunkSize;
            return this;
        }

        /**
         * @param chunkSize The Block volume storage allocation unit.  Valid values: `8192`, `16384`, `32768`, `65536`, `131072`. Default value: `32768`. Unit: `Byte`.
         * 
         * @return builder
         * 
         */
        public Builder chunkSize(Integer chunkSize) {
            return chunkSize(Output.of(chunkSize));
        }

        /**
         * @param gatewayBlockVolumeName The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.
         * 
         * @return builder
         * 
         */
        public Builder gatewayBlockVolumeName(Output gatewayBlockVolumeName) {
            $.gatewayBlockVolumeName = gatewayBlockVolumeName;
            return this;
        }

        /**
         * @param gatewayBlockVolumeName The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.
         * 
         * @return builder
         * 
         */
        public Builder gatewayBlockVolumeName(String gatewayBlockVolumeName) {
            return gatewayBlockVolumeName(Output.of(gatewayBlockVolumeName));
        }

        /**
         * @param gatewayId The Gateway ID.
         * 
         * @return builder
         * 
         */
        public Builder gatewayId(Output gatewayId) {
            $.gatewayId = gatewayId;
            return this;
        }

        /**
         * @param gatewayId The Gateway ID.
         * 
         * @return builder
         * 
         */
        public Builder gatewayId(String gatewayId) {
            return gatewayId(Output.of(gatewayId));
        }

        /**
         * @param isSourceDeletion Whether to delete the source data. Default value `true`. **NOTE:** When `is_source_deletion` is `true`, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.
         * 
         * @return builder
         * 
         */
        public Builder isSourceDeletion(@Nullable Output isSourceDeletion) {
            $.isSourceDeletion = isSourceDeletion;
            return this;
        }

        /**
         * @param isSourceDeletion Whether to delete the source data. Default value `true`. **NOTE:** When `is_source_deletion` is `true`, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.
         * 
         * @return builder
         * 
         */
        public Builder isSourceDeletion(Boolean isSourceDeletion) {
            return isSourceDeletion(Output.of(isSourceDeletion));
        }

        /**
         * @param localPath The Cache disk to local path. **NOTE:**  When the `cache_mode` is  `Cache` is,The `chap_in_password` is valid.
         * 
         * @return builder
         * 
         */
        public Builder localPath(@Nullable Output localPath) {
            $.localPath = localPath;
            return this;
        }

        /**
         * @param localPath The Cache disk to local path. **NOTE:**  When the `cache_mode` is  `Cache` is,The `chap_in_password` is valid.
         * 
         * @return builder
         * 
         */
        public Builder localPath(String localPath) {
            return localPath(Output.of(localPath));
        }

        /**
         * @param ossBucketName The name of the OSS Bucket.
         * 
         * @return builder
         * 
         */
        public Builder ossBucketName(Output ossBucketName) {
            $.ossBucketName = ossBucketName;
            return this;
        }

        /**
         * @param ossBucketName The name of the OSS Bucket.
         * 
         * @return builder
         * 
         */
        public Builder ossBucketName(String ossBucketName) {
            return ossBucketName(Output.of(ossBucketName));
        }

        /**
         * @param ossBucketSsl Whether to enable SSL access your OSS Buckets. Default value: `true`.
         * 
         * @return builder
         * 
         */
        public Builder ossBucketSsl(@Nullable Output ossBucketSsl) {
            $.ossBucketSsl = ossBucketSsl;
            return this;
        }

        /**
         * @param ossBucketSsl Whether to enable SSL access your OSS Buckets. Default value: `true`.
         * 
         * @return builder
         * 
         */
        public Builder ossBucketSsl(Boolean ossBucketSsl) {
            return ossBucketSsl(Output.of(ossBucketSsl));
        }

        /**
         * @param ossEndpoint The endpoint of the OSS Bucket.
         * 
         * @return builder
         * 
         */
        public Builder ossEndpoint(Output ossEndpoint) {
            $.ossEndpoint = ossEndpoint;
            return this;
        }

        /**
         * @param ossEndpoint The endpoint of the OSS Bucket.
         * 
         * @return builder
         * 
         */
        public Builder ossEndpoint(String ossEndpoint) {
            return ossEndpoint(Output.of(ossEndpoint));
        }

        /**
         * @param protocol The Protocol. Valid values: `iSCSI`.
         * 
         * @return builder
         * 
         */
        public Builder protocol(Output protocol) {
            $.protocol = protocol;
            return this;
        }

        /**
         * @param protocol The Protocol. Valid values: `iSCSI`.
         * 
         * @return builder
         * 
         */
        public Builder protocol(String protocol) {
            return protocol(Output.of(protocol));
        }

        /**
         * @param recovery The recovery.
         * 
         * @return builder
         * 
         */
        public Builder recovery(@Nullable Output recovery) {
            $.recovery = recovery;
            return this;
        }

        /**
         * @param recovery The recovery.
         * 
         * @return builder
         * 
         */
        public Builder recovery(Boolean recovery) {
            return recovery(Output.of(recovery));
        }

        /**
         * @param size The Volume size. Valid values: `1` to `262144`. Unit: `Byte`.
         * 
         * @return builder
         * 
         */
        public Builder size(@Nullable Output size) {
            $.size = size;
            return this;
        }

        /**
         * @param size The Volume size. Valid values: `1` to `262144`. Unit: `Byte`.
         * 
         * @return builder
         * 
         */
        public Builder size(Integer size) {
            return size(Output.of(size));
        }

        public GatewayBlockVolumeArgs build() {
            if ($.gatewayBlockVolumeName == null) {
                throw new MissingRequiredPropertyException("GatewayBlockVolumeArgs", "gatewayBlockVolumeName");
            }
            if ($.gatewayId == null) {
                throw new MissingRequiredPropertyException("GatewayBlockVolumeArgs", "gatewayId");
            }
            if ($.ossBucketName == null) {
                throw new MissingRequiredPropertyException("GatewayBlockVolumeArgs", "ossBucketName");
            }
            if ($.ossEndpoint == null) {
                throw new MissingRequiredPropertyException("GatewayBlockVolumeArgs", "ossEndpoint");
            }
            if ($.protocol == null) {
                throw new MissingRequiredPropertyException("GatewayBlockVolumeArgs", "protocol");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy