github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/storagegateway/gateway.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package storagegateway
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Manages an AWS Storage Gateway file, tape, or volume gateway in the provider region.
    16  //
    17  // > **NOTE:** The Storage Gateway API requires the gateway to be connected to properly return information after activation. If you are receiving `The specified gateway is not connected` errors during resource creation (gateway activation), ensure your gateway instance meets the [Storage Gateway requirements](https://docs.aws.amazon.com/storagegateway/latest/userguide/Requirements.html).
    18  //
    19  // ## Example Usage
    20  //
    21  // ### Local Cache
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
    31  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    32  //
    33  // )
    34  //
    35  //	func main() {
    36  //		pulumi.Run(func(ctx *pulumi.Context) error {
    37  //			_, err := ec2.NewVolumeAttachment(ctx, "test", &ec2.VolumeAttachmentArgs{
    38  //				DeviceName: pulumi.String("/dev/xvdb"),
    39  //				VolumeId:   pulumi.Any(testAwsEbsVolume.Id),
    40  //				InstanceId: pulumi.Any(testAwsInstance.Id),
    41  //			})
    42  //			if err != nil {
    43  //				return err
    44  //			}
    45  //			test, err := storagegateway.GetLocalDisk(ctx, &storagegateway.GetLocalDiskArgs{
    46  //				DiskNode:   pulumi.StringRef(testAwsVolumeAttachment.DeviceName),
    47  //				GatewayArn: testAwsStoragegatewayGateway.Arn,
    48  //			}, nil)
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			_, err = storagegateway.NewCache(ctx, "test", &storagegateway.CacheArgs{
    53  //				DiskId:     pulumi.String(test.DiskId),
    54  //				GatewayArn: pulumi.Any(testAwsStoragegatewayGateway.Arn),
    55  //			})
    56  //			if err != nil {
    57  //				return err
    58  //			}
    59  //			return nil
    60  //		})
    61  //	}
    62  //
    63  // ```
    64  // <!--End PulumiCodeChooser -->
    65  //
    66  // ### FSx File Gateway
    67  //
    68  // <!--Start PulumiCodeChooser -->
    69  // ```go
    70  // package main
    71  //
    72  // import (
    73  //
    74  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
    75  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    76  //
    77  // )
    78  //
    79  //	func main() {
    80  //		pulumi.Run(func(ctx *pulumi.Context) error {
    81  //			_, err := storagegateway.NewGateway(ctx, "example", &storagegateway.GatewayArgs{
    82  //				GatewayIpAddress: pulumi.String("1.2.3.4"),
    83  //				GatewayName:      pulumi.String("example"),
    84  //				GatewayTimezone:  pulumi.String("GMT"),
    85  //				GatewayType:      pulumi.String("FILE_FSX_SMB"),
    86  //				SmbActiveDirectorySettings: &storagegateway.GatewaySmbActiveDirectorySettingsArgs{
    87  //					DomainName: pulumi.String("corp.example.com"),
    88  //					Password:   pulumi.String("avoid-plaintext-passwords"),
    89  //					Username:   pulumi.String("Admin"),
    90  //				},
    91  //			})
    92  //			if err != nil {
    93  //				return err
    94  //			}
    95  //			return nil
    96  //		})
    97  //	}
    98  //
    99  // ```
   100  // <!--End PulumiCodeChooser -->
   101  //
   102  // ### S3 File Gateway
   103  //
   104  // <!--Start PulumiCodeChooser -->
   105  // ```go
   106  // package main
   107  //
   108  // import (
   109  //
   110  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
   111  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   112  //
   113  // )
   114  //
   115  //	func main() {
   116  //		pulumi.Run(func(ctx *pulumi.Context) error {
   117  //			_, err := storagegateway.NewGateway(ctx, "example", &storagegateway.GatewayArgs{
   118  //				GatewayIpAddress: pulumi.String("1.2.3.4"),
   119  //				GatewayName:      pulumi.String("example"),
   120  //				GatewayTimezone:  pulumi.String("GMT"),
   121  //				GatewayType:      pulumi.String("FILE_S3"),
   122  //			})
   123  //			if err != nil {
   124  //				return err
   125  //			}
   126  //			return nil
   127  //		})
   128  //	}
   129  //
   130  // ```
   131  // <!--End PulumiCodeChooser -->
   132  //
   133  // ### Tape Gateway
   134  //
   135  // <!--Start PulumiCodeChooser -->
   136  // ```go
   137  // package main
   138  //
   139  // import (
   140  //
   141  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
   142  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   143  //
   144  // )
   145  //
   146  //	func main() {
   147  //		pulumi.Run(func(ctx *pulumi.Context) error {
   148  //			_, err := storagegateway.NewGateway(ctx, "example", &storagegateway.GatewayArgs{
   149  //				GatewayIpAddress:  pulumi.String("1.2.3.4"),
   150  //				GatewayName:       pulumi.String("example"),
   151  //				GatewayTimezone:   pulumi.String("GMT"),
   152  //				GatewayType:       pulumi.String("VTL"),
   153  //				MediumChangerType: pulumi.String("AWS-Gateway-VTL"),
   154  //				TapeDriveType:     pulumi.String("IBM-ULT3580-TD5"),
   155  //			})
   156  //			if err != nil {
   157  //				return err
   158  //			}
   159  //			return nil
   160  //		})
   161  //	}
   162  //
   163  // ```
   164  // <!--End PulumiCodeChooser -->
   165  //
   166  // ### Volume Gateway (Cached)
   167  //
   168  // <!--Start PulumiCodeChooser -->
   169  // ```go
   170  // package main
   171  //
   172  // import (
   173  //
   174  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
   175  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   176  //
   177  // )
   178  //
   179  //	func main() {
   180  //		pulumi.Run(func(ctx *pulumi.Context) error {
   181  //			_, err := storagegateway.NewGateway(ctx, "example", &storagegateway.GatewayArgs{
   182  //				GatewayIpAddress: pulumi.String("1.2.3.4"),
   183  //				GatewayName:      pulumi.String("example"),
   184  //				GatewayTimezone:  pulumi.String("GMT"),
   185  //				GatewayType:      pulumi.String("CACHED"),
   186  //			})
   187  //			if err != nil {
   188  //				return err
   189  //			}
   190  //			return nil
   191  //		})
   192  //	}
   193  //
   194  // ```
   195  // <!--End PulumiCodeChooser -->
   196  //
   197  // ### Volume Gateway (Stored)
   198  //
   199  // <!--Start PulumiCodeChooser -->
   200  // ```go
   201  // package main
   202  //
   203  // import (
   204  //
   205  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
   206  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   207  //
   208  // )
   209  //
   210  //	func main() {
   211  //		pulumi.Run(func(ctx *pulumi.Context) error {
   212  //			_, err := storagegateway.NewGateway(ctx, "example", &storagegateway.GatewayArgs{
   213  //				GatewayIpAddress: pulumi.String("1.2.3.4"),
   214  //				GatewayName:      pulumi.String("example"),
   215  //				GatewayTimezone:  pulumi.String("GMT"),
   216  //				GatewayType:      pulumi.String("STORED"),
   217  //			})
   218  //			if err != nil {
   219  //				return err
   220  //			}
   221  //			return nil
   222  //		})
   223  //	}
   224  //
   225  // ```
   226  // <!--End PulumiCodeChooser -->
   227  //
   228  // ## Import
   229  //
   230  // Using `pulumi import`, import `aws_storagegateway_gateway` using the gateway Amazon Resource Name (ARN). For example:
   231  //
   232  // ```sh
   233  // $ pulumi import aws:storagegateway/gateway:Gateway example arn:aws:storagegateway:us-east-1:123456789012:gateway/sgw-12345678
   234  // ```
   235  // Certain resource arguments, like `gateway_ip_address` do not have a Storage Gateway API method for reading the information after creation, either omit the argument from the Pulumi program or use `ignore_changes` to hide the difference. For example:
   236  type Gateway struct {
   237  	pulumi.CustomResourceState
   238  
   239  	// Gateway activation key during resource creation. Conflicts with `gatewayIpAddress`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
   240  	ActivationKey pulumi.StringOutput `pulumi:"activationKey"`
   241  	// Amazon Resource Name (ARN) of the gateway.
   242  	Arn pulumi.StringOutput `pulumi:"arn"`
   243  	// The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   244  	AverageDownloadRateLimitInBitsPerSec pulumi.IntPtrOutput `pulumi:"averageDownloadRateLimitInBitsPerSec"`
   245  	// The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   246  	AverageUploadRateLimitInBitsPerSec pulumi.IntPtrOutput `pulumi:"averageUploadRateLimitInBitsPerSec"`
   247  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
   248  	CloudwatchLogGroupArn pulumi.StringPtrOutput `pulumi:"cloudwatchLogGroupArn"`
   249  	// The ID of the Amazon EC2 instance that was used to launch the gateway.
   250  	Ec2InstanceId pulumi.StringOutput `pulumi:"ec2InstanceId"`
   251  	// The type of endpoint for your gateway.
   252  	EndpointType pulumi.StringOutput `pulumi:"endpointType"`
   253  	// Identifier of the gateway.
   254  	GatewayId pulumi.StringOutput `pulumi:"gatewayId"`
   255  	// Gateway IP address to retrieve activation key during resource creation. Conflicts with `activationKey`. 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).
   256  	GatewayIpAddress pulumi.StringOutput `pulumi:"gatewayIpAddress"`
   257  	// Name of the gateway.
   258  	GatewayName pulumi.StringOutput `pulumi:"gatewayName"`
   259  	// An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
   260  	GatewayNetworkInterfaces GatewayGatewayNetworkInterfaceArrayOutput `pulumi:"gatewayNetworkInterfaces"`
   261  	// 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.
   262  	GatewayTimezone pulumi.StringOutput `pulumi:"gatewayTimezone"`
   263  	// Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
   264  	GatewayType pulumi.StringPtrOutput `pulumi:"gatewayType"`
   265  	// 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).
   266  	GatewayVpcEndpoint pulumi.StringPtrOutput `pulumi:"gatewayVpcEndpoint"`
   267  	// The type of hypervisor environment used by the host.
   268  	HostEnvironment pulumi.StringOutput `pulumi:"hostEnvironment"`
   269  	// 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.
   270  	MaintenanceStartTime GatewayMaintenanceStartTimeOutput `pulumi:"maintenanceStartTime"`
   271  	// 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`.
   272  	MediumChangerType pulumi.StringPtrOutput `pulumi:"mediumChangerType"`
   273  	// 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.
   274  	SmbActiveDirectorySettings GatewaySmbActiveDirectorySettingsPtrOutput `pulumi:"smbActiveDirectorySettings"`
   275  	// Specifies whether the shares on this gateway appear when listing shares.
   276  	SmbFileShareVisibility pulumi.BoolPtrOutput `pulumi:"smbFileShareVisibility"`
   277  	// 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.
   278  	SmbGuestPassword pulumi.StringPtrOutput `pulumi:"smbGuestPassword"`
   279  	// 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.
   280  	SmbSecurityStrategy pulumi.StringOutput `pulumi:"smbSecurityStrategy"`
   281  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   282  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   283  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   284  	//
   285  	// Deprecated: Please use `tags` instead.
   286  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   287  	// Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
   288  	TapeDriveType pulumi.StringPtrOutput `pulumi:"tapeDriveType"`
   289  }
   290  
   291  // NewGateway registers a new resource with the given unique name, arguments, and options.
   292  func NewGateway(ctx *pulumi.Context,
   293  	name string, args *GatewayArgs, opts ...pulumi.ResourceOption) (*Gateway, error) {
   294  	if args == nil {
   295  		return nil, errors.New("missing one or more required arguments")
   296  	}
   297  
   298  	if args.GatewayName == nil {
   299  		return nil, errors.New("invalid value for required argument 'GatewayName'")
   300  	}
   301  	if args.GatewayTimezone == nil {
   302  		return nil, errors.New("invalid value for required argument 'GatewayTimezone'")
   303  	}
   304  	if args.SmbGuestPassword != nil {
   305  		args.SmbGuestPassword = pulumi.ToSecret(args.SmbGuestPassword).(pulumi.StringPtrInput)
   306  	}
   307  	secrets := pulumi.AdditionalSecretOutputs([]string{
   308  		"smbGuestPassword",
   309  	})
   310  	opts = append(opts, secrets)
   311  	opts = internal.PkgResourceDefaultOpts(opts)
   312  	var resource Gateway
   313  	err := ctx.RegisterResource("aws:storagegateway/gateway:Gateway", name, args, &resource, opts...)
   314  	if err != nil {
   315  		return nil, err
   316  	}
   317  	return &resource, nil
   318  }
   319  
   320  // GetGateway gets an existing Gateway resource's state with the given name, ID, and optional
   321  // state properties that are used to uniquely qualify the lookup (nil if not required).
   322  func GetGateway(ctx *pulumi.Context,
   323  	name string, id pulumi.IDInput, state *GatewayState, opts ...pulumi.ResourceOption) (*Gateway, error) {
   324  	var resource Gateway
   325  	err := ctx.ReadResource("aws:storagegateway/gateway:Gateway", name, id, state, &resource, opts...)
   326  	if err != nil {
   327  		return nil, err
   328  	}
   329  	return &resource, nil
   330  }
   331  
   332  // Input properties used for looking up and filtering Gateway resources.
   333  type gatewayState struct {
   334  	// Gateway activation key during resource creation. Conflicts with `gatewayIpAddress`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
   335  	ActivationKey *string `pulumi:"activationKey"`
   336  	// Amazon Resource Name (ARN) of the gateway.
   337  	Arn *string `pulumi:"arn"`
   338  	// The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   339  	AverageDownloadRateLimitInBitsPerSec *int `pulumi:"averageDownloadRateLimitInBitsPerSec"`
   340  	// The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   341  	AverageUploadRateLimitInBitsPerSec *int `pulumi:"averageUploadRateLimitInBitsPerSec"`
   342  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
   343  	CloudwatchLogGroupArn *string `pulumi:"cloudwatchLogGroupArn"`
   344  	// The ID of the Amazon EC2 instance that was used to launch the gateway.
   345  	Ec2InstanceId *string `pulumi:"ec2InstanceId"`
   346  	// The type of endpoint for your gateway.
   347  	EndpointType *string `pulumi:"endpointType"`
   348  	// Identifier of the gateway.
   349  	GatewayId *string `pulumi:"gatewayId"`
   350  	// Gateway IP address to retrieve activation key during resource creation. Conflicts with `activationKey`. 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).
   351  	GatewayIpAddress *string `pulumi:"gatewayIpAddress"`
   352  	// Name of the gateway.
   353  	GatewayName *string `pulumi:"gatewayName"`
   354  	// An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
   355  	GatewayNetworkInterfaces []GatewayGatewayNetworkInterface `pulumi:"gatewayNetworkInterfaces"`
   356  	// 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.
   357  	GatewayTimezone *string `pulumi:"gatewayTimezone"`
   358  	// Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
   359  	GatewayType *string `pulumi:"gatewayType"`
   360  	// 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).
   361  	GatewayVpcEndpoint *string `pulumi:"gatewayVpcEndpoint"`
   362  	// The type of hypervisor environment used by the host.
   363  	HostEnvironment *string `pulumi:"hostEnvironment"`
   364  	// 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.
   365  	MaintenanceStartTime *GatewayMaintenanceStartTime `pulumi:"maintenanceStartTime"`
   366  	// 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`.
   367  	MediumChangerType *string `pulumi:"mediumChangerType"`
   368  	// 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.
   369  	SmbActiveDirectorySettings *GatewaySmbActiveDirectorySettings `pulumi:"smbActiveDirectorySettings"`
   370  	// Specifies whether the shares on this gateway appear when listing shares.
   371  	SmbFileShareVisibility *bool `pulumi:"smbFileShareVisibility"`
   372  	// 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.
   373  	SmbGuestPassword *string `pulumi:"smbGuestPassword"`
   374  	// 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.
   375  	SmbSecurityStrategy *string `pulumi:"smbSecurityStrategy"`
   376  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   377  	Tags map[string]string `pulumi:"tags"`
   378  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   379  	//
   380  	// Deprecated: Please use `tags` instead.
   381  	TagsAll map[string]string `pulumi:"tagsAll"`
   382  	// Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
   383  	TapeDriveType *string `pulumi:"tapeDriveType"`
   384  }
   385  
   386  type GatewayState struct {
   387  	// Gateway activation key during resource creation. Conflicts with `gatewayIpAddress`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
   388  	ActivationKey pulumi.StringPtrInput
   389  	// Amazon Resource Name (ARN) of the gateway.
   390  	Arn pulumi.StringPtrInput
   391  	// The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   392  	AverageDownloadRateLimitInBitsPerSec pulumi.IntPtrInput
   393  	// The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   394  	AverageUploadRateLimitInBitsPerSec pulumi.IntPtrInput
   395  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
   396  	CloudwatchLogGroupArn pulumi.StringPtrInput
   397  	// The ID of the Amazon EC2 instance that was used to launch the gateway.
   398  	Ec2InstanceId pulumi.StringPtrInput
   399  	// The type of endpoint for your gateway.
   400  	EndpointType pulumi.StringPtrInput
   401  	// Identifier of the gateway.
   402  	GatewayId pulumi.StringPtrInput
   403  	// Gateway IP address to retrieve activation key during resource creation. Conflicts with `activationKey`. 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).
   404  	GatewayIpAddress pulumi.StringPtrInput
   405  	// Name of the gateway.
   406  	GatewayName pulumi.StringPtrInput
   407  	// An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
   408  	GatewayNetworkInterfaces GatewayGatewayNetworkInterfaceArrayInput
   409  	// 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.
   410  	GatewayTimezone pulumi.StringPtrInput
   411  	// Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
   412  	GatewayType pulumi.StringPtrInput
   413  	// 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).
   414  	GatewayVpcEndpoint pulumi.StringPtrInput
   415  	// The type of hypervisor environment used by the host.
   416  	HostEnvironment pulumi.StringPtrInput
   417  	// 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.
   418  	MaintenanceStartTime GatewayMaintenanceStartTimePtrInput
   419  	// 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`.
   420  	MediumChangerType pulumi.StringPtrInput
   421  	// 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.
   422  	SmbActiveDirectorySettings GatewaySmbActiveDirectorySettingsPtrInput
   423  	// Specifies whether the shares on this gateway appear when listing shares.
   424  	SmbFileShareVisibility pulumi.BoolPtrInput
   425  	// 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.
   426  	SmbGuestPassword pulumi.StringPtrInput
   427  	// 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.
   428  	SmbSecurityStrategy pulumi.StringPtrInput
   429  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   430  	Tags pulumi.StringMapInput
   431  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   432  	//
   433  	// Deprecated: Please use `tags` instead.
   434  	TagsAll pulumi.StringMapInput
   435  	// Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
   436  	TapeDriveType pulumi.StringPtrInput
   437  }
   438  
   439  func (GatewayState) ElementType() reflect.Type {
   440  	return reflect.TypeOf((*gatewayState)(nil)).Elem()
   441  }
   442  
   443  type gatewayArgs struct {
   444  	// Gateway activation key during resource creation. Conflicts with `gatewayIpAddress`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
   445  	ActivationKey *string `pulumi:"activationKey"`
   446  	// The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   447  	AverageDownloadRateLimitInBitsPerSec *int `pulumi:"averageDownloadRateLimitInBitsPerSec"`
   448  	// The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   449  	AverageUploadRateLimitInBitsPerSec *int `pulumi:"averageUploadRateLimitInBitsPerSec"`
   450  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
   451  	CloudwatchLogGroupArn *string `pulumi:"cloudwatchLogGroupArn"`
   452  	// Gateway IP address to retrieve activation key during resource creation. Conflicts with `activationKey`. 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).
   453  	GatewayIpAddress *string `pulumi:"gatewayIpAddress"`
   454  	// Name of the gateway.
   455  	GatewayName string `pulumi:"gatewayName"`
   456  	// 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.
   457  	GatewayTimezone string `pulumi:"gatewayTimezone"`
   458  	// Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
   459  	GatewayType *string `pulumi:"gatewayType"`
   460  	// 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).
   461  	GatewayVpcEndpoint *string `pulumi:"gatewayVpcEndpoint"`
   462  	// 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.
   463  	MaintenanceStartTime *GatewayMaintenanceStartTime `pulumi:"maintenanceStartTime"`
   464  	// 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`.
   465  	MediumChangerType *string `pulumi:"mediumChangerType"`
   466  	// 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.
   467  	SmbActiveDirectorySettings *GatewaySmbActiveDirectorySettings `pulumi:"smbActiveDirectorySettings"`
   468  	// Specifies whether the shares on this gateway appear when listing shares.
   469  	SmbFileShareVisibility *bool `pulumi:"smbFileShareVisibility"`
   470  	// 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.
   471  	SmbGuestPassword *string `pulumi:"smbGuestPassword"`
   472  	// 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.
   473  	SmbSecurityStrategy *string `pulumi:"smbSecurityStrategy"`
   474  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   475  	Tags map[string]string `pulumi:"tags"`
   476  	// Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
   477  	TapeDriveType *string `pulumi:"tapeDriveType"`
   478  }
   479  
   480  // The set of arguments for constructing a Gateway resource.
   481  type GatewayArgs struct {
   482  	// Gateway activation key during resource creation. Conflicts with `gatewayIpAddress`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
   483  	ActivationKey pulumi.StringPtrInput
   484  	// The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   485  	AverageDownloadRateLimitInBitsPerSec pulumi.IntPtrInput
   486  	// The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   487  	AverageUploadRateLimitInBitsPerSec pulumi.IntPtrInput
   488  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
   489  	CloudwatchLogGroupArn pulumi.StringPtrInput
   490  	// Gateway IP address to retrieve activation key during resource creation. Conflicts with `activationKey`. 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).
   491  	GatewayIpAddress pulumi.StringPtrInput
   492  	// Name of the gateway.
   493  	GatewayName pulumi.StringInput
   494  	// 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.
   495  	GatewayTimezone pulumi.StringInput
   496  	// Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
   497  	GatewayType pulumi.StringPtrInput
   498  	// 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).
   499  	GatewayVpcEndpoint pulumi.StringPtrInput
   500  	// 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.
   501  	MaintenanceStartTime GatewayMaintenanceStartTimePtrInput
   502  	// 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`.
   503  	MediumChangerType pulumi.StringPtrInput
   504  	// 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.
   505  	SmbActiveDirectorySettings GatewaySmbActiveDirectorySettingsPtrInput
   506  	// Specifies whether the shares on this gateway appear when listing shares.
   507  	SmbFileShareVisibility pulumi.BoolPtrInput
   508  	// 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.
   509  	SmbGuestPassword pulumi.StringPtrInput
   510  	// 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.
   511  	SmbSecurityStrategy pulumi.StringPtrInput
   512  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   513  	Tags pulumi.StringMapInput
   514  	// Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
   515  	TapeDriveType pulumi.StringPtrInput
   516  }
   517  
   518  func (GatewayArgs) ElementType() reflect.Type {
   519  	return reflect.TypeOf((*gatewayArgs)(nil)).Elem()
   520  }
   521  
   522  type GatewayInput interface {
   523  	pulumi.Input
   524  
   525  	ToGatewayOutput() GatewayOutput
   526  	ToGatewayOutputWithContext(ctx context.Context) GatewayOutput
   527  }
   528  
   529  func (*Gateway) ElementType() reflect.Type {
   530  	return reflect.TypeOf((**Gateway)(nil)).Elem()
   531  }
   532  
   533  func (i *Gateway) ToGatewayOutput() GatewayOutput {
   534  	return i.ToGatewayOutputWithContext(context.Background())
   535  }
   536  
   537  func (i *Gateway) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput {
   538  	return pulumi.ToOutputWithContext(ctx, i).(GatewayOutput)
   539  }
   540  
   541  // GatewayArrayInput is an input type that accepts GatewayArray and GatewayArrayOutput values.
   542  // You can construct a concrete instance of `GatewayArrayInput` via:
   543  //
   544  //	GatewayArray{ GatewayArgs{...} }
   545  type GatewayArrayInput interface {
   546  	pulumi.Input
   547  
   548  	ToGatewayArrayOutput() GatewayArrayOutput
   549  	ToGatewayArrayOutputWithContext(context.Context) GatewayArrayOutput
   550  }
   551  
   552  type GatewayArray []GatewayInput
   553  
   554  func (GatewayArray) ElementType() reflect.Type {
   555  	return reflect.TypeOf((*[]*Gateway)(nil)).Elem()
   556  }
   557  
   558  func (i GatewayArray) ToGatewayArrayOutput() GatewayArrayOutput {
   559  	return i.ToGatewayArrayOutputWithContext(context.Background())
   560  }
   561  
   562  func (i GatewayArray) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput {
   563  	return pulumi.ToOutputWithContext(ctx, i).(GatewayArrayOutput)
   564  }
   565  
   566  // GatewayMapInput is an input type that accepts GatewayMap and GatewayMapOutput values.
   567  // You can construct a concrete instance of `GatewayMapInput` via:
   568  //
   569  //	GatewayMap{ "key": GatewayArgs{...} }
   570  type GatewayMapInput interface {
   571  	pulumi.Input
   572  
   573  	ToGatewayMapOutput() GatewayMapOutput
   574  	ToGatewayMapOutputWithContext(context.Context) GatewayMapOutput
   575  }
   576  
   577  type GatewayMap map[string]GatewayInput
   578  
   579  func (GatewayMap) ElementType() reflect.Type {
   580  	return reflect.TypeOf((*map[string]*Gateway)(nil)).Elem()
   581  }
   582  
   583  func (i GatewayMap) ToGatewayMapOutput() GatewayMapOutput {
   584  	return i.ToGatewayMapOutputWithContext(context.Background())
   585  }
   586  
   587  func (i GatewayMap) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput {
   588  	return pulumi.ToOutputWithContext(ctx, i).(GatewayMapOutput)
   589  }
   590  
   591  type GatewayOutput struct{ *pulumi.OutputState }
   592  
   593  func (GatewayOutput) ElementType() reflect.Type {
   594  	return reflect.TypeOf((**Gateway)(nil)).Elem()
   595  }
   596  
   597  func (o GatewayOutput) ToGatewayOutput() GatewayOutput {
   598  	return o
   599  }
   600  
   601  func (o GatewayOutput) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput {
   602  	return o
   603  }
   604  
   605  // Gateway activation key during resource creation. Conflicts with `gatewayIpAddress`. Additional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html).
   606  func (o GatewayOutput) ActivationKey() pulumi.StringOutput {
   607  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.ActivationKey }).(pulumi.StringOutput)
   608  }
   609  
   610  // Amazon Resource Name (ARN) of the gateway.
   611  func (o GatewayOutput) Arn() pulumi.StringOutput {
   612  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   613  }
   614  
   615  // The average download bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   616  func (o GatewayOutput) AverageDownloadRateLimitInBitsPerSec() pulumi.IntPtrOutput {
   617  	return o.ApplyT(func(v *Gateway) pulumi.IntPtrOutput { return v.AverageDownloadRateLimitInBitsPerSec }).(pulumi.IntPtrOutput)
   618  }
   619  
   620  // The average upload bandwidth rate limit in bits per second. This is supported for the `CACHED`, `STORED`, and `VTL` gateway types.
   621  func (o GatewayOutput) AverageUploadRateLimitInBitsPerSec() pulumi.IntPtrOutput {
   622  	return o.ApplyT(func(v *Gateway) pulumi.IntPtrOutput { return v.AverageUploadRateLimitInBitsPerSec }).(pulumi.IntPtrOutput)
   623  }
   624  
   625  // The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and log events in the gateway.
   626  func (o GatewayOutput) CloudwatchLogGroupArn() pulumi.StringPtrOutput {
   627  	return o.ApplyT(func(v *Gateway) pulumi.StringPtrOutput { return v.CloudwatchLogGroupArn }).(pulumi.StringPtrOutput)
   628  }
   629  
   630  // The ID of the Amazon EC2 instance that was used to launch the gateway.
   631  func (o GatewayOutput) Ec2InstanceId() pulumi.StringOutput {
   632  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Ec2InstanceId }).(pulumi.StringOutput)
   633  }
   634  
   635  // The type of endpoint for your gateway.
   636  func (o GatewayOutput) EndpointType() pulumi.StringOutput {
   637  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.EndpointType }).(pulumi.StringOutput)
   638  }
   639  
   640  // Identifier of the gateway.
   641  func (o GatewayOutput) GatewayId() pulumi.StringOutput {
   642  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.GatewayId }).(pulumi.StringOutput)
   643  }
   644  
   645  // Gateway IP address to retrieve activation key during resource creation. Conflicts with `activationKey`. 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).
   646  func (o GatewayOutput) GatewayIpAddress() pulumi.StringOutput {
   647  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.GatewayIpAddress }).(pulumi.StringOutput)
   648  }
   649  
   650  // Name of the gateway.
   651  func (o GatewayOutput) GatewayName() pulumi.StringOutput {
   652  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.GatewayName }).(pulumi.StringOutput)
   653  }
   654  
   655  // An array that contains descriptions of the gateway network interfaces. See Gateway Network Interface.
   656  func (o GatewayOutput) GatewayNetworkInterfaces() GatewayGatewayNetworkInterfaceArrayOutput {
   657  	return o.ApplyT(func(v *Gateway) GatewayGatewayNetworkInterfaceArrayOutput { return v.GatewayNetworkInterfaces }).(GatewayGatewayNetworkInterfaceArrayOutput)
   658  }
   659  
   660  // 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.
   661  func (o GatewayOutput) GatewayTimezone() pulumi.StringOutput {
   662  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.GatewayTimezone }).(pulumi.StringOutput)
   663  }
   664  
   665  // Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB`, `FILE_S3`, `STORED`, `VTL`.
   666  func (o GatewayOutput) GatewayType() pulumi.StringPtrOutput {
   667  	return o.ApplyT(func(v *Gateway) pulumi.StringPtrOutput { return v.GatewayType }).(pulumi.StringPtrOutput)
   668  }
   669  
   670  // 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).
   671  func (o GatewayOutput) GatewayVpcEndpoint() pulumi.StringPtrOutput {
   672  	return o.ApplyT(func(v *Gateway) pulumi.StringPtrOutput { return v.GatewayVpcEndpoint }).(pulumi.StringPtrOutput)
   673  }
   674  
   675  // The type of hypervisor environment used by the host.
   676  func (o GatewayOutput) HostEnvironment() pulumi.StringOutput {
   677  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.HostEnvironment }).(pulumi.StringOutput)
   678  }
   679  
   680  // 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.
   681  func (o GatewayOutput) MaintenanceStartTime() GatewayMaintenanceStartTimeOutput {
   682  	return o.ApplyT(func(v *Gateway) GatewayMaintenanceStartTimeOutput { return v.MaintenanceStartTime }).(GatewayMaintenanceStartTimeOutput)
   683  }
   684  
   685  // 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`.
   686  func (o GatewayOutput) MediumChangerType() pulumi.StringPtrOutput {
   687  	return o.ApplyT(func(v *Gateway) pulumi.StringPtrOutput { return v.MediumChangerType }).(pulumi.StringPtrOutput)
   688  }
   689  
   690  // 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.
   691  func (o GatewayOutput) SmbActiveDirectorySettings() GatewaySmbActiveDirectorySettingsPtrOutput {
   692  	return o.ApplyT(func(v *Gateway) GatewaySmbActiveDirectorySettingsPtrOutput { return v.SmbActiveDirectorySettings }).(GatewaySmbActiveDirectorySettingsPtrOutput)
   693  }
   694  
   695  // Specifies whether the shares on this gateway appear when listing shares.
   696  func (o GatewayOutput) SmbFileShareVisibility() pulumi.BoolPtrOutput {
   697  	return o.ApplyT(func(v *Gateway) pulumi.BoolPtrOutput { return v.SmbFileShareVisibility }).(pulumi.BoolPtrOutput)
   698  }
   699  
   700  // 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.
   701  func (o GatewayOutput) SmbGuestPassword() pulumi.StringPtrOutput {
   702  	return o.ApplyT(func(v *Gateway) pulumi.StringPtrOutput { return v.SmbGuestPassword }).(pulumi.StringPtrOutput)
   703  }
   704  
   705  // 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.
   706  func (o GatewayOutput) SmbSecurityStrategy() pulumi.StringOutput {
   707  	return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.SmbSecurityStrategy }).(pulumi.StringOutput)
   708  }
   709  
   710  // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   711  func (o GatewayOutput) Tags() pulumi.StringMapOutput {
   712  	return o.ApplyT(func(v *Gateway) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   713  }
   714  
   715  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   716  //
   717  // Deprecated: Please use `tags` instead.
   718  func (o GatewayOutput) TagsAll() pulumi.StringMapOutput {
   719  	return o.ApplyT(func(v *Gateway) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   720  }
   721  
   722  // Type of tape drive to use for tape gateway. This provider cannot detect drift of this argument. Valid values: `IBM-ULT3580-TD5`.
   723  func (o GatewayOutput) TapeDriveType() pulumi.StringPtrOutput {
   724  	return o.ApplyT(func(v *Gateway) pulumi.StringPtrOutput { return v.TapeDriveType }).(pulumi.StringPtrOutput)
   725  }
   726  
   727  type GatewayArrayOutput struct{ *pulumi.OutputState }
   728  
   729  func (GatewayArrayOutput) ElementType() reflect.Type {
   730  	return reflect.TypeOf((*[]*Gateway)(nil)).Elem()
   731  }
   732  
   733  func (o GatewayArrayOutput) ToGatewayArrayOutput() GatewayArrayOutput {
   734  	return o
   735  }
   736  
   737  func (o GatewayArrayOutput) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput {
   738  	return o
   739  }
   740  
   741  func (o GatewayArrayOutput) Index(i pulumi.IntInput) GatewayOutput {
   742  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Gateway {
   743  		return vs[0].([]*Gateway)[vs[1].(int)]
   744  	}).(GatewayOutput)
   745  }
   746  
   747  type GatewayMapOutput struct{ *pulumi.OutputState }
   748  
   749  func (GatewayMapOutput) ElementType() reflect.Type {
   750  	return reflect.TypeOf((*map[string]*Gateway)(nil)).Elem()
   751  }
   752  
   753  func (o GatewayMapOutput) ToGatewayMapOutput() GatewayMapOutput {
   754  	return o
   755  }
   756  
   757  func (o GatewayMapOutput) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput {
   758  	return o
   759  }
   760  
   761  func (o GatewayMapOutput) MapIndex(k pulumi.StringInput) GatewayOutput {
   762  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Gateway {
   763  		return vs[0].(map[string]*Gateway)[vs[1].(string)]
   764  	}).(GatewayOutput)
   765  }
   766  
   767  func init() {
   768  	pulumi.RegisterInputType(reflect.TypeOf((*GatewayInput)(nil)).Elem(), &Gateway{})
   769  	pulumi.RegisterInputType(reflect.TypeOf((*GatewayArrayInput)(nil)).Elem(), GatewayArray{})
   770  	pulumi.RegisterInputType(reflect.TypeOf((*GatewayMapInput)(nil)).Elem(), GatewayMap{})
   771  	pulumi.RegisterOutputType(GatewayOutput{})
   772  	pulumi.RegisterOutputType(GatewayArrayOutput{})
   773  	pulumi.RegisterOutputType(GatewayMapOutput{})
   774  }