{ "version":"2.0", "metadata":{ "apiVersion":"2018-04-10", "endpointPrefix":"backupstorage", "jsonVersion":"1.1", "protocol":"rest-json", "serviceFullName":"AWS Backup Storage", "serviceId":"BackupStorage", "signatureVersion":"v4", "signingName":"backup-storage", "uid":"backupstorage-2018-04-10" }, "operations":{ "DeleteObject":{ "name":"DeleteObject", "http":{ "method":"DELETE", "requestUri":"/backup-jobs/{jobId}/object/{objectName}" }, "input":{"shape":"DeleteObjectInput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], "documentation":"Delete Object from the incremental base Backup." }, "GetChunk":{ "name":"GetChunk", "http":{ "method":"GET", "requestUri":"/restore-jobs/{jobId}/chunk/{chunkToken}" }, "input":{"shape":"GetChunkInput"}, "output":{"shape":"GetChunkOutput"}, "errors":[ {"shape":"IllegalArgumentException"}, {"shape":"RetryableException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ServiceInternalException"}, {"shape":"ThrottlingException"}, {"shape":"KMSInvalidKeyUsageException"}, {"shape":"AccessDeniedException"} ], "documentation":"Gets the specified object's chunk." }, "GetObjectMetadata":{ "name":"GetObjectMetadata", "http":{ "method":"GET", "requestUri":"/restore-jobs/{jobId}/object/{objectToken}/metadata" }, "input":{"shape":"GetObjectMetadataInput"}, "output":{"shape":"GetObjectMetadataOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"ResourceNotFoundException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ThrottlingException"}, {"shape":"KMSInvalidKeyUsageException"}, {"shape":"AccessDeniedException"} ], "documentation":"Get metadata associated with an Object." }, "ListChunks":{ "name":"ListChunks", "http":{ "method":"GET", "requestUri":"/restore-jobs/{jobId}/chunks/{objectToken}/list" }, "input":{"shape":"ListChunksInput"}, "output":{"shape":"ListChunksOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ServiceInternalException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"AccessDeniedException"} ], "documentation":"List chunks in a given Object" }, "ListObjects":{ "name":"ListObjects", "http":{ "method":"GET", "requestUri":"/restore-jobs/{jobId}/objects/list" }, "input":{"shape":"ListObjectsInput"}, "output":{"shape":"ListObjectsOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"}, {"shape":"KMSInvalidKeyUsageException"}, {"shape":"AccessDeniedException"} ], "documentation":"List all Objects in a given Backup." }, "NotifyObjectComplete":{ "name":"NotifyObjectComplete", "http":{ "method":"PUT", "requestUri":"/backup-jobs/{jobId}/object/{uploadId}/complete" }, "input":{"shape":"NotifyObjectCompleteInput"}, "output":{"shape":"NotifyObjectCompleteOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"NotReadableInputStreamException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ThrottlingException"}, {"shape":"KMSInvalidKeyUsageException"}, {"shape":"AccessDeniedException"} ], "documentation":"Complete upload", "authtype":"v4-unsigned-body" }, "PutChunk":{ "name":"PutChunk", "http":{ "method":"PUT", "requestUri":"/backup-jobs/{jobId}/chunk/{uploadId}/{chunkIndex}" }, "input":{"shape":"PutChunkInput"}, "output":{"shape":"PutChunkOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"NotReadableInputStreamException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ThrottlingException"}, {"shape":"KMSInvalidKeyUsageException"}, {"shape":"AccessDeniedException"} ], "documentation":"Upload chunk.", "authtype":"v4-unsigned-body" }, "PutObject":{ "name":"PutObject", "http":{ "method":"PUT", "requestUri":"/backup-jobs/{jobId}/object/{objectName}/put-object" }, "input":{"shape":"PutObjectInput"}, "output":{"shape":"PutObjectOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"NotReadableInputStreamException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ThrottlingException"}, {"shape":"KMSInvalidKeyUsageException"}, {"shape":"AccessDeniedException"} ], "documentation":"Upload object that can store object metadata String and data blob in single API call using inline chunk field.", "authtype":"v4-unsigned-body" }, "StartObject":{ "name":"StartObject", "http":{ "method":"PUT", "requestUri":"/backup-jobs/{jobId}/object/{objectName}" }, "input":{"shape":"StartObjectInput"}, "output":{"shape":"StartObjectOutput"}, "errors":[ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceInternalException"}, {"shape":"RetryableException"}, {"shape":"IllegalArgumentException"}, {"shape":"ResourceNotFoundException"}, {"shape":"DataAlreadyExistsException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], "documentation":"Start upload containing one or many chunks." } }, "shapes":{ "AccessDeniedException":{ "type":"structure", "members":{ "Message":{"shape":"ServiceErrorMessage"} }, "error":{"httpStatusCode":403}, "exception":true, "synthetic":true }, "BackupObject":{ "type":"structure", "required":[ "Name", "ObjectChecksum", "ObjectChecksumAlgorithm", "ObjectToken" ], "members":{ "Name":{ "shape":"string", "documentation":"Object name" }, "ChunksCount":{ "shape":"OptionalLong", "documentation":"Number of chunks in object" }, "MetadataString":{ "shape":"string", "documentation":"Metadata string associated with the Object" }, "ObjectChecksum":{ "shape":"string", "documentation":"Object checksum" }, "ObjectChecksumAlgorithm":{ "shape":"SummaryChecksumAlgorithm", "documentation":"Checksum algorithm" }, "ObjectToken":{ "shape":"string", "documentation":"Object token" } }, "documentation":"Object" }, "Chunk":{ "type":"structure", "required":[ "Index", "Length", "Checksum", "ChecksumAlgorithm", "ChunkToken" ], "members":{ "Index":{ "shape":"long", "documentation":"Chunk index" }, "Length":{ "shape":"long", "documentation":"Chunk length" }, "Checksum":{ "shape":"string", "documentation":"Chunk checksum" }, "ChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Checksum algorithm" }, "ChunkToken":{ "shape":"string", "documentation":"Chunk token" } }, "documentation":"Chunk" }, "ChunkList":{ "type":"list", "member":{"shape":"Chunk"} }, "DataAlreadyExistsException":{ "type":"structure", "members":{ "Message":{"shape":"string"}, "Checksum":{ "shape":"string", "documentation":"Data checksum used" }, "ChecksumAlgorithm":{ "shape":"string", "documentation":"Checksum algorithm used" } }, "documentation":"Non-retryable exception. Attempted to create already existing object or chunk. This message contains a checksum of already presented data.", "error":{"httpStatusCode":400}, "exception":true }, "DataChecksumAlgorithm":{ "type":"string", "enum":["SHA256"] }, "DeleteObjectInput":{ "type":"structure", "required":[ "BackupJobId", "ObjectName" ], "members":{ "BackupJobId":{ "shape":"string", "documentation":"Backup job Id for the in-progress backup.", "location":"uri", "locationName":"jobId" }, "ObjectName":{ "shape":"string", "documentation":"The name of the Object.", "location":"uri", "locationName":"objectName" } } }, "GetChunkInput":{ "type":"structure", "required":[ "StorageJobId", "ChunkToken" ], "members":{ "StorageJobId":{ "shape":"string", "documentation":"Storage job id", "location":"uri", "locationName":"jobId" }, "ChunkToken":{ "shape":"string", "documentation":"Chunk token", "location":"uri", "locationName":"chunkToken" } } }, "GetChunkOutput":{ "type":"structure", "required":[ "Data", "Length", "Checksum", "ChecksumAlgorithm" ], "members":{ "Data":{ "shape":"PayloadBlob", "documentation":"Chunk data" }, "Length":{ "shape":"long", "documentation":"Data length", "location":"header", "locationName":"x-amz-data-length" }, "Checksum":{ "shape":"string", "documentation":"Data checksum", "location":"header", "locationName":"x-amz-checksum" }, "ChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Checksum algorithm", "location":"header", "locationName":"x-amz-checksum-algorithm" } }, "payload":"Data" }, "GetObjectMetadataInput":{ "type":"structure", "required":[ "StorageJobId", "ObjectToken" ], "members":{ "StorageJobId":{ "shape":"string", "documentation":"Backup job id for the in-progress backup.", "location":"uri", "locationName":"jobId" }, "ObjectToken":{ "shape":"string", "documentation":"Object token.", "location":"uri", "locationName":"objectToken" } } }, "GetObjectMetadataOutput":{ "type":"structure", "members":{ "MetadataString":{ "shape":"string", "documentation":"Metadata string.", "location":"header", "locationName":"x-amz-metadata-string" }, "MetadataBlob":{ "shape":"PayloadBlob", "documentation":"Metadata blob." }, "MetadataBlobLength":{ "shape":"long", "documentation":"The size of MetadataBlob.", "location":"header", "locationName":"x-amz-data-length" }, "MetadataBlobChecksum":{ "shape":"string", "documentation":"MetadataBlob checksum.", "location":"header", "locationName":"x-amz-checksum" }, "MetadataBlobChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Checksum algorithm.", "location":"header", "locationName":"x-amz-checksum-algorithm" } }, "payload":"MetadataBlob" }, "IllegalArgumentException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Non-retryable exception, indicates client error (wrong argument passed to API). See exception message for details.", "error":{"httpStatusCode":400}, "exception":true }, "KMSInvalidKeyUsageException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Non-retryable exception. Indicates the KMS key usage is incorrect. See exception message for details.", "error":{"httpStatusCode":400}, "exception":true }, "ListChunksInput":{ "type":"structure", "required":[ "StorageJobId", "ObjectToken" ], "members":{ "StorageJobId":{ "shape":"string", "documentation":"Storage job id", "location":"uri", "locationName":"jobId" }, "ObjectToken":{ "shape":"string", "documentation":"Object token", "location":"uri", "locationName":"objectToken" }, "MaxResults":{ "shape":"MaxResults", "documentation":"Maximum number of chunks", "location":"querystring", "locationName":"max-results" }, "NextToken":{ "shape":"string", "documentation":"Pagination token", "location":"querystring", "locationName":"next-token" } } }, "ListChunksOutput":{ "type":"structure", "required":["ChunkList"], "members":{ "ChunkList":{ "shape":"ChunkList", "documentation":"List of chunks" }, "NextToken":{ "shape":"string", "documentation":"Pagination token" } } }, "ListObjectsInput":{ "type":"structure", "required":["StorageJobId"], "members":{ "StorageJobId":{ "shape":"string", "documentation":"Storage job id", "location":"uri", "locationName":"jobId" }, "StartingObjectName":{ "shape":"string", "documentation":"Optional, specifies the starting Object name to list from. Ignored if NextToken is not NULL", "location":"querystring", "locationName":"starting-object-name" }, "StartingObjectPrefix":{ "shape":"string", "documentation":"Optional, specifies the starting Object prefix to list from. Ignored if NextToken is not NULL", "location":"querystring", "locationName":"starting-object-prefix" }, "MaxResults":{ "shape":"MaxResults", "documentation":"Maximum objects count", "location":"querystring", "locationName":"max-results" }, "NextToken":{ "shape":"string", "documentation":"Pagination token", "location":"querystring", "locationName":"next-token" }, "CreatedBefore":{ "shape":"timestamp", "documentation":"(Optional) Created before filter", "location":"querystring", "locationName":"created-before" }, "CreatedAfter":{ "shape":"timestamp", "documentation":"(Optional) Created after filter", "location":"querystring", "locationName":"created-after" } } }, "ListObjectsOutput":{ "type":"structure", "required":["ObjectList"], "members":{ "ObjectList":{ "shape":"ObjectList", "documentation":"Object list" }, "NextToken":{ "shape":"string", "documentation":"Pagination token" } } }, "MaxResults":{ "type":"integer", "max":100, "min":1 }, "MetadataString":{ "type":"string", "pattern":"^.{1,256}$" }, "NotReadableInputStreamException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Retryalble exception. Indicated issues while reading an input stream due to the networking issues or connection drop on the client side.", "error":{"httpStatusCode":400}, "exception":true }, "NotifyObjectCompleteInput":{ "type":"structure", "required":[ "BackupJobId", "UploadId", "ObjectChecksum", "ObjectChecksumAlgorithm" ], "members":{ "BackupJobId":{ "shape":"string", "documentation":"Backup job Id for the in-progress backup", "location":"uri", "locationName":"jobId" }, "UploadId":{ "shape":"string", "documentation":"Upload Id for the in-progress upload", "location":"uri", "locationName":"uploadId" }, "ObjectChecksum":{ "shape":"string", "documentation":"Object checksum", "location":"querystring", "locationName":"checksum" }, "ObjectChecksumAlgorithm":{ "shape":"SummaryChecksumAlgorithm", "documentation":"Checksum algorithm", "location":"querystring", "locationName":"checksum-algorithm" }, "MetadataString":{ "shape":"MetadataString", "documentation":"Optional metadata associated with an Object. Maximum string length is 256 bytes.", "location":"querystring", "locationName":"metadata-string" }, "MetadataBlob":{ "shape":"PayloadBlob", "documentation":"Optional metadata associated with an Object. Maximum length is 4MB." }, "MetadataBlobLength":{ "shape":"long", "documentation":"The size of MetadataBlob.", "location":"querystring", "locationName":"metadata-blob-length" }, "MetadataBlobChecksum":{ "shape":"string", "documentation":"Checksum of MetadataBlob.", "location":"querystring", "locationName":"metadata-checksum" }, "MetadataBlobChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Checksum algorithm.", "location":"querystring", "locationName":"metadata-checksum-algorithm" } }, "payload":"MetadataBlob" }, "NotifyObjectCompleteOutput":{ "type":"structure", "required":[ "ObjectChecksum", "ObjectChecksumAlgorithm" ], "members":{ "ObjectChecksum":{ "shape":"string", "documentation":"Object checksum" }, "ObjectChecksumAlgorithm":{ "shape":"SummaryChecksumAlgorithm", "documentation":"Checksum algorithm" } } }, "ObjectList":{ "type":"list", "member":{"shape":"BackupObject"} }, "OptionalLong":{"type":"long"}, "PayloadBlob":{ "type":"blob", "streaming":true }, "PutChunkInput":{ "type":"structure", "required":[ "BackupJobId", "UploadId", "ChunkIndex", "Data", "Length", "Checksum", "ChecksumAlgorithm" ], "members":{ "BackupJobId":{ "shape":"string", "documentation":"Backup job Id for the in-progress backup.", "location":"uri", "locationName":"jobId" }, "UploadId":{ "shape":"string", "documentation":"Upload Id for the in-progress upload.", "location":"uri", "locationName":"uploadId" }, "ChunkIndex":{ "shape":"long", "documentation":"Describes this chunk's position relative to the other chunks", "location":"uri", "locationName":"chunkIndex" }, "Data":{ "shape":"PayloadBlob", "documentation":"Data to be uploaded" }, "Length":{ "shape":"long", "documentation":"Data length", "location":"querystring", "locationName":"length" }, "Checksum":{ "shape":"string", "documentation":"Data checksum", "location":"querystring", "locationName":"checksum" }, "ChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Checksum algorithm", "location":"querystring", "locationName":"checksum-algorithm" } }, "payload":"Data" }, "PutChunkOutput":{ "type":"structure", "required":[ "ChunkChecksum", "ChunkChecksumAlgorithm" ], "members":{ "ChunkChecksum":{ "shape":"string", "documentation":"Chunk checksum" }, "ChunkChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Checksum algorithm" } } }, "PutObjectInput":{ "type":"structure", "required":[ "BackupJobId", "ObjectName" ], "members":{ "BackupJobId":{ "shape":"string", "documentation":"Backup job Id for the in-progress backup.", "location":"uri", "locationName":"jobId" }, "ObjectName":{ "shape":"string", "documentation":"The name of the Object to be uploaded.", "location":"uri", "locationName":"objectName" }, "MetadataString":{ "shape":"string", "documentation":"Store user defined metadata like backup checksum, disk ids, restore metadata etc.", "location":"querystring", "locationName":"metadata-string" }, "InlineChunk":{ "shape":"PayloadBlob", "documentation":"Inline chunk data to be uploaded." }, "InlineChunkLength":{ "shape":"long", "documentation":"Length of the inline chunk data.", "location":"querystring", "locationName":"length" }, "InlineChunkChecksum":{ "shape":"string", "documentation":"Inline chunk checksum", "location":"querystring", "locationName":"checksum" }, "InlineChunkChecksumAlgorithm":{ "shape":"string", "documentation":"Inline chunk checksum algorithm", "location":"querystring", "locationName":"checksum-algorithm" }, "ObjectChecksum":{ "shape":"string", "documentation":"object checksum", "location":"querystring", "locationName":"object-checksum" }, "ObjectChecksumAlgorithm":{ "shape":"SummaryChecksumAlgorithm", "documentation":"object checksum algorithm", "location":"querystring", "locationName":"object-checksum-algorithm" }, "ThrowOnDuplicate":{ "shape":"boolean", "documentation":"Throw an exception if Object name is already exist.", "location":"querystring", "locationName":"throwOnDuplicate" } }, "payload":"InlineChunk" }, "PutObjectOutput":{ "type":"structure", "required":[ "InlineChunkChecksum", "InlineChunkChecksumAlgorithm", "ObjectChecksum", "ObjectChecksumAlgorithm" ], "members":{ "InlineChunkChecksum":{ "shape":"string", "documentation":"Inline chunk checksum" }, "InlineChunkChecksumAlgorithm":{ "shape":"DataChecksumAlgorithm", "documentation":"Inline chunk checksum algorithm" }, "ObjectChecksum":{ "shape":"string", "documentation":"object checksum" }, "ObjectChecksumAlgorithm":{ "shape":"SummaryChecksumAlgorithm", "documentation":"object checksum algorithm" } } }, "ResourceNotFoundException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Non-retryable exception. Attempted to make an operation on non-existing or expired resource.", "error":{"httpStatusCode":404}, "exception":true }, "RetryableException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Retryable exception. In general indicates internal failure that can be fixed by retry.", "error":{"httpStatusCode":500}, "exception":true }, "ServiceErrorMessage":{"type":"string"}, "ServiceInternalException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Deprecated. To be removed from the model.", "error":{"httpStatusCode":500}, "exception":true, "fault":true }, "ServiceUnavailableException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Retryable exception, indicates internal server error.", "error":{"httpStatusCode":503}, "exception":true, "fault":true }, "StartObjectInput":{ "type":"structure", "required":[ "BackupJobId", "ObjectName" ], "members":{ "BackupJobId":{ "shape":"string", "documentation":"Backup job Id for the in-progress backup", "location":"uri", "locationName":"jobId" }, "ObjectName":{ "shape":"string", "documentation":"Name for the object.", "location":"uri", "locationName":"objectName" }, "ThrowOnDuplicate":{ "shape":"boolean", "documentation":"Throw an exception if Object name is already exist." } } }, "StartObjectOutput":{ "type":"structure", "required":["UploadId"], "members":{ "UploadId":{ "shape":"string", "documentation":"Upload Id for a given upload." } } }, "SummaryChecksumAlgorithm":{ "type":"string", "enum":["SUMMARY"] }, "ThrottlingException":{ "type":"structure", "members":{ "Message":{"shape":"string"} }, "documentation":"Increased rate over throttling limits. Can be retried with exponential backoff.", "error":{"httpStatusCode":429}, "exception":true }, "boolean":{"type":"boolean"}, "long":{"type":"long"}, "string":{"type":"string"}, "timestamp":{"type":"timestamp"} }, "documentation":"The frontend service for Cryo Storage." }