@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Storage Gateway
@version 2013-06-30
@auth AWS SigV4
@endpoints 90
@hint download_for_search
@toc root(90)

@endpoint POST /
@required {ActivationKey: str, GatewayName: str, GatewayTimezone: str, GatewayRegion: str}
@optional {GatewayType: str, TapeDriveType: str, MediumChangerType: str, Tags: [Tag]}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, DiskIds: [str]}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {ResourceARN: str, Tags: [Tag]}
@returns(200) {ResourceARN: str?}

@endpoint POST /
@required {GatewayARN: str, DiskIds: [str]}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, DiskIds: [str]}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {TapeARN: str, PoolId: str}
@optional {BypassGovernanceRetention: bool}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {UserName: str, Password: str, ClientToken: str, GatewayARN: str, LocationARN: str}
@optional {Tags: [Tag], AuditDestinationARN: str, CacheAttributes: CacheAttributes, EndpointNetworkConfiguration: EndpointNetworkConfiguration}
@returns(200) {FileSystemAssociationARN: str?}

@endpoint POST /
@required {GatewayARN: str, VolumeARN: str, NetworkInterfaceId: str}
@optional {TargetName: str, DiskId: str}
@returns(200) {VolumeARN: str?, TargetARN: str?}

@endpoint POST /
@required {GatewayARN: str, TapeARN: str}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {GatewayARN: str, TapeARN: str}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {GatewayARN: str, VolumeSizeInBytes: int(i64), TargetName: str, NetworkInterfaceId: str, ClientToken: str}
@optional {SnapshotId: str, SourceVolumeARN: str, KMSEncrypted: bool, KMSKey: str, Tags: [Tag]}
@returns(200) {VolumeARN: str?, TargetARN: str?}

@endpoint POST /
@required {ClientToken: str, GatewayARN: str, Role: str, LocationARN: str}
@optional {NFSFileShareDefaults: NFSFileShareDefaults, KMSEncrypted: bool, KMSKey: str, DefaultStorageClass: str, ObjectACL: str, ClientList: [str], Squash: str, ReadOnly: bool, GuessMIMETypeEnabled: bool, RequesterPays: bool, Tags: [Tag], FileShareName: str, CacheAttributes: CacheAttributes, NotificationPolicy: str, VPCEndpointDNSName: str, BucketRegion: str, AuditDestinationARN: str}
@returns(200) {FileShareARN: str?}

@endpoint POST /
@required {ClientToken: str, GatewayARN: str, Role: str, LocationARN: str}
@optional {KMSEncrypted: bool, KMSKey: str, DefaultStorageClass: str, ObjectACL: str, ReadOnly: bool, GuessMIMETypeEnabled: bool, RequesterPays: bool, SMBACLEnabled: bool, AccessBasedEnumeration: bool, AdminUserList: [str], ValidUserList: [str], InvalidUserList: [str], AuditDestinationARN: str, Authentication: str, CaseSensitivity: str, Tags: [Tag], FileShareName: str, CacheAttributes: CacheAttributes, NotificationPolicy: str, VPCEndpointDNSName: str, BucketRegion: str, OplocksEnabled: bool}
@returns(200) {FileShareARN: str?}

@endpoint POST /
@required {VolumeARN: str, SnapshotDescription: str}
@optional {Tags: [Tag]}
@returns(200) {VolumeARN: str?, SnapshotId: str?}

@endpoint POST /
@required {VolumeARN: str, SnapshotDescription: str}
@optional {Tags: [Tag]}
@returns(200) {SnapshotId: str?, VolumeARN: str?, VolumeRecoveryPointTime: str?}

@endpoint POST /
@required {GatewayARN: str, DiskId: str, PreserveExistingData: bool, TargetName: str, NetworkInterfaceId: str}
@optional {SnapshotId: str, KMSEncrypted: bool, KMSKey: str, Tags: [Tag]}
@returns(200) {VolumeARN: str?, VolumeSizeInBytes: int(i64)?, TargetARN: str?}

@endpoint POST /
@required {PoolName: str, StorageClass: str}
@optional {RetentionLockType: str, RetentionLockTimeInDays: int, Tags: [Tag]}
@returns(200) {PoolARN: str?}

@endpoint POST /
@required {GatewayARN: str, TapeSizeInBytes: int(i64), TapeBarcode: str}
@optional {KMSEncrypted: bool, KMSKey: str, PoolId: str, Worm: bool, Tags: [Tag]}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {GatewayARN: str, TapeSizeInBytes: int(i64), ClientToken: str, NumTapesToCreate: int, TapeBarcodePrefix: str}
@optional {KMSEncrypted: bool, KMSKey: str, PoolId: str, Worm: bool, Tags: [Tag]}
@returns(200) {TapeARNs: [str]?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, BandwidthType: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {TargetARN: str, InitiatorName: str}
@returns(200) {TargetARN: str?, InitiatorName: str?}

@endpoint POST /
@required {FileShareARN: str}
@optional {ForceDelete: bool}
@returns(200) {FileShareARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {VolumeARN: str}
@returns(200) {VolumeARN: str?}

@endpoint POST /
@required {GatewayARN: str, TapeARN: str}
@optional {BypassGovernanceRetention: bool}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {TapeARN: str}
@optional {BypassGovernanceRetention: bool}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {PoolARN: str}
@returns(200) {PoolARN: str?}

@endpoint POST /
@required {VolumeARN: str}
@returns(200) {VolumeARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, Status: str?, StartTime: str(timestamp)?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, AverageUploadRateLimitInBitsPerSec: int(i64)?, AverageDownloadRateLimitInBitsPerSec: int(i64)?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, BandwidthRateLimitIntervals: [BandwidthRateLimitInterval]?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, DiskIds: [str]?, CacheAllocatedInBytes: int(i64)?, CacheUsedPercentage: num(f64)?, CacheDirtyPercentage: num(f64)?, CacheHitPercentage: num(f64)?, CacheMissPercentage: num(f64)?}

@endpoint POST /
@required {VolumeARNs: [str]}
@returns(200) {CachediSCSIVolumes: [CachediSCSIVolume]?}

@endpoint POST /
@required {TargetARN: str}
@returns(200) {ChapCredentials: [ChapInfo]?}

@endpoint POST /
@required {FileSystemAssociationARNList: [str]}
@returns(200) {FileSystemAssociationInfoList: [FileSystemAssociationInfo]?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, GatewayId: str?, GatewayName: str?, GatewayTimezone: str?, GatewayState: str?, GatewayNetworkInterfaces: [NetworkInterface]?, GatewayType: str?, NextUpdateAvailabilityDate: str?, LastSoftwareUpdate: str?, Ec2InstanceId: str?, Ec2InstanceRegion: str?, Tags: [Tag]?, VPCEndpoint: str?, CloudWatchLogGroupARN: str?, HostEnvironment: str?, EndpointType: str?, SoftwareUpdatesEndDate: str?, DeprecationDate: str?, GatewayCapacity: str?, SupportedGatewayCapacities: [str]?, HostEnvironmentId: str?, SoftwareVersion: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, HourOfDay: int?, MinuteOfHour: int?, DayOfWeek: int?, DayOfMonth: int?, Timezone: str?, SoftwareUpdatePreferences: SoftwareUpdatePreferences?{AutomaticUpdatePolicy: str?}}

@endpoint POST /
@required {FileShareARNList: [str]}
@returns(200) {NFSFileShareInfoList: [NFSFileShareInfo]?}

@endpoint POST /
@required {FileShareARNList: [str]}
@returns(200) {SMBFileShareInfoList: [SMBFileShareInfo]?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, DomainName: str?, ActiveDirectoryStatus: str?, SMBGuestPasswordSet: bool?, SMBSecurityStrategy: str?, FileSharesVisible: bool?, SMBLocalGroups: SMBLocalGroups?{GatewayAdmins: [str]?}}

@endpoint POST /
@required {VolumeARN: str}
@returns(200) {VolumeARN: str?, StartAt: int?, RecurrenceInHours: int?, Description: str?, Timezone: str?, Tags: [Tag]?}

@endpoint POST /
@required {VolumeARNs: [str]}
@returns(200) {StorediSCSIVolumes: [StorediSCSIVolume]?}

@endpoint POST /
@optional {TapeARNs: [str], Marker: str, Limit: int}
@returns(200) {TapeArchives: [TapeArchive]?, Marker: str?}

@endpoint POST /
@required {GatewayARN: str}
@optional {Marker: str, Limit: int}
@returns(200) {GatewayARN: str?, TapeRecoveryPointInfos: [TapeRecoveryPointInfo]?, Marker: str?}

@endpoint POST /
@required {GatewayARN: str}
@optional {TapeARNs: [str], Marker: str, Limit: int}
@returns(200) {Tapes: [Tape]?, Marker: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, DiskIds: [str]?, UploadBufferUsedInBytes: int(i64)?, UploadBufferAllocatedInBytes: int(i64)?}

@endpoint POST /
@required {GatewayARN: str}
@optional {VTLDeviceARNs: [str], Marker: str, Limit: int}
@returns(200) {GatewayARN: str?, VTLDevices: [VTLDevice]?, Marker: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, DiskIds: [str]?, WorkingStorageUsedInBytes: int(i64)?, WorkingStorageAllocatedInBytes: int(i64)?}

@endpoint POST /
@required {VolumeARN: str}
@optional {ForceDetach: bool}
@returns(200) {VolumeARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {FileSystemAssociationARN: str}
@optional {ForceDelete: bool}
@returns(200) {FileSystemAssociationARN: str?}

@endpoint POST /
@required {GatewayARN: str, DomainName: str, UserName: str, Password: str}
@optional {OrganizationalUnit: str, DomainControllers: [str], TimeoutInSeconds: int}
@returns(200) {GatewayARN: str?, ActiveDirectoryStatus: str?}

@endpoint POST /
@optional {GatewayARN: str}
@returns(200) {AutomaticTapeCreationPolicyInfos: [AutomaticTapeCreationPolicyInfo]?}

@endpoint POST /
@optional {GatewayARN: str, Limit: int, Marker: str}
@returns(200) {Marker: str?, NextMarker: str?, FileShareInfoList: [FileShareInfo]?}

@endpoint POST /
@optional {GatewayARN: str, Limit: int, Marker: str}
@returns(200) {Marker: str?, NextMarker: str?, FileSystemAssociationSummaryList: [FileSystemAssociationSummary]?}

@endpoint POST /
@optional {Marker: str, Limit: int}
@returns(200) {Gateways: [GatewayInfo]?, Marker: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, Disks: [Disk]?}

@endpoint POST /
@required {ResourceARN: str}
@optional {Marker: str, Limit: int}
@returns(200) {ResourceARN: str?, Marker: str?, Tags: [Tag]?}

@endpoint POST /
@optional {PoolARNs: [str], Marker: str, Limit: int}
@returns(200) {PoolInfos: [PoolInfo]?, Marker: str?}

@endpoint POST /
@optional {TapeARNs: [str], Marker: str, Limit: int}
@returns(200) {TapeInfos: [TapeInfo]?, Marker: str?}

@endpoint POST /
@required {VolumeARN: str}
@returns(200) {Initiators: [str]?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?, VolumeRecoveryPointInfos: [VolumeRecoveryPointInfo]?}

@endpoint POST /
@optional {GatewayARN: str, Marker: str, Limit: int}
@returns(200) {GatewayARN: str?, Marker: str?, VolumeInfos: [VolumeInfo]?}

@endpoint POST /
@required {FileShareARN: str}
@returns(200) {FileShareARN: str?, NotificationId: str?}

@endpoint POST /
@required {FileShareARN: str}
@optional {FolderList: [str], Recursive: bool}
@returns(200) {FileShareARN: str?, NotificationId: str?}

@endpoint POST /
@required {ResourceARN: str, TagKeys: [str]}
@returns(200) {ResourceARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {TapeARN: str, GatewayARN: str}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {TapeARN: str, GatewayARN: str}
@returns(200) {TapeARN: str?}

@endpoint POST /
@required {GatewayARN: str, LocalConsolePassword: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, Password: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {AutomaticTapeCreationRules: [AutomaticTapeCreationRule], GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@optional {AverageUploadRateLimitInBitsPerSec: int(i64), AverageDownloadRateLimitInBitsPerSec: int(i64)}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, BandwidthRateLimitIntervals: [BandwidthRateLimitInterval]}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {TargetARN: str, SecretToAuthenticateInitiator: str, InitiatorName: str}
@optional {SecretToAuthenticateTarget: str}
@returns(200) {TargetARN: str?, InitiatorName: str?}

@endpoint POST /
@required {FileSystemAssociationARN: str}
@optional {UserName: str, Password: str, AuditDestinationARN: str, CacheAttributes: CacheAttributes}
@returns(200) {FileSystemAssociationARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@optional {GatewayName: str, GatewayTimezone: str, CloudWatchLogGroupARN: str, GatewayCapacity: str}
@returns(200) {GatewayARN: str?, GatewayName: str?}

@endpoint POST /
@required {GatewayARN: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str}
@optional {HourOfDay: int, MinuteOfHour: int, DayOfWeek: int, DayOfMonth: int, SoftwareUpdatePreferences: SoftwareUpdatePreferences}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {FileShareARN: str}
@optional {KMSEncrypted: bool, KMSKey: str, NFSFileShareDefaults: NFSFileShareDefaults, DefaultStorageClass: str, ObjectACL: str, ClientList: [str], Squash: str, ReadOnly: bool, GuessMIMETypeEnabled: bool, RequesterPays: bool, FileShareName: str, CacheAttributes: CacheAttributes, NotificationPolicy: str, AuditDestinationARN: str}
@returns(200) {FileShareARN: str?}

@endpoint POST /
@required {FileShareARN: str}
@optional {KMSEncrypted: bool, KMSKey: str, DefaultStorageClass: str, ObjectACL: str, ReadOnly: bool, GuessMIMETypeEnabled: bool, RequesterPays: bool, SMBACLEnabled: bool, AccessBasedEnumeration: bool, AdminUserList: [str], ValidUserList: [str], InvalidUserList: [str], AuditDestinationARN: str, CaseSensitivity: str, FileShareName: str, CacheAttributes: CacheAttributes, NotificationPolicy: str, OplocksEnabled: bool}
@returns(200) {FileShareARN: str?}

@endpoint POST /
@required {GatewayARN: str, FileSharesVisible: bool}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, SMBLocalGroups: SMBLocalGroups}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {GatewayARN: str, SMBSecurityStrategy: str}
@returns(200) {GatewayARN: str?}

@endpoint POST /
@required {VolumeARN: str, StartAt: int, RecurrenceInHours: int}
@optional {Description: str, Tags: [Tag]}
@returns(200) {VolumeARN: str?}

@endpoint POST /
@required {VTLDeviceARN: str, DeviceType: str}
@returns(200) {VTLDeviceARN: str?}

@end
