1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2018-04-10",
5    "endpointPrefix":"backupstorage",
6    "jsonVersion":"1.1",
7    "protocol":"rest-json",
8    "serviceFullName":"AWS Backup Storage",
9    "serviceId":"BackupStorage",
10    "signatureVersion":"v4",
11    "signingName":"backup-storage",
12    "uid":"backupstorage-2018-04-10"
13  },
14  "operations":{
15    "DeleteObject":{
16      "name":"DeleteObject",
17      "http":{
18        "method":"DELETE",
19        "requestUri":"/backup-jobs/{jobId}/object/{objectName}"
20      },
21      "input":{"shape":"DeleteObjectInput"},
22      "errors":[
23        {"shape":"ServiceUnavailableException"},
24        {"shape":"ServiceInternalException"},
25        {"shape":"RetryableException"},
26        {"shape":"IllegalArgumentException"},
27        {"shape":"ResourceNotFoundException"},
28        {"shape":"ThrottlingException"},
29        {"shape":"AccessDeniedException"}
30      ],
31      "documentation":"Delete Object from the incremental base Backup."
32    },
33    "GetChunk":{
34      "name":"GetChunk",
35      "http":{
36        "method":"GET",
37        "requestUri":"/restore-jobs/{jobId}/chunk/{chunkToken}"
38      },
39      "input":{"shape":"GetChunkInput"},
40      "output":{"shape":"GetChunkOutput"},
41      "errors":[
42        {"shape":"IllegalArgumentException"},
43        {"shape":"RetryableException"},
44        {"shape":"ResourceNotFoundException"},
45        {"shape":"ServiceInternalException"},
46        {"shape":"ThrottlingException"},
47        {"shape":"KMSInvalidKeyUsageException"},
48        {"shape":"AccessDeniedException"}
49      ],
50      "documentation":"Gets the specified object's chunk."
51    },
52    "GetObjectMetadata":{
53      "name":"GetObjectMetadata",
54      "http":{
55        "method":"GET",
56        "requestUri":"/restore-jobs/{jobId}/object/{objectToken}/metadata"
57      },
58      "input":{"shape":"GetObjectMetadataInput"},
59      "output":{"shape":"GetObjectMetadataOutput"},
60      "errors":[
61        {"shape":"ServiceUnavailableException"},
62        {"shape":"ServiceInternalException"},
63        {"shape":"ResourceNotFoundException"},
64        {"shape":"RetryableException"},
65        {"shape":"IllegalArgumentException"},
66        {"shape":"ThrottlingException"},
67        {"shape":"KMSInvalidKeyUsageException"},
68        {"shape":"AccessDeniedException"}
69      ],
70      "documentation":"Get metadata associated with an Object."
71    },
72    "ListChunks":{
73      "name":"ListChunks",
74      "http":{
75        "method":"GET",
76        "requestUri":"/restore-jobs/{jobId}/chunks/{objectToken}/list"
77      },
78      "input":{"shape":"ListChunksInput"},
79      "output":{"shape":"ListChunksOutput"},
80      "errors":[
81        {"shape":"ServiceUnavailableException"},
82        {"shape":"ResourceNotFoundException"},
83        {"shape":"ServiceInternalException"},
84        {"shape":"RetryableException"},
85        {"shape":"IllegalArgumentException"},
86        {"shape":"AccessDeniedException"}
87      ],
88      "documentation":"List chunks in a given Object"
89    },
90    "ListObjects":{
91      "name":"ListObjects",
92      "http":{
93        "method":"GET",
94        "requestUri":"/restore-jobs/{jobId}/objects/list"
95      },
96      "input":{"shape":"ListObjectsInput"},
97      "output":{"shape":"ListObjectsOutput"},
98      "errors":[
99        {"shape":"ServiceUnavailableException"},
100        {"shape":"ServiceInternalException"},
101        {"shape":"RetryableException"},
102        {"shape":"IllegalArgumentException"},
103        {"shape":"ThrottlingException"},
104        {"shape":"ResourceNotFoundException"},
105        {"shape":"KMSInvalidKeyUsageException"},
106        {"shape":"AccessDeniedException"}
107      ],
108      "documentation":"List all Objects in a given Backup."
109    },
110    "NotifyObjectComplete":{
111      "name":"NotifyObjectComplete",
112      "http":{
113        "method":"PUT",
114        "requestUri":"/backup-jobs/{jobId}/object/{uploadId}/complete"
115      },
116      "input":{"shape":"NotifyObjectCompleteInput"},
117      "output":{"shape":"NotifyObjectCompleteOutput"},
118      "errors":[
119        {"shape":"ServiceUnavailableException"},
120        {"shape":"ServiceInternalException"},
121        {"shape":"NotReadableInputStreamException"},
122        {"shape":"RetryableException"},
123        {"shape":"IllegalArgumentException"},
124        {"shape":"ThrottlingException"},
125        {"shape":"KMSInvalidKeyUsageException"},
126        {"shape":"AccessDeniedException"}
127      ],
128      "documentation":"Complete upload",
129      "authtype":"v4-unsigned-body"
130    },
131    "PutChunk":{
132      "name":"PutChunk",
133      "http":{
134        "method":"PUT",
135        "requestUri":"/backup-jobs/{jobId}/chunk/{uploadId}/{chunkIndex}"
136      },
137      "input":{"shape":"PutChunkInput"},
138      "output":{"shape":"PutChunkOutput"},
139      "errors":[
140        {"shape":"ServiceUnavailableException"},
141        {"shape":"ServiceInternalException"},
142        {"shape":"NotReadableInputStreamException"},
143        {"shape":"RetryableException"},
144        {"shape":"IllegalArgumentException"},
145        {"shape":"ThrottlingException"},
146        {"shape":"KMSInvalidKeyUsageException"},
147        {"shape":"AccessDeniedException"}
148      ],
149      "documentation":"Upload chunk.",
150      "authtype":"v4-unsigned-body"
151    },
152    "PutObject":{
153      "name":"PutObject",
154      "http":{
155        "method":"PUT",
156        "requestUri":"/backup-jobs/{jobId}/object/{objectName}/put-object"
157      },
158      "input":{"shape":"PutObjectInput"},
159      "output":{"shape":"PutObjectOutput"},
160      "errors":[
161        {"shape":"ServiceUnavailableException"},
162        {"shape":"ServiceInternalException"},
163        {"shape":"NotReadableInputStreamException"},
164        {"shape":"RetryableException"},
165        {"shape":"IllegalArgumentException"},
166        {"shape":"ThrottlingException"},
167        {"shape":"KMSInvalidKeyUsageException"},
168        {"shape":"AccessDeniedException"}
169      ],
170      "documentation":"Upload object that can store object metadata String and data blob in single API call using inline chunk field.",
171      "authtype":"v4-unsigned-body"
172    },
173    "StartObject":{
174      "name":"StartObject",
175      "http":{
176        "method":"PUT",
177        "requestUri":"/backup-jobs/{jobId}/object/{objectName}"
178      },
179      "input":{"shape":"StartObjectInput"},
180      "output":{"shape":"StartObjectOutput"},
181      "errors":[
182        {"shape":"ServiceUnavailableException"},
183        {"shape":"ServiceInternalException"},
184        {"shape":"RetryableException"},
185        {"shape":"IllegalArgumentException"},
186        {"shape":"ResourceNotFoundException"},
187        {"shape":"DataAlreadyExistsException"},
188        {"shape":"ThrottlingException"},
189        {"shape":"AccessDeniedException"}
190      ],
191      "documentation":"Start upload containing one or many chunks."
192    }
193  },
194  "shapes":{
195    "AccessDeniedException":{
196      "type":"structure",
197      "members":{
198        "Message":{"shape":"ServiceErrorMessage"}
199      },
200      "error":{"httpStatusCode":403},
201      "exception":true,
202      "synthetic":true
203    },
204    "BackupObject":{
205      "type":"structure",
206      "required":[
207        "Name",
208        "ObjectChecksum",
209        "ObjectChecksumAlgorithm",
210        "ObjectToken"
211      ],
212      "members":{
213        "Name":{
214          "shape":"string",
215          "documentation":"Object name"
216        },
217        "ChunksCount":{
218          "shape":"OptionalLong",
219          "documentation":"Number of chunks in object"
220        },
221        "MetadataString":{
222          "shape":"string",
223          "documentation":"Metadata string associated with the Object"
224        },
225        "ObjectChecksum":{
226          "shape":"string",
227          "documentation":"Object checksum"
228        },
229        "ObjectChecksumAlgorithm":{
230          "shape":"SummaryChecksumAlgorithm",
231          "documentation":"Checksum algorithm"
232        },
233        "ObjectToken":{
234          "shape":"string",
235          "documentation":"Object token"
236        }
237      },
238      "documentation":"Object"
239    },
240    "Chunk":{
241      "type":"structure",
242      "required":[
243        "Index",
244        "Length",
245        "Checksum",
246        "ChecksumAlgorithm",
247        "ChunkToken"
248      ],
249      "members":{
250        "Index":{
251          "shape":"long",
252          "documentation":"Chunk index"
253        },
254        "Length":{
255          "shape":"long",
256          "documentation":"Chunk length"
257        },
258        "Checksum":{
259          "shape":"string",
260          "documentation":"Chunk checksum"
261        },
262        "ChecksumAlgorithm":{
263          "shape":"DataChecksumAlgorithm",
264          "documentation":"Checksum algorithm"
265        },
266        "ChunkToken":{
267          "shape":"string",
268          "documentation":"Chunk token"
269        }
270      },
271      "documentation":"Chunk"
272    },
273    "ChunkList":{
274      "type":"list",
275      "member":{"shape":"Chunk"}
276    },
277    "DataAlreadyExistsException":{
278      "type":"structure",
279      "members":{
280        "Message":{"shape":"string"},
281        "Checksum":{
282          "shape":"string",
283          "documentation":"Data checksum used"
284        },
285        "ChecksumAlgorithm":{
286          "shape":"string",
287          "documentation":"Checksum algorithm used"
288        }
289      },
290      "documentation":"Non-retryable exception. Attempted to create already existing object or chunk. This message contains a checksum of already presented data.",
291      "error":{"httpStatusCode":400},
292      "exception":true
293    },
294    "DataChecksumAlgorithm":{
295      "type":"string",
296      "enum":["SHA256"]
297    },
298    "DeleteObjectInput":{
299      "type":"structure",
300      "required":[
301        "BackupJobId",
302        "ObjectName"
303      ],
304      "members":{
305        "BackupJobId":{
306          "shape":"string",
307          "documentation":"Backup job Id for the in-progress backup.",
308          "location":"uri",
309          "locationName":"jobId"
310        },
311        "ObjectName":{
312          "shape":"string",
313          "documentation":"The name of the Object.",
314          "location":"uri",
315          "locationName":"objectName"
316        }
317      }
318    },
319    "GetChunkInput":{
320      "type":"structure",
321      "required":[
322        "StorageJobId",
323        "ChunkToken"
324      ],
325      "members":{
326        "StorageJobId":{
327          "shape":"string",
328          "documentation":"Storage job id",
329          "location":"uri",
330          "locationName":"jobId"
331        },
332        "ChunkToken":{
333          "shape":"string",
334          "documentation":"Chunk token",
335          "location":"uri",
336          "locationName":"chunkToken"
337        }
338      }
339    },
340    "GetChunkOutput":{
341      "type":"structure",
342      "required":[
343        "Data",
344        "Length",
345        "Checksum",
346        "ChecksumAlgorithm"
347      ],
348      "members":{
349        "Data":{
350          "shape":"PayloadBlob",
351          "documentation":"Chunk data"
352        },
353        "Length":{
354          "shape":"long",
355          "documentation":"Data length",
356          "location":"header",
357          "locationName":"x-amz-data-length"
358        },
359        "Checksum":{
360          "shape":"string",
361          "documentation":"Data checksum",
362          "location":"header",
363          "locationName":"x-amz-checksum"
364        },
365        "ChecksumAlgorithm":{
366          "shape":"DataChecksumAlgorithm",
367          "documentation":"Checksum algorithm",
368          "location":"header",
369          "locationName":"x-amz-checksum-algorithm"
370        }
371      },
372      "payload":"Data"
373    },
374    "GetObjectMetadataInput":{
375      "type":"structure",
376      "required":[
377        "StorageJobId",
378        "ObjectToken"
379      ],
380      "members":{
381        "StorageJobId":{
382          "shape":"string",
383          "documentation":"Backup job id for the in-progress backup.",
384          "location":"uri",
385          "locationName":"jobId"
386        },
387        "ObjectToken":{
388          "shape":"string",
389          "documentation":"Object token.",
390          "location":"uri",
391          "locationName":"objectToken"
392        }
393      }
394    },
395    "GetObjectMetadataOutput":{
396      "type":"structure",
397      "members":{
398        "MetadataString":{
399          "shape":"string",
400          "documentation":"Metadata string.",
401          "location":"header",
402          "locationName":"x-amz-metadata-string"
403        },
404        "MetadataBlob":{
405          "shape":"PayloadBlob",
406          "documentation":"Metadata blob."
407        },
408        "MetadataBlobLength":{
409          "shape":"long",
410          "documentation":"The size of MetadataBlob.",
411          "location":"header",
412          "locationName":"x-amz-data-length"
413        },
414        "MetadataBlobChecksum":{
415          "shape":"string",
416          "documentation":"MetadataBlob checksum.",
417          "location":"header",
418          "locationName":"x-amz-checksum"
419        },
420        "MetadataBlobChecksumAlgorithm":{
421          "shape":"DataChecksumAlgorithm",
422          "documentation":"Checksum algorithm.",
423          "location":"header",
424          "locationName":"x-amz-checksum-algorithm"
425        }
426      },
427      "payload":"MetadataBlob"
428    },
429    "IllegalArgumentException":{
430      "type":"structure",
431      "members":{
432        "Message":{"shape":"string"}
433      },
434      "documentation":"Non-retryable exception, indicates client error (wrong argument passed to API). See exception message for details.",
435      "error":{"httpStatusCode":400},
436      "exception":true
437    },
438    "KMSInvalidKeyUsageException":{
439      "type":"structure",
440      "members":{
441        "Message":{"shape":"string"}
442      },
443      "documentation":"Non-retryable exception. Indicates the KMS key usage is incorrect. See exception message for details.",
444      "error":{"httpStatusCode":400},
445      "exception":true
446    },
447    "ListChunksInput":{
448      "type":"structure",
449      "required":[
450        "StorageJobId",
451        "ObjectToken"
452      ],
453      "members":{
454        "StorageJobId":{
455          "shape":"string",
456          "documentation":"Storage job id",
457          "location":"uri",
458          "locationName":"jobId"
459        },
460        "ObjectToken":{
461          "shape":"string",
462          "documentation":"Object token",
463          "location":"uri",
464          "locationName":"objectToken"
465        },
466        "MaxResults":{
467          "shape":"MaxResults",
468          "documentation":"Maximum number of chunks",
469          "location":"querystring",
470          "locationName":"max-results"
471        },
472        "NextToken":{
473          "shape":"string",
474          "documentation":"Pagination token",
475          "location":"querystring",
476          "locationName":"next-token"
477        }
478      }
479    },
480    "ListChunksOutput":{
481      "type":"structure",
482      "required":["ChunkList"],
483      "members":{
484        "ChunkList":{
485          "shape":"ChunkList",
486          "documentation":"List of chunks"
487        },
488        "NextToken":{
489          "shape":"string",
490          "documentation":"Pagination token"
491        }
492      }
493    },
494    "ListObjectsInput":{
495      "type":"structure",
496      "required":["StorageJobId"],
497      "members":{
498        "StorageJobId":{
499          "shape":"string",
500          "documentation":"Storage job id",
501          "location":"uri",
502          "locationName":"jobId"
503        },
504        "StartingObjectName":{
505          "shape":"string",
506          "documentation":"Optional, specifies the starting Object name to list from. Ignored if NextToken is not NULL",
507          "location":"querystring",
508          "locationName":"starting-object-name"
509        },
510        "StartingObjectPrefix":{
511          "shape":"string",
512          "documentation":"Optional, specifies the starting Object prefix to list from. Ignored if NextToken is not NULL",
513          "location":"querystring",
514          "locationName":"starting-object-prefix"
515        },
516        "MaxResults":{
517          "shape":"MaxResults",
518          "documentation":"Maximum objects count",
519          "location":"querystring",
520          "locationName":"max-results"
521        },
522        "NextToken":{
523          "shape":"string",
524          "documentation":"Pagination token",
525          "location":"querystring",
526          "locationName":"next-token"
527        },
528        "CreatedBefore":{
529          "shape":"timestamp",
530          "documentation":"(Optional) Created before filter",
531          "location":"querystring",
532          "locationName":"created-before"
533        },
534        "CreatedAfter":{
535          "shape":"timestamp",
536          "documentation":"(Optional) Created after filter",
537          "location":"querystring",
538          "locationName":"created-after"
539        }
540      }
541    },
542    "ListObjectsOutput":{
543      "type":"structure",
544      "required":["ObjectList"],
545      "members":{
546        "ObjectList":{
547          "shape":"ObjectList",
548          "documentation":"Object list"
549        },
550        "NextToken":{
551          "shape":"string",
552          "documentation":"Pagination token"
553        }
554      }
555    },
556    "MaxResults":{
557      "type":"integer",
558      "max":100,
559      "min":1
560    },
561    "MetadataString":{
562      "type":"string",
563      "pattern":"^.{1,256}$"
564    },
565    "NotReadableInputStreamException":{
566      "type":"structure",
567      "members":{
568        "Message":{"shape":"string"}
569      },
570      "documentation":"Retryalble exception. Indicated issues while reading an input stream due to the networking issues or connection drop on the client side.",
571      "error":{"httpStatusCode":400},
572      "exception":true
573    },
574    "NotifyObjectCompleteInput":{
575      "type":"structure",
576      "required":[
577        "BackupJobId",
578        "UploadId",
579        "ObjectChecksum",
580        "ObjectChecksumAlgorithm"
581      ],
582      "members":{
583        "BackupJobId":{
584          "shape":"string",
585          "documentation":"Backup job Id for the in-progress backup",
586          "location":"uri",
587          "locationName":"jobId"
588        },
589        "UploadId":{
590          "shape":"string",
591          "documentation":"Upload Id for the in-progress upload",
592          "location":"uri",
593          "locationName":"uploadId"
594        },
595        "ObjectChecksum":{
596          "shape":"string",
597          "documentation":"Object checksum",
598          "location":"querystring",
599          "locationName":"checksum"
600        },
601        "ObjectChecksumAlgorithm":{
602          "shape":"SummaryChecksumAlgorithm",
603          "documentation":"Checksum algorithm",
604          "location":"querystring",
605          "locationName":"checksum-algorithm"
606        },
607        "MetadataString":{
608          "shape":"MetadataString",
609          "documentation":"Optional metadata associated with an Object. Maximum string length is 256 bytes.",
610          "location":"querystring",
611          "locationName":"metadata-string"
612        },
613        "MetadataBlob":{
614          "shape":"PayloadBlob",
615          "documentation":"Optional metadata associated with an Object. Maximum length is 4MB."
616        },
617        "MetadataBlobLength":{
618          "shape":"long",
619          "documentation":"The size of MetadataBlob.",
620          "location":"querystring",
621          "locationName":"metadata-blob-length"
622        },
623        "MetadataBlobChecksum":{
624          "shape":"string",
625          "documentation":"Checksum of MetadataBlob.",
626          "location":"querystring",
627          "locationName":"metadata-checksum"
628        },
629        "MetadataBlobChecksumAlgorithm":{
630          "shape":"DataChecksumAlgorithm",
631          "documentation":"Checksum algorithm.",
632          "location":"querystring",
633          "locationName":"metadata-checksum-algorithm"
634        }
635      },
636      "payload":"MetadataBlob"
637    },
638    "NotifyObjectCompleteOutput":{
639      "type":"structure",
640      "required":[
641        "ObjectChecksum",
642        "ObjectChecksumAlgorithm"
643      ],
644      "members":{
645        "ObjectChecksum":{
646          "shape":"string",
647          "documentation":"Object checksum"
648        },
649        "ObjectChecksumAlgorithm":{
650          "shape":"SummaryChecksumAlgorithm",
651          "documentation":"Checksum algorithm"
652        }
653      }
654    },
655    "ObjectList":{
656      "type":"list",
657      "member":{"shape":"BackupObject"}
658    },
659    "OptionalLong":{"type":"long"},
660    "PayloadBlob":{
661      "type":"blob",
662      "streaming":true
663    },
664    "PutChunkInput":{
665      "type":"structure",
666      "required":[
667        "BackupJobId",
668        "UploadId",
669        "ChunkIndex",
670        "Data",
671        "Length",
672        "Checksum",
673        "ChecksumAlgorithm"
674      ],
675      "members":{
676        "BackupJobId":{
677          "shape":"string",
678          "documentation":"Backup job Id for the in-progress backup.",
679          "location":"uri",
680          "locationName":"jobId"
681        },
682        "UploadId":{
683          "shape":"string",
684          "documentation":"Upload Id for the in-progress upload.",
685          "location":"uri",
686          "locationName":"uploadId"
687        },
688        "ChunkIndex":{
689          "shape":"long",
690          "documentation":"Describes this chunk's position relative to the other chunks",
691          "location":"uri",
692          "locationName":"chunkIndex"
693        },
694        "Data":{
695          "shape":"PayloadBlob",
696          "documentation":"Data to be uploaded"
697        },
698        "Length":{
699          "shape":"long",
700          "documentation":"Data length",
701          "location":"querystring",
702          "locationName":"length"
703        },
704        "Checksum":{
705          "shape":"string",
706          "documentation":"Data checksum",
707          "location":"querystring",
708          "locationName":"checksum"
709        },
710        "ChecksumAlgorithm":{
711          "shape":"DataChecksumAlgorithm",
712          "documentation":"Checksum algorithm",
713          "location":"querystring",
714          "locationName":"checksum-algorithm"
715        }
716      },
717      "payload":"Data"
718    },
719    "PutChunkOutput":{
720      "type":"structure",
721      "required":[
722        "ChunkChecksum",
723        "ChunkChecksumAlgorithm"
724      ],
725      "members":{
726        "ChunkChecksum":{
727          "shape":"string",
728          "documentation":"Chunk checksum"
729        },
730        "ChunkChecksumAlgorithm":{
731          "shape":"DataChecksumAlgorithm",
732          "documentation":"Checksum algorithm"
733        }
734      }
735    },
736    "PutObjectInput":{
737      "type":"structure",
738      "required":[
739        "BackupJobId",
740        "ObjectName"
741      ],
742      "members":{
743        "BackupJobId":{
744          "shape":"string",
745          "documentation":"Backup job Id for the in-progress backup.",
746          "location":"uri",
747          "locationName":"jobId"
748        },
749        "ObjectName":{
750          "shape":"string",
751          "documentation":"The name of the Object to be uploaded.",
752          "location":"uri",
753          "locationName":"objectName"
754        },
755        "MetadataString":{
756          "shape":"string",
757          "documentation":"Store user defined metadata like backup checksum, disk ids, restore metadata etc.",
758          "location":"querystring",
759          "locationName":"metadata-string"
760        },
761        "InlineChunk":{
762          "shape":"PayloadBlob",
763          "documentation":"Inline chunk data to be uploaded."
764        },
765        "InlineChunkLength":{
766          "shape":"long",
767          "documentation":"Length of the inline chunk data.",
768          "location":"querystring",
769          "locationName":"length"
770        },
771        "InlineChunkChecksum":{
772          "shape":"string",
773          "documentation":"Inline chunk checksum",
774          "location":"querystring",
775          "locationName":"checksum"
776        },
777        "InlineChunkChecksumAlgorithm":{
778          "shape":"string",
779          "documentation":"Inline chunk checksum algorithm",
780          "location":"querystring",
781          "locationName":"checksum-algorithm"
782        },
783        "ObjectChecksum":{
784          "shape":"string",
785          "documentation":"object checksum",
786          "location":"querystring",
787          "locationName":"object-checksum"
788        },
789        "ObjectChecksumAlgorithm":{
790          "shape":"SummaryChecksumAlgorithm",
791          "documentation":"object checksum algorithm",
792          "location":"querystring",
793          "locationName":"object-checksum-algorithm"
794        },
795        "ThrowOnDuplicate":{
796          "shape":"boolean",
797          "documentation":"Throw an exception if Object name is already exist.",
798          "location":"querystring",
799          "locationName":"throwOnDuplicate"
800        }
801      },
802      "payload":"InlineChunk"
803    },
804    "PutObjectOutput":{
805      "type":"structure",
806      "required":[
807        "InlineChunkChecksum",
808        "InlineChunkChecksumAlgorithm",
809        "ObjectChecksum",
810        "ObjectChecksumAlgorithm"
811      ],
812      "members":{
813        "InlineChunkChecksum":{
814          "shape":"string",
815          "documentation":"Inline chunk checksum"
816        },
817        "InlineChunkChecksumAlgorithm":{
818          "shape":"DataChecksumAlgorithm",
819          "documentation":"Inline chunk checksum algorithm"
820        },
821        "ObjectChecksum":{
822          "shape":"string",
823          "documentation":"object checksum"
824        },
825        "ObjectChecksumAlgorithm":{
826          "shape":"SummaryChecksumAlgorithm",
827          "documentation":"object checksum algorithm"
828        }
829      }
830    },
831    "ResourceNotFoundException":{
832      "type":"structure",
833      "members":{
834        "Message":{"shape":"string"}
835      },
836      "documentation":"Non-retryable exception. Attempted to make an operation on non-existing or expired resource.",
837      "error":{"httpStatusCode":404},
838      "exception":true
839    },
840    "RetryableException":{
841      "type":"structure",
842      "members":{
843        "Message":{"shape":"string"}
844      },
845      "documentation":"Retryable exception. In general indicates internal failure that can be fixed by retry.",
846      "error":{"httpStatusCode":500},
847      "exception":true
848    },
849    "ServiceErrorMessage":{"type":"string"},
850    "ServiceInternalException":{
851      "type":"structure",
852      "members":{
853        "Message":{"shape":"string"}
854      },
855      "documentation":"Deprecated. To be removed from the model.",
856      "error":{"httpStatusCode":500},
857      "exception":true,
858      "fault":true
859    },
860    "ServiceUnavailableException":{
861      "type":"structure",
862      "members":{
863        "Message":{"shape":"string"}
864      },
865      "documentation":"Retryable exception, indicates internal server error.",
866      "error":{"httpStatusCode":503},
867      "exception":true,
868      "fault":true
869    },
870    "StartObjectInput":{
871      "type":"structure",
872      "required":[
873        "BackupJobId",
874        "ObjectName"
875      ],
876      "members":{
877        "BackupJobId":{
878          "shape":"string",
879          "documentation":"Backup job Id for the in-progress backup",
880          "location":"uri",
881          "locationName":"jobId"
882        },
883        "ObjectName":{
884          "shape":"string",
885          "documentation":"Name for the object.",
886          "location":"uri",
887          "locationName":"objectName"
888        },
889        "ThrowOnDuplicate":{
890          "shape":"boolean",
891          "documentation":"Throw an exception if Object name is already exist."
892        }
893      }
894    },
895    "StartObjectOutput":{
896      "type":"structure",
897      "required":["UploadId"],
898      "members":{
899        "UploadId":{
900          "shape":"string",
901          "documentation":"Upload Id for a given upload."
902        }
903      }
904    },
905    "SummaryChecksumAlgorithm":{
906      "type":"string",
907      "enum":["SUMMARY"]
908    },
909    "ThrottlingException":{
910      "type":"structure",
911      "members":{
912        "Message":{"shape":"string"}
913      },
914      "documentation":"Increased rate over throttling limits. Can be retried with exponential backoff.",
915      "error":{"httpStatusCode":429},
916      "exception":true
917    },
918    "boolean":{"type":"boolean"},
919    "long":{"type":"long"},
920    "string":{"type":"string"},
921    "timestamp":{"type":"timestamp"}
922  },
923  "documentation":"The frontend service for Cryo Storage."
924}
925