1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2017-09-30",
5    "endpointPrefix":"kinesisvideo",
6    "protocol":"rest-json",
7    "serviceAbbreviation":"Kinesis Video Archived Media",
8    "serviceFullName":"Amazon Kinesis Video Streams Archived Media",
9    "serviceId":"Kinesis Video Archived Media",
10    "signatureVersion":"v4",
11    "uid":"kinesis-video-archived-media-2017-09-30"
12  },
13  "operations":{
14    "GetHLSStreamingSessionURL":{
15      "name":"GetHLSStreamingSessionURL",
16      "http":{
17        "method":"POST",
18        "requestUri":"/getHLSStreamingSessionURL"
19      },
20      "input":{"shape":"GetHLSStreamingSessionURLInput"},
21      "output":{"shape":"GetHLSStreamingSessionURLOutput"},
22      "errors":[
23        {"shape":"ResourceNotFoundException"},
24        {"shape":"InvalidArgumentException"},
25        {"shape":"ClientLimitExceededException"},
26        {"shape":"NotAuthorizedException"},
27        {"shape":"UnsupportedStreamMediaTypeException"},
28        {"shape":"NoDataRetentionException"},
29        {"shape":"MissingCodecPrivateDataException"},
30        {"shape":"InvalidCodecPrivateDataException"}
31      ]
32    },
33    "GetMediaForFragmentList":{
34      "name":"GetMediaForFragmentList",
35      "http":{
36        "method":"POST",
37        "requestUri":"/getMediaForFragmentList"
38      },
39      "input":{"shape":"GetMediaForFragmentListInput"},
40      "output":{"shape":"GetMediaForFragmentListOutput"},
41      "errors":[
42        {"shape":"ResourceNotFoundException"},
43        {"shape":"InvalidArgumentException"},
44        {"shape":"ClientLimitExceededException"},
45        {"shape":"NotAuthorizedException"}
46      ]
47    },
48    "ListFragments":{
49      "name":"ListFragments",
50      "http":{
51        "method":"POST",
52        "requestUri":"/listFragments"
53      },
54      "input":{"shape":"ListFragmentsInput"},
55      "output":{"shape":"ListFragmentsOutput"},
56      "errors":[
57        {"shape":"ResourceNotFoundException"},
58        {"shape":"InvalidArgumentException"},
59        {"shape":"ClientLimitExceededException"},
60        {"shape":"NotAuthorizedException"}
61      ]
62    }
63  },
64  "shapes":{
65    "ClientLimitExceededException":{
66      "type":"structure",
67      "members":{
68        "Message":{"shape":"ErrorMessage"}
69      },
70      "error":{"httpStatusCode":400},
71      "exception":true
72    },
73    "ContentType":{
74      "type":"string",
75      "max":128,
76      "min":1,
77      "pattern":"^[a-zA-Z0-9_\\.\\-]+$"
78    },
79    "DiscontinuityMode":{
80      "type":"string",
81      "enum":[
82        "ALWAYS",
83        "NEVER"
84      ]
85    },
86    "ErrorMessage":{"type":"string"},
87    "Expires":{
88      "type":"integer",
89      "max":43200,
90      "min":300
91    },
92    "Fragment":{
93      "type":"structure",
94      "members":{
95        "FragmentNumber":{"shape":"String"},
96        "FragmentSizeInBytes":{"shape":"Long"},
97        "ProducerTimestamp":{"shape":"Timestamp"},
98        "ServerTimestamp":{"shape":"Timestamp"},
99        "FragmentLengthInMilliseconds":{"shape":"Long"}
100      }
101    },
102    "FragmentList":{
103      "type":"list",
104      "member":{"shape":"Fragment"}
105    },
106    "FragmentNumberList":{
107      "type":"list",
108      "member":{"shape":"FragmentNumberString"},
109      "max":1000,
110      "min":1
111    },
112    "FragmentNumberString":{
113      "type":"string",
114      "max":128,
115      "min":1,
116      "pattern":"^[0-9]+$"
117    },
118    "FragmentSelector":{
119      "type":"structure",
120      "required":[
121        "FragmentSelectorType",
122        "TimestampRange"
123      ],
124      "members":{
125        "FragmentSelectorType":{"shape":"FragmentSelectorType"},
126        "TimestampRange":{"shape":"TimestampRange"}
127      }
128    },
129    "FragmentSelectorType":{
130      "type":"string",
131      "enum":[
132        "PRODUCER_TIMESTAMP",
133        "SERVER_TIMESTAMP"
134      ]
135    },
136    "GetHLSStreamingSessionURLInput":{
137      "type":"structure",
138      "members":{
139        "StreamName":{"shape":"StreamName"},
140        "StreamARN":{"shape":"ResourceARN"},
141        "PlaybackMode":{"shape":"PlaybackMode"},
142        "HLSFragmentSelector":{"shape":"HLSFragmentSelector"},
143        "DiscontinuityMode":{"shape":"DiscontinuityMode"},
144        "Expires":{"shape":"Expires"},
145        "MaxMediaPlaylistFragmentResults":{"shape":"PageLimit"}
146      }
147    },
148    "GetHLSStreamingSessionURLOutput":{
149      "type":"structure",
150      "members":{
151        "HLSStreamingSessionURL":{"shape":"HLSStreamingSessionURL"}
152      }
153    },
154    "GetMediaForFragmentListInput":{
155      "type":"structure",
156      "required":[
157        "StreamName",
158        "Fragments"
159      ],
160      "members":{
161        "StreamName":{"shape":"StreamName"},
162        "Fragments":{"shape":"FragmentNumberList"}
163      }
164    },
165    "GetMediaForFragmentListOutput":{
166      "type":"structure",
167      "members":{
168        "ContentType":{
169          "shape":"ContentType",
170          "location":"header",
171          "locationName":"Content-Type"
172        },
173        "Payload":{"shape":"Payload"}
174      },
175      "payload":"Payload"
176    },
177    "HLSFragmentSelector":{
178      "type":"structure",
179      "members":{
180        "FragmentSelectorType":{"shape":"HLSFragmentSelectorType"},
181        "TimestampRange":{"shape":"HLSTimestampRange"}
182      }
183    },
184    "HLSFragmentSelectorType":{
185      "type":"string",
186      "enum":[
187        "PRODUCER_TIMESTAMP",
188        "SERVER_TIMESTAMP"
189      ]
190    },
191    "HLSStreamingSessionURL":{"type":"string"},
192    "HLSTimestampRange":{
193      "type":"structure",
194      "members":{
195        "StartTimestamp":{"shape":"Timestamp"},
196        "EndTimestamp":{"shape":"Timestamp"}
197      }
198    },
199    "InvalidArgumentException":{
200      "type":"structure",
201      "members":{
202        "Message":{"shape":"ErrorMessage"}
203      },
204      "error":{"httpStatusCode":400},
205      "exception":true
206    },
207    "InvalidCodecPrivateDataException":{
208      "type":"structure",
209      "members":{
210        "Message":{"shape":"ErrorMessage"}
211      },
212      "error":{"httpStatusCode":400},
213      "exception":true
214    },
215    "ListFragmentsInput":{
216      "type":"structure",
217      "required":["StreamName"],
218      "members":{
219        "StreamName":{"shape":"StreamName"},
220        "MaxResults":{"shape":"PageLimit"},
221        "NextToken":{"shape":"String"},
222        "FragmentSelector":{"shape":"FragmentSelector"}
223      }
224    },
225    "ListFragmentsOutput":{
226      "type":"structure",
227      "members":{
228        "Fragments":{"shape":"FragmentList"},
229        "NextToken":{"shape":"String"}
230      }
231    },
232    "Long":{"type":"long"},
233    "MissingCodecPrivateDataException":{
234      "type":"structure",
235      "members":{
236        "Message":{"shape":"ErrorMessage"}
237      },
238      "error":{"httpStatusCode":400},
239      "exception":true
240    },
241    "NoDataRetentionException":{
242      "type":"structure",
243      "members":{
244        "Message":{"shape":"ErrorMessage"}
245      },
246      "error":{"httpStatusCode":400},
247      "exception":true
248    },
249    "NotAuthorizedException":{
250      "type":"structure",
251      "members":{
252        "Message":{"shape":"ErrorMessage"}
253      },
254      "error":{"httpStatusCode":401},
255      "exception":true
256    },
257    "PageLimit":{
258      "type":"long",
259      "max":1000,
260      "min":1
261    },
262    "Payload":{
263      "type":"blob",
264      "streaming":true
265    },
266    "PlaybackMode":{
267      "type":"string",
268      "enum":[
269        "LIVE",
270        "ON_DEMAND"
271      ]
272    },
273    "ResourceARN":{
274      "type":"string",
275      "max":1024,
276      "min":1,
277      "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+"
278    },
279    "ResourceNotFoundException":{
280      "type":"structure",
281      "members":{
282        "Message":{"shape":"ErrorMessage"}
283      },
284      "error":{"httpStatusCode":404},
285      "exception":true
286    },
287    "StreamName":{
288      "type":"string",
289      "max":256,
290      "min":1,
291      "pattern":"[a-zA-Z0-9_.-]+"
292    },
293    "String":{
294      "type":"string",
295      "min":1
296    },
297    "Timestamp":{"type":"timestamp"},
298    "TimestampRange":{
299      "type":"structure",
300      "required":[
301        "StartTimestamp",
302        "EndTimestamp"
303      ],
304      "members":{
305        "StartTimestamp":{"shape":"Timestamp"},
306        "EndTimestamp":{"shape":"Timestamp"}
307      }
308    },
309    "UnsupportedStreamMediaTypeException":{
310      "type":"structure",
311      "members":{
312        "Message":{"shape":"ErrorMessage"}
313      },
314      "error":{"httpStatusCode":400},
315      "exception":true
316    }
317  }
318}
319