export interface Tag {
    /** Tag key. The key can't start with aws:. */
    Key: string;
    /** Value of the tag key. */
    Value: string;
}
export interface CacheAttributes {
    /** Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that dire */
    CacheStaleTimeoutInSeconds?: number;
}
export interface EndpointNetworkConfiguration {
    /** A list of gateway IP addresses on which the associated Amazon FSx file system is available. If multiple file systems are associated with this gateway, this field is required. */
    IpAddresses?: string[];
}
export interface NFSFileShareDefaults {
    /** The Unix file mode in the form "nnnn". For example, 0666 represents the default file mode inside the file share. The default value is 0666. */
    FileMode?: string;
    /** The Unix directory mode in the form "nnnn". For example, 0666 represents the default access mode for all directories inside the file share. The default value is 0777. */
    DirectoryMode?: string;
    /** The default group ID for the file share (unless the files have another group ID specified). The default value is nfsnobody. */
    GroupId?: number;
    /** The default owner ID for files in the file share (unless the files have another owner ID specified). The default value is nfsnobody. */
    OwnerId?: number;
}
export interface CacheReportFilter {
    /** The parameter name for a filter that determines which files are included or excluded from a cache report. Valid Names: UploadFailureReason | UploadState */
    Name: 'UploadState' | 'UploadFailureReason';
    /** The parameter value for a filter that determines which files are included or excluded from a cache report. Valid UploadFailureReason Values: InaccessibleStorageClass | InvalidObjectState | ObjectMissi */
    Values: any[];
}
export interface AutomaticTapeCreationRule {
    /** A prefix that you append to the barcode of the virtual tape that you are creating. This prefix makes the barcode unique. The prefix must be 1-4 characters in length and must be one of the uppercase le */
    TapeBarcodePrefix: string;
    /** The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the Amazon S3 storage class that is associated with the pool. When you use your backup applicat */
    PoolId: string;
    /** The size, in bytes, of the virtual tape capacity. */
    TapeSizeInBytes: number;
    /** The minimum number of available virtual tapes that the gateway maintains at all times. If the number of tapes on the gateway goes below this value, the gateway creates as many new tapes as are needed  */
    MinimumNumTapes: number;
    /** Set to true to indicate that tapes are to be archived as write-once-read-many (WORM). Set to false when WORM is not enabled for tapes. */
    Worm?: boolean;
}
export interface BandwidthRateLimitInterval {
    /** The hour of the day to start the bandwidth rate limit interval. */
    StartHourOfDay: number;
    /** The minute of the hour to start the bandwidth rate limit interval. The interval begins at the start of that minute. To begin an interval exactly at the start of the hour, use the value 0. */
    StartMinuteOfHour: number;
    /** The hour of the day to end the bandwidth rate limit interval. */
    EndHourOfDay: number;
    /** The minute of the hour to end the bandwidth rate limit interval. The bandwidth rate limit interval ends at the end of the minute. To end an interval at the end of an hour, use the value 59. */
    EndMinuteOfHour: number;
    /** The days of the week component of the bandwidth rate limit interval, represented as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 represents Saturday. */
    DaysOfWeek: any[];
    /** The average upload rate limit component of the bandwidth rate limit interval, in bits per second. This field does not appear in the response if the upload rate limit is not set. For Tape Gateway and V */
    AverageUploadRateLimitInBitsPerSec?: number;
    /** The average download rate limit component of the bandwidth rate limit interval, in bits per second. This field does not appear in the response if the download rate limit is not set. S3 File Gateway do */
    AverageDownloadRateLimitInBitsPerSec?: number;
}
export interface SoftwareUpdatePreferences {
    /** Indicates the automatic update policy for a gateway. ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway wil */
    AutomaticUpdatePolicy?: 'ALL_VERSIONS' | 'EMERGENCY_VERSIONS_ONLY';
}
export interface SMBLocalGroups {
    /** A list of Active Directory users and groups that have local Gateway Admin permissions. Acceptable formats include: DOMAIN\User1, user1, DOMAIN\group1, and group1. Gateway Admins can use the Shared Fol */
    GatewayAdmins?: string[];
}
/** A JSON object containing one or more of the following fields: ActivateGatewayInput$ActivationKey ActivateGatewayInput$GatewayName ActivateGatewayInput$GatewayRegion ActivateGatewayInput$GatewayTimezon */
export interface ActivateGatewayInput {
    /** Your gateway activation key. You can obtain the activation key by sending an HTTP GET request with redirects enabled to the gateway IP address (port 80). The redirect URL returned in the response prov */
    ActivationKey: string;
    /** The name you configured for your gateway. */
    GatewayName: string;
    /** A value that indicates the Amazon Web Services Region where you want to store your data. The gateway Amazon Web Services Region specified must be the same Amazon Web Services Region as the Amazon Web  */
    GatewayRegion: string;
    /** A value that indicates the time zone you want to set for the gateway. The time zone is of the format "GMT", "GMT-hr:mm", or "GMT+hr:mm". For example, GMT indicates Greenwich Mean Time without any offs */
    GatewayTimezone: string;
    /** A value that defines the type of gateway to activate. The type specified is critical to all later functions of the gateway and cannot be changed after activation. The default value is CACHED. Amazon F */
    GatewayType?: string;
    /** The value that indicates the type of medium changer to use for tape gateway. This field is optional. Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402 */
    MediumChangerType?: string;
    /** A list of up to 50 tags that you can assign to the gateway. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers that can be represented in UTF-8 format, a */
    Tags?: Tag[];
    /** The value that indicates the type of tape drive to use for tape gateway. This field is optional. Valid Values: IBM-ULT3580-TD5 */
    TapeDriveType?: string;
}
export interface AddCacheInput {
    /** An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks  */
    DiskIds: string[];
    GatewayARN: string;
}
/** AddTagsToResourceInput */
export interface AddTagsToResourceInput {
    /** The Amazon Resource Name (ARN) of the resource you want to add tags to. */
    ResourceARN: string;
    /** The key-value pair that represents the tag you want to add to the resource. The value can be an empty string. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 */
    Tags: Tag[];
}
export interface AddUploadBufferInput {
    /** An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks  */
    DiskIds: string[];
    GatewayARN: string;
}
/** A JSON object containing one or more of the following fields: AddWorkingStorageInput$DiskIds */
export interface AddWorkingStorageInput {
    /** An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks  */
    DiskIds: string[];
    GatewayARN: string;
}
export interface AssignTapePoolInput {
    /** The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to  */
    PoolId: string;
    /** The unique Amazon Resource Name (ARN) of the virtual tape that you want to add to the tape pool. */
    TapeARN: string;
    /** Set permissions to bypass governance retention. If the lock type of the archived tape is Governance, the tape's archived age is not older than RetentionLockInDays, and the user does not already have B */
    BypassGovernanceRetention?: boolean;
}
export interface AssociateFileSystemInput {
    /** A unique string value that you supply that is used by the FSx File Gateway to ensure idempotent file system association creation. */
    ClientToken: string;
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the Amazon FSx file system to associate with the FSx File Gateway. */
    LocationARN: string;
    /** The password of the user credential. */
    Password: string;
    /** The user name of the user credential that has permission to access the root share D$ of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group. */
    UserName: string;
    /** The Amazon Resource Name (ARN) of the storage used for the audit logs. */
    AuditDestinationARN?: string;
    CacheAttributes?: CacheAttributes;
    /** Specifies the network configuration information for the gateway associated with the Amazon FSx file system. If multiple file systems are associated with this gateway, this parameter's IpAddresses fiel */
    EndpointNetworkConfiguration?: EndpointNetworkConfiguration;
    /** A list of up to 50 tags that can be assigned to the file system association. Each tag is a key-value pair. */
    Tags?: Tag[];
}
/** AttachVolumeInput */
export interface AttachVolumeInput {
    /** The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to. */
    GatewayARN: string;
    /** The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway */
    NetworkInterfaceId: string;
    /** The Amazon Resource Name (ARN) of the volume to attach to the specified gateway. */
    VolumeARN: string;
    /** The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume. */
    DiskId?: string;
    /** The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:st */
    TargetName?: string;
}
/** CancelArchivalInput */
export interface CancelArchivalInput {
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving for. */
    TapeARN: string;
}
export interface CancelCacheReportInput {
    /** The Amazon Resource Name (ARN) of the cache report you want to cancel. */
    CacheReportARN: string;
}
/** CancelRetrievalInput */
export interface CancelRetrievalInput {
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval for. */
    TapeARN: string;
}
export interface CreateCachediSCSIVolumeInput {
    /** A unique identifier that you use to retry a request. If you retry a request, use the same ClientToken you specified in the initial request. */
    ClientToken: string;
    GatewayARN: string;
    /** The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway */
    NetworkInterfaceId: string;
    /** The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:st */
    TargetName: string;
    /** The size of the volume in bytes. */
    VolumeSizeInBytes: number;
    /** Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false */
    KMSEncrypted?: boolean;
    /** The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMS */
    KMSKey?: string;
    /** The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the new cached volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; otherwise, do not include */
    SnapshotId?: string;
    /** The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The VolumeSizeInBytes value for this new volume mu */
    SourceVolumeARN?: string;
    /** A list of up to 50 tags that you can assign to a cached volume. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers that you can represent in UTF-8 format */
    Tags?: Tag[];
}
/** CreateNFSFileShareInput */
export interface CreateNFSFileShareInput {
    /** A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation. */
    ClientToken: string;
    /** The Amazon Resource Name (ARN) of the S3 File Gateway on which you want to create a file share. */
    GatewayARN: string;
    /** A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can spec */
    LocationARN: string;
    /** The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage. */
    Role: string;
    /** The Amazon Resource Name (ARN) of the storage used for audit logs. */
    AuditDestinationARN?: string;
    /** Specifies the Region of the S3 bucket where the NFS file share stores files. This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an  */
    BucketRegion?: string;
    /** Specifies refresh cache information for the file share. */
    CacheAttributes?: CacheAttributes;
    /** The list of clients that are allowed to access the S3 File Gateway. The list must contain either valid IPv4/IPv6 addresses or valid CIDR blocks. */
    ClientList?: string[];
    /** The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_ */
    DefaultStorageClass?: string;
    /** A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the fi */
    EncryptionType?: 'SseS3' | 'SseKms' | 'DsseKms';
    /** The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid NFS file share name can only co */
    FileShareName?: string;
    /** A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Va */
    GuessMIMETypeEnabled?: boolean;
    /** Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the Enc */
    KMSEncrypted?: boolean;
    /** Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if */
    KMSKey?: string;
    /** File share default values. Optional. */
    NFSFileShareDefaults?: NFSFileShareDefaults;
    /** The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notifi */
    NotificationPolicy?: string;
    /** A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. */
    ObjectACL?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-control' | 'aws-exec-read';
    /** A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false */
    ReadOnly?: boolean;
    /** A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket o */
    RequesterPays?: boolean;
    /** A value that maps a user to anonymous user. Valid values are the following: RootSquash: Only root is mapped to anonymous user. NoSquash: No one is mapped to anonymous user. AllSquash: Everyone is mapp */
    Squash?: string;
    /** A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and */
    Tags?: Tag[];
    /** Specifies the DNS name for the VPC endpoint that the NFS file share uses to connect to Amazon S3. This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC */
    VPCEndpointDNSName?: string;
}
/** CreateSMBFileShareInput */
export interface CreateSMBFileShareInput {
    /** A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation. */
    ClientToken: string;
    /** The ARN of the S3 File Gateway on which you want to create a file share. */
    GatewayARN: string;
    /** A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can spec */
    LocationARN: string;
    /** The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage. */
    Role: string;
    /** The files and folders on this share will only be visible to users with read access. */
    AccessBasedEnumeration?: boolean;
    /** A list of users or groups in the Active Directory that will be granted administrator privileges on the file share. These users can do all file operations as the super-user. Acceptable formats include: */
    AdminUserList?: string[];
    /** The Amazon Resource Name (ARN) of the storage used for audit logs. */
    AuditDestinationARN?: string;
    /** The authentication method that users use to access the file share. The default is ActiveDirectory. Valid Values: ActiveDirectory | GuestAccess */
    Authentication?: string;
    /** Specifies the Region of the S3 bucket where the SMB file share stores files. This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an  */
    BucketRegion?: string;
    /** Specifies refresh cache information for the file share. */
    CacheAttributes?: CacheAttributes;
    /** The case of an object name in an Amazon S3 bucket. For ClientSpecified, the client determines the case sensitivity. For CaseSensitive, the gateway determines the case sensitivity. The default value is */
    CaseSensitivity?: 'ClientSpecified' | 'CaseSensitive';
    /** The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_ */
    DefaultStorageClass?: string;
    /** A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the fi */
    EncryptionType?: 'SseS3' | 'SseKms' | 'DsseKms';
    /** The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid SMB file share name cannot cont */
    FileShareName?: string;
    /** A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Va */
    GuessMIMETypeEnabled?: boolean;
    /** A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1 */
    InvalidUserList?: string[];
    /** Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the Enc */
    KMSEncrypted?: boolean;
    /** Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if */
    KMSKey?: string;
    /** The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notifi */
    NotificationPolicy?: string;
    /** A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. */
    ObjectACL?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-control' | 'aws-exec-read';
    /** Specifies whether opportunistic locking is enabled for the SMB file share. Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with th */
    OplocksEnabled?: boolean;
    /** A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false */
    ReadOnly?: boolean;
    /** A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket o */
    RequesterPays?: boolean;
    /** Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see Using Window */
    SMBACLEnabled?: boolean;
    /** A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and */
    Tags?: Tag[];
    /** A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1, an */
    ValidUserList?: string[];
    /** Specifies the DNS name for the VPC endpoint that the SMB file share uses to connect to Amazon S3. This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC */
    VPCEndpointDNSName?: string;
}
/** A JSON object containing one or more of the following fields: CreateSnapshotInput$SnapshotDescription CreateSnapshotInput$VolumeARN */
export interface CreateSnapshotInput {
    /** Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the Storage Gateway snapshot Details pane, Description  */
    SnapshotDescription: string;
    /** The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. */
    VolumeARN: string;
    /** A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the fol */
    Tags?: Tag[];
}
export interface CreateSnapshotFromVolumeRecoveryPointInput {
    /** Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the Storage Gateway snapshot Details pane, Description  */
    SnapshotDescription: string;
    /** The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN. */
    VolumeARN: string;
    /** A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the fol */
    Tags?: Tag[];
}
/** A JSON object containing one or more of the following fields: CreateStorediSCSIVolumeInput$DiskId CreateStorediSCSIVolumeInput$NetworkInterfaceId CreateStorediSCSIVolumeInput$PreserveExistingData Crea */
export interface CreateStorediSCSIVolumeInput {
    /** The unique identifier for the gateway local disk that is configured as a stored volume. Use ListLocalDisks to list disk IDs for a gateway. */
    DiskId: string;
    GatewayARN: string;
    /** The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway */
    NetworkInterfaceId: string;
    /** Set to true if you want to preserve the data on the local disk. Otherwise, set to false to create an empty volume. Valid Values: true | false */
    PreserveExistingData: boolean;
    /** The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:st */
    TargetName: string;
    /** Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false */
    KMSEncrypted?: boolean;
    /** The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMS */
    KMSKey?: string;
    /** The snapshot ID (e.g., "snap-1122aabb") of the snapshot to restore as the new stored volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; otherwise, do not includ */
    SnapshotId?: string;
    /** A list of up to 50 tags that can be assigned to a stored volume. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and th */
    Tags?: Tag[];
}
export interface CreateTapePoolInput {
    /** The name of the new custom tape pool. */
    PoolName: string;
    /** The storage class that is associated with the new custom pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier De */
    StorageClass: 'DEEP_ARCHIVE' | 'GLACIER';
    /** Tape retention lock time is set in days. Tape retention lock can be enabled for up to 100 years (36,500 days). */
    RetentionLockTimeInDays?: number;
    /** Tape retention lock can be configured in two modes. When configured in governance mode, Amazon Web Services accounts with specific IAM permissions are authorized to remove the tape retention lock from */
    RetentionLockType?: 'COMPLIANCE' | 'GOVERNANCE' | 'NONE';
    /** A list of up to 50 tags that can be assigned to tape pool. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the foll */
    Tags?: Tag[];
}
/** CreateTapesInput */
export interface CreateTapesInput {
    /** A unique identifier that you use to retry a request. If you retry a request, use the same ClientToken you specified in the initial request. Using the same ClientToken prevents creating the tape multip */
    ClientToken: string;
    /** The unique Amazon Resource Name (ARN) that represents the gateway to associate the virtual tapes with. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Servi */
    GatewayARN: string;
    /** The number of virtual tapes that you want to create. */
    NumTapesToCreate: number;
    /** A prefix that you append to the barcode of the virtual tape you are creating. This prefix makes the barcode unique. The prefix must be 1-4 characters in length and must be one of the uppercase letters */
    TapeBarcodePrefix: string;
    /** The size, in bytes, of the virtual tapes that you want to create. The size must be aligned by gigabyte (1024*1024*1024 bytes). */
    TapeSizeInBytes: number;
    /** Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false */
    KMSEncrypted?: boolean;
    /** The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMS */
    KMSKey?: string;
    /** The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to  */
    PoolId?: string;
    /** A list of up to 50 tags that can be assigned to a virtual tape. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the */
    Tags?: Tag[];
    /** Set to TRUE if the tape you are creating is to be configured as a write-once-read-many (WORM) tape. */
    Worm?: boolean;
}
/** CreateTapeWithBarcodeInput */
export interface CreateTapeWithBarcodeInput {
    /** The unique Amazon Resource Name (ARN) that represents the gateway to associate the virtual tape with. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Servic */
    GatewayARN: string;
    /** The barcode that you want to assign to the tape. Barcodes cannot be reused. This includes barcodes used for tapes that have been deleted. */
    TapeBarcode: string;
    /** The size, in bytes, of the virtual tape that you want to create. The size must be aligned by gigabyte (1024*1024*1024 bytes). */
    TapeSizeInBytes: number;
    /** Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false */
    KMSEncrypted?: boolean;
    /** The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMS */
    KMSKey?: string;
    /** The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to  */
    PoolId?: string;
    /** A list of up to 50 tags that can be assigned to a virtual tape that has a barcode. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UT */
    Tags?: Tag[];
    /** Set to TRUE if the tape you are creating is to be configured as a write-once-read-many (WORM) tape. */
    Worm?: boolean;
}
export interface DeleteAutomaticTapeCreationPolicyInput {
    GatewayARN: string;
}
/** A JSON object containing the following fields: DeleteBandwidthRateLimitInput$BandwidthType */
export interface DeleteBandwidthRateLimitInput {
    /** One of the BandwidthType values that indicates the gateway bandwidth rate limit to delete. Valid Values: UPLOAD | DOWNLOAD | ALL */
    BandwidthType: string;
    GatewayARN: string;
}
export interface DeleteCacheReportInput {
    /** The Amazon Resource Name (ARN) of the cache report you want to delete. */
    CacheReportARN: string;
}
/** A JSON object containing one or more of the following fields: DeleteChapCredentialsInput$InitiatorName DeleteChapCredentialsInput$TargetARN */
export interface DeleteChapCredentialsInput {
    /** The iSCSI initiator that connects to the target. */
    InitiatorName: string;
    /** The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN. */
    TargetARN: string;
}
/** DeleteFileShareInput */
export interface DeleteFileShareInput {
    /** The Amazon Resource Name (ARN) of the file share to be deleted. */
    FileShareARN: string;
    /** If this value is set to true, the operation deletes a file share immediately and aborts all data uploads to Amazon Web Services. Otherwise, the file share is not deleted until all data is uploaded to  */
    ForceDelete?: boolean;
}
/** A JSON object containing the ID of the gateway to delete. */
export interface DeleteGatewayInput {
    GatewayARN: string;
}
export interface DeleteSnapshotScheduleInput {
    /** The volume which snapshot schedule to delete. */
    VolumeARN: string;
}
/** DeleteTapeInput */
export interface DeleteTapeInput {
    /** The unique Amazon Resource Name (ARN) of the gateway that the virtual tape to delete is associated with. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Ser */
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the virtual tape to delete. */
    TapeARN: string;
    /** Set to TRUE to delete an archived tape that belongs to a custom pool with tape retention lock. Only archived tapes with tape retention lock set to governance can be deleted. Archived tapes with tape r */
    BypassGovernanceRetention?: boolean;
}
/** DeleteTapeArchiveInput */
export interface DeleteTapeArchiveInput {
    /** The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual tape shelf (VTS). */
    TapeARN: string;
    /** Set to TRUE to delete an archived tape that belongs to a custom pool with tape retention lock. Only archived tapes with tape retention lock set to governance can be deleted. Archived tapes with tape r */
    BypassGovernanceRetention?: boolean;
}
export interface DeleteTapePoolInput {
    /** The Amazon Resource Name (ARN) of the custom tape pool to delete. */
    PoolARN: string;
}
/** A JSON object containing the DeleteVolumeInput$VolumeARN to delete. */
export interface DeleteVolumeInput {
    /** The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. */
    VolumeARN: string;
}
export interface DescribeAvailabilityMonitorTestInput {
    GatewayARN: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway. */
export interface DescribeBandwidthRateLimitInput {
    GatewayARN: string;
}
export interface DescribeBandwidthRateLimitScheduleInput {
    GatewayARN: string;
}
export interface DescribeCacheInput {
    GatewayARN: string;
}
export interface DescribeCachediSCSIVolumesInput {
    /** An array of strings where each string represents the Amazon Resource Name (ARN) of a cached volume. All of the specified cached volumes must be from the same gateway. Use ListVolumes to get volume ARN */
    VolumeARNs: string[];
}
export interface DescribeCacheReportInput {
    /** The Amazon Resource Name (ARN) of the cache report you want to describe. */
    CacheReportARN: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume target. */
export interface DescribeChapCredentialsInput {
    /** The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN. */
    TargetARN: string;
}
export interface DescribeFileSystemAssociationsInput {
    /** An array containing the Amazon Resource Name (ARN) of each file system association to be described. */
    FileSystemAssociationARNList: string[];
}
/** A JSON object containing the ID of the gateway. */
export interface DescribeGatewayInformationInput {
    GatewayARN: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway. */
export interface DescribeMaintenanceStartTimeInput {
    GatewayARN: string;
}
/** DescribeNFSFileSharesInput */
export interface DescribeNFSFileSharesInput {
    /** An array containing the Amazon Resource Name (ARN) of each file share to be described. */
    FileShareARNList: string[];
}
/** DescribeSMBFileSharesInput */
export interface DescribeSMBFileSharesInput {
    /** An array containing the Amazon Resource Name (ARN) of each file share to be described. */
    FileShareARNList: string[];
}
export interface DescribeSMBSettingsInput {
    GatewayARN: string;
}
/** A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the volume. */
export interface DescribeSnapshotScheduleInput {
    /** The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. */
    VolumeARN: string;
}
/** A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs. */
export interface DescribeStorediSCSIVolumesInput {
    /** An array of strings where each string represents the Amazon Resource Name (ARN) of a stored volume. All of the specified stored volumes must be from the same gateway. Use ListVolumes to get volume ARN */
    VolumeARNs: string[];
}
/** DescribeTapeArchivesInput */
export interface DescribeTapeArchivesInput {
    /** Specifies that the number of virtual tapes described be limited to the specified number. */
    Limit?: number;
    /** An opaque string that indicates the position at which to begin describing virtual tapes. */
    Marker?: string;
    /** Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. */
    TapeARNs?: string[];
}
/** DescribeTapeRecoveryPointsInput */
export interface DescribeTapeRecoveryPointsInput {
    GatewayARN: string;
    /** Specifies that the number of virtual tape recovery points that are described be limited to the specified number. */
    Limit?: number;
    /** An opaque string that indicates the position at which to begin describing the virtual tape recovery points. */
    Marker?: string;
}
/** DescribeTapesInput */
export interface DescribeTapesInput {
    GatewayARN: string;
    /** Specifies that the number of virtual tapes described be limited to the specified number. Amazon Web Services may impose its own limit, if this field is not set. */
    Limit?: number;
    /** A marker value, obtained in a previous call to DescribeTapes. This marker indicates which page of results to retrieve. If not specified, the first page of results is retrieved. */
    Marker?: string;
    /** Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, Tape gateway returns a description of all virtual t */
    TapeARNs?: string[];
}
export interface DescribeUploadBufferInput {
    GatewayARN: string;
}
/** DescribeVTLDevicesInput */
export interface DescribeVTLDevicesInput {
    GatewayARN: string;
    /** Specifies that the number of VTL devices described be limited to the specified number. */
    Limit?: number;
    /** An opaque string that indicates the position at which to begin describing the VTL devices. */
    Marker?: string;
    /** An array of strings, where each string represents the Amazon Resource Name (ARN) of a VTL device. All of the specified VTL devices must be from the same gateway. If no VTL devices are specified, the r */
    VTLDeviceARNs?: string[];
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway. */
export interface DescribeWorkingStorageInput {
    GatewayARN: string;
}
/** AttachVolumeInput */
export interface DetachVolumeInput {
    /** The Amazon Resource Name (ARN) of the volume to detach from the gateway. */
    VolumeARN: string;
    /** Set to true to forcibly remove the iSCSI connection of the target volume and detach the volume. The default is false. If this value is set to false, you must manually disconnect the iSCSI connection f */
    ForceDetach?: boolean;
}
/** DisableGatewayInput */
export interface DisableGatewayInput {
    GatewayARN: string;
}
export interface DisassociateFileSystemInput {
    /** The Amazon Resource Name (ARN) of the file system association to be deleted. */
    FileSystemAssociationARN: string;
    /** If this value is set to true, the operation disassociates an Amazon FSx file system immediately. It ends all data uploads to the file system, and the file system association enters the FORCE_DELETING  */
    ForceDelete?: boolean;
}
export interface EvictFilesFailingUploadInput {
    /** The Amazon Resource Name (ARN) of the file share for which you want to start the cache clean operation. */
    FileShareARN: string;
    /** Specifies whether cache entries with full or partial file data currently stored on the gateway will be forcibly removed by the cache clean operation. Valid arguments: False - The cache clean operation */
    ForceRemove?: boolean;
}
/** JoinDomainInput */
export interface JoinDomainInput {
    /** The name of the domain that you want the gateway to join. */
    DomainName: string;
    /** The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region. */
    GatewayARN: string;
    /** Sets the password of the user who has permission to add the gateway to the Active Directory domain. */
    Password: string;
    /** Sets the user name of user who has permission to add the gateway to the Active Directory domain. The domain user account should be enabled to join computers to the domain. For example, you can use the */
    UserName: string;
    /** List of IP addresses, NetBIOS names, or host names of your domain server. If you need to specify the port number include it after the colon (“:”). For example, mydc.mydomain.com:389. S3 File Gateway s */
    DomainControllers?: string[];
    /** The organizational unit (OU) is a container in an Active Directory that can hold users, groups, computers, and other OUs and this parameter specifies the OU that the gateway will join within the AD do */
    OrganizationalUnit?: string;
    /** Specifies the time in seconds, in which the JoinDomain operation must complete. The default is 20 seconds. */
    TimeoutInSeconds?: number;
}
export interface ListAutomaticTapeCreationPoliciesInput {
    GatewayARN?: string;
}
export interface ListCacheReportsInput {
    /** Opaque pagination token returned from a previous ListCacheReports operation. If present, Marker specifies where to continue the list from after a previous call to ListCacheReports. Optional. */
    Marker?: string;
}
/** ListFileShareInput */
export interface ListFileSharesInput {
    /** The Amazon Resource Name (ARN) of the gateway whose file shares you want to list. If this field is not present, all file shares under your account are listed. */
    GatewayARN?: string;
    /** The maximum number of file shares to return in the response. The value must be an integer with a value greater than zero. Optional. */
    Limit?: number;
    /** Opaque pagination token returned from a previous ListFileShares operation. If present, Marker specifies where to continue the list from after a previous call to ListFileShares. Optional. */
    Marker?: string;
}
export interface ListFileSystemAssociationsInput {
    GatewayARN?: string;
    /** The maximum number of file system associations to return in the response. If present, Limit must be an integer with a value greater than zero. Optional. */
    Limit?: number;
    /** Opaque pagination token returned from a previous ListFileSystemAssociations operation. If present, Marker specifies where to continue the list from after a previous call to ListFileSystemAssociations. */
    Marker?: string;
}
/** A JSON object containing zero or more of the following fields: ListGatewaysInput$Limit ListGatewaysInput$Marker */
export interface ListGatewaysInput {
    /** Specifies that the list of gateways returned be limited to the specified number of items. */
    Limit?: number;
    /** An opaque string that indicates the position at which to begin the returned list of gateways. */
    Marker?: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway. */
export interface ListLocalDisksInput {
    GatewayARN: string;
}
/** ListTagsForResourceInput */
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource for which you want to list tags. */
    ResourceARN: string;
    /** Specifies that the list of tags returned be limited to the specified number of items. */
    Limit?: number;
    /** An opaque string that indicates the position at which to begin returning the list of tags. */
    Marker?: string;
}
export interface ListTapePoolsInput {
    /** An optional number limit for the tape pools in the list returned by this call. */
    Limit?: number;
    /** A string that indicates the position at which to begin the returned list of tape pools. */
    Marker?: string;
    /** The Amazon Resource Name (ARN) of each of the custom tape pools you want to list. If you don't specify a custom tape pool ARN, the response lists all custom tape pools. */
    PoolARNs?: string[];
}
/** A JSON object that contains one or more of the following fields: ListTapesInput$Limit ListTapesInput$Marker ListTapesInput$TapeARNs */
export interface ListTapesInput {
    /** An optional number limit for the tapes in the list returned by this call. */
    Limit?: number;
    /** A string that indicates the position at which to begin the returned list of tapes. */
    Marker?: string;
    TapeARNs?: string[];
}
/** ListVolumeInitiatorsInput */
export interface ListVolumeInitiatorsInput {
    /** The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes for the gateway. */
    VolumeARN: string;
}
export interface ListVolumeRecoveryPointsInput {
    GatewayARN: string;
}
/** A JSON object that contains one or more of the following fields: ListVolumesInput$Limit ListVolumesInput$Marker */
export interface ListVolumesInput {
    GatewayARN?: string;
    /** Specifies that the list of volumes returned be limited to the specified number of items. */
    Limit?: number;
    /** A string that indicates the position at which to begin the returned list of volumes. Obtain the marker from the response of a previous List iSCSI Volumes request. */
    Marker?: string;
}
export interface NotifyWhenUploadedInput {
    FileShareARN: string;
}
/** RefreshCacheInput */
export interface RefreshCacheInput {
    /** The Amazon Resource Name (ARN) of the file share you want to refresh. */
    FileShareARN: string;
    /** A comma-separated list of the paths of folders to refresh in the cache. The default is ["/"]. The default refreshes objects and folders at the root of the Amazon S3 bucket. If Recursive is set to true */
    FolderList?: string[];
    /** A value that specifies whether to recursively refresh folders in the cache. The refresh includes folders that were in the cache the last time the gateway listed the folder's contents. If this value se */
    Recursive?: boolean;
}
/** RemoveTagsFromResourceInput */
export interface RemoveTagsFromResourceInput {
    /** The Amazon Resource Name (ARN) of the resource you want to remove the tags from. */
    ResourceARN: string;
    /** The keys of the tags you want to remove from the specified resource. A tag is composed of a key-value pair. */
    TagKeys: string[];
}
export interface ResetCacheInput {
    GatewayARN: string;
}
/** RetrieveTapeArchiveInput */
export interface RetrieveTapeArchiveInput {
    /** The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual tape to. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region. You */
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from the virtual tape shelf (VTS). */
    TapeARN: string;
}
/** RetrieveTapeRecoveryPointInput */
export interface RetrieveTapeRecoveryPointInput {
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the virtual tape for which you want to retrieve the recovery point. */
    TapeARN: string;
}
/** SetLocalConsolePasswordInput */
export interface SetLocalConsolePasswordInput {
    GatewayARN: string;
    /** The password you want to set for your VM local console. */
    LocalConsolePassword: string;
}
/** SetSMBGuestPasswordInput */
export interface SetSMBGuestPasswordInput {
    /** The Amazon Resource Name (ARN) of the S3 File Gateway the SMB file share is associated with. */
    GatewayARN: string;
    /** The password that you want to set for your SMB server. */
    Password: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway to shut down. */
export interface ShutdownGatewayInput {
    GatewayARN: string;
}
export interface StartAvailabilityMonitorTestInput {
    GatewayARN: string;
}
export interface StartCacheReportInput {
    /** The Amazon Web Services Region of the Amazon S3 bucket where you want to save the cache report. */
    BucketRegion: string;
    /** A unique identifier that you use to ensure idempotent report generation if you need to retry an unsuccessful StartCacheReport request. If you retry a request, use the same ClientToken you specified in */
    ClientToken: string;
    FileShareARN: string;
    /** The ARN of the Amazon S3 bucket where you want to save the cache report. We do not recommend saving the cache report to the same Amazon S3 bucket for which you are generating the report. This field do */
    LocationARN: string;
    /** The ARN of the IAM role used when saving the cache report to Amazon S3. */
    Role: string;
    /** The list of filters and parameters that determine which files are excluded from the report. You must specify at least one value for InclusionFilters or ExclusionFilters in a StartCacheReport request. */
    ExclusionFilters?: CacheReportFilter[];
    /** The list of filters and parameters that determine which files are included in the report. You must specify at least one value for InclusionFilters or ExclusionFilters in a StartCacheReport request. */
    InclusionFilters?: CacheReportFilter[];
    /** A list of up to 50 key/value tags that you can assign to the cache report. Using tags can help you categorize your reports and more easily locate them in search results. */
    Tags?: Tag[];
    /** The DNS name of the VPC endpoint associated with the Amazon S3 where you want to save the cache report. Optional. */
    VPCEndpointDNSName?: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway to start. */
export interface StartGatewayInput {
    GatewayARN: string;
}
export interface UpdateAutomaticTapeCreationPolicyInput {
    /** An automatic tape creation policy consists of a list of automatic tape creation rules. The rules determine when and how to automatically create new tapes. */
    AutomaticTapeCreationRules: AutomaticTapeCreationRule[];
    GatewayARN: string;
}
/** A JSON object containing one or more of the following fields: UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec */
export interface UpdateBandwidthRateLimitInput {
    GatewayARN: string;
    /** The average download bandwidth rate limit in bits per second. */
    AverageDownloadRateLimitInBitsPerSec?: number;
    /** The average upload bandwidth rate limit in bits per second. */
    AverageUploadRateLimitInBitsPerSec?: number;
}
export interface UpdateBandwidthRateLimitScheduleInput {
    /** An array containing bandwidth rate limit schedule intervals for a gateway. When no bandwidth rate limit intervals have been scheduled, the array is empty. */
    BandwidthRateLimitIntervals: BandwidthRateLimitInterval[];
    GatewayARN: string;
}
/** A JSON object containing one or more of the following fields: UpdateChapCredentialsInput$InitiatorName UpdateChapCredentialsInput$SecretToAuthenticateInitiator UpdateChapCredentialsInput$SecretToAuthe */
export interface UpdateChapCredentialsInput {
    /** The iSCSI initiator that connects to the target. */
    InitiatorName: string;
    /** The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target. The secret key must be between 12 and 16 bytes when encoded in UTF-8. */
    SecretToAuthenticateInitiator: string;
    /** The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return the TargetARN for specified VolumeARN. */
    TargetARN: string;
    /** The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). Byte constraints: Minimum bytes of 12. Maximum bytes of 16. The secret key must be b */
    SecretToAuthenticateTarget?: string;
}
export interface UpdateFileSystemAssociationInput {
    /** The Amazon Resource Name (ARN) of the file system association that you want to update. */
    FileSystemAssociationARN: string;
    /** The Amazon Resource Name (ARN) of the storage used for the audit logs. */
    AuditDestinationARN?: string;
    CacheAttributes?: CacheAttributes;
    /** The password of the user credential. */
    Password?: string;
    /** The user name of the user credential that has permission to access the root share D$ of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group. */
    UserName?: string;
}
export interface UpdateGatewayInformationInput {
    GatewayARN: string;
    /** The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you want to use to monitor and log events in the gateway. For more information, see What is Amazon CloudWatch Logs? */
    CloudWatchLogGroupARN?: string;
    /** Specifies the size of the gateway's metadata cache. This setting impacts gateway performance and hardware recommendations. For more information, see Performance guidance for gateways with multiple fil */
    GatewayCapacity?: 'Small' | 'Medium' | 'Large';
    GatewayName?: string;
    /** A value that indicates the time zone of the gateway. */
    GatewayTimezone?: string;
}
/** A JSON object containing the Amazon Resource Name (ARN) of the gateway to update. */
export interface UpdateGatewaySoftwareNowInput {
    GatewayARN: string;
}
/** A JSON object containing the following fields: UpdateMaintenanceStartTimeInput$SoftwareUpdatePreferences UpdateMaintenanceStartTimeInput$DayOfMonth UpdateMaintenanceStartTimeInput$DayOfWeek UpdateMain */
export interface UpdateMaintenanceStartTimeInput {
    GatewayARN: string;
    /** The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month. It is not possible to set the maintenance sch */
    DayOfMonth?: number;
    /** The day of the week component of the maintenance start time week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 represents Saturday. */
    DayOfWeek?: number;
    /** The hour component of the maintenance start time represented as hh, where hh is the hour (00 to 23). The hour of the day is in the time zone of the gateway. */
    HourOfDay?: number;
    /** The minute component of the maintenance start time represented as mm, where mm is the minute (00 to 59). The minute of the hour is in the time zone of the gateway. */
    MinuteOfHour?: number;
    /** A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy field with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance update */
    SoftwareUpdatePreferences?: SoftwareUpdatePreferences;
}
/** UpdateNFSFileShareInput */
export interface UpdateNFSFileShareInput {
    /** The Amazon Resource Name (ARN) of the file share to be updated. */
    FileShareARN: string;
    /** The Amazon Resource Name (ARN) of the storage used for audit logs. */
    AuditDestinationARN?: string;
    /** Specifies refresh cache information for the file share. */
    CacheAttributes?: CacheAttributes;
    /** The list of clients that are allowed to access the S3 File Gateway. The list must contain either valid IPv4/IPv6 addresses or valid CIDR blocks. */
    ClientList?: string[];
    /** The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_ */
    DefaultStorageClass?: string;
    /** A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the fi */
    EncryptionType?: 'SseS3' | 'SseKms' | 'DsseKms';
    /** The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid NFS file share name can only co */
    FileShareName?: string;
    /** A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Va */
    GuessMIMETypeEnabled?: boolean;
    /** Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the Enc */
    KMSEncrypted?: boolean;
    /** Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if */
    KMSKey?: string;
    /** The default values for the file share. Optional. */
    NFSFileShareDefaults?: NFSFileShareDefaults;
    /** The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notifi */
    NotificationPolicy?: string;
    /** A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. */
    ObjectACL?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-control' | 'aws-exec-read';
    /** A value that sets the write status of a file share. Set this value to true to set the write status to read-only, otherwise set to false. Valid Values: true | false */
    ReadOnly?: boolean;
    /** A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket o */
    RequesterPays?: boolean;
    /** The user mapped to anonymous user. Valid values are the following: RootSquash: Only root is mapped to anonymous user. NoSquash: No one is mapped to anonymous user. AllSquash: Everyone is mapped to ano */
    Squash?: string;
}
/** UpdateSMBFileShareInput */
export interface UpdateSMBFileShareInput {
    /** The Amazon Resource Name (ARN) of the SMB file share that you want to update. */
    FileShareARN: string;
    /** The files and folders on this share will only be visible to users with read access. */
    AccessBasedEnumeration?: boolean;
    /** A list of users or groups in the Active Directory that have administrator rights to the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @gro */
    AdminUserList?: string[];
    /** The Amazon Resource Name (ARN) of the storage used for audit logs. */
    AuditDestinationARN?: string;
    /** Specifies refresh cache information for the file share. */
    CacheAttributes?: CacheAttributes;
    /** The case of an object name in an Amazon S3 bucket. For ClientSpecified, the client determines the case sensitivity. For CaseSensitive, the gateway determines the case sensitivity. The default value is */
    CaseSensitivity?: 'ClientSpecified' | 'CaseSensitive';
    /** The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_ */
    DefaultStorageClass?: string;
    /** A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the fi */
    EncryptionType?: 'SseS3' | 'SseKms' | 'DsseKms';
    /** The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. A valid SMB file share name cannot cont */
    FileShareName?: string;
    /** A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Va */
    GuessMIMETypeEnabled?: boolean;
    /** A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1 */
    InvalidUserList?: string[];
    /** Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the Enc */
    KMSEncrypted?: boolean;
    /** Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if */
    KMSKey?: string;
    /** The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notifi */
    NotificationPolicy?: string;
    /** A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. */
    ObjectACL?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-control' | 'aws-exec-read';
    /** Specifies whether opportunistic locking is enabled for the SMB file share. Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with th */
    OplocksEnabled?: boolean;
    /** A value that sets the write status of a file share. Set this value to true to set write status to read-only, otherwise set to false. Valid Values: true | false */
    ReadOnly?: boolean;
    /** A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket o */
    RequesterPays?: boolean;
    /** Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see Using Window */
    SMBACLEnabled?: boolean;
    /** A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1, an */
    ValidUserList?: string[];
}
export interface UpdateSMBFileShareVisibilityInput {
    /** The shares on this gateway appear when listing shares. */
    FileSharesVisible: boolean;
    GatewayARN: string;
}
export interface UpdateSMBLocalGroupsInput {
    GatewayARN: string;
    /** A list of Active Directory users and groups that you want to grant special permissions for SMB file shares on the gateway. */
    SMBLocalGroups: SMBLocalGroups;
}
export interface UpdateSMBSecurityStrategyInput {
    GatewayARN: string;
    /** Specifies the type of security strategy. ClientSpecified: If you choose this option, requests are established based on what is negotiated by the client. This option is recommended when you want to max */
    SMBSecurityStrategy: 'ClientSpecified' | 'MandatorySigning' | 'MandatoryEncryption' | 'MandatoryEncryptionNoAes128';
}
/** A JSON object containing one or more of the following fields: UpdateSnapshotScheduleInput$Description UpdateSnapshotScheduleInput$RecurrenceInHours UpdateSnapshotScheduleInput$StartAt UpdateSnapshotSc */
export interface UpdateSnapshotScheduleInput {
    /** Frequency of snapshots. Specify the number of hours between snapshots. */
    RecurrenceInHours: number;
    /** The hour of the day at which the snapshot schedule begins represented as hh, where hh is the hour (0 to 23). The hour of the day is in the time zone of the gateway. */
    StartAt: number;
    /** The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes. */
    VolumeARN: string;
    /** Optional description of the snapshot that overwrites the existing description. */
    Description?: string;
    /** A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the fol */
    Tags?: Tag[];
}
export interface UpdateVTLDeviceTypeInput {
    /** The type of medium changer you want to select. Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402 */
    DeviceType: string;
    /** The Amazon Resource Name (ARN) of the medium changer you want to select. */
    VTLDeviceARN: string;
}
/** Storage Gateway service binding for Step Functions SDK integrations. */
export declare class StorageGateway {
    constructor();
    activateGateway<T>(params: ActivateGatewayInput): Promise<T>;
    addCache<T>(params: AddCacheInput): Promise<T>;
    addTagsToResource<T>(params: AddTagsToResourceInput): Promise<T>;
    addUploadBuffer<T>(params: AddUploadBufferInput): Promise<T>;
    addWorkingStorage<T>(params: AddWorkingStorageInput): Promise<T>;
    assignTapePool<T>(params: AssignTapePoolInput): Promise<T>;
    associateFileSystem<T>(params: AssociateFileSystemInput): Promise<T>;
    attachVolume<T>(params: AttachVolumeInput): Promise<T>;
    cancelArchival<T>(params: CancelArchivalInput): Promise<T>;
    cancelCacheReport<T>(params: CancelCacheReportInput): Promise<T>;
    cancelRetrieval<T>(params: CancelRetrievalInput): Promise<T>;
    createCachediSCSIVolume<T>(params: CreateCachediSCSIVolumeInput): Promise<T>;
    createNFSFileShare<T>(params: CreateNFSFileShareInput): Promise<T>;
    createSMBFileShare<T>(params: CreateSMBFileShareInput): Promise<T>;
    createSnapshot<T>(params: CreateSnapshotInput): Promise<T>;
    createSnapshotFromVolumeRecoveryPoint<T>(params: CreateSnapshotFromVolumeRecoveryPointInput): Promise<T>;
    createStorediSCSIVolume<T>(params: CreateStorediSCSIVolumeInput): Promise<T>;
    createTapePool<T>(params: CreateTapePoolInput): Promise<T>;
    createTapes<T>(params: CreateTapesInput): Promise<T>;
    createTapeWithBarcode<T>(params: CreateTapeWithBarcodeInput): Promise<T>;
    deleteAutomaticTapeCreationPolicy<T>(params: DeleteAutomaticTapeCreationPolicyInput): Promise<T>;
    deleteBandwidthRateLimit<T>(params: DeleteBandwidthRateLimitInput): Promise<T>;
    deleteCacheReport<T>(params: DeleteCacheReportInput): Promise<T>;
    deleteChapCredentials<T>(params: DeleteChapCredentialsInput): Promise<T>;
    deleteFileShare<T>(params: DeleteFileShareInput): Promise<T>;
    deleteGateway<T>(params: DeleteGatewayInput): Promise<T>;
    deleteSnapshotSchedule<T>(params: DeleteSnapshotScheduleInput): Promise<T>;
    deleteTape<T>(params: DeleteTapeInput): Promise<T>;
    deleteTapeArchive<T>(params: DeleteTapeArchiveInput): Promise<T>;
    deleteTapePool<T>(params: DeleteTapePoolInput): Promise<T>;
    deleteVolume<T>(params: DeleteVolumeInput): Promise<T>;
    describeAvailabilityMonitorTest<T>(params: DescribeAvailabilityMonitorTestInput): Promise<T>;
    describeBandwidthRateLimit<T>(params: DescribeBandwidthRateLimitInput): Promise<T>;
    describeBandwidthRateLimitSchedule<T>(params: DescribeBandwidthRateLimitScheduleInput): Promise<T>;
    describeCache<T>(params: DescribeCacheInput): Promise<T>;
    describeCachediSCSIVolumes<T>(params: DescribeCachediSCSIVolumesInput): Promise<T>;
    describeCacheReport<T>(params: DescribeCacheReportInput): Promise<T>;
    describeChapCredentials<T>(params: DescribeChapCredentialsInput): Promise<T>;
    describeFileSystemAssociations<T>(params: DescribeFileSystemAssociationsInput): Promise<T>;
    describeGatewayInformation<T>(params: DescribeGatewayInformationInput): Promise<T>;
    describeMaintenanceStartTime<T>(params: DescribeMaintenanceStartTimeInput): Promise<T>;
    describeNFSFileShares<T>(params: DescribeNFSFileSharesInput): Promise<T>;
    describeSMBFileShares<T>(params: DescribeSMBFileSharesInput): Promise<T>;
    describeSMBSettings<T>(params: DescribeSMBSettingsInput): Promise<T>;
    describeSnapshotSchedule<T>(params: DescribeSnapshotScheduleInput): Promise<T>;
    describeStorediSCSIVolumes<T>(params: DescribeStorediSCSIVolumesInput): Promise<T>;
    describeTapeArchives<T>(params: DescribeTapeArchivesInput): Promise<T>;
    describeTapeRecoveryPoints<T>(params: DescribeTapeRecoveryPointsInput): Promise<T>;
    describeTapes<T>(params: DescribeTapesInput): Promise<T>;
    describeUploadBuffer<T>(params: DescribeUploadBufferInput): Promise<T>;
    describeVTLDevices<T>(params: DescribeVTLDevicesInput): Promise<T>;
    describeWorkingStorage<T>(params: DescribeWorkingStorageInput): Promise<T>;
    detachVolume<T>(params: DetachVolumeInput): Promise<T>;
    disableGateway<T>(params: DisableGatewayInput): Promise<T>;
    disassociateFileSystem<T>(params: DisassociateFileSystemInput): Promise<T>;
    evictFilesFailingUpload<T>(params: EvictFilesFailingUploadInput): Promise<T>;
    joinDomain<T>(params: JoinDomainInput): Promise<T>;
    listAutomaticTapeCreationPolicies<T>(params: ListAutomaticTapeCreationPoliciesInput): Promise<T>;
    listCacheReports<T>(params: ListCacheReportsInput): Promise<T>;
    listFileShares<T>(params: ListFileSharesInput): Promise<T>;
    listFileSystemAssociations<T>(params: ListFileSystemAssociationsInput): Promise<T>;
    listGateways<T>(params: ListGatewaysInput): Promise<T>;
    listLocalDisks<T>(params: ListLocalDisksInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTapePools<T>(params: ListTapePoolsInput): Promise<T>;
    listTapes<T>(params: ListTapesInput): Promise<T>;
    listVolumeInitiators<T>(params: ListVolumeInitiatorsInput): Promise<T>;
    listVolumeRecoveryPoints<T>(params: ListVolumeRecoveryPointsInput): Promise<T>;
    listVolumes<T>(params: ListVolumesInput): Promise<T>;
    notifyWhenUploaded<T>(params: NotifyWhenUploadedInput): Promise<T>;
    refreshCache<T>(params: RefreshCacheInput): Promise<T>;
    removeTagsFromResource<T>(params: RemoveTagsFromResourceInput): Promise<T>;
    resetCache<T>(params: ResetCacheInput): Promise<T>;
    retrieveTapeArchive<T>(params: RetrieveTapeArchiveInput): Promise<T>;
    retrieveTapeRecoveryPoint<T>(params: RetrieveTapeRecoveryPointInput): Promise<T>;
    setLocalConsolePassword<T>(params: SetLocalConsolePasswordInput): Promise<T>;
    setSMBGuestPassword<T>(params: SetSMBGuestPasswordInput): Promise<T>;
    shutdownGateway<T>(params: ShutdownGatewayInput): Promise<T>;
    startAvailabilityMonitorTest<T>(params: StartAvailabilityMonitorTestInput): Promise<T>;
    startCacheReport<T>(params: StartCacheReportInput): Promise<T>;
    startGateway<T>(params: StartGatewayInput): Promise<T>;
    updateAutomaticTapeCreationPolicy<T>(params: UpdateAutomaticTapeCreationPolicyInput): Promise<T>;
    updateBandwidthRateLimit<T>(params: UpdateBandwidthRateLimitInput): Promise<T>;
    updateBandwidthRateLimitSchedule<T>(params: UpdateBandwidthRateLimitScheduleInput): Promise<T>;
    updateChapCredentials<T>(params: UpdateChapCredentialsInput): Promise<T>;
    updateFileSystemAssociation<T>(params: UpdateFileSystemAssociationInput): Promise<T>;
    updateGatewayInformation<T>(params: UpdateGatewayInformationInput): Promise<T>;
    updateGatewaySoftwareNow<T>(params: UpdateGatewaySoftwareNowInput): Promise<T>;
    updateMaintenanceStartTime<T>(params: UpdateMaintenanceStartTimeInput): Promise<T>;
    updateNFSFileShare<T>(params: UpdateNFSFileShareInput): Promise<T>;
    updateSMBFileShare<T>(params: UpdateSMBFileShareInput): Promise<T>;
    updateSMBFileShareVisibility<T>(params: UpdateSMBFileShareVisibilityInput): Promise<T>;
    updateSMBLocalGroups<T>(params: UpdateSMBLocalGroupsInput): Promise<T>;
    updateSMBSecurityStrategy<T>(params: UpdateSMBSecurityStrategyInput): Promise<T>;
    updateSnapshotSchedule<T>(params: UpdateSnapshotScheduleInput): Promise<T>;
    updateVTLDeviceType<T>(params: UpdateVTLDeviceTypeInput): Promise<T>;
}
//# sourceMappingURL=StorageGateway.d.ts.map