1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2020-11-03",
5    "endpointPrefix":"api.fleethub.iot",
6    "jsonVersion":"1.1",
7    "protocol":"rest-json",
8    "serviceFullName":"AWS IoT Fleet Hub",
9    "serviceId":"IoTFleetHub",
10    "signatureVersion":"v4",
11    "signingName":"iotfleethub",
12    "uid":"iotfleethub-2020-11-03"
13  },
14  "operations":{
15    "CreateApplication":{
16      "name":"CreateApplication",
17      "http":{
18        "method":"POST",
19        "requestUri":"/applications",
20        "responseCode":201
21      },
22      "input":{"shape":"CreateApplicationRequest"},
23      "output":{"shape":"CreateApplicationResponse"},
24      "errors":[
25        {"shape":"InvalidRequestException"},
26        {"shape":"InternalFailureException"},
27        {"shape":"ThrottlingException"},
28        {"shape":"LimitExceededException"}
29      ]
30    },
31    "DeleteApplication":{
32      "name":"DeleteApplication",
33      "http":{
34        "method":"DELETE",
35        "requestUri":"/applications/{applicationId}",
36        "responseCode":204
37      },
38      "input":{"shape":"DeleteApplicationRequest"},
39      "output":{"shape":"DeleteApplicationResponse"},
40      "errors":[
41        {"shape":"InvalidRequestException"},
42        {"shape":"ResourceNotFoundException"},
43        {"shape":"InternalFailureException"},
44        {"shape":"ThrottlingException"}
45      ]
46    },
47    "DescribeApplication":{
48      "name":"DescribeApplication",
49      "http":{
50        "method":"GET",
51        "requestUri":"/applications/{applicationId}",
52        "responseCode":200
53      },
54      "input":{"shape":"DescribeApplicationRequest"},
55      "output":{"shape":"DescribeApplicationResponse"},
56      "errors":[
57        {"shape":"InvalidRequestException"},
58        {"shape":"ResourceNotFoundException"},
59        {"shape":"InternalFailureException"},
60        {"shape":"ThrottlingException"}
61      ]
62    },
63    "ListApplications":{
64      "name":"ListApplications",
65      "http":{
66        "method":"GET",
67        "requestUri":"/applications",
68        "responseCode":200
69      },
70      "input":{"shape":"ListApplicationsRequest"},
71      "output":{"shape":"ListApplicationsResponse"},
72      "errors":[
73        {"shape":"InvalidRequestException"},
74        {"shape":"InternalFailureException"},
75        {"shape":"ThrottlingException"}
76      ]
77    },
78    "ListTagsForResource":{
79      "name":"ListTagsForResource",
80      "http":{
81        "method":"GET",
82        "requestUri":"/tags/{resourceArn}"
83      },
84      "input":{"shape":"ListTagsForResourceRequest"},
85      "output":{"shape":"ListTagsForResourceResponse"},
86      "errors":[
87        {"shape":"InternalFailureException"},
88        {"shape":"InvalidRequestException"},
89        {"shape":"ResourceNotFoundException"}
90      ]
91    },
92    "TagResource":{
93      "name":"TagResource",
94      "http":{
95        "method":"POST",
96        "requestUri":"/tags/{resourceArn}"
97      },
98      "input":{"shape":"TagResourceRequest"},
99      "output":{"shape":"TagResourceResponse"},
100      "errors":[
101        {"shape":"InternalFailureException"},
102        {"shape":"InvalidRequestException"},
103        {"shape":"ResourceNotFoundException"}
104      ]
105    },
106    "UntagResource":{
107      "name":"UntagResource",
108      "http":{
109        "method":"DELETE",
110        "requestUri":"/tags/{resourceArn}"
111      },
112      "input":{"shape":"UntagResourceRequest"},
113      "output":{"shape":"UntagResourceResponse"},
114      "errors":[
115        {"shape":"InternalFailureException"},
116        {"shape":"InvalidRequestException"},
117        {"shape":"ResourceNotFoundException"}
118      ]
119    },
120    "UpdateApplication":{
121      "name":"UpdateApplication",
122      "http":{
123        "method":"PATCH",
124        "requestUri":"/applications/{applicationId}",
125        "responseCode":202
126      },
127      "input":{"shape":"UpdateApplicationRequest"},
128      "output":{"shape":"UpdateApplicationResponse"},
129      "errors":[
130        {"shape":"InvalidRequestException"},
131        {"shape":"ResourceNotFoundException"},
132        {"shape":"InternalFailureException"},
133        {"shape":"ConflictException"},
134        {"shape":"ThrottlingException"}
135      ]
136    }
137  },
138  "shapes":{
139    "ApplicationState":{
140      "type":"string",
141      "enum":[
142        "CREATING",
143        "DELETING",
144        "ACTIVE",
145        "CREATE_FAILED",
146        "DELETE_FAILED"
147      ]
148    },
149    "ApplicationSummaries":{
150      "type":"list",
151      "member":{"shape":"ApplicationSummary"}
152    },
153    "ApplicationSummary":{
154      "type":"structure",
155      "required":[
156        "applicationId",
157        "applicationName",
158        "applicationUrl"
159      ],
160      "members":{
161        "applicationId":{"shape":"Id"},
162        "applicationName":{"shape":"Name"},
163        "applicationDescription":{"shape":"Description"},
164        "applicationUrl":{"shape":"Url"},
165        "applicationCreationDate":{"shape":"Timestamp"},
166        "applicationLastUpdateDate":{"shape":"Timestamp"},
167        "applicationState":{"shape":"ApplicationState"}
168      }
169    },
170    "Arn":{
171      "type":"string",
172      "max":1600,
173      "min":1,
174      "pattern":"^arn:[!-~]+$"
175    },
176    "ClientRequestToken":{
177      "type":"string",
178      "max":64,
179      "min":1,
180      "pattern":"^[a-zA-Z0-9-_]+$"
181    },
182    "ConflictException":{
183      "type":"structure",
184      "members":{
185        "message":{"shape":"errorMessage"}
186      },
187      "error":{"httpStatusCode":409},
188      "exception":true
189    },
190    "CreateApplicationRequest":{
191      "type":"structure",
192      "required":[
193        "applicationName",
194        "roleArn"
195      ],
196      "members":{
197        "applicationName":{"shape":"Name"},
198        "applicationDescription":{"shape":"Description"},
199        "clientToken":{
200          "shape":"ClientRequestToken",
201          "idempotencyToken":true
202        },
203        "roleArn":{"shape":"Arn"},
204        "tags":{"shape":"TagMap"}
205      }
206    },
207    "CreateApplicationResponse":{
208      "type":"structure",
209      "required":[
210        "applicationId",
211        "applicationArn"
212      ],
213      "members":{
214        "applicationId":{"shape":"Id"},
215        "applicationArn":{"shape":"Arn"}
216      }
217    },
218    "DeleteApplicationRequest":{
219      "type":"structure",
220      "required":["applicationId"],
221      "members":{
222        "applicationId":{
223          "shape":"Id",
224          "location":"uri",
225          "locationName":"applicationId"
226        },
227        "clientToken":{
228          "shape":"ClientRequestToken",
229          "idempotencyToken":true,
230          "location":"querystring",
231          "locationName":"clientToken"
232        }
233      }
234    },
235    "DeleteApplicationResponse":{
236      "type":"structure",
237      "members":{
238      }
239    },
240    "DescribeApplicationRequest":{
241      "type":"structure",
242      "required":["applicationId"],
243      "members":{
244        "applicationId":{
245          "shape":"Id",
246          "location":"uri",
247          "locationName":"applicationId"
248        }
249      }
250    },
251    "DescribeApplicationResponse":{
252      "type":"structure",
253      "required":[
254        "applicationId",
255        "applicationArn",
256        "applicationName",
257        "applicationUrl",
258        "applicationState",
259        "applicationCreationDate",
260        "applicationLastUpdateDate",
261        "roleArn"
262      ],
263      "members":{
264        "applicationId":{"shape":"Id"},
265        "applicationArn":{"shape":"Arn"},
266        "applicationName":{"shape":"Name"},
267        "applicationDescription":{"shape":"Description"},
268        "applicationUrl":{"shape":"Url"},
269        "applicationState":{"shape":"ApplicationState"},
270        "applicationCreationDate":{"shape":"Timestamp"},
271        "applicationLastUpdateDate":{"shape":"Timestamp"},
272        "roleArn":{"shape":"Arn"},
273        "ssoClientId":{"shape":"SsoClientId"},
274        "errorMessage":{"shape":"ErrorMessage"},
275        "tags":{"shape":"TagMap"}
276      }
277    },
278    "Description":{
279      "type":"string",
280      "max":2048,
281      "min":1,
282      "pattern":"^[ -~]*$"
283    },
284    "ErrorMessage":{"type":"string"},
285    "Id":{
286      "type":"string",
287      "max":36,
288      "min":36,
289      "pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
290    },
291    "InternalFailureException":{
292      "type":"structure",
293      "members":{
294        "message":{"shape":"errorMessage"}
295      },
296      "error":{"httpStatusCode":500},
297      "exception":true,
298      "fault":true
299    },
300    "InvalidRequestException":{
301      "type":"structure",
302      "members":{
303        "message":{"shape":"errorMessage"}
304      },
305      "error":{"httpStatusCode":400},
306      "exception":true
307    },
308    "LimitExceededException":{
309      "type":"structure",
310      "members":{
311        "message":{"shape":"errorMessage"}
312      },
313      "error":{"httpStatusCode":410},
314      "exception":true
315    },
316    "ListApplicationsRequest":{
317      "type":"structure",
318      "members":{
319        "nextToken":{
320          "shape":"NextToken",
321          "location":"querystring",
322          "locationName":"nextToken"
323        }
324      }
325    },
326    "ListApplicationsResponse":{
327      "type":"structure",
328      "members":{
329        "applicationSummaries":{"shape":"ApplicationSummaries"},
330        "nextToken":{"shape":"NextToken"}
331      }
332    },
333    "ListTagsForResourceRequest":{
334      "type":"structure",
335      "required":["resourceArn"],
336      "members":{
337        "resourceArn":{
338          "shape":"ResourceArn",
339          "location":"uri",
340          "locationName":"resourceArn"
341        }
342      }
343    },
344    "ListTagsForResourceResponse":{
345      "type":"structure",
346      "members":{
347        "tags":{"shape":"TagMap"}
348      }
349    },
350    "Name":{
351      "type":"string",
352      "max":100,
353      "min":1,
354      "pattern":"^[ -~]*$"
355    },
356    "NextToken":{
357      "type":"string",
358      "max":2048,
359      "min":1,
360      "pattern":"^[A-Za-z0-9+/=]+$"
361    },
362    "ResourceArn":{"type":"string"},
363    "ResourceNotFoundException":{
364      "type":"structure",
365      "members":{
366        "message":{"shape":"errorMessage"}
367      },
368      "error":{"httpStatusCode":404},
369      "exception":true
370    },
371    "SsoClientId":{"type":"string"},
372    "TagKey":{
373      "type":"string",
374      "max":128,
375      "min":1,
376      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
377    },
378    "TagKeyList":{
379      "type":"list",
380      "member":{"shape":"TagKey"}
381    },
382    "TagMap":{
383      "type":"map",
384      "key":{"shape":"TagKey"},
385      "value":{"shape":"TagValue"},
386      "max":50,
387      "min":1
388    },
389    "TagResourceRequest":{
390      "type":"structure",
391      "required":[
392        "resourceArn",
393        "tags"
394      ],
395      "members":{
396        "resourceArn":{
397          "shape":"ResourceArn",
398          "location":"uri",
399          "locationName":"resourceArn"
400        },
401        "tags":{"shape":"TagMap"}
402      }
403    },
404    "TagResourceResponse":{
405      "type":"structure",
406      "members":{
407      }
408    },
409    "TagValue":{
410      "type":"string",
411      "max":256,
412      "min":1
413    },
414    "ThrottlingException":{
415      "type":"structure",
416      "members":{
417        "message":{"shape":"errorMessage"}
418      },
419      "error":{"httpStatusCode":400},
420      "exception":true
421    },
422    "Timestamp":{"type":"long"},
423    "UntagResourceRequest":{
424      "type":"structure",
425      "required":[
426        "resourceArn",
427        "tagKeys"
428      ],
429      "members":{
430        "resourceArn":{
431          "shape":"ResourceArn",
432          "location":"uri",
433          "locationName":"resourceArn"
434        },
435        "tagKeys":{
436          "shape":"TagKeyList",
437          "location":"querystring",
438          "locationName":"tagKeys"
439        }
440      }
441    },
442    "UntagResourceResponse":{
443      "type":"structure",
444      "members":{
445      }
446    },
447    "UpdateApplicationRequest":{
448      "type":"structure",
449      "required":["applicationId"],
450      "members":{
451        "applicationId":{
452          "shape":"Id",
453          "location":"uri",
454          "locationName":"applicationId"
455        },
456        "applicationName":{"shape":"Name"},
457        "applicationDescription":{"shape":"Description"},
458        "clientToken":{
459          "shape":"ClientRequestToken",
460          "idempotencyToken":true
461        }
462      }
463    },
464    "UpdateApplicationResponse":{
465      "type":"structure",
466      "members":{
467      }
468    },
469    "Url":{
470      "type":"string",
471      "max":256,
472      "min":1,
473      "pattern":"^https\\://\\S+$"
474    },
475    "errorMessage":{"type":"string"}
476  }
477}
478