import * as core from "@terrascript/core"; export interface SmbActiveDirectorySettingsArgs extends core.SchemaArgs { activeDirectoryStatus: string | core.StringOut; domainControllers?: core.Array | core.ArrayOut; domainName: string | core.StringOut; organizationalUnit?: string | core.StringOut; password: string | core.StringOut; timeoutInSeconds?: number | core.NumberOut; username: string | core.StringOut; } export class SmbActiveDirectorySettings extends core.Schema { @core.attr(String, { computed: true }) public activeDirectoryStatus!: string | core.StringOut; @core.attr(String, { kind: "array" }) public domainControllers?: core.Array | core.ArrayOut; @core.attr(String) public domainName!: string | core.StringOut; @core.attr(String) public organizationalUnit?: string | core.StringOut; @core.attr(String) public password!: string | core.StringOut; @core.attr(Number) public timeoutInSeconds?: number | core.NumberOut; @core.attr(String) public username!: string | core.StringOut; } export interface MaintenanceStartTimeArgs extends core.SchemaArgs { dayOfMonth?: string | core.StringOut; dayOfWeek?: string | core.StringOut; hourOfDay: number | core.NumberOut; minuteOfHour?: number | core.NumberOut; } export class MaintenanceStartTime extends core.Schema { @core.attr(String) public dayOfMonth?: string | core.StringOut; @core.attr(String) public dayOfWeek?: string | core.StringOut; @core.attr(Number) public hourOfDay!: number | core.NumberOut; @core.attr(Number) public minuteOfHour?: number | core.NumberOut; } export interface GatewayNetworkInterfaceArgs extends core.SchemaArgs { ipv4Address: string | core.StringOut; } export class GatewayNetworkInterface extends core.Schema { @core.attr(String, { computed: true }) public ipv4Address!: string | core.StringOut; } export interface GatewayArgs extends core.ResourceArgs { /** * (Optional) Gateway activation key during resource creation. Conflicts with `gateway_ip_address`. Add * itional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/sto * ragegateway/latest/userguide/get-activation-key.html). */ activationKey?: string | core.StringOut; /** * (Optional) The average download bandwidth rate limit in bits per second. This is supported for the ` * CACHED`, `STORED`, and `VTL` gateway types. */ averageDownloadRateLimitInBitsPerSec?: number | core.NumberOut; /** * (Optional) The average upload bandwidth rate limit in bits per second. This is supported for the `CA * CHED`, `STORED`, and `VTL` gateway types. */ averageUploadRateLimitInBitsPerSec?: number | core.NumberOut; /** * (Optional) The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and l * og events in the gateway. */ cloudwatchLogGroupArn?: string | core.StringOut; /** * (Optional) Gateway IP address to retrieve activation key during resource creation. Conflicts with `a * ctivation_key`. Gateway must be accessible on port 80 from where Terraform is running. Additional in * formation is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegatewa * y/latest/userguide/get-activation-key.html). */ gatewayIpAddress?: string | core.StringOut; /** * (Required) Name of the gateway. */ gatewayName: string | core.StringOut; /** * (Required) 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 ex * ample, for scheduling snapshots and your gateway's maintenance schedule. */ gatewayTimezone: string | core.StringOut; /** * (Optional) Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB * , `FILE_S3`, `STORED`, `VTL`. */ gatewayType?: string | core.StringOut; /** * (Optional) VPC endpoint address to be used when activating your gateway. This should be used when yo * ur instance is in a private subnet. Requires HTTP access from client computer running terraform. Mor * e 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-l * ink.html). */ gatewayVpcEndpoint?: string | core.StringOut; /** * (Optional) The gateway's weekly maintenance start time information, including day and time of the we * ek. The maintenance time is the time in your gateway's time zone. More details below. */ maintenanceStartTime?: MaintenanceStartTime; /** * (Optional) Type of medium changer to use for tape gateway. Terraform cannot detect drift of this arg * ument. Valid values: `STK-L700`, `AWS-Gateway-VTL`, `IBM-03584L32-0402`. */ mediumChangerType?: string | core.StringOut; /** * (Optional) Nested argument with Active Directory domain join information for Server Message Block (S * MB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creat * ing `ActiveDirectory` authentication SMB file shares. More details below. */ smbActiveDirectorySettings?: SmbActiveDirectorySettings; /** * (Optional) Specifies whether the shares on this gateway appear when listing shares. */ smbFileShareVisibility?: boolean | core.BooleanOut; /** * (Optional) 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 share * s. Terraform can only detect drift of the existence of a guest password, not its actual value from t * he gateway. Terraform can however update the password with changing the argument. */ smbGuestPassword?: string | core.StringOut; /** * (Optional) Specifies the type of security strategy. Valid values are: `ClientSpecified`, `MandatoryS * igning`, 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 i * nformation. */ smbSecurityStrategy?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) Type of tape drive to use for tape gateway. Terraform cannot detect drift of this argumen * t. Valid values: `IBM-ULT3580-TD5`. */ tapeDriveType?: string | core.StringOut; } export class Gateway extends core.Resource { /** * (Optional) Gateway activation key during resource creation. Conflicts with `gateway_ip_address`. Add * itional information is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/sto * ragegateway/latest/userguide/get-activation-key.html). */ @core.attr(String, { computed: true }) public activationKey?: string | core.StringOut; /** * Amazon Resource Name (ARN) of the gateway. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The average download bandwidth rate limit in bits per second. This is supported for the ` * CACHED`, `STORED`, and `VTL` gateway types. */ @core.attr(Number) public averageDownloadRateLimitInBitsPerSec?: number | core.NumberOut; /** * (Optional) The average upload bandwidth rate limit in bits per second. This is supported for the `CA * CHED`, `STORED`, and `VTL` gateway types. */ @core.attr(Number) public averageUploadRateLimitInBitsPerSec?: number | core.NumberOut; /** * (Optional) The Amazon Resource Name (ARN) of the Amazon CloudWatch log group to use to monitor and l * og events in the gateway. */ @core.attr(String) public cloudwatchLogGroupArn?: string | core.StringOut; /** * The ID of the Amazon EC2 instance that was used to launch the gateway. */ @core.attr(String, { computed: true }) public ec2InstanceId!: string | core.StringOut; /** * The type of endpoint for your gateway. */ @core.attr(String, { computed: true }) public endpointType!: string | core.StringOut; /** * Identifier of the gateway. */ @core.attr(String, { computed: true }) public gatewayId!: string | core.StringOut; /** * (Optional) Gateway IP address to retrieve activation key during resource creation. Conflicts with `a * ctivation_key`. Gateway must be accessible on port 80 from where Terraform is running. Additional in * formation is available in the [Storage Gateway User Guide](https://docs.aws.amazon.com/storagegatewa * y/latest/userguide/get-activation-key.html). */ @core.attr(String, { computed: true }) public gatewayIpAddress?: string | core.StringOut; /** * (Required) Name of the gateway. */ @core.attr(String) public gatewayName!: string | core.StringOut; /** * An array that contains descriptions of the gateway network interfaces. See [Gateway Network Interfac * e](#gateway-network-interface). */ @core.attr(GatewayNetworkInterface, { computed: true, kind: "array" }) public gatewayNetworkInterface!: | core.Array | core.ArrayOut; /** * (Required) 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 ex * ample, for scheduling snapshots and your gateway's maintenance schedule. */ @core.attr(String) public gatewayTimezone!: string | core.StringOut; /** * (Optional) Type of the gateway. The default value is `STORED`. Valid values: `CACHED`, `FILE_FSX_SMB * , `FILE_S3`, `STORED`, `VTL`. */ @core.attr(String) public gatewayType?: string | core.StringOut; /** * (Optional) VPC endpoint address to be used when activating your gateway. This should be used when yo * ur instance is in a private subnet. Requires HTTP access from client computer running terraform. Mor * e 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-l * ink.html). */ @core.attr(String) public gatewayVpcEndpoint?: string | core.StringOut; /** * The type of hypervisor environment used by the host. */ @core.attr(String, { computed: true }) public hostEnvironment!: string | core.StringOut; /** * Amazon Resource Name (ARN) of the gateway. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The gateway's weekly maintenance start time information, including day and time of the we * ek. The maintenance time is the time in your gateway's time zone. More details below. */ @core.attr(MaintenanceStartTime, { computed: true }) public maintenanceStartTime?: MaintenanceStartTime; /** * (Optional) Type of medium changer to use for tape gateway. Terraform cannot detect drift of this arg * ument. Valid values: `STK-L700`, `AWS-Gateway-VTL`, `IBM-03584L32-0402`. */ @core.attr(String) public mediumChangerType?: string | core.StringOut; /** * (Optional) Nested argument with Active Directory domain join information for Server Message Block (S * MB) file shares. Only valid for `FILE_S3` and `FILE_FSX_SMB` gateway types. Must be set before creat * ing `ActiveDirectory` authentication SMB file shares. More details below. */ @core.attr(SmbActiveDirectorySettings) public smbActiveDirectorySettings?: SmbActiveDirectorySettings; /** * (Optional) Specifies whether the shares on this gateway appear when listing shares. */ @core.attr(Boolean) public smbFileShareVisibility?: boolean | core.BooleanOut; /** * (Optional) 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 share * s. Terraform can only detect drift of the existence of a guest password, not its actual value from t * he gateway. Terraform can however update the password with changing the argument. */ @core.attr(String) public smbGuestPassword?: string | core.StringOut; /** * (Optional) Specifies the type of security strategy. Valid values are: `ClientSpecified`, `MandatoryS * igning`, 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 i * nformation. */ @core.attr(String, { computed: true }) public smbSecurityStrategy?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) Type of tape drive to use for tape gateway. Terraform cannot detect drift of this argumen * t. Valid values: `IBM-ULT3580-TD5`. */ @core.attr(String) public tapeDriveType?: string | core.StringOut; constructor(name: string, args?: GatewayArgs) { super(name, "aws_storagegateway_gateway", args); } public override getNamespace(): string { return "aws_storagegateway"; } }