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

com.pulumi.aws.storagegateway.inputs.GatewayState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.66.3
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.aws.storagegateway.inputs;

import com.pulumi.aws.storagegateway.inputs.GatewayGatewayNetworkInterfaceArgs;
import com.pulumi.aws.storagegateway.inputs.GatewayMaintenanceStartTimeArgs;
import com.pulumi.aws.storagegateway.inputs.GatewaySmbActiveDirectorySettingsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final GatewayState Empty = new GatewayState();

    /**
     * Gateway activation key during resource creation. Conflicts with `gateway_ip_address`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
     * 
     */
    @Import(name="activationKey")
    private @Nullable Output activationKey;

    /**
     * @return Gateway activation key during resource creation. Conflicts with `gateway_ip_address`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
     * 
     */
    public Optional> activationKey() {
        return Optional.ofNullable(this.activationKey);
    }

    /**
     * Amazon Resource Name (ARN) of the gateway.
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return Amazon Resource Name (ARN) of the gateway.
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
     * 
     */
    @Import(name="averageDownloadRateLimitInBitsPerSec")
    private @Nullable Output averageDownloadRateLimitInBitsPerSec;

    /**
     * @return The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
     * 
     */
    public Optional> averageDownloadRateLimitInBitsPerSec() {
        return Optional.ofNullable(this.averageDownloadRateLimitInBitsPerSec);
    }

    /**
     * The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
     * 
     */
    @Import(name="averageUploadRateLimitInBitsPerSec")
    private @Nullable Output averageUploadRateLimitInBitsPerSec;

    /**
     * @return The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
     * 
     */
    public Optional> averageUploadRateLimitInBitsPerSec() {
        return Optional.ofNullable(this.averageUploadRateLimitInBitsPerSec);
    }

    /**
     * The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
     * 
     */
    @Import(name="cloudwatchLogGroupArn")
    private @Nullable Output cloudwatchLogGroupArn;

    /**
     * @return The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
     * 
     */
    public Optional> cloudwatchLogGroupArn() {
        return Optional.ofNullable(this.cloudwatchLogGroupArn);
    }

    /**
     * The ID of the Amazon EC2 instance that was used to launch the gateway.
     * 
     */
    @Import(name="ec2InstanceId")
    private @Nullable Output ec2InstanceId;

    /**
     * @return The ID of the Amazon EC2 instance that was used to launch the gateway.
     * 
     */
    public Optional> ec2InstanceId() {
        return Optional.ofNullable(this.ec2InstanceId);
    }

    /**
     * The type of endpoint for your gateway.
     * 
     */
    @Import(name="endpointType")
    private @Nullable Output endpointType;

    /**
     * @return The type of endpoint for your gateway.
     * 
     */
    public Optional> endpointType() {
        return Optional.ofNullable(this.endpointType);
    }

    /**
     * Identifier of the gateway.
     * 
     */
    @Import(name="gatewayId")
    private @Nullable Output gatewayId;

    /**
     * @return Identifier of the gateway.
     * 
     */
    public Optional> gatewayId() {
        return Optional.ofNullable(this.gatewayId);
    }

    /**
     * Gateway IP address to retrieve activation key during resource creation. Conflicts with `activation_key`. Gateway must be accessible on port 80 from where this provider is running. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
     * 
     */
    @Import(name="gatewayIpAddress")
    private @Nullable Output gatewayIpAddress;

    /**
     * @return Gateway IP address to retrieve activation key during resource creation. Conflicts with `activation_key`. Gateway must be accessible on port 80 from where this provider is running. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
     * 
     */
    public Optional> gatewayIpAddress() {
        return Optional.ofNullable(this.gatewayIpAddress);
    }

    /**
     * Name of the gateway.
     * 
     */
    @Import(name="gatewayName")
    private @Nullable Output gatewayName;

    /**
     * @return Name of the gateway.
     * 
     */
    public Optional> gatewayName() {
        return Optional.ofNullable(this.gatewayName);
    }

    /**
     * An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
     * 
     */
    @Import(name="gatewayNetworkInterfaces")
    private @Nullable Output> gatewayNetworkInterfaces;

    /**
     * @return An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
     * 
     */
    public Optional>> gatewayNetworkInterfaces() {
        return Optional.ofNullable(this.gatewayNetworkInterfaces);
    }

    /**
     * Time zone for the gateway. The time zone is of the format "GMT", "GMT-hr:mm", or "GMT+hr:mm". For example, `GMT-4:00` indicates the time is 4 hours behind GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.
     * 
     */
    @Import(name="gatewayTimezone")
    private @Nullable Output gatewayTimezone;

    /**
     * @return Time zone for the gateway. The time zone is of the format "GMT", "GMT-hr:mm", or "GMT+hr:mm". For example, `GMT-4:00` indicates the time is 4 hours behind GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.
     * 
     */
    public Optional> gatewayTimezone() {
        return Optional.ofNullable(this.gatewayTimezone);
    }

    /**
     * Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
     * 
     */
    @Import(name="gatewayType")
    private @Nullable Output gatewayType;

    /**
     * @return Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
     * 
     */
    public Optional> gatewayType() {
        return Optional.ofNullable(this.gatewayType);
    }

    /**
     * VPC endpoint address to be used when activating your gateway. This should be used when your instance is in a private subnet. Requires HTTP access from client computer running this provider. More info on what ports are required by your VPC Endpoint Security group in [Activating a Gateway in a Virtual Private Cloud](https://docs.aws.amazon.com/storagegateway/latest/userguide/gateway-private-link.html).
     * 
     */
    @Import(name="gatewayVpcEndpoint")
    private @Nullable Output gatewayVpcEndpoint;

    /**
     * @return VPC endpoint address to be used when activating your gateway. This should be used when your instance is in a private subnet. Requires HTTP access from client computer running this provider. More info on what ports are required by your VPC Endpoint Security group in [Activating a Gateway in a Virtual Private Cloud](https://docs.aws.amazon.com/storagegateway/latest/userguide/gateway-private-link.html).
     * 
     */
    public Optional> gatewayVpcEndpoint() {
        return Optional.ofNullable(this.gatewayVpcEndpoint);
    }

    /**
     * The type of hypervisor environment used by the host.
     * 
     */
    @Import(name="hostEnvironment")
    private @Nullable Output hostEnvironment;

    /**
     * @return The type of hypervisor environment used by the host.
     * 
     */
    public Optional> hostEnvironment() {
        return Optional.ofNullable(this.hostEnvironment);
    }

    /**
     * The gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone. More details below.
     * 
     */
    @Import(name="maintenanceStartTime")
    private @Nullable Output maintenanceStartTime;

    /**
     * @return The gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone. More details below.
     * 
     */
    public Optional> maintenanceStartTime() {
        return Optional.ofNullable(this.maintenanceStartTime);
    }

    /**
     * Type of medium changer to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `STK-L700`, `AWS-Gateway-VTL`, `IBM-03584L32-0402`.
     * 
     */
    @Import(name="mediumChangerType")
    private @Nullable Output mediumChangerType;

    /**
     * @return Type of medium changer to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `STK-L700`, `AWS-Gateway-VTL`, `IBM-03584L32-0402`.
     * 
     */
    public Optional> mediumChangerType() {
        return Optional.ofNullable(this.mediumChangerType);
    }

    /**
     * Nested argument with Active Directory domain join information for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `ActiveDirectory` authentication SMB file shares. More details below.
     * 
     */
    @Import(name="smbActiveDirectorySettings")
    private @Nullable Output smbActiveDirectorySettings;

    /**
     * @return Nested argument with Active Directory domain join information for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `ActiveDirectory` authentication SMB file shares. More details below.
     * 
     */
    public Optional> smbActiveDirectorySettings() {
        return Optional.ofNullable(this.smbActiveDirectorySettings);
    }

    /**
     * Specifies whether the shares on this gateway appear when listing shares.
     * 
     */
    @Import(name="smbFileShareVisibility")
    private @Nullable Output smbFileShareVisibility;

    /**
     * @return Specifies whether the shares on this gateway appear when listing shares.
     * 
     */
    public Optional> smbFileShareVisibility() {
        return Optional.ofNullable(this.smbFileShareVisibility);
    }

    /**
     * Guest password for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `GuestAccess` authentication SMB file shares. This provider can only detect drift of the existence of a guest password, not its actual value from the gateway. This provider can however update the password with changing the argument.
     * 
     */
    @Import(name="smbGuestPassword")
    private @Nullable Output smbGuestPassword;

    /**
     * @return Guest password for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `GuestAccess` authentication SMB file shares. This provider can only detect drift of the existence of a guest password, not its actual value from the gateway. This provider can however update the password with changing the argument.
     * 
     */
    public Optional> smbGuestPassword() {
        return Optional.ofNullable(this.smbGuestPassword);
    }

    /**
     * Specifies the type of security strategy. Valid values are: `ClientSpecified`, `MandatorySigning`, and `MandatoryEncryption`. See [Setting a Security Level for Your Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-gateway-file.html#security-strategy) for more information.
     * 
     */
    @Import(name="smbSecurityStrategy")
    private @Nullable Output smbSecurityStrategy;

    /**
     * @return Specifies the type of security strategy. Valid values are: `ClientSpecified`, `MandatorySigning`, and `MandatoryEncryption`. See [Setting a Security Level for Your Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-gateway-file.html#security-strategy) for more information.
     * 
     */
    public Optional> smbSecurityStrategy() {
        return Optional.ofNullable(this.smbSecurityStrategy);
    }

    /**
     * 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);
    }

    /**
     * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    @Import(name="tagsAll")
    private @Nullable Output> tagsAll;

    /**
     * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    public Optional>> tagsAll() {
        return Optional.ofNullable(this.tagsAll);
    }

    /**
     * Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
     * 
     */
    @Import(name="tapeDriveType")
    private @Nullable Output tapeDriveType;

    /**
     * @return Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
     * 
     */
    public Optional> tapeDriveType() {
        return Optional.ofNullable(this.tapeDriveType);
    }

    private GatewayState() {}

    private GatewayState(GatewayState $) {
        this.activationKey = $.activationKey;
        this.arn = $.arn;
        this.averageDownloadRateLimitInBitsPerSec = $.averageDownloadRateLimitInBitsPerSec;
        this.averageUploadRateLimitInBitsPerSec = $.averageUploadRateLimitInBitsPerSec;
        this.cloudwatchLogGroupArn = $.cloudwatchLogGroupArn;
        this.ec2InstanceId = $.ec2InstanceId;
        this.endpointType = $.endpointType;
        this.gatewayId = $.gatewayId;
        this.gatewayIpAddress = $.gatewayIpAddress;
        this.gatewayName = $.gatewayName;
        this.gatewayNetworkInterfaces = $.gatewayNetworkInterfaces;
        this.gatewayTimezone = $.gatewayTimezone;
        this.gatewayType = $.gatewayType;
        this.gatewayVpcEndpoint = $.gatewayVpcEndpoint;
        this.hostEnvironment = $.hostEnvironment;
        this.maintenanceStartTime = $.maintenanceStartTime;
        this.mediumChangerType = $.mediumChangerType;
        this.smbActiveDirectorySettings = $.smbActiveDirectorySettings;
        this.smbFileShareVisibility = $.smbFileShareVisibility;
        this.smbGuestPassword = $.smbGuestPassword;
        this.smbSecurityStrategy = $.smbSecurityStrategy;
        this.tags = $.tags;
        this.tagsAll = $.tagsAll;
        this.tapeDriveType = $.tapeDriveType;
    }

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

    public static final class Builder {
        private GatewayState $;

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

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

        /**
         * @param activationKey Gateway activation key during resource creation. Conflicts with `gateway_ip_address`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
         * 
         * @return builder
         * 
         */
        public Builder activationKey(@Nullable Output activationKey) {
            $.activationKey = activationKey;
            return this;
        }

        /**
         * @param activationKey Gateway activation key during resource creation. Conflicts with `gateway_ip_address`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
         * 
         * @return builder
         * 
         */
        public Builder activationKey(String activationKey) {
            return activationKey(Output.of(activationKey));
        }

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

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

        /**
         * @param averageDownloadRateLimitInBitsPerSec The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
         * 
         * @return builder
         * 
         */
        public Builder averageDownloadRateLimitInBitsPerSec(@Nullable Output averageDownloadRateLimitInBitsPerSec) {
            $.averageDownloadRateLimitInBitsPerSec = averageDownloadRateLimitInBitsPerSec;
            return this;
        }

        /**
         * @param averageDownloadRateLimitInBitsPerSec The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
         * 
         * @return builder
         * 
         */
        public Builder averageDownloadRateLimitInBitsPerSec(Integer averageDownloadRateLimitInBitsPerSec) {
            return averageDownloadRateLimitInBitsPerSec(Output.of(averageDownloadRateLimitInBitsPerSec));
        }

        /**
         * @param averageUploadRateLimitInBitsPerSec The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
         * 
         * @return builder
         * 
         */
        public Builder averageUploadRateLimitInBitsPerSec(@Nullable Output averageUploadRateLimitInBitsPerSec) {
            $.averageUploadRateLimitInBitsPerSec = averageUploadRateLimitInBitsPerSec;
            return this;
        }

        /**
         * @param averageUploadRateLimitInBitsPerSec The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
         * 
         * @return builder
         * 
         */
        public Builder averageUploadRateLimitInBitsPerSec(Integer averageUploadRateLimitInBitsPerSec) {
            return averageUploadRateLimitInBitsPerSec(Output.of(averageUploadRateLimitInBitsPerSec));
        }

        /**
         * @param cloudwatchLogGroupArn The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
         * 
         * @return builder
         * 
         */
        public Builder cloudwatchLogGroupArn(@Nullable Output cloudwatchLogGroupArn) {
            $.cloudwatchLogGroupArn = cloudwatchLogGroupArn;
            return this;
        }

        /**
         * @param cloudwatchLogGroupArn The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
         * 
         * @return builder
         * 
         */
        public Builder cloudwatchLogGroupArn(String cloudwatchLogGroupArn) {
            return cloudwatchLogGroupArn(Output.of(cloudwatchLogGroupArn));
        }

        /**
         * @param ec2InstanceId The ID of the Amazon EC2 instance that was used to launch the gateway.
         * 
         * @return builder
         * 
         */
        public Builder ec2InstanceId(@Nullable Output ec2InstanceId) {
            $.ec2InstanceId = ec2InstanceId;
            return this;
        }

        /**
         * @param ec2InstanceId The ID of the Amazon EC2 instance that was used to launch the gateway.
         * 
         * @return builder
         * 
         */
        public Builder ec2InstanceId(String ec2InstanceId) {
            return ec2InstanceId(Output.of(ec2InstanceId));
        }

        /**
         * @param endpointType The type of endpoint for your gateway.
         * 
         * @return builder
         * 
         */
        public Builder endpointType(@Nullable Output endpointType) {
            $.endpointType = endpointType;
            return this;
        }

        /**
         * @param endpointType The type of endpoint for your gateway.
         * 
         * @return builder
         * 
         */
        public Builder endpointType(String endpointType) {
            return endpointType(Output.of(endpointType));
        }

        /**
         * @param gatewayId Identifier of the gateway.
         * 
         * @return builder
         * 
         */
        public Builder gatewayId(@Nullable Output gatewayId) {
            $.gatewayId = gatewayId;
            return this;
        }

        /**
         * @param gatewayId Identifier of the gateway.
         * 
         * @return builder
         * 
         */
        public Builder gatewayId(String gatewayId) {
            return gatewayId(Output.of(gatewayId));
        }

        /**
         * @param gatewayIpAddress Gateway IP address to retrieve activation key during resource creation. Conflicts with `activation_key`. Gateway must be accessible on port 80 from where this provider is running. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
         * 
         * @return builder
         * 
         */
        public Builder gatewayIpAddress(@Nullable Output gatewayIpAddress) {
            $.gatewayIpAddress = gatewayIpAddress;
            return this;
        }

        /**
         * @param gatewayIpAddress Gateway IP address to retrieve activation key during resource creation. Conflicts with `activation_key`. Gateway must be accessible on port 80 from where this provider is running. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
         * 
         * @return builder
         * 
         */
        public Builder gatewayIpAddress(String gatewayIpAddress) {
            return gatewayIpAddress(Output.of(gatewayIpAddress));
        }

        /**
         * @param gatewayName Name of the gateway.
         * 
         * @return builder
         * 
         */
        public Builder gatewayName(@Nullable Output gatewayName) {
            $.gatewayName = gatewayName;
            return this;
        }

        /**
         * @param gatewayName Name of the gateway.
         * 
         * @return builder
         * 
         */
        public Builder gatewayName(String gatewayName) {
            return gatewayName(Output.of(gatewayName));
        }

        /**
         * @param gatewayNetworkInterfaces An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder gatewayNetworkInterfaces(@Nullable Output> gatewayNetworkInterfaces) {
            $.gatewayNetworkInterfaces = gatewayNetworkInterfaces;
            return this;
        }

        /**
         * @param gatewayNetworkInterfaces An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder gatewayNetworkInterfaces(List gatewayNetworkInterfaces) {
            return gatewayNetworkInterfaces(Output.of(gatewayNetworkInterfaces));
        }

        /**
         * @param gatewayNetworkInterfaces An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder gatewayNetworkInterfaces(GatewayGatewayNetworkInterfaceArgs... gatewayNetworkInterfaces) {
            return gatewayNetworkInterfaces(List.of(gatewayNetworkInterfaces));
        }

        /**
         * @param gatewayTimezone Time zone for the gateway. The time zone is of the format "GMT", "GMT-hr:mm", or "GMT+hr:mm". For example, `GMT-4:00` indicates the time is 4 hours behind GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.
         * 
         * @return builder
         * 
         */
        public Builder gatewayTimezone(@Nullable Output gatewayTimezone) {
            $.gatewayTimezone = gatewayTimezone;
            return this;
        }

        /**
         * @param gatewayTimezone Time zone for the gateway. The time zone is of the format "GMT", "GMT-hr:mm", or "GMT+hr:mm". For example, `GMT-4:00` indicates the time is 4 hours behind GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.
         * 
         * @return builder
         * 
         */
        public Builder gatewayTimezone(String gatewayTimezone) {
            return gatewayTimezone(Output.of(gatewayTimezone));
        }

        /**
         * @param gatewayType Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
         * 
         * @return builder
         * 
         */
        public Builder gatewayType(@Nullable Output gatewayType) {
            $.gatewayType = gatewayType;
            return this;
        }

        /**
         * @param gatewayType Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
         * 
         * @return builder
         * 
         */
        public Builder gatewayType(String gatewayType) {
            return gatewayType(Output.of(gatewayType));
        }

        /**
         * @param gatewayVpcEndpoint VPC endpoint address to be used when activating your gateway. This should be used when your instance is in a private subnet. Requires HTTP access from client computer running this provider. More info on what ports are required by your VPC Endpoint Security group in [Activating a Gateway in a Virtual Private Cloud](https://docs.aws.amazon.com/storagegateway/latest/userguide/gateway-private-link.html).
         * 
         * @return builder
         * 
         */
        public Builder gatewayVpcEndpoint(@Nullable Output gatewayVpcEndpoint) {
            $.gatewayVpcEndpoint = gatewayVpcEndpoint;
            return this;
        }

        /**
         * @param gatewayVpcEndpoint VPC endpoint address to be used when activating your gateway. This should be used when your instance is in a private subnet. Requires HTTP access from client computer running this provider. More info on what ports are required by your VPC Endpoint Security group in [Activating a Gateway in a Virtual Private Cloud](https://docs.aws.amazon.com/storagegateway/latest/userguide/gateway-private-link.html).
         * 
         * @return builder
         * 
         */
        public Builder gatewayVpcEndpoint(String gatewayVpcEndpoint) {
            return gatewayVpcEndpoint(Output.of(gatewayVpcEndpoint));
        }

        /**
         * @param hostEnvironment The type of hypervisor environment used by the host.
         * 
         * @return builder
         * 
         */
        public Builder hostEnvironment(@Nullable Output hostEnvironment) {
            $.hostEnvironment = hostEnvironment;
            return this;
        }

        /**
         * @param hostEnvironment The type of hypervisor environment used by the host.
         * 
         * @return builder
         * 
         */
        public Builder hostEnvironment(String hostEnvironment) {
            return hostEnvironment(Output.of(hostEnvironment));
        }

        /**
         * @param maintenanceStartTime The gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone. More details below.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceStartTime(@Nullable Output maintenanceStartTime) {
            $.maintenanceStartTime = maintenanceStartTime;
            return this;
        }

        /**
         * @param maintenanceStartTime The gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone. More details below.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceStartTime(GatewayMaintenanceStartTimeArgs maintenanceStartTime) {
            return maintenanceStartTime(Output.of(maintenanceStartTime));
        }

        /**
         * @param mediumChangerType Type of medium changer to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `STK-L700`, `AWS-Gateway-VTL`, `IBM-03584L32-0402`.
         * 
         * @return builder
         * 
         */
        public Builder mediumChangerType(@Nullable Output mediumChangerType) {
            $.mediumChangerType = mediumChangerType;
            return this;
        }

        /**
         * @param mediumChangerType Type of medium changer to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `STK-L700`, `AWS-Gateway-VTL`, `IBM-03584L32-0402`.
         * 
         * @return builder
         * 
         */
        public Builder mediumChangerType(String mediumChangerType) {
            return mediumChangerType(Output.of(mediumChangerType));
        }

        /**
         * @param smbActiveDirectorySettings Nested argument with Active Directory domain join information for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `ActiveDirectory` authentication SMB file shares. More details below.
         * 
         * @return builder
         * 
         */
        public Builder smbActiveDirectorySettings(@Nullable Output smbActiveDirectorySettings) {
            $.smbActiveDirectorySettings = smbActiveDirectorySettings;
            return this;
        }

        /**
         * @param smbActiveDirectorySettings Nested argument with Active Directory domain join information for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `ActiveDirectory` authentication SMB file shares. More details below.
         * 
         * @return builder
         * 
         */
        public Builder smbActiveDirectorySettings(GatewaySmbActiveDirectorySettingsArgs smbActiveDirectorySettings) {
            return smbActiveDirectorySettings(Output.of(smbActiveDirectorySettings));
        }

        /**
         * @param smbFileShareVisibility Specifies whether the shares on this gateway appear when listing shares.
         * 
         * @return builder
         * 
         */
        public Builder smbFileShareVisibility(@Nullable Output smbFileShareVisibility) {
            $.smbFileShareVisibility = smbFileShareVisibility;
            return this;
        }

        /**
         * @param smbFileShareVisibility Specifies whether the shares on this gateway appear when listing shares.
         * 
         * @return builder
         * 
         */
        public Builder smbFileShareVisibility(Boolean smbFileShareVisibility) {
            return smbFileShareVisibility(Output.of(smbFileShareVisibility));
        }

        /**
         * @param smbGuestPassword Guest password for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `GuestAccess` authentication SMB file shares. This provider can only detect drift of the existence of a guest password, not its actual value from the gateway. This provider can however update the password with changing the argument.
         * 
         * @return builder
         * 
         */
        public Builder smbGuestPassword(@Nullable Output smbGuestPassword) {
            $.smbGuestPassword = smbGuestPassword;
            return this;
        }

        /**
         * @param smbGuestPassword Guest password for Server Message Block (SMB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creating `GuestAccess` authentication SMB file shares. This provider can only detect drift of the existence of a guest password, not its actual value from the gateway. This provider can however update the password with changing the argument.
         * 
         * @return builder
         * 
         */
        public Builder smbGuestPassword(String smbGuestPassword) {
            return smbGuestPassword(Output.of(smbGuestPassword));
        }

        /**
         * @param smbSecurityStrategy Specifies the type of security strategy. Valid values are: `ClientSpecified`, `MandatorySigning`, and `MandatoryEncryption`. See [Setting a Security Level for Your Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-gateway-file.html#security-strategy) for more information.
         * 
         * @return builder
         * 
         */
        public Builder smbSecurityStrategy(@Nullable Output smbSecurityStrategy) {
            $.smbSecurityStrategy = smbSecurityStrategy;
            return this;
        }

        /**
         * @param smbSecurityStrategy Specifies the type of security strategy. Valid values are: `ClientSpecified`, `MandatorySigning`, and `MandatoryEncryption`. See [Setting a Security Level for Your Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-gateway-file.html#security-strategy) for more information.
         * 
         * @return builder
         * 
         */
        public Builder smbSecurityStrategy(String smbSecurityStrategy) {
            return smbSecurityStrategy(Output.of(smbSecurityStrategy));
        }

        /**
         * @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 tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(@Nullable Output> tagsAll) {
            $.tagsAll = tagsAll;
            return this;
        }

        /**
         * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(Map tagsAll) {
            return tagsAll(Output.of(tagsAll));
        }

        /**
         * @param tapeDriveType Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
         * 
         * @return builder
         * 
         */
        public Builder tapeDriveType(@Nullable Output tapeDriveType) {
            $.tapeDriveType = tapeDriveType;
            return this;
        }

        /**
         * @param tapeDriveType Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
         * 
         * @return builder
         * 
         */
        public Builder tapeDriveType(String tapeDriveType) {
            return tapeDriveType(Output.of(tapeDriveType));
        }

        public GatewayState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy