1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2017-09-30",
5    "endpointPrefix":"kinesisvideo",
6    "protocol":"rest-json",
7    "serviceAbbreviation":"Kinesis Video Media",
8    "serviceFullName":"Amazon Kinesis Video Streams Media",
9    "serviceId":"Kinesis Video Media",
10    "signatureVersion":"v4",
11    "uid":"kinesis-video-media-2017-09-30"
12  },
13  "operations":{
14    "GetMedia":{
15      "name":"GetMedia",
16      "http":{
17        "method":"POST",
18        "requestUri":"/getMedia"
19      },
20      "input":{"shape":"GetMediaInput"},
21      "output":{"shape":"GetMediaOutput"},
22      "errors":[
23        {"shape":"ResourceNotFoundException"},
24        {"shape":"NotAuthorizedException"},
25        {"shape":"InvalidEndpointException"},
26        {"shape":"ClientLimitExceededException"},
27        {"shape":"ConnectionLimitExceededException"},
28        {"shape":"InvalidArgumentException"}
29      ]
30    }
31  },
32  "shapes":{
33    "ClientLimitExceededException":{
34      "type":"structure",
35      "members":{
36        "Message":{"shape":"ErrorMessage"}
37      },
38      "error":{"httpStatusCode":400},
39      "exception":true
40    },
41    "ConnectionLimitExceededException":{
42      "type":"structure",
43      "members":{
44        "Message":{"shape":"ErrorMessage"}
45      },
46      "error":{"httpStatusCode":400},
47      "exception":true
48    },
49    "ContentType":{
50      "type":"string",
51      "max":128,
52      "min":1,
53      "pattern":"^[a-zA-Z0-9_\\.\\-]+$"
54    },
55    "ContinuationToken":{
56      "type":"string",
57      "max":128,
58      "min":1,
59      "pattern":"^[a-zA-Z0-9_\\.\\-]+$"
60    },
61    "ErrorMessage":{"type":"string"},
62    "FragmentNumberString":{
63      "type":"string",
64      "max":128,
65      "min":1,
66      "pattern":"^[0-9]+$"
67    },
68    "GetMediaInput":{
69      "type":"structure",
70      "required":["StartSelector"],
71      "members":{
72        "StreamName":{"shape":"StreamName"},
73        "StreamARN":{"shape":"ResourceARN"},
74        "StartSelector":{"shape":"StartSelector"}
75      }
76    },
77    "GetMediaOutput":{
78      "type":"structure",
79      "members":{
80        "ContentType":{
81          "shape":"ContentType",
82          "location":"header",
83          "locationName":"Content-Type"
84        },
85        "Payload":{"shape":"Payload"}
86      },
87      "payload":"Payload"
88    },
89    "InvalidArgumentException":{
90      "type":"structure",
91      "members":{
92        "Message":{"shape":"ErrorMessage"}
93      },
94      "error":{"httpStatusCode":400},
95      "exception":true
96    },
97    "InvalidEndpointException":{
98      "type":"structure",
99      "members":{
100        "Message":{"shape":"ErrorMessage"}
101      },
102      "error":{"httpStatusCode":400},
103      "exception":true
104    },
105    "NotAuthorizedException":{
106      "type":"structure",
107      "members":{
108        "Message":{"shape":"ErrorMessage"}
109      },
110      "error":{"httpStatusCode":401},
111      "exception":true
112    },
113    "Payload":{
114      "type":"blob",
115      "streaming":true
116    },
117    "ResourceARN":{
118      "type":"string",
119      "max":1024,
120      "min":1,
121      "pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+"
122    },
123    "ResourceNotFoundException":{
124      "type":"structure",
125      "members":{
126        "Message":{"shape":"ErrorMessage"}
127      },
128      "error":{"httpStatusCode":404},
129      "exception":true
130    },
131    "StartSelector":{
132      "type":"structure",
133      "required":["StartSelectorType"],
134      "members":{
135        "StartSelectorType":{"shape":"StartSelectorType"},
136        "AfterFragmentNumber":{"shape":"FragmentNumberString"},
137        "StartTimestamp":{"shape":"Timestamp"},
138        "ContinuationToken":{"shape":"ContinuationToken"}
139      }
140    },
141    "StartSelectorType":{
142      "type":"string",
143      "enum":[
144        "FRAGMENT_NUMBER",
145        "SERVER_TIMESTAMP",
146        "PRODUCER_TIMESTAMP",
147        "NOW",
148        "EARLIEST",
149        "CONTINUATION_TOKEN"
150      ]
151    },
152    "StreamName":{
153      "type":"string",
154      "max":256,
155      "min":1,
156      "pattern":"[a-zA-Z0-9_.-]+"
157    },
158    "Timestamp":{"type":"timestamp"}
159  }
160}
161