export interface Tag {
    /** The tag key (String). The key can't start with aws:. */
    Key: string;
    /** The value of the tag key. */
    Value: string;
}
export interface PosixUser {
    /** The POSIX user ID used for all file system operations using this access point. */
    Uid: number;
    /** The POSIX group ID used for all file system operations using this access point. */
    Gid: number;
    /** Secondary POSIX group IDs used for all file system operations using this access point. */
    SecondaryGids?: number[];
}
export interface CreationInfo {
    /** Specifies the POSIX user ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). */
    OwnerUid: number;
    /** Specifies the POSIX group ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). */
    OwnerGid: number;
    /** Specifies the POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits. */
    Permissions: string;
}
export interface RootDirectory {
    /** Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specifi */
    Path?: string;
    /** (Optional) Specifies the POSIX IDs and permissions to apply to the access point's RootDirectory. If the RootDirectory > Path specified does not exist, EFS creates the root directory using the Creation */
    CreationInfo?: CreationInfo;
}
export interface DestinationToCreate {
    /** To create a file system that uses Regional storage, specify the Amazon Web Services Region in which to create the destination file system. The Region must be enabled for the Amazon Web Services accoun */
    Region?: string;
    /** To create a file system that uses One Zone storage, specify the name of the Availability Zone in which to create the destination file system. */
    AvailabilityZoneName?: string;
    /** Specify the Key Management Service (KMS) key that you want to use to encrypt the destination file system. If you do not specify a KMS key, Amazon EFS uses your default KMS key for Amazon EFS, /aws/ela */
    KmsKeyId?: string;
    /** The ID or ARN of the file system to use for the destination. For cross-account replication, this must be an ARN. The file system's replication overwrite replication must be disabled. If no ID or ARN i */
    FileSystemId?: string;
    /** Amazon Resource Name (ARN) of the IAM role in the source account that allows Amazon EFS to perform replication on its behalf. This is optional for same-account replication and required for cross-accou */
    RoleArn?: string;
}
export interface BackupPolicy {
    /** Describes the status of the file system's backup policy. ENABLED – EFS is automatically backing up the file system. ENABLING – EFS is turning on automatic backups for the file system. DISABLED – Autom */
    Status: 'ENABLED' | 'ENABLING' | 'DISABLED' | 'DISABLING';
}
export interface LifecyclePolicy {
    /** The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Infrequent Access (IA) storage. Metadata operations such as listing the conte */
    TransitionToIA?: 'AFTER_7_DAYS' | 'AFTER_14_DAYS' | 'AFTER_30_DAYS' | 'AFTER_60_DAYS' | 'AFTER_90_DAYS' | 'AFTER_1_DAY' | 'AFTER_180_DAYS' | 'AFTER_270_DAYS' | 'AFTER_365_DAYS';
    /** Whether to move files back to primary (Standard) storage after they are accessed in IA or Archive storage. Metadata operations such as listing the contents of a directory don't count as file access ev */
    TransitionToPrimaryStorageClass?: 'AFTER_1_ACCESS';
    /** The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Archive storage. Metadata operations such as listing the contents of a direct */
    TransitionToArchive?: 'AFTER_1_DAY' | 'AFTER_7_DAYS' | 'AFTER_14_DAYS' | 'AFTER_30_DAYS' | 'AFTER_60_DAYS' | 'AFTER_90_DAYS' | 'AFTER_180_DAYS' | 'AFTER_270_DAYS' | 'AFTER_365_DAYS';
}
export interface CreateAccessPointInput {
    /** A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation. */
    ClientToken: string;
    /** The ID of the EFS file system that the access point provides access to. */
    FileSystemId: string;
    /** The operating system user and group applied to all file system requests made using the access point. */
    PosixUser?: PosixUser;
    /** Specifies the directory on the EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can onl */
    RootDirectory?: RootDirectory;
    /** Creates tags associated with the access point. Each tag is a key-value pair, each key must be unique. For more information, see Tagging Amazon Web Services resources in the Amazon Web Services General */
    Tags?: Tag[];
}
export interface CreateFileSystemInput {
    /** A string of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation. */
    CreationToken: string;
    /** For One Zone file systems, specify the Amazon Web Services Availability Zone in which to create the file system. Use the format us-east-1a to specify the Availability Zone. For more information about  */
    AvailabilityZoneName?: string;
    /** Specifies whether automatic backups are enabled on the file system that you are creating. Set the value to true to enable automatic backups. If you are creating a One Zone file system, automatic backu */
    Backup?: boolean;
    /** A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying an existing Key Management Service key (KMS key). If you don' */
    Encrypted?: boolean;
    /** The ID of the KMS key that you want to use to protect the encrypted file system. This parameter is required only if you want to use a non-default KMS key. If this parameter is not specified, the defau */
    KmsKeyId?: string;
    /** The performance mode of the file system. We recommend generalPurpose performance mode for all file systems. File systems using the maxIO performance mode can scale to higher levels of aggregate throug */
    PerformanceMode?: 'generalPurpose' | 'maxIO';
    /** The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ThroughputMode is set to provisioned. Valid values are 1-3414 M */
    ProvisionedThroughputInMibps?: number;
    /** Use to create one or more tags associated with the file system. Each tag is a user-defined key-value pair. Name your file system on creation by including a "Key":"Name","Value":"{value}" key-value pai */
    Tags?: Tag[];
    /** Specifies the throughput mode for the file system. The mode can be bursting, provisioned, or elastic. If you set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughputInMib */
    ThroughputMode?: 'bursting' | 'provisioned' | 'elastic';
}
export interface CreateMountTargetInput {
    /** The ID of the file system for which to create the mount target. */
    FileSystemId: string;
    /** The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone. */
    SubnetId: string;
    /** If the IP address type for the mount target is IPv4, then specify the IPv4 address within the address range of the specified subnet. */
    IpAddress?: string;
    /** Specify the type of IP address of the mount target you are creating. Options are IPv4, dual stack, or IPv6. If you don’t specify an IpAddressType, then IPv4 is used. IPV4_ONLY – Create mount target wi */
    IpAddressType?: 'IPV4_ONLY' | 'IPV6_ONLY' | 'DUAL_STACK';
    /** If the IP address type for the mount target is IPv6, then specify the IPv6 address within the address range of the specified subnet. */
    Ipv6Address?: string;
    /** VPC security group IDs, of the form sg-xxxxxxxx. These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see Amazo */
    SecurityGroups?: string[];
}
export interface CreateReplicationConfigurationInput {
    /** An array of destination configuration objects. Only one destination configuration object is supported. */
    Destinations: DestinationToCreate[];
    /** Specifies the Amazon EFS file system that you want to replicate. This file system cannot already be a source or destination file system in another replication configuration. */
    SourceFileSystemId: string;
}
export interface CreateTagsInput {
    /** The ID of the file system whose tags you want to modify (String). This operation modifies the tags only, not the file system. */
    FileSystemId: string;
    /** An array of Tag objects to add. Each Tag object is a key-value pair. */
    Tags: Tag[];
}
export interface DeleteAccessPointInput {
    /** The ID of the access point that you want to delete. */
    AccessPointId: string;
}
export interface DeleteFileSystemInput {
    /** The ID of the file system you want to delete. */
    FileSystemId: string;
}
export interface DeleteFileSystemPolicyInput {
    /** Specifies the EFS file system for which to delete the FileSystemPolicy. */
    FileSystemId: string;
}
export interface DeleteMountTargetInput {
    /** The ID of the mount target to delete (String). */
    MountTargetId: string;
}
export interface DeleteReplicationConfigurationInput {
    /** The ID of the source file system in the replication configuration. */
    SourceFileSystemId: string;
    /** When replicating across Amazon Web Services accounts or across Amazon Web Services Regions, Amazon EFS deletes the replication configuration from both the source and destination account or Region (ALL */
    DeletionMode?: 'ALL_CONFIGURATIONS' | 'LOCAL_CONFIGURATION_ONLY';
}
export interface DeleteTagsInput {
    /** The ID of the file system whose tags you want to delete (String). */
    FileSystemId: string;
    /** A list of tag keys to delete. */
    TagKeys: string[];
}
export interface DescribeAccessPointsInput {
    /** (Optional) Specifies an EFS access point to describe in the response; mutually exclusive with FileSystemId. */
    AccessPointId?: string;
    /** (Optional) If you provide a FileSystemId, EFS returns all access points for that file system; mutually exclusive with AccessPointId. */
    FileSystemId?: string;
    /** (Optional) When retrieving all access points for a file system, you can optionally specify the MaxItems parameter to limit the number of objects returned in a response. The default value is 100. */
    MaxResults?: number;
    /** NextToken is present if the response is paginated. You can use NextMarker in the subsequent request to fetch the next page of access point descriptions. */
    NextToken?: string;
}
export interface DescribeAccountPreferencesInput {
    /** (Optional) When retrieving account preferences, you can optionally specify the MaxItems parameter to limit the number of objects returned in a response. The default value is 100. */
    MaxResults?: number;
    /** (Optional) You can use NextToken in a subsequent request to fetch the next page of Amazon Web Services account preferences if the response payload was paginated. */
    NextToken?: string;
}
export interface DescribeBackupPolicyInput {
    /** Specifies which EFS file system for which to retrieve the BackupPolicy. */
    FileSystemId: string;
}
export interface DescribeFileSystemPolicyInput {
    /** Specifies which EFS file system to retrieve the FileSystemPolicy for. */
    FileSystemId: string;
}
export interface DescribeFileSystemsInput {
    /** (Optional) Restricts the list to the file system with this creation token (String). You specify a creation token when you create an Amazon EFS file system. */
    CreationToken?: string;
    /** (Optional) ID of the file system whose description you want to retrieve (String). */
    FileSystemId?: string;
    /** (Optional) Opaque pagination token returned from a previous DescribeFileSystems operation (String). If present, specifies to continue the list from where the returning call had left off. */
    Marker?: string;
    /** (Optional) Specifies the maximum number of file systems to return in the response (integer). This number is automatically set to 100. The response is paginated at 100 per page if you have more than 10 */
    MaxItems?: number;
}
export interface DescribeLifecycleConfigurationInput {
    /** The ID of the file system whose LifecycleConfiguration object you want to retrieve (String). */
    FileSystemId: string;
}
export interface DescribeMountTargetsInput {
    /** (Optional) The ID of the access point whose mount targets that you want to list. It must be included in your request if a FileSystemId or MountTargetId is not included in your request. Accepts either  */
    AccessPointId?: string;
    /** (Optional) ID of the file system whose mount targets you want to list (String). It must be included in your request if an AccessPointId or MountTargetId is not included. Accepts either a file system I */
    FileSystemId?: string;
    /** (Optional) Opaque pagination token returned from a previous DescribeMountTargets operation (String). If present, it specifies to continue the list from where the previous returning call left off. */
    Marker?: string;
    /** (Optional) Maximum number of mount targets to return in the response. Currently, this number is automatically set to 10, and other values are ignored. The response is paginated at 100 per page if you  */
    MaxItems?: number;
    /** (Optional) ID of the mount target that you want to have described (String). It must be included in your request if FileSystemId is not included. Accepts either a mount target ID or ARN as input. */
    MountTargetId?: string;
}
export interface DescribeMountTargetSecurityGroupsInput {
    /** The ID of the mount target whose security groups you want to retrieve. */
    MountTargetId: string;
}
export interface DescribeReplicationConfigurationsInput {
    /** You can retrieve the replication configuration for a specific file system by providing its file system ID. For cross-account,cross-region replication, an account can only describe the replication conf */
    FileSystemId?: string;
    /** (Optional) To limit the number of objects returned in a response, you can specify the MaxItems parameter. The default value is 100. */
    MaxResults?: number;
    /** NextToken is present if the response is paginated. You can use NextToken in a subsequent request to fetch the next page of output. */
    NextToken?: string;
}
export interface DescribeTagsInput {
    /** The ID of the file system whose tag set you want to retrieve. */
    FileSystemId: string;
    /** (Optional) An opaque pagination token returned from a previous DescribeTags operation (String). If present, it specifies to continue the list from where the previous call left off. */
    Marker?: string;
    /** (Optional) The maximum number of file system tags to return in the response. Currently, this number is automatically set to 100, and other values are ignored. The response is paginated at 100 per page */
    MaxItems?: number;
}
export interface ListTagsForResourceInput {
    /** Specifies the EFS resource you want to retrieve tags for. You can retrieve tags for EFS file systems and access points using this API endpoint. */
    ResourceId: string;
    /** (Optional) Specifies the maximum number of tag objects to return in the response. The default value is 100. */
    MaxResults?: number;
    /** (Optional) You can use NextToken in a subsequent request to fetch the next page of access point descriptions if the response payload was paginated. */
    NextToken?: string;
}
export interface ModifyMountTargetSecurityGroupsInput {
    /** The ID of the mount target whose security groups you want to modify. */
    MountTargetId: string;
    /** An array of VPC security group IDs. */
    SecurityGroups?: string[];
}
export interface PutAccountPreferencesInput {
    /** Specifies the EFS resource ID preference to set for the user's Amazon Web Services account, in the current Amazon Web Services Region, either LONG_ID (17 characters), or SHORT_ID (8 characters). Start */
    ResourceIdType: 'LONG_ID' | 'SHORT_ID';
}
export interface PutBackupPolicyInput {
    /** The backup policy included in the PutBackupPolicy request. */
    BackupPolicy: BackupPolicy;
    /** Specifies which EFS file system to update the backup policy for. */
    FileSystemId: string;
}
export interface PutFileSystemPolicyInput {
    /** The ID of the EFS file system that you want to create or update the FileSystemPolicy for. */
    FileSystemId: string;
    /** The FileSystemPolicy that you're creating. Accepts a JSON formatted policy definition. EFS file system policies have a 20,000 character limit. To find out more about the elements that make up a file s */
    Policy: string;
    /** (Optional) A boolean that specifies whether or not to bypass the FileSystemPolicy lockout safety check. The lockout safety check determines whether the policy in the request will lock out, or prevent, */
    BypassPolicyLockoutSafetyCheck?: boolean;
}
export interface PutLifecycleConfigurationInput {
    /** The ID of the file system for which you are creating the LifecycleConfiguration object (String). */
    FileSystemId: string;
    /** An array of LifecyclePolicy objects that define the file system's LifecycleConfiguration object. A LifecycleConfiguration object informs lifecycle management of the following: TransitionToIA – When to */
    LifecyclePolicies: LifecyclePolicy[];
}
export interface TagResourceInput {
    /** The ID specifying the EFS resource that you want to create a tag for. */
    ResourceId: string;
    /** An array of Tag objects to add. Each Tag object is a key-value pair. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** Specifies the EFS resource that you want to remove tags from. */
    ResourceId: string;
    /** The keys of the key-value tag pairs that you want to remove from the specified EFS resource. */
    TagKeys: string[];
}
export interface UpdateFileSystemInput {
    /** The ID of the file system that you want to update. */
    FileSystemId: string;
    /** (Optional) The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ThroughputMode is set to provisioned. Valid values a */
    ProvisionedThroughputInMibps?: number;
    /** (Optional) Updates the file system's throughput mode. If you're not updating your throughput mode, you don't need to provide this value in your request. If you are changing the ThroughputMode to provi */
    ThroughputMode?: 'bursting' | 'provisioned' | 'elastic';
}
export interface UpdateFileSystemProtectionInput {
    /** The ID of the file system to update. */
    FileSystemId: string;
    /** The status of the file system's replication overwrite protection. ENABLED – The file system cannot be used as the destination file system in a replication configuration. The file system is writeable.  */
    ReplicationOverwriteProtection?: 'ENABLED' | 'DISABLED' | 'REPLICATING';
}
/** EFS service binding for Step Functions SDK integrations. */
export declare class EFS {
    constructor();
    createAccessPoint<T>(params: CreateAccessPointInput): Promise<T>;
    createFileSystem<T>(params: CreateFileSystemInput): Promise<T>;
    createMountTarget<T>(params: CreateMountTargetInput): Promise<T>;
    createReplicationConfiguration<T>(params: CreateReplicationConfigurationInput): Promise<T>;
    createTags<T>(params: CreateTagsInput): Promise<T>;
    deleteAccessPoint<T>(params: DeleteAccessPointInput): Promise<T>;
    deleteFileSystem<T>(params: DeleteFileSystemInput): Promise<T>;
    deleteFileSystemPolicy<T>(params: DeleteFileSystemPolicyInput): Promise<T>;
    deleteMountTarget<T>(params: DeleteMountTargetInput): Promise<T>;
    deleteReplicationConfiguration<T>(params: DeleteReplicationConfigurationInput): Promise<T>;
    deleteTags<T>(params: DeleteTagsInput): Promise<T>;
    describeAccessPoints<T>(params: DescribeAccessPointsInput): Promise<T>;
    describeAccountPreferences<T>(params: DescribeAccountPreferencesInput): Promise<T>;
    describeBackupPolicy<T>(params: DescribeBackupPolicyInput): Promise<T>;
    describeFileSystemPolicy<T>(params: DescribeFileSystemPolicyInput): Promise<T>;
    describeFileSystems<T>(params: DescribeFileSystemsInput): Promise<T>;
    describeLifecycleConfiguration<T>(params: DescribeLifecycleConfigurationInput): Promise<T>;
    describeMountTargets<T>(params: DescribeMountTargetsInput): Promise<T>;
    describeMountTargetSecurityGroups<T>(params: DescribeMountTargetSecurityGroupsInput): Promise<T>;
    describeReplicationConfigurations<T>(params: DescribeReplicationConfigurationsInput): Promise<T>;
    describeTags<T>(params: DescribeTagsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    modifyMountTargetSecurityGroups<T>(params: ModifyMountTargetSecurityGroupsInput): Promise<T>;
    putAccountPreferences<T>(params: PutAccountPreferencesInput): Promise<T>;
    putBackupPolicy<T>(params: PutBackupPolicyInput): Promise<T>;
    putFileSystemPolicy<T>(params: PutFileSystemPolicyInput): Promise<T>;
    putLifecycleConfiguration<T>(params: PutLifecycleConfigurationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateFileSystem<T>(params: UpdateFileSystemInput): Promise<T>;
    updateFileSystemProtection<T>(params: UpdateFileSystemProtectionInput): Promise<T>;
}
//# sourceMappingURL=EFS.d.ts.map