@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Glacier
@version 2012-06-01
@auth AWS SigV4
@endpoints 33
@hint download_for_search
@toc {accountId}(33)

@endpoint DELETE /{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}
@required {accountId: str, vaultName: str, uploadId: str}

@endpoint DELETE /{accountId}/vaults/{vaultName}/lock-policy
@required {accountId: str, vaultName: str}

@endpoint POST /{accountId}/vaults/{vaultName}/tags?operation=add
@required {accountId: str, vaultName: str}
@optional {Tags: map<str,str>}

@endpoint POST /{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}
@required {accountId: str, vaultName: str, uploadId: str}
@optional {x-amz-archive-size: str, x-amz-sha256-tree-hash: str}
@returns(200) {location: str?, checksum: str?, archiveId: str?}

@endpoint POST /{accountId}/vaults/{vaultName}/lock-policy/{lockId}
@required {accountId: str, vaultName: str, lockId: str}

@endpoint PUT /{accountId}/vaults/{vaultName}
@required {accountId: str, vaultName: str}
@returns(200) {location: str?}

@endpoint DELETE /{accountId}/vaults/{vaultName}/archives/{archiveId}
@required {accountId: str, vaultName: str, archiveId: str}

@endpoint DELETE /{accountId}/vaults/{vaultName}
@required {accountId: str, vaultName: str}

@endpoint DELETE /{accountId}/vaults/{vaultName}/access-policy
@required {accountId: str, vaultName: str}

@endpoint DELETE /{accountId}/vaults/{vaultName}/notification-configuration
@required {accountId: str, vaultName: str}

@endpoint GET /{accountId}/vaults/{vaultName}/jobs/{jobId}
@required {accountId: str, vaultName: str, jobId: str}
@returns(200) {JobId: str?, JobDescription: str?, Action: str?, ArchiveId: str?, VaultARN: str?, CreationDate: str?, Completed: bool?, StatusCode: str?, StatusMessage: str?, ArchiveSizeInBytes: int(i64)?, InventorySizeInBytes: int(i64)?, SNSTopic: str?, CompletionDate: str?, SHA256TreeHash: str?, ArchiveSHA256TreeHash: str?, RetrievalByteRange: str?, Tier: str?, InventoryRetrievalParameters: InventoryRetrievalJobDescription?{Format: str?, StartDate: str?, EndDate: str?, Limit: str?, Marker: str?}, JobOutputPath: str?, SelectParameters: SelectParameters?{InputSerialization: InputSerialization?{csv: CSVInput?{FileHeaderInfo: str?, Comments: str?, QuoteEscapeCharacter: str?, RecordDelimiter: str?, FieldDelimiter: str?, QuoteCharacter: str?}}, ExpressionType: str?, Expression: str?, OutputSerialization: OutputSerialization?{csv: CSVOutput?{QuoteFields: str?, QuoteEscapeCharacter: str?, RecordDelimiter: str?, FieldDelimiter: str?, QuoteCharacter: str?}}}, OutputLocation: OutputLocation?{S3: S3Location?{BucketName: str?, Prefix: str?, Encryption: Encryption?{EncryptionType: str?, KMSKeyId: str?, KMSContext: str?}, CannedACL: str?, AccessControlList: [Grant]?, Tagging: map<str,str>?, UserMetadata: map<str,str>?, StorageClass: str?}}}

@endpoint GET /{accountId}/vaults/{vaultName}
@required {accountId: str, vaultName: str}
@returns(200) {VaultARN: str?, VaultName: str?, CreationDate: str?, LastInventoryDate: str?, NumberOfArchives: int(i64)?, SizeInBytes: int(i64)?}

@endpoint GET /{accountId}/policies/data-retrieval
@required {accountId: str}
@returns(200) {Policy: DataRetrievalPolicy?{Rules: [DataRetrievalRule]?}}

@endpoint GET /{accountId}/vaults/{vaultName}/jobs/{jobId}/output
@required {accountId: str, vaultName: str, jobId: str}
@optional {Range: str}
@returns(200) {body: bytes?, checksum: str?, status: int?, contentRange: str?, acceptRanges: str?, contentType: str?, archiveDescription: str?}

@endpoint GET /{accountId}/vaults/{vaultName}/access-policy
@required {accountId: str, vaultName: str}
@returns(200) {policy: VaultAccessPolicy?{Policy: str?}}

@endpoint GET /{accountId}/vaults/{vaultName}/lock-policy
@required {accountId: str, vaultName: str}
@returns(200) {Policy: str?, State: str?, ExpirationDate: str?, CreationDate: str?}

@endpoint GET /{accountId}/vaults/{vaultName}/notification-configuration
@required {accountId: str, vaultName: str}
@returns(200) {vaultNotificationConfig: VaultNotificationConfig?{SNSTopic: str?, Events: [str]?}}

@endpoint POST /{accountId}/vaults/{vaultName}/jobs
@required {accountId: str, vaultName: str}
@optional {jobParameters: JobParameters}
@returns(200) {location: str?, jobId: str?, jobOutputPath: str?}

@endpoint POST /{accountId}/vaults/{vaultName}/multipart-uploads
@required {accountId: str, vaultName: str}
@optional {x-amz-archive-description: str, x-amz-part-size: str}
@returns(200) {location: str?, uploadId: str?}

@endpoint POST /{accountId}/vaults/{vaultName}/lock-policy
@required {accountId: str, vaultName: str}
@optional {policy: VaultLockPolicy}
@returns(200) {lockId: str?}

@endpoint GET /{accountId}/vaults/{vaultName}/jobs
@required {accountId: str, vaultName: str}
@optional {limit: str, marker: str, statuscode: str, completed: str}
@returns(200) {JobList: [GlacierJobDescription]?, Marker: str?}

@endpoint GET /{accountId}/vaults/{vaultName}/multipart-uploads
@required {accountId: str, vaultName: str}
@optional {marker: str, limit: str}
@returns(200) {UploadsList: [UploadListElement]?, Marker: str?}

@endpoint GET /{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}
@required {accountId: str, vaultName: str, uploadId: str}
@optional {marker: str, limit: str}
@returns(200) {MultipartUploadId: str?, VaultARN: str?, ArchiveDescription: str?, PartSizeInBytes: int(i64)?, CreationDate: str?, Parts: [PartListElement]?, Marker: str?}

@endpoint GET /{accountId}/provisioned-capacity
@required {accountId: str}
@returns(200) {ProvisionedCapacityList: [ProvisionedCapacityDescription]?}

@endpoint GET /{accountId}/vaults/{vaultName}/tags
@required {accountId: str, vaultName: str}
@returns(200) {Tags: map<str,str>?}

@endpoint GET /{accountId}/vaults
@required {accountId: str}
@optional {marker: str, limit: str}
@returns(200) {VaultList: [DescribeVaultOutput]?, Marker: str?}

@endpoint POST /{accountId}/provisioned-capacity
@required {accountId: str}
@returns(200) {capacityId: str?}

@endpoint POST /{accountId}/vaults/{vaultName}/tags?operation=remove
@required {accountId: str, vaultName: str}
@optional {TagKeys: [str]}

@endpoint PUT /{accountId}/policies/data-retrieval
@required {accountId: str}
@optional {Policy: DataRetrievalPolicy}

@endpoint PUT /{accountId}/vaults/{vaultName}/access-policy
@required {accountId: str, vaultName: str}
@optional {policy: VaultAccessPolicy}

@endpoint PUT /{accountId}/vaults/{vaultName}/notification-configuration
@required {accountId: str, vaultName: str}
@optional {vaultNotificationConfig: VaultNotificationConfig}

@endpoint POST /{accountId}/vaults/{vaultName}/archives
@required {vaultName: str, accountId: str}
@optional {x-amz-archive-description: str, x-amz-sha256-tree-hash: str, body: bytes}
@returns(200) {location: str?, checksum: str?, archiveId: str?}

@endpoint PUT /{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}
@required {accountId: str, vaultName: str, uploadId: str}
@optional {x-amz-sha256-tree-hash: str, Content-Range: str, body: bytes}
@returns(200) {checksum: str?}

@end
