// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.AliCloud.CloudStorageGateway
{
    /// <summary>
    /// Provides a Cloud Storage Gateway Gateway File Share resource.
    /// 
    /// For information about Cloud Storage Gateway Gateway File Share and how to use it, see [What is Gateway File Share](https://www.alibabacloud.com/help/zh/doc-detail/170298.htm).
    /// 
    /// &gt; **NOTE:** Available in v1.144.0+.
    /// 
    /// ## Example Usage
    /// 
    /// Basic Usage
    /// 
    /// ```csharp
    /// using System.Collections.Generic;
    /// using Pulumi;
    /// using AliCloud = Pulumi.AliCloud;
    /// 
    /// return await Deployment.RunAsync(() =&gt; 
    /// {
    ///     var defaultStocks = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()
    ///     {
    ///         GatewayClass = "Standard",
    ///     });
    /// 
    ///     var vpc = new AliCloud.Vpc.Network("vpc", new()
    ///     {
    ///         VpcName = "example_value",
    ///         CidrBlock = "172.16.0.0/12",
    ///     });
    /// 
    ///     var defaultSwitch = new AliCloud.Vpc.Switch("defaultSwitch", new()
    ///     {
    ///         VpcId = vpc.Id,
    ///         CidrBlock = "172.16.0.0/21",
    ///         ZoneId = defaultStocks.Apply(getStocksResult =&gt; getStocksResult.Stocks[0]?.ZoneId),
    ///         VswitchName = "example_value",
    ///     });
    /// 
    ///     var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle("defaultStorageBundle", new()
    ///     {
    ///         StorageBundleName = "example_value",
    ///     });
    /// 
    ///     var defaultGateway = new AliCloud.CloudStorageGateway.Gateway("defaultGateway", new()
    ///     {
    ///         Description = "tf-acctestDesalone",
    ///         GatewayClass = "Standard",
    ///         Type = "File",
    ///         PaymentType = "PayAsYouGo",
    ///         VswitchId = defaultSwitch.Id,
    ///         ReleaseAfterExpiration = true,
    ///         PublicNetworkBandwidth = 10,
    ///         StorageBundleId = defaultStorageBundle.Id,
    ///         Location = "Cloud",
    ///         GatewayName = "example_value",
    ///     });
    /// 
    ///     var defaultGatewayCacheDisk = new AliCloud.CloudStorageGateway.GatewayCacheDisk("defaultGatewayCacheDisk", new()
    ///     {
    ///         CacheDiskCategory = "cloud_efficiency",
    ///         GatewayId = defaultGateway.Id,
    ///         CacheDiskSizeInGb = 50,
    ///     });
    /// 
    ///     var defaultBucket = new AliCloud.Oss.Bucket("defaultBucket", new()
    ///     {
    ///         BucketName = "example_value",
    ///     });
    /// 
    ///     var defaultGatewayFileShare = new AliCloud.CloudStorageGateway.GatewayFileShare("defaultGatewayFileShare", new()
    ///     {
    ///         GatewayFileShareName = "example_value",
    ///         GatewayId = defaultGateway.Id,
    ///         LocalPath = defaultGatewayCacheDisk.LocalFilePath,
    ///         OssBucketName = defaultBucket.BucketName,
    ///         OssEndpoint = defaultBucket.ExtranetEndpoint,
    ///         Protocol = "NFS",
    ///         RemoteSync = true,
    ///         PollingInterval = 4500,
    ///         FeLimit = 0,
    ///         BackendLimit = 0,
    ///         CacheMode = "Cache",
    ///         Squash = "none",
    ///         LagPeriod = 5,
    ///     });
    /// 
    /// });
    /// ```
    /// 
    /// ## Import
    /// 
    /// Cloud Storage Gateway Gateway File Share can be imported using the id, e.g.
    /// 
    /// ```sh
    ///  $ pulumi import alicloud:cloudstoragegateway/gatewayFileShare:GatewayFileShare example &lt;gateway_id&gt;:&lt;index_id&gt;
    /// ```
    /// </summary>
    [AliCloudResourceType("alicloud:cloudstoragegateway/gatewayFileShare:GatewayFileShare")]
    public partial class GatewayFileShare : global::Pulumi.CustomResource
    {
        /// <summary>
        /// Whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: `false`. **NOTE:** The attribute is valid when the attribute `protocol` is `SMB`. Gateway version &gt;= 1.0.45 above support.
        /// </summary>
        [Output("accessBasedEnumeration")]
        public Output<bool> AccessBasedEnumeration { get; private set; } = null!;

        /// <summary>
        /// The Max upload speed of the gateway file share. Unit: `MB/s`, 0 means unlimited. Value range: `0` ~ `1280`. Default value: `0`. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.
        /// </summary>
        [Output("backendLimit")]
        public Output<int> BackendLimit { get; private set; } = null!;

        /// <summary>
        /// The whether browsable of the gateway file share (that is, in the network neighborhood of whether you can find). The attribute is valid when the attribute `protocol` is `SMB`. Default value: `true`.
        /// </summary>
        [Output("browsable")]
        public Output<bool> Browsable { get; private set; } = null!;

        /// <summary>
        /// Direct reading OSS of the gateway file share.
        /// </summary>
        [Output("bypassCacheRead")]
        public Output<bool> BypassCacheRead { get; private set; } = null!;

        /// <summary>
        /// The set up gateway file share cache mode. Valid values: `Cache` or `Sync`. `Cache`: cached mode. `Sync`: replication mode are available. Default value: `Cache`.
        /// </summary>
        [Output("cacheMode")]
        public Output<string> CacheMode { get; private set; } = null!;

        /// <summary>
        /// File sharing Whether to enable DirectIO (direct I/O mode for data transmission). Default value: `false`.
        /// </summary>
        [Output("directIo")]
        public Output<bool> DirectIo { get; private set; } = null!;

        /// <summary>
        /// The maximum download speed of the gateway file share. Unit: `MB/s`. `0` means unlimited. Value range: `0` ~ `1280`. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version &gt;= 1.3.0 above support.
        /// </summary>
        [Output("downloadLimit")]
        public Output<int> DownloadLimit { get; private set; } = null!;

        /// <summary>
        /// The whether to enable Upload optimization of the gateway file share, which is suitable for data pure backup migration scenarios. Default value: `false`. **NOTE:** Gateway version &gt;= 1.0.39 above support.
        /// </summary>
        [Output("fastReclaim")]
        public Output<bool> FastReclaim { get; private set; } = null!;

        /// <summary>
        /// The maximum write speed of the gateway file share. Unit: `MB/s`, `0` means unlimited. Value range: `0` ~ `1280`. Default value: `0`.
        /// </summary>
        [Output("feLimit")]
        public Output<int> FeLimit { get; private set; } = null!;

        /// <summary>
        /// The name of the file share. Length from `1` to `255` characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.
        /// </summary>
        [Output("gatewayFileShareName")]
        public Output<string> GatewayFileShareName { get; private set; } = null!;

        /// <summary>
        /// The ID of the gateway.
        /// </summary>
        [Output("gatewayId")]
        public Output<string> GatewayId { get; private set; } = null!;

        /// <summary>
        /// The whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: `false`. **NOTE:** `ignore_delete` and `remote_sync` cannot be enabled simultaneously. Gateway version &gt;= 1.0.40 above support.
        /// </summary>
        [Output("ignoreDelete")]
        public Output<bool> IgnoreDelete { get; private set; } = null!;

        /// <summary>
        /// The whether debris optimization of the gateway file share. Default value: `false`.
        /// </summary>
        [Output("inPlace")]
        public Output<bool> InPlace { get; private set; } = null!;

        /// <summary>
        /// The ID of the file share.
        /// </summary>
        [Output("indexId")]
        public Output<string> IndexId { get; private set; } = null!;

        /// <summary>
        /// The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: `5` ~ `120`. Default value: `5`. **NOTE:** Gateway version &gt;= 1.0.40 above support.
        /// </summary>
        [Output("lagPeriod")]
        public Output<int> LagPeriod { get; private set; } = null!;

        /// <summary>
        /// The cache disk inside the device name.
        /// </summary>
        [Output("localPath")]
        public Output<string> LocalPath { get; private set; } = null!;

        /// <summary>
        /// The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: `false`. **NOTE:** If it is enabled, NFS V3 cannot be mounted. The attribute is valid when the attribute `protocol` is `NFS`. Gateway version &gt;= 1.2.0 above support.
        /// </summary>
        [Output("nfsV4Optimization")]
        public Output<bool> NfsV4Optimization { get; private set; } = null!;

        /// <summary>
        /// The name of the OSS Bucket.
        /// </summary>
        [Output("ossBucketName")]
        public Output<string> OssBucketName { get; private set; } = null!;

        /// <summary>
        /// Whether they are using SSL connect to OSS Bucket.
        /// </summary>
        [Output("ossBucketSsl")]
        public Output<bool> OssBucketSsl { get; private set; } = null!;

        /// <summary>
        /// The gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint: `oss-cn-hangzhou-internal.aliyuncs.com`.
        /// </summary>
        [Output("ossEndpoint")]
        public Output<string> OssEndpoint { get; private set; } = null!;

        /// <summary>
        /// In part mode, the directory path group JSON format.
        /// </summary>
        [Output("partialSyncPaths")]
        public Output<string?> PartialSyncPaths { get; private set; } = null!;

        /// <summary>
        /// The subdirectory path under the object storage (OSS) bucket corresponding to the file share. If it is blank, it means the root directory of the bucket.
        /// </summary>
        [Output("pathPrefix")]
        public Output<string?> PathPrefix { get; private set; } = null!;

        /// <summary>
        /// The reverse synchronization time intervals of the gateway file share. Value range: `15` ~ `36000`. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: `3600` ~ `36000`.
        /// </summary>
        [Output("pollingInterval")]
        public Output<int?> PollingInterval { get; private set; } = null!;

        /// <summary>
        /// Share types. Valid values: `SMB`, `NFS`.
        /// </summary>
        [Output("protocol")]
        public Output<string> Protocol { get; private set; } = null!;

        /// <summary>
        /// Whether to enable reverse synchronization of the gateway file share. Default value: `false`.
        /// </summary>
        [Output("remoteSync")]
        public Output<bool> RemoteSync { get; private set; } = null!;

        /// <summary>
        /// Copy mode, whether to download the file data. Default value: `false`. **NOTE:** only when the attribute `remote_sync` is `true` or acceded to by the speed synchronization group, this parameter will not take effect.
        /// </summary>
        [Output("remoteSyncDownload")]
        public Output<bool> RemoteSyncDownload { get; private set; } = null!;

        /// <summary>
        /// File sharing NFS read-only client list (IP address or IP address range). Use commas (,) to separate multiple clients.
        /// </summary>
        [Output("roClientList")]
        public Output<string?> RoClientList { get; private set; } = null!;

        /// <summary>
        /// The read-only client list. When Protocol for Server Message Block (SMB) to go back to.
        /// </summary>
        [Output("roUserList")]
        public Output<string?> RoUserList { get; private set; } = null!;

        /// <summary>
        /// Read and write the client list. When Protocol NFS is returned when the status is.
        /// </summary>
        [Output("rwClientList")]
        public Output<string?> RwClientList { get; private set; } = null!;

        /// <summary>
        /// Read-write user list. When Protocol for Server Message Block (SMB) to go back to.
        /// </summary>
        [Output("rwUserList")]
        public Output<string?> RwUserList { get; private set; } = null!;

        /// <summary>
        /// The NFS protocol user mapping of the gateway file share. Valid values: `none`, `root_squash`, `all_squash`, `all_anonymous`. Default value: `none`. **NOTE:** The attribute is valid when the attribute `protocol` is `NFS`.
        /// </summary>
        [Output("squash")]
        public Output<string> Squash { get; private set; } = null!;

        /// <summary>
        /// Whether to support the archive transparent read.
        /// </summary>
        [Output("supportArchive")]
        public Output<bool> SupportArchive { get; private set; } = null!;

        /// <summary>
        /// The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version &gt;= 1.3.0 above support.
        /// </summary>
        [Output("transferAcceleration")]
        public Output<bool> TransferAcceleration { get; private set; } = null!;

        /// <summary>
        /// Whether to enable by Windows access list (requires AD domain) the permissions control. Default value: `false`. **NOTE:** The attribute is valid when the attribute `protocol` is `SMB`. Gateway version &gt;= 1.0.45 above support.
        /// </summary>
        [Output("windowsAcl")]
        public Output<bool> WindowsAcl { get; private set; } = null!;


        /// <summary>
        /// Create a GatewayFileShare resource with the given unique name, arguments, and options.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resource</param>
        /// <param name="args">The arguments used to populate this resource's properties</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public GatewayFileShare(string name, GatewayFileShareArgs args, CustomResourceOptions? options = null)
            : base("alicloud:cloudstoragegateway/gatewayFileShare:GatewayFileShare", name, args ?? new GatewayFileShareArgs(), MakeResourceOptions(options, ""))
        {
        }

        private GatewayFileShare(string name, Input<string> id, GatewayFileShareState? state = null, CustomResourceOptions? options = null)
            : base("alicloud:cloudstoragegateway/gatewayFileShare:GatewayFileShare", name, state, MakeResourceOptions(options, id))
        {
        }

        private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
        {
            var defaultOptions = new CustomResourceOptions
            {
                Version = Utilities.Version,
                PluginDownloadURL = "github://api.github.com/rhysmdnz/pulumi-alicloud",
            };
            var merged = CustomResourceOptions.Merge(defaultOptions, options);
            // Override the ID if one was specified for consistency with other language SDKs.
            merged.Id = id ?? merged.Id;
            return merged;
        }
        /// <summary>
        /// Get an existing GatewayFileShare resource's state with the given name, ID, and optional extra
        /// properties used to qualify the lookup.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resulting resource.</param>
        /// <param name="id">The unique provider ID of the resource to lookup.</param>
        /// <param name="state">Any extra arguments used during the lookup.</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public static GatewayFileShare Get(string name, Input<string> id, GatewayFileShareState? state = null, CustomResourceOptions? options = null)
        {
            return new GatewayFileShare(name, id, state, options);
        }
    }

    public sealed class GatewayFileShareArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: `false`. **NOTE:** The attribute is valid when the attribute `protocol` is `SMB`. Gateway version &gt;= 1.0.45 above support.
        /// </summary>
        [Input("accessBasedEnumeration")]
        public Input<bool>? AccessBasedEnumeration { get; set; }

        /// <summary>
        /// The Max upload speed of the gateway file share. Unit: `MB/s`, 0 means unlimited. Value range: `0` ~ `1280`. Default value: `0`. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.
        /// </summary>
        [Input("backendLimit")]
        public Input<int>? BackendLimit { get; set; }

        /// <summary>
        /// The whether browsable of the gateway file share (that is, in the network neighborhood of whether you can find). The attribute is valid when the attribute `protocol` is `SMB`. Default value: `true`.
        /// </summary>
        [Input("browsable")]
        public Input<bool>? Browsable { get; set; }

        /// <summary>
        /// Direct reading OSS of the gateway file share.
        /// </summary>
        [Input("bypassCacheRead")]
        public Input<bool>? BypassCacheRead { get; set; }

        /// <summary>
        /// The set up gateway file share cache mode. Valid values: `Cache` or `Sync`. `Cache`: cached mode. `Sync`: replication mode are available. Default value: `Cache`.
        /// </summary>
        [Input("cacheMode")]
        public Input<string>? CacheMode { get; set; }

        /// <summary>
        /// File sharing Whether to enable DirectIO (direct I/O mode for data transmission). Default value: `false`.
        /// </summary>
        [Input("directIo")]
        public Input<bool>? DirectIo { get; set; }

        /// <summary>
        /// The maximum download speed of the gateway file share. Unit: `MB/s`. `0` means unlimited. Value range: `0` ~ `1280`. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version &gt;= 1.3.0 above support.
        /// </summary>
        [Input("downloadLimit")]
        public Input<int>? DownloadLimit { get; set; }

        /// <summary>
        /// The whether to enable Upload optimization of the gateway file share, which is suitable for data pure backup migration scenarios. Default value: `false`. **NOTE:** Gateway version &gt;= 1.0.39 above support.
        /// </summary>
        [Input("fastReclaim")]
        public Input<bool>? FastReclaim { get; set; }

        /// <summary>
        /// The maximum write speed of the gateway file share. Unit: `MB/s`, `0` means unlimited. Value range: `0` ~ `1280`. Default value: `0`.
        /// </summary>
        [Input("feLimit")]
        public Input<int>? FeLimit { get; set; }

        /// <summary>
        /// The name of the file share. Length from `1` to `255` characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.
        /// </summary>
        [Input("gatewayFileShareName", required: true)]
        public Input<string> GatewayFileShareName { get; set; } = null!;

        /// <summary>
        /// The ID of the gateway.
        /// </summary>
        [Input("gatewayId", required: true)]
        public Input<string> GatewayId { get; set; } = null!;

        /// <summary>
        /// The whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: `false`. **NOTE:** `ignore_delete` and `remote_sync` cannot be enabled simultaneously. Gateway version &gt;= 1.0.40 above support.
        /// </summary>
        [Input("ignoreDelete")]
        public Input<bool>? IgnoreDelete { get; set; }

        /// <summary>
        /// The whether debris optimization of the gateway file share. Default value: `false`.
        /// </summary>
        [Input("inPlace")]
        public Input<bool>? InPlace { get; set; }

        /// <summary>
        /// The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: `5` ~ `120`. Default value: `5`. **NOTE:** Gateway version &gt;= 1.0.40 above support.
        /// </summary>
        [Input("lagPeriod")]
        public Input<int>? LagPeriod { get; set; }

        /// <summary>
        /// The cache disk inside the device name.
        /// </summary>
        [Input("localPath", required: true)]
        public Input<string> LocalPath { get; set; } = null!;

        /// <summary>
        /// The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: `false`. **NOTE:** If it is enabled, NFS V3 cannot be mounted. The attribute is valid when the attribute `protocol` is `NFS`. Gateway version &gt;= 1.2.0 above support.
        /// </summary>
        [Input("nfsV4Optimization")]
        public Input<bool>? NfsV4Optimization { get; set; }

        /// <summary>
        /// The name of the OSS Bucket.
        /// </summary>
        [Input("ossBucketName", required: true)]
        public Input<string> OssBucketName { get; set; } = null!;

        /// <summary>
        /// Whether they are using SSL connect to OSS Bucket.
        /// </summary>
        [Input("ossBucketSsl")]
        public Input<bool>? OssBucketSsl { get; set; }

        /// <summary>
        /// The gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint: `oss-cn-hangzhou-internal.aliyuncs.com`.
        /// </summary>
        [Input("ossEndpoint", required: true)]
        public Input<string> OssEndpoint { get; set; } = null!;

        /// <summary>
        /// In part mode, the directory path group JSON format.
        /// </summary>
        [Input("partialSyncPaths")]
        public Input<string>? PartialSyncPaths { get; set; }

        /// <summary>
        /// The subdirectory path under the object storage (OSS) bucket corresponding to the file share. If it is blank, it means the root directory of the bucket.
        /// </summary>
        [Input("pathPrefix")]
        public Input<string>? PathPrefix { get; set; }

        /// <summary>
        /// The reverse synchronization time intervals of the gateway file share. Value range: `15` ~ `36000`. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: `3600` ~ `36000`.
        /// </summary>
        [Input("pollingInterval")]
        public Input<int>? PollingInterval { get; set; }

        /// <summary>
        /// Share types. Valid values: `SMB`, `NFS`.
        /// </summary>
        [Input("protocol", required: true)]
        public Input<string> Protocol { get; set; } = null!;

        /// <summary>
        /// Whether to enable reverse synchronization of the gateway file share. Default value: `false`.
        /// </summary>
        [Input("remoteSync")]
        public Input<bool>? RemoteSync { get; set; }

        /// <summary>
        /// Copy mode, whether to download the file data. Default value: `false`. **NOTE:** only when the attribute `remote_sync` is `true` or acceded to by the speed synchronization group, this parameter will not take effect.
        /// </summary>
        [Input("remoteSyncDownload")]
        public Input<bool>? RemoteSyncDownload { get; set; }

        /// <summary>
        /// File sharing NFS read-only client list (IP address or IP address range). Use commas (,) to separate multiple clients.
        /// </summary>
        [Input("roClientList")]
        public Input<string>? RoClientList { get; set; }

        /// <summary>
        /// The read-only client list. When Protocol for Server Message Block (SMB) to go back to.
        /// </summary>
        [Input("roUserList")]
        public Input<string>? RoUserList { get; set; }

        /// <summary>
        /// Read and write the client list. When Protocol NFS is returned when the status is.
        /// </summary>
        [Input("rwClientList")]
        public Input<string>? RwClientList { get; set; }

        /// <summary>
        /// Read-write user list. When Protocol for Server Message Block (SMB) to go back to.
        /// </summary>
        [Input("rwUserList")]
        public Input<string>? RwUserList { get; set; }

        /// <summary>
        /// The NFS protocol user mapping of the gateway file share. Valid values: `none`, `root_squash`, `all_squash`, `all_anonymous`. Default value: `none`. **NOTE:** The attribute is valid when the attribute `protocol` is `NFS`.
        /// </summary>
        [Input("squash")]
        public Input<string>? Squash { get; set; }

        /// <summary>
        /// Whether to support the archive transparent read.
        /// </summary>
        [Input("supportArchive")]
        public Input<bool>? SupportArchive { get; set; }

        /// <summary>
        /// The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version &gt;= 1.3.0 above support.
        /// </summary>
        [Input("transferAcceleration")]
        public Input<bool>? TransferAcceleration { get; set; }

        /// <summary>
        /// Whether to enable by Windows access list (requires AD domain) the permissions control. Default value: `false`. **NOTE:** The attribute is valid when the attribute `protocol` is `SMB`. Gateway version &gt;= 1.0.45 above support.
        /// </summary>
        [Input("windowsAcl")]
        public Input<bool>? WindowsAcl { get; set; }

        public GatewayFileShareArgs()
        {
        }
        public static new GatewayFileShareArgs Empty => new GatewayFileShareArgs();
    }

    public sealed class GatewayFileShareState : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: `false`. **NOTE:** The attribute is valid when the attribute `protocol` is `SMB`. Gateway version &gt;= 1.0.45 above support.
        /// </summary>
        [Input("accessBasedEnumeration")]
        public Input<bool>? AccessBasedEnumeration { get; set; }

        /// <summary>
        /// The Max upload speed of the gateway file share. Unit: `MB/s`, 0 means unlimited. Value range: `0` ~ `1280`. Default value: `0`. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.
        /// </summary>
        [Input("backendLimit")]
        public Input<int>? BackendLimit { get; set; }

        /// <summary>
        /// The whether browsable of the gateway file share (that is, in the network neighborhood of whether you can find). The attribute is valid when the attribute `protocol` is `SMB`. Default value: `true`.
        /// </summary>
        [Input("browsable")]
        public Input<bool>? Browsable { get; set; }

        /// <summary>
        /// Direct reading OSS of the gateway file share.
        /// </summary>
        [Input("bypassCacheRead")]
        public Input<bool>? BypassCacheRead { get; set; }

        /// <summary>
        /// The set up gateway file share cache mode. Valid values: `Cache` or `Sync`. `Cache`: cached mode. `Sync`: replication mode are available. Default value: `Cache`.
        /// </summary>
        [Input("cacheMode")]
        public Input<string>? CacheMode { get; set; }

        /// <summary>
        /// File sharing Whether to enable DirectIO (direct I/O mode for data transmission). Default value: `false`.
        /// </summary>
        [Input("directIo")]
        public Input<bool>? DirectIo { get; set; }

        /// <summary>
        /// The maximum download speed of the gateway file share. Unit: `MB/s`. `0` means unlimited. Value range: `0` ~ `1280`. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version &gt;= 1.3.0 above support.
        /// </summary>
        [Input("downloadLimit")]
        public Input<int>? DownloadLimit { get; set; }

        /// <summary>
        /// The whether to enable Upload optimization of the gateway file share, which is suitable for data pure backup migration scenarios. Default value: `false`. **NOTE:** Gateway version &gt;= 1.0.39 above support.
        /// </summary>
        [Input("fastReclaim")]
        public Input<bool>? FastReclaim { get; set; }

        /// <summary>
        /// The maximum write speed of the gateway file share. Unit: `MB/s`, `0` means unlimited. Value range: `0` ~ `1280`. Default value: `0`.
        /// </summary>
        [Input("feLimit")]
        public Input<int>? FeLimit { get; set; }

        /// <summary>
        /// The name of the file share. Length from `1` to `255` characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.
        /// </summary>
        [Input("gatewayFileShareName")]
        public Input<string>? GatewayFileShareName { get; set; }

        /// <summary>
        /// The ID of the gateway.
        /// </summary>
        [Input("gatewayId")]
        public Input<string>? GatewayId { get; set; }

        /// <summary>
        /// The whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: `false`. **NOTE:** `ignore_delete` and `remote_sync` cannot be enabled simultaneously. Gateway version &gt;= 1.0.40 above support.
        /// </summary>
        [Input("ignoreDelete")]
        public Input<bool>? IgnoreDelete { get; set; }

        /// <summary>
        /// The whether debris optimization of the gateway file share. Default value: `false`.
        /// </summary>
        [Input("inPlace")]
        public Input<bool>? InPlace { get; set; }

        /// <summary>
        /// The ID of the file share.
        /// </summary>
        [Input("indexId")]
        public Input<string>? IndexId { get; set; }

        /// <summary>
        /// The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: `5` ~ `120`. Default value: `5`. **NOTE:** Gateway version &gt;= 1.0.40 above support.
        /// </summary>
        [Input("lagPeriod")]
        public Input<int>? LagPeriod { get; set; }

        /// <summary>
        /// The cache disk inside the device name.
        /// </summary>
        [Input("localPath")]
        public Input<string>? LocalPath { get; set; }

        /// <summary>
        /// The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: `false`. **NOTE:** If it is enabled, NFS V3 cannot be mounted. The attribute is valid when the attribute `protocol` is `NFS`. Gateway version &gt;= 1.2.0 above support.
        /// </summary>
        [Input("nfsV4Optimization")]
        public Input<bool>? NfsV4Optimization { get; set; }

        /// <summary>
        /// The name of the OSS Bucket.
        /// </summary>
        [Input("ossBucketName")]
        public Input<string>? OssBucketName { get; set; }

        /// <summary>
        /// Whether they are using SSL connect to OSS Bucket.
        /// </summary>
        [Input("ossBucketSsl")]
        public Input<bool>? OssBucketSsl { get; set; }

        /// <summary>
        /// The gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint: `oss-cn-hangzhou-internal.aliyuncs.com`.
        /// </summary>
        [Input("ossEndpoint")]
        public Input<string>? OssEndpoint { get; set; }

        /// <summary>
        /// In part mode, the directory path group JSON format.
        /// </summary>
        [Input("partialSyncPaths")]
        public Input<string>? PartialSyncPaths { get; set; }

        /// <summary>
        /// The subdirectory path under the object storage (OSS) bucket corresponding to the file share. If it is blank, it means the root directory of the bucket.
        /// </summary>
        [Input("pathPrefix")]
        public Input<string>? PathPrefix { get; set; }

        /// <summary>
        /// The reverse synchronization time intervals of the gateway file share. Value range: `15` ~ `36000`. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: `3600` ~ `36000`.
        /// </summary>
        [Input("pollingInterval")]
        public Input<int>? PollingInterval { get; set; }

        /// <summary>
        /// Share types. Valid values: `SMB`, `NFS`.
        /// </summary>
        [Input("protocol")]
        public Input<string>? Protocol { get; set; }

        /// <summary>
        /// Whether to enable reverse synchronization of the gateway file share. Default value: `false`.
        /// </summary>
        [Input("remoteSync")]
        public Input<bool>? RemoteSync { get; set; }

        /// <summary>
        /// Copy mode, whether to download the file data. Default value: `false`. **NOTE:** only when the attribute `remote_sync` is `true` or acceded to by the speed synchronization group, this parameter will not take effect.
        /// </summary>
        [Input("remoteSyncDownload")]
        public Input<bool>? RemoteSyncDownload { get; set; }

        /// <summary>
        /// File sharing NFS read-only client list (IP address or IP address range). Use commas (,) to separate multiple clients.
        /// </summary>
        [Input("roClientList")]
        public Input<string>? RoClientList { get; set; }

        /// <summary>
        /// The read-only client list. When Protocol for Server Message Block (SMB) to go back to.
        /// </summary>
        [Input("roUserList")]
        public Input<string>? RoUserList { get; set; }

        /// <summary>
        /// Read and write the client list. When Protocol NFS is returned when the status is.
        /// </summary>
        [Input("rwClientList")]
        public Input<string>? RwClientList { get; set; }

        /// <summary>
        /// Read-write user list. When Protocol for Server Message Block (SMB) to go back to.
        /// </summary>
        [Input("rwUserList")]
        public Input<string>? RwUserList { get; set; }

        /// <summary>
        /// The NFS protocol user mapping of the gateway file share. Valid values: `none`, `root_squash`, `all_squash`, `all_anonymous`. Default value: `none`. **NOTE:** The attribute is valid when the attribute `protocol` is `NFS`.
        /// </summary>
        [Input("squash")]
        public Input<string>? Squash { get; set; }

        /// <summary>
        /// Whether to support the archive transparent read.
        /// </summary>
        [Input("supportArchive")]
        public Input<bool>? SupportArchive { get; set; }

        /// <summary>
        /// The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version &gt;= 1.3.0 above support.
        /// </summary>
        [Input("transferAcceleration")]
        public Input<bool>? TransferAcceleration { get; set; }

        /// <summary>
        /// Whether to enable by Windows access list (requires AD domain) the permissions control. Default value: `false`. **NOTE:** The attribute is valid when the attribute `protocol` is `SMB`. Gateway version &gt;= 1.0.45 above support.
        /// </summary>
        [Input("windowsAcl")]
        public Input<bool>? WindowsAcl { get; set; }

        public GatewayFileShareState()
        {
        }
        public static new GatewayFileShareState Empty => new GatewayFileShareState();
    }
}
