@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Elastic File System
@version 2015-02-01
@auth AWS SigV4
@endpoints 31
@hint download_for_search
@toc 2015-02-01(31)

@endpoint POST /2015-02-01/access-points
@required {ClientToken: str, FileSystemId: str}
@optional {Tags: [Tag], PosixUser: PosixUser, RootDirectory: RootDirectory}
@returns(200) {ClientToken: str?, Name: str?, Tags: [Tag]?, AccessPointId: str?, AccessPointArn: str?, FileSystemId: str?, PosixUser: PosixUser?{Uid: int(i64), Gid: int(i64), SecondaryGids: [int(i64)]?}, RootDirectory: RootDirectory?{Path: str?, CreationInfo: CreationInfo?{OwnerUid: int(i64), OwnerGid: int(i64), Permissions: str}}, OwnerId: str?, LifeCycleState: str?}

@endpoint POST /2015-02-01/file-systems
@required {CreationToken: str}
@optional {PerformanceMode: str, Encrypted: bool, KmsKeyId: str, ThroughputMode: str, ProvisionedThroughputInMibps: num(f64), AvailabilityZoneName: str, Backup: bool, Tags: [Tag]}
@returns(200) {OwnerId: str, CreationToken: str, FileSystemId: str, FileSystemArn: str?, CreationTime: str(timestamp), LifeCycleState: str, Name: str?, NumberOfMountTargets: int, SizeInBytes: FileSystemSize{Value: int(i64), Timestamp: str(timestamp)?, ValueInIA: int(i64)?, ValueInStandard: int(i64)?, ValueInArchive: int(i64)?}, PerformanceMode: str, Encrypted: bool?, KmsKeyId: str?, ThroughputMode: str?, ProvisionedThroughputInMibps: num(f64)?, AvailabilityZoneName: str?, AvailabilityZoneId: str?, Tags: [Tag], FileSystemProtection: FileSystemProtectionDescription?{ReplicationOverwriteProtection: str?}}

@endpoint POST /2015-02-01/mount-targets
@required {FileSystemId: str, SubnetId: str}
@optional {IpAddress: str, SecurityGroups: [str]}
@returns(200) {OwnerId: str?, MountTargetId: str, FileSystemId: str, SubnetId: str, LifeCycleState: str, IpAddress: str?, NetworkInterfaceId: str?, AvailabilityZoneId: str?, AvailabilityZoneName: str?, VpcId: str?}

@endpoint POST /2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration
@required {SourceFileSystemId: str, Destinations: [DestinationToCreate]}
@returns(200) {SourceFileSystemId: str, SourceFileSystemRegion: str, SourceFileSystemArn: str, OriginalSourceFileSystemArn: str, CreationTime: str(timestamp), Destinations: [Destination]}

@endpoint POST /2015-02-01/create-tags/{FileSystemId}
@required {FileSystemId: str, Tags: [Tag]}

@endpoint DELETE /2015-02-01/access-points/{AccessPointId}
@required {AccessPointId: str}

@endpoint DELETE /2015-02-01/file-systems/{FileSystemId}
@required {FileSystemId: str}

@endpoint DELETE /2015-02-01/file-systems/{FileSystemId}/policy
@required {FileSystemId: str}

@endpoint DELETE /2015-02-01/mount-targets/{MountTargetId}
@required {MountTargetId: str}

@endpoint DELETE /2015-02-01/file-systems/{SourceFileSystemId}/replication-configuration
@required {SourceFileSystemId: str}

@endpoint POST /2015-02-01/delete-tags/{FileSystemId}
@required {FileSystemId: str, TagKeys: [str]}

@endpoint GET /2015-02-01/access-points
@optional {MaxResults: int, NextToken: str, AccessPointId: str, FileSystemId: str}
@returns(200) {AccessPoints: [AccessPointDescription]?, NextToken: str?}

@endpoint GET /2015-02-01/account-preferences
@optional {NextToken: str, MaxResults: int}
@returns(200) {ResourceIdPreference: ResourceIdPreference?{ResourceIdType: str?, Resources: [str]?}, NextToken: str?}

@endpoint GET /2015-02-01/file-systems/{FileSystemId}/backup-policy
@required {FileSystemId: str}
@returns(200) {BackupPolicy: BackupPolicy?{Status: str}}

@endpoint GET /2015-02-01/file-systems/{FileSystemId}/policy
@required {FileSystemId: str}
@returns(200) {FileSystemId: str?, Policy: str?}

@endpoint GET /2015-02-01/file-systems
@optional {MaxItems: int, Marker: str, CreationToken: str, FileSystemId: str}
@returns(200) {Marker: str?, FileSystems: [FileSystemDescription]?, NextMarker: str?}

@endpoint GET /2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration
@required {FileSystemId: str}
@returns(200) {LifecyclePolicies: [LifecyclePolicy]?}

@endpoint GET /2015-02-01/mount-targets/{MountTargetId}/security-groups
@required {MountTargetId: str}
@returns(200) {SecurityGroups: [str]}

@endpoint GET /2015-02-01/mount-targets
@optional {MaxItems: int, Marker: str, FileSystemId: str, MountTargetId: str, AccessPointId: str}
@returns(200) {Marker: str?, MountTargets: [MountTargetDescription]?, NextMarker: str?}

@endpoint GET /2015-02-01/file-systems/replication-configurations
@optional {FileSystemId: str, NextToken: str, MaxResults: int}
@returns(200) {Replications: [ReplicationConfigurationDescription]?, NextToken: str?}

@endpoint GET /2015-02-01/tags/{FileSystemId}/
@required {FileSystemId: str}
@optional {MaxItems: int, Marker: str}
@returns(200) {Marker: str?, Tags: [Tag], NextMarker: str?}

@endpoint GET /2015-02-01/resource-tags/{ResourceId}
@required {ResourceId: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Tags: [Tag]?, NextToken: str?}

@endpoint PUT /2015-02-01/mount-targets/{MountTargetId}/security-groups
@required {MountTargetId: str}
@optional {SecurityGroups: [str]}

@endpoint PUT /2015-02-01/account-preferences
@required {ResourceIdType: str}
@returns(200) {ResourceIdPreference: ResourceIdPreference?{ResourceIdType: str?, Resources: [str]?}}

@endpoint PUT /2015-02-01/file-systems/{FileSystemId}/backup-policy
@required {FileSystemId: str, BackupPolicy: BackupPolicy}
@returns(200) {BackupPolicy: BackupPolicy?{Status: str}}

@endpoint PUT /2015-02-01/file-systems/{FileSystemId}/policy
@required {FileSystemId: str, Policy: str}
@optional {BypassPolicyLockoutSafetyCheck: bool}
@returns(200) {FileSystemId: str?, Policy: str?}

@endpoint PUT /2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration
@required {FileSystemId: str, LifecyclePolicies: [LifecyclePolicy]}
@returns(200) {LifecyclePolicies: [LifecyclePolicy]?}

@endpoint POST /2015-02-01/resource-tags/{ResourceId}
@required {ResourceId: str, Tags: [Tag]}

@endpoint DELETE /2015-02-01/resource-tags/{ResourceId}
@required {ResourceId: str, tagKeys: [str]}

@endpoint PUT /2015-02-01/file-systems/{FileSystemId}
@required {FileSystemId: str}
@optional {ThroughputMode: str, ProvisionedThroughputInMibps: num(f64)}
@returns(200) {OwnerId: str, CreationToken: str, FileSystemId: str, FileSystemArn: str?, CreationTime: str(timestamp), LifeCycleState: str, Name: str?, NumberOfMountTargets: int, SizeInBytes: FileSystemSize{Value: int(i64), Timestamp: str(timestamp)?, ValueInIA: int(i64)?, ValueInStandard: int(i64)?, ValueInArchive: int(i64)?}, PerformanceMode: str, Encrypted: bool?, KmsKeyId: str?, ThroughputMode: str?, ProvisionedThroughputInMibps: num(f64)?, AvailabilityZoneName: str?, AvailabilityZoneId: str?, Tags: [Tag], FileSystemProtection: FileSystemProtectionDescription?{ReplicationOverwriteProtection: str?}}

@endpoint PUT /2015-02-01/file-systems/{FileSystemId}/protection
@required {FileSystemId: str}
@optional {ReplicationOverwriteProtection: str}
@returns(200) {ReplicationOverwriteProtection: str?}

@end
