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

com.pulumi.aws.storagegateway.CachesIscsiVolumeArgs Maven / Gradle / Ivy

// *** 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.aws.storagegateway;

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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final CachesIscsiVolumeArgs Empty = new CachesIscsiVolumeArgs();

    /**
     * The Amazon Resource Name (ARN) of the gateway.
     * 
     */
    @Import(name="gatewayArn", required=true)
    private Output gatewayArn;

    /**
     * @return The Amazon Resource Name (ARN) of the gateway.
     * 
     */
    public Output gatewayArn() {
        return this.gatewayArn;
    }

    /**
     * Set to `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3.
     * 
     */
    @Import(name="kmsEncrypted")
    private @Nullable Output kmsEncrypted;

    /**
     * @return Set to `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3.
     * 
     */
    public Optional> kmsEncrypted() {
        return Optional.ofNullable(this.kmsEncrypted);
    }

    /**
     * The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server side encryption. Is required when `kms_encrypted` is set.
     * 
     */
    @Import(name="kmsKey")
    private @Nullable Output kmsKey;

    /**
     * @return The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server side encryption. Is required when `kms_encrypted` is set.
     * 
     */
    public Optional> kmsKey() {
        return Optional.ofNullable(this.kmsKey);
    }

    /**
     * The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted.
     * 
     */
    @Import(name="networkInterfaceId", required=true)
    private Output networkInterfaceId;

    /**
     * @return The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted.
     * 
     */
    public Output networkInterfaceId() {
        return this.networkInterfaceId;
    }

    /**
     * The snapshot ID of the snapshot to restore as the new cached volumeE.g., `snap-1122aabb`.
     * 
     */
    @Import(name="snapshotId")
    private @Nullable Output snapshotId;

    /**
     * @return The snapshot ID of the snapshot to restore as the new cached volumeE.g., `snap-1122aabb`.
     * 
     */
    public Optional> snapshotId() {
        return Optional.ofNullable(this.snapshotId);
    }

    /**
     * The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The `volume_size_in_bytes` value for this new volume must be equal to or larger than the size of the existing volume, in bytes.
     * 
     */
    @Import(name="sourceVolumeArn")
    private @Nullable Output sourceVolumeArn;

    /**
     * @return The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The `volume_size_in_bytes` value for this new volume must be equal to or larger than the size of the existing volume, in bytes.
     * 
     */
    public Optional> sourceVolumeArn() {
        return Optional.ofNullable(this.sourceVolumeArn);
    }

    /**
     * Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. The target name must be unique across all volumes of a gateway.
     * 
     */
    @Import(name="targetName", required=true)
    private Output targetName;

    /**
     * @return The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. The target name must be unique across all volumes of a gateway.
     * 
     */
    public Output targetName() {
        return this.targetName;
    }

    /**
     * The size of the volume in bytes.
     * 
     */
    @Import(name="volumeSizeInBytes", required=true)
    private Output volumeSizeInBytes;

    /**
     * @return The size of the volume in bytes.
     * 
     */
    public Output volumeSizeInBytes() {
        return this.volumeSizeInBytes;
    }

    private CachesIscsiVolumeArgs() {}

    private CachesIscsiVolumeArgs(CachesIscsiVolumeArgs $) {
        this.gatewayArn = $.gatewayArn;
        this.kmsEncrypted = $.kmsEncrypted;
        this.kmsKey = $.kmsKey;
        this.networkInterfaceId = $.networkInterfaceId;
        this.snapshotId = $.snapshotId;
        this.sourceVolumeArn = $.sourceVolumeArn;
        this.tags = $.tags;
        this.targetName = $.targetName;
        this.volumeSizeInBytes = $.volumeSizeInBytes;
    }

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

    public static final class Builder {
        private CachesIscsiVolumeArgs $;

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

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

        /**
         * @param gatewayArn The Amazon Resource Name (ARN) of the gateway.
         * 
         * @return builder
         * 
         */
        public Builder gatewayArn(Output gatewayArn) {
            $.gatewayArn = gatewayArn;
            return this;
        }

        /**
         * @param gatewayArn The Amazon Resource Name (ARN) of the gateway.
         * 
         * @return builder
         * 
         */
        public Builder gatewayArn(String gatewayArn) {
            return gatewayArn(Output.of(gatewayArn));
        }

        /**
         * @param kmsEncrypted Set to `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3.
         * 
         * @return builder
         * 
         */
        public Builder kmsEncrypted(@Nullable Output kmsEncrypted) {
            $.kmsEncrypted = kmsEncrypted;
            return this;
        }

        /**
         * @param kmsEncrypted Set to `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3.
         * 
         * @return builder
         * 
         */
        public Builder kmsEncrypted(Boolean kmsEncrypted) {
            return kmsEncrypted(Output.of(kmsEncrypted));
        }

        /**
         * @param kmsKey The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server side encryption. Is required when `kms_encrypted` is set.
         * 
         * @return builder
         * 
         */
        public Builder kmsKey(@Nullable Output kmsKey) {
            $.kmsKey = kmsKey;
            return this;
        }

        /**
         * @param kmsKey The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server side encryption. Is required when `kms_encrypted` is set.
         * 
         * @return builder
         * 
         */
        public Builder kmsKey(String kmsKey) {
            return kmsKey(Output.of(kmsKey));
        }

        /**
         * @param networkInterfaceId The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted.
         * 
         * @return builder
         * 
         */
        public Builder networkInterfaceId(Output networkInterfaceId) {
            $.networkInterfaceId = networkInterfaceId;
            return this;
        }

        /**
         * @param networkInterfaceId The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted.
         * 
         * @return builder
         * 
         */
        public Builder networkInterfaceId(String networkInterfaceId) {
            return networkInterfaceId(Output.of(networkInterfaceId));
        }

        /**
         * @param snapshotId The snapshot ID of the snapshot to restore as the new cached volumeE.g., `snap-1122aabb`.
         * 
         * @return builder
         * 
         */
        public Builder snapshotId(@Nullable Output snapshotId) {
            $.snapshotId = snapshotId;
            return this;
        }

        /**
         * @param snapshotId The snapshot ID of the snapshot to restore as the new cached volumeE.g., `snap-1122aabb`.
         * 
         * @return builder
         * 
         */
        public Builder snapshotId(String snapshotId) {
            return snapshotId(Output.of(snapshotId));
        }

        /**
         * @param sourceVolumeArn The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The `volume_size_in_bytes` value for this new volume must be equal to or larger than the size of the existing volume, in bytes.
         * 
         * @return builder
         * 
         */
        public Builder sourceVolumeArn(@Nullable Output sourceVolumeArn) {
            $.sourceVolumeArn = sourceVolumeArn;
            return this;
        }

        /**
         * @param sourceVolumeArn The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The `volume_size_in_bytes` value for this new volume must be equal to or larger than the size of the existing volume, in bytes.
         * 
         * @return builder
         * 
         */
        public Builder sourceVolumeArn(String sourceVolumeArn) {
            return sourceVolumeArn(Output.of(sourceVolumeArn));
        }

        /**
         * @param tags Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetName The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. The target name must be unique across all volumes of a gateway.
         * 
         * @return builder
         * 
         */
        public Builder targetName(Output targetName) {
            $.targetName = targetName;
            return this;
        }

        /**
         * @param targetName The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. The target name must be unique across all volumes of a gateway.
         * 
         * @return builder
         * 
         */
        public Builder targetName(String targetName) {
            return targetName(Output.of(targetName));
        }

        /**
         * @param volumeSizeInBytes The size of the volume in bytes.
         * 
         * @return builder
         * 
         */
        public Builder volumeSizeInBytes(Output volumeSizeInBytes) {
            $.volumeSizeInBytes = volumeSizeInBytes;
            return this;
        }

        /**
         * @param volumeSizeInBytes The size of the volume in bytes.
         * 
         * @return builder
         * 
         */
        public Builder volumeSizeInBytes(Integer volumeSizeInBytes) {
            return volumeSizeInBytes(Output.of(volumeSizeInBytes));
        }

        public CachesIscsiVolumeArgs build() {
            if ($.gatewayArn == null) {
                throw new MissingRequiredPropertyException("CachesIscsiVolumeArgs", "gatewayArn");
            }
            if ($.networkInterfaceId == null) {
                throw new MissingRequiredPropertyException("CachesIscsiVolumeArgs", "networkInterfaceId");
            }
            if ($.targetName == null) {
                throw new MissingRequiredPropertyException("CachesIscsiVolumeArgs", "targetName");
            }
            if ($.volumeSizeInBytes == null) {
                throw new MissingRequiredPropertyException("CachesIscsiVolumeArgs", "volumeSizeInBytes");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy