1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2017-09-01",
5    "endpointPrefix":"data.mediastore",
6    "protocol":"rest-json",
7    "serviceAbbreviation":"MediaStore Data",
8    "serviceFullName":"AWS Elemental MediaStore Data Plane",
9    "serviceId":"MediaStore Data",
10    "signatureVersion":"v4",
11    "signingName":"mediastore",
12    "uid":"mediastore-data-2017-09-01"
13  },
14  "operations":{
15    "DeleteObject":{
16      "name":"DeleteObject",
17      "http":{
18        "method":"DELETE",
19        "requestUri":"/{Path+}"
20      },
21      "input":{"shape":"DeleteObjectRequest"},
22      "output":{"shape":"DeleteObjectResponse"},
23      "errors":[
24        {"shape":"ContainerNotFoundException"},
25        {"shape":"ObjectNotFoundException"},
26        {"shape":"InternalServerError"}
27      ]
28    },
29    "DescribeObject":{
30      "name":"DescribeObject",
31      "http":{
32        "method":"HEAD",
33        "requestUri":"/{Path+}"
34      },
35      "input":{"shape":"DescribeObjectRequest"},
36      "output":{"shape":"DescribeObjectResponse"},
37      "errors":[
38        {"shape":"ContainerNotFoundException"},
39        {"shape":"ObjectNotFoundException"},
40        {"shape":"InternalServerError"}
41      ]
42    },
43    "GetObject":{
44      "name":"GetObject",
45      "http":{
46        "method":"GET",
47        "requestUri":"/{Path+}"
48      },
49      "input":{"shape":"GetObjectRequest"},
50      "output":{"shape":"GetObjectResponse"},
51      "errors":[
52        {"shape":"ContainerNotFoundException"},
53        {"shape":"ObjectNotFoundException"},
54        {"shape":"RequestedRangeNotSatisfiableException"},
55        {"shape":"InternalServerError"}
56      ]
57    },
58    "ListItems":{
59      "name":"ListItems",
60      "http":{
61        "method":"GET",
62        "requestUri":"/"
63      },
64      "input":{"shape":"ListItemsRequest"},
65      "output":{"shape":"ListItemsResponse"},
66      "errors":[
67        {"shape":"ContainerNotFoundException"},
68        {"shape":"InternalServerError"}
69      ]
70    },
71    "PutObject":{
72      "name":"PutObject",
73      "http":{
74        "method":"PUT",
75        "requestUri":"/{Path+}"
76      },
77      "input":{"shape":"PutObjectRequest"},
78      "output":{"shape":"PutObjectResponse"},
79      "errors":[
80        {"shape":"ContainerNotFoundException"},
81        {"shape":"InternalServerError"}
82      ],
83      "authtype":"v4-unsigned-body"
84    }
85  },
86  "shapes":{
87    "ContainerNotFoundException":{
88      "type":"structure",
89      "members":{
90        "Message":{"shape":"ErrorMessage"}
91      },
92      "error":{"httpStatusCode":404},
93      "exception":true
94    },
95    "ContentRangePattern":{
96      "type":"string",
97      "pattern":"^bytes=\\d+\\-\\d+/\\d+$"
98    },
99    "ContentType":{
100      "type":"string",
101      "pattern":"^[\\w\\-\\/\\.\\+]{1,255}$"
102    },
103    "DeleteObjectRequest":{
104      "type":"structure",
105      "required":["Path"],
106      "members":{
107        "Path":{
108          "shape":"PathNaming",
109          "location":"uri",
110          "locationName":"Path"
111        }
112      }
113    },
114    "DeleteObjectResponse":{
115      "type":"structure",
116      "members":{
117      }
118    },
119    "DescribeObjectRequest":{
120      "type":"structure",
121      "required":["Path"],
122      "members":{
123        "Path":{
124          "shape":"PathNaming",
125          "location":"uri",
126          "locationName":"Path"
127        }
128      }
129    },
130    "DescribeObjectResponse":{
131      "type":"structure",
132      "members":{
133        "ETag":{
134          "shape":"ETag",
135          "location":"header",
136          "locationName":"ETag"
137        },
138        "ContentType":{
139          "shape":"ContentType",
140          "location":"header",
141          "locationName":"Content-Type"
142        },
143        "ContentLength":{
144          "shape":"NonNegativeLong",
145          "location":"header",
146          "locationName":"Content-Length"
147        },
148        "CacheControl":{
149          "shape":"StringPrimitive",
150          "location":"header",
151          "locationName":"Cache-Control"
152        },
153        "LastModified":{
154          "shape":"TimeStamp",
155          "location":"header",
156          "locationName":"Last-Modified"
157        }
158      }
159    },
160    "ETag":{
161      "type":"string",
162      "max":64,
163      "min":1,
164      "pattern":"[0-9A-Fa-f]+"
165    },
166    "ErrorMessage":{
167      "type":"string",
168      "max":255,
169      "min":1,
170      "pattern":"[ \\w:\\.\\?-]+"
171    },
172    "GetObjectRequest":{
173      "type":"structure",
174      "required":["Path"],
175      "members":{
176        "Path":{
177          "shape":"PathNaming",
178          "location":"uri",
179          "locationName":"Path"
180        },
181        "Range":{
182          "shape":"RangePattern",
183          "location":"header",
184          "locationName":"Range"
185        }
186      }
187    },
188    "GetObjectResponse":{
189      "type":"structure",
190      "required":["StatusCode"],
191      "members":{
192        "Body":{"shape":"PayloadBlob"},
193        "CacheControl":{
194          "shape":"StringPrimitive",
195          "location":"header",
196          "locationName":"Cache-Control"
197        },
198        "ContentRange":{
199          "shape":"ContentRangePattern",
200          "location":"header",
201          "locationName":"Content-Range"
202        },
203        "ContentLength":{
204          "shape":"NonNegativeLong",
205          "location":"header",
206          "locationName":"Content-Length"
207        },
208        "ContentType":{
209          "shape":"ContentType",
210          "location":"header",
211          "locationName":"Content-Type"
212        },
213        "ETag":{
214          "shape":"ETag",
215          "location":"header",
216          "locationName":"ETag"
217        },
218        "LastModified":{
219          "shape":"TimeStamp",
220          "location":"header",
221          "locationName":"Last-Modified"
222        },
223        "StatusCode":{
224          "shape":"statusCode",
225          "location":"statusCode"
226        }
227      },
228      "payload":"Body"
229    },
230    "InternalServerError":{
231      "type":"structure",
232      "members":{
233        "Message":{"shape":"ErrorMessage"}
234      },
235      "exception":true,
236      "fault":true
237    },
238    "Item":{
239      "type":"structure",
240      "members":{
241        "Name":{"shape":"ItemName"},
242        "Type":{"shape":"ItemType"},
243        "ETag":{"shape":"ETag"},
244        "LastModified":{"shape":"TimeStamp"},
245        "ContentType":{"shape":"ContentType"},
246        "ContentLength":{"shape":"NonNegativeLong"}
247      }
248    },
249    "ItemList":{
250      "type":"list",
251      "member":{"shape":"Item"}
252    },
253    "ItemName":{
254      "type":"string",
255      "pattern":"[A-Za-z0-9_\\.\\-\\~]+"
256    },
257    "ItemType":{
258      "type":"string",
259      "enum":[
260        "OBJECT",
261        "FOLDER"
262      ]
263    },
264    "ListItemsRequest":{
265      "type":"structure",
266      "members":{
267        "Path":{
268          "shape":"ListPathNaming",
269          "location":"querystring",
270          "locationName":"Path"
271        },
272        "MaxResults":{
273          "shape":"ListLimit",
274          "location":"querystring",
275          "locationName":"MaxResults"
276        },
277        "NextToken":{
278          "shape":"PaginationToken",
279          "location":"querystring",
280          "locationName":"NextToken"
281        }
282      }
283    },
284    "ListItemsResponse":{
285      "type":"structure",
286      "members":{
287        "Items":{"shape":"ItemList"},
288        "NextToken":{"shape":"PaginationToken"}
289      }
290    },
291    "ListLimit":{
292      "type":"integer",
293      "max":1000,
294      "min":1
295    },
296    "ListPathNaming":{
297      "type":"string",
298      "max":900,
299      "min":0,
300      "pattern":"/?(?:[A-Za-z0-9_\\.\\-\\~]+/){0,10}(?:[A-Za-z0-9_\\.\\-\\~]+)?/?"
301    },
302    "NonNegativeLong":{
303      "type":"long",
304      "min":0
305    },
306    "ObjectNotFoundException":{
307      "type":"structure",
308      "members":{
309        "Message":{"shape":"ErrorMessage"}
310      },
311      "error":{"httpStatusCode":404},
312      "exception":true
313    },
314    "PaginationToken":{"type":"string"},
315    "PathNaming":{
316      "type":"string",
317      "max":900,
318      "min":1,
319      "pattern":"(?:[A-Za-z0-9_\\.\\-\\~]+/){0,10}[A-Za-z0-9_\\.\\-\\~]+"
320    },
321    "PayloadBlob":{
322      "type":"blob",
323      "streaming":true
324    },
325    "PutObjectRequest":{
326      "type":"structure",
327      "required":[
328        "Body",
329        "Path"
330      ],
331      "members":{
332        "Body":{"shape":"PayloadBlob"},
333        "Path":{
334          "shape":"PathNaming",
335          "location":"uri",
336          "locationName":"Path"
337        },
338        "ContentType":{
339          "shape":"ContentType",
340          "location":"header",
341          "locationName":"Content-Type"
342        },
343        "CacheControl":{
344          "shape":"StringPrimitive",
345          "location":"header",
346          "locationName":"Cache-Control"
347        },
348        "StorageClass":{
349          "shape":"StorageClass",
350          "location":"header",
351          "locationName":"x-amz-storage-class"
352        },
353        "UploadAvailability":{
354          "shape":"UploadAvailability",
355          "location":"header",
356          "locationName":"x-amz-upload-availability"
357        }
358      },
359      "payload":"Body"
360    },
361    "PutObjectResponse":{
362      "type":"structure",
363      "members":{
364        "ContentSHA256":{"shape":"SHA256Hash"},
365        "ETag":{"shape":"ETag"},
366        "StorageClass":{"shape":"StorageClass"}
367      }
368    },
369    "RangePattern":{
370      "type":"string",
371      "pattern":"^bytes=(?:\\d+\\-\\d*|\\d*\\-\\d+)$"
372    },
373    "RequestedRangeNotSatisfiableException":{
374      "type":"structure",
375      "members":{
376        "Message":{"shape":"ErrorMessage"}
377      },
378      "error":{"httpStatusCode":416},
379      "exception":true
380    },
381    "SHA256Hash":{
382      "type":"string",
383      "max":64,
384      "min":64,
385      "pattern":"[0-9A-Fa-f]{64}"
386    },
387    "StorageClass":{
388      "type":"string",
389      "enum":["TEMPORAL"],
390      "max":16,
391      "min":1
392    },
393    "StringPrimitive":{"type":"string"},
394    "TimeStamp":{"type":"timestamp"},
395    "UploadAvailability":{
396      "type":"string",
397      "enum":[
398        "STANDARD",
399        "STREAMING"
400      ],
401      "max":16,
402      "min":1
403    },
404    "statusCode":{"type":"integer"}
405  }
406}
407