import * as core from "@terrascript/core"; export interface CacheAttributesArgs extends core.SchemaArgs { cacheStaleTimeoutInSeconds?: number | core.NumberOut; } export class CacheAttributes extends core.Schema { @core.attr(Number) public cacheStaleTimeoutInSeconds?: number | core.NumberOut; } export interface SmbFileShareArgs extends core.ResourceArgs { /** * (Optional) The files and folders on this share will only be visible to users with read access. Defau * lt value is `false`. */ accessBasedEnumeration?: boolean | core.BooleanOut; /** * (Optional) A list of users in the Active Directory that have admin access to the file share. Only va * lid if `authentication` is set to `ActiveDirectory`. */ adminUserList?: core.Array | core.ArrayOut; /** * (Optional) The Amazon Resource Name (ARN) of the CloudWatch Log Group used for the audit logs. */ auditDestinationArn?: string | core.StringOut; /** * (Optional) The authentication method that users use to access the file share. Defaults to `ActiveDir * ectory`. Valid values: `ActiveDirectory`, `GuestAccess`. */ authentication?: string | core.StringOut; /** * (Optional) The region of the S3 buck used by the file share. Required when specifying a `vpc_endpoin * t_dns_name`. */ bucketRegion?: string | core.StringOut; /** * (Optional) Refresh cache information. see [Cache Attributes](#cache_attributes) for more details. */ cacheAttributes?: CacheAttributes; /** * (Optional) The case of an object name in an Amazon S3 bucket. For `ClientSpecified`, the client dete * rmines the case sensitivity. For `CaseSensitive`, the gateway determines the case sensitivity. The d * efault value is `ClientSpecified`. */ caseSensitivity?: string | core.StringOut; /** * (Optional) The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReferenc * e/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for obj * ects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`. */ defaultStorageClass?: string | core.StringOut; /** * (Optional) The name of the file share. Must be set if an S3 prefix name is set in `location_arn`. */ fileShareName?: string | core.StringOut; /** * (Required) Amazon Resource Name (ARN) of the file gateway. */ gatewayArn: string | core.StringOut; /** * (Optional) Boolean value that enables guessing of the MIME type for uploaded objects based on file e * xtensions. Defaults to `true`. */ guessMimeTypeEnabled?: boolean | core.BooleanOut; /** * (Optional) A list of users in the Active Directory that are not allowed to access the file share. On * ly valid if `authentication` is set to `ActiveDirectory`. */ invalidUserList?: core.Array | core.ArrayOut; /** * (Optional) Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key * , or `false` to use a key managed by Amazon S3. Defaults to `false`. */ kmsEncrypted?: boolean | core.BooleanOut; /** * (Optional) Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This va * lue can only be set when `kms_encrypted` is true. */ kmsKeyArn?: string | core.StringOut; /** * (Required) The ARN of the backed storage used for storing file data. */ locationArn: string | core.StringOut; /** * (Optional) The notification policy of the file share. For more information see the [AWS Documentatio * n](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#Storag * eGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`. */ notificationPolicy?: string | core.StringOut; /** * (Optional) Access Control List permission for S3 objects. Defaults to `private`. */ objectAcl?: string | core.StringOut; /** * (Optional) Boolean to indicate Opportunistic lock (oplock) status. Defaults to `true`. */ oplocksEnabled?: boolean | core.BooleanOut; /** * (Optional) Boolean to indicate write status of file share. File share does not accept writes if `tru * e`. Defaults to `false`. */ readOnly?: boolean | core.BooleanOut; /** * (Optional) Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. * Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to * false`. */ requesterPays?: boolean | core.BooleanOut; /** * (Required) The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes * when it accesses the underlying storage. */ roleArn: string | core.StringOut; /** * (Optional) Set this value to `true` to enable ACL (access control list) on the SMB fileshare. Set it * to `false` to map file and directory permissions to the POSIX permissions. This setting applies onl * y to `ActiveDirectory` authentication type. */ smbAclEnabled?: boolean | core.BooleanOut; /** * (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) A list of users in the Active Directory that are allowed to access the file share. If you * need to specify an Active directory group, add '@' before the name of the group. It will be set on * Allowed group in AWS console. Only valid if `authentication` is set to `ActiveDirectory`. */ validUserList?: core.Array | core.ArrayOut; /** * (Optional) The DNS name of the VPC endpoint for S3 private link. */ vpcEndpointDnsName?: string | core.StringOut; } export class SmbFileShare extends core.Resource { /** * (Optional) The files and folders on this share will only be visible to users with read access. Defau * lt value is `false`. */ @core.attr(Boolean) public accessBasedEnumeration?: boolean | core.BooleanOut; /** * (Optional) A list of users in the Active Directory that have admin access to the file share. Only va * lid if `authentication` is set to `ActiveDirectory`. */ @core.attr(String, { kind: "array" }) public adminUserList?: core.Array | core.ArrayOut; /** * Amazon Resource Name (ARN) of the SMB File Share. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The Amazon Resource Name (ARN) of the CloudWatch Log Group used for the audit logs. */ @core.attr(String) public auditDestinationArn?: string | core.StringOut; /** * (Optional) The authentication method that users use to access the file share. Defaults to `ActiveDir * ectory`. Valid values: `ActiveDirectory`, `GuestAccess`. */ @core.attr(String) public authentication?: string | core.StringOut; /** * (Optional) The region of the S3 buck used by the file share. Required when specifying a `vpc_endpoin * t_dns_name`. */ @core.attr(String) public bucketRegion?: string | core.StringOut; /** * (Optional) Refresh cache information. see [Cache Attributes](#cache_attributes) for more details. */ @core.attr(CacheAttributes) public cacheAttributes?: CacheAttributes; /** * (Optional) The case of an object name in an Amazon S3 bucket. For `ClientSpecified`, the client dete * rmines the case sensitivity. For `CaseSensitive`, the gateway determines the case sensitivity. The d * efault value is `ClientSpecified`. */ @core.attr(String) public caseSensitivity?: string | core.StringOut; /** * (Optional) The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReferenc * e/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for obj * ects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`. */ @core.attr(String) public defaultStorageClass?: string | core.StringOut; /** * (Optional) The name of the file share. Must be set if an S3 prefix name is set in `location_arn`. */ @core.attr(String, { computed: true }) public fileShareName?: string | core.StringOut; /** * ID of the SMB File Share. */ @core.attr(String, { computed: true }) public fileshareId!: string | core.StringOut; /** * (Required) Amazon Resource Name (ARN) of the file gateway. */ @core.attr(String) public gatewayArn!: string | core.StringOut; /** * (Optional) Boolean value that enables guessing of the MIME type for uploaded objects based on file e * xtensions. Defaults to `true`. */ @core.attr(Boolean) public guessMimeTypeEnabled?: boolean | core.BooleanOut; /** * Amazon Resource Name (ARN) of the SMB File Share. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) A list of users in the Active Directory that are not allowed to access the file share. On * ly valid if `authentication` is set to `ActiveDirectory`. */ @core.attr(String, { kind: "array" }) public invalidUserList?: core.Array | core.ArrayOut; /** * (Optional) Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key * , or `false` to use a key managed by Amazon S3. Defaults to `false`. */ @core.attr(Boolean) public kmsEncrypted?: boolean | core.BooleanOut; /** * (Optional) Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This va * lue can only be set when `kms_encrypted` is true. */ @core.attr(String) public kmsKeyArn?: string | core.StringOut; /** * (Required) The ARN of the backed storage used for storing file data. */ @core.attr(String) public locationArn!: string | core.StringOut; /** * (Optional) The notification policy of the file share. For more information see the [AWS Documentatio * n](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#Storag * eGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`. */ @core.attr(String) public notificationPolicy?: string | core.StringOut; /** * (Optional) Access Control List permission for S3 objects. Defaults to `private`. */ @core.attr(String) public objectAcl?: string | core.StringOut; /** * (Optional) Boolean to indicate Opportunistic lock (oplock) status. Defaults to `true`. */ @core.attr(Boolean, { computed: true }) public oplocksEnabled?: boolean | core.BooleanOut; /** * File share path used by the NFS client to identify the mount point. */ @core.attr(String, { computed: true }) public path!: string | core.StringOut; /** * (Optional) Boolean to indicate write status of file share. File share does not accept writes if `tru * e`. Defaults to `false`. */ @core.attr(Boolean) public readOnly?: boolean | core.BooleanOut; /** * (Optional) Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. * Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to * false`. */ @core.attr(Boolean) public requesterPays?: boolean | core.BooleanOut; /** * (Required) The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes * when it accesses the underlying storage. */ @core.attr(String) public roleArn!: string | core.StringOut; /** * (Optional) Set this value to `true` to enable ACL (access control list) on the SMB fileshare. Set it * to `false` to map file and directory permissions to the POSIX permissions. This setting applies onl * y to `ActiveDirectory` authentication type. */ @core.attr(Boolean) public smbAclEnabled?: boolean | core.BooleanOut; /** * (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) A list of users in the Active Directory that are allowed to access the file share. If you * need to specify an Active directory group, add '@' before the name of the group. It will be set on * Allowed group in AWS console. Only valid if `authentication` is set to `ActiveDirectory`. */ @core.attr(String, { kind: "array" }) public validUserList?: core.Array | core.ArrayOut; /** * (Optional) The DNS name of the VPC endpoint for S3 private link. */ @core.attr(String) public vpcEndpointDnsName?: string | core.StringOut; constructor(name: string, args?: SmbFileShareArgs) { super(name, "aws_storagegateway_smb_file_share", args); } public override getNamespace(): string { return "aws_storagegateway"; } }