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      "documentation":"<p>Creates a Fleet Hub for AWS IoT Device Management web application.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
31    },
32    "DeleteApplication":{
33      "name":"DeleteApplication",
34      "http":{
35        "method":"DELETE",
36        "requestUri":"/applications/{applicationId}",
37        "responseCode":204
38      },
39      "input":{"shape":"DeleteApplicationRequest"},
40      "output":{"shape":"DeleteApplicationResponse"},
41      "errors":[
42        {"shape":"InvalidRequestException"},
43        {"shape":"ResourceNotFoundException"},
44        {"shape":"InternalFailureException"},
45        {"shape":"ThrottlingException"}
46      ],
47      "documentation":"<p>Deletes a Fleet Hub for AWS IoT Device Management web application.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
48    },
49    "DescribeApplication":{
50      "name":"DescribeApplication",
51      "http":{
52        "method":"GET",
53        "requestUri":"/applications/{applicationId}",
54        "responseCode":200
55      },
56      "input":{"shape":"DescribeApplicationRequest"},
57      "output":{"shape":"DescribeApplicationResponse"},
58      "errors":[
59        {"shape":"InvalidRequestException"},
60        {"shape":"ResourceNotFoundException"},
61        {"shape":"InternalFailureException"},
62        {"shape":"ThrottlingException"}
63      ],
64      "documentation":"<p>Gets information about a Fleet Hub for AWS IoT Device Management web application.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
65    },
66    "ListApplications":{
67      "name":"ListApplications",
68      "http":{
69        "method":"GET",
70        "requestUri":"/applications",
71        "responseCode":200
72      },
73      "input":{"shape":"ListApplicationsRequest"},
74      "output":{"shape":"ListApplicationsResponse"},
75      "errors":[
76        {"shape":"InvalidRequestException"},
77        {"shape":"InternalFailureException"},
78        {"shape":"ThrottlingException"}
79      ],
80      "documentation":"<p>Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current account.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
81    },
82    "ListTagsForResource":{
83      "name":"ListTagsForResource",
84      "http":{
85        "method":"GET",
86        "requestUri":"/tags/{resourceArn}"
87      },
88      "input":{"shape":"ListTagsForResourceRequest"},
89      "output":{"shape":"ListTagsForResourceResponse"},
90      "errors":[
91        {"shape":"InternalFailureException"},
92        {"shape":"InvalidRequestException"},
93        {"shape":"ResourceNotFoundException"}
94      ],
95      "documentation":"<p>Lists the tags for the specified resource.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
96    },
97    "TagResource":{
98      "name":"TagResource",
99      "http":{
100        "method":"POST",
101        "requestUri":"/tags/{resourceArn}"
102      },
103      "input":{"shape":"TagResourceRequest"},
104      "output":{"shape":"TagResourceResponse"},
105      "errors":[
106        {"shape":"InternalFailureException"},
107        {"shape":"InvalidRequestException"},
108        {"shape":"ResourceNotFoundException"}
109      ],
110      "documentation":"<p>Adds to or modifies the tags of the specified resource. Tags are metadata which can be used to manage a resource.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
111    },
112    "UntagResource":{
113      "name":"UntagResource",
114      "http":{
115        "method":"DELETE",
116        "requestUri":"/tags/{resourceArn}"
117      },
118      "input":{"shape":"UntagResourceRequest"},
119      "output":{"shape":"UntagResourceResponse"},
120      "errors":[
121        {"shape":"InternalFailureException"},
122        {"shape":"InvalidRequestException"},
123        {"shape":"ResourceNotFoundException"}
124      ],
125      "documentation":"<p>Removes the specified tags (metadata) from the resource.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
126    },
127    "UpdateApplication":{
128      "name":"UpdateApplication",
129      "http":{
130        "method":"PATCH",
131        "requestUri":"/applications/{applicationId}",
132        "responseCode":202
133      },
134      "input":{"shape":"UpdateApplicationRequest"},
135      "output":{"shape":"UpdateApplicationResponse"},
136      "errors":[
137        {"shape":"InvalidRequestException"},
138        {"shape":"ResourceNotFoundException"},
139        {"shape":"InternalFailureException"},
140        {"shape":"ConflictException"},
141        {"shape":"ThrottlingException"}
142      ],
143      "documentation":"<p>Updates information about a Fleet Hub for a AWS IoT Device Management web application.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
144    }
145  },
146  "shapes":{
147    "ApplicationState":{
148      "type":"string",
149      "enum":[
150        "CREATING",
151        "DELETING",
152        "ACTIVE",
153        "CREATE_FAILED",
154        "DELETE_FAILED"
155      ]
156    },
157    "ApplicationSummaries":{
158      "type":"list",
159      "member":{"shape":"ApplicationSummary"}
160    },
161    "ApplicationSummary":{
162      "type":"structure",
163      "required":[
164        "applicationId",
165        "applicationName",
166        "applicationUrl"
167      ],
168      "members":{
169        "applicationId":{
170          "shape":"Id",
171          "documentation":"<p>The unique Id of the web application.</p>"
172        },
173        "applicationName":{
174          "shape":"Name",
175          "documentation":"<p>The name of the web application.</p>"
176        },
177        "applicationDescription":{
178          "shape":"Description",
179          "documentation":"<p>An optional description of the web application.</p>"
180        },
181        "applicationUrl":{
182          "shape":"Url",
183          "documentation":"<p>The URL of the web application.</p>"
184        },
185        "applicationCreationDate":{
186          "shape":"Timestamp",
187          "documentation":"<p>The date (in Unix epoch time) when the web application was created.</p>"
188        },
189        "applicationLastUpdateDate":{
190          "shape":"Timestamp",
191          "documentation":"<p>The date (in Unix epoch time) when the web application was last updated.</p>"
192        },
193        "applicationState":{
194          "shape":"ApplicationState",
195          "documentation":"<p>The current state of the web application.</p>"
196        }
197      },
198      "documentation":"<p>A summary of information about a AWS IoT Device Management web application.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
199    },
200    "Arn":{
201      "type":"string",
202      "max":1600,
203      "min":1,
204      "pattern":"^arn:[!-~]+$"
205    },
206    "ClientRequestToken":{
207      "type":"string",
208      "max":64,
209      "min":1,
210      "pattern":"^[a-zA-Z0-9-_]+$"
211    },
212    "ConflictException":{
213      "type":"structure",
214      "members":{
215        "message":{"shape":"errorMessage"}
216      },
217      "documentation":"<p>The request conflicts with the current state of the resource.</p>",
218      "error":{"httpStatusCode":409},
219      "exception":true
220    },
221    "CreateApplicationRequest":{
222      "type":"structure",
223      "required":[
224        "applicationName",
225        "roleArn"
226      ],
227      "members":{
228        "applicationName":{
229          "shape":"Name",
230          "documentation":"<p>The name of the web application.</p>"
231        },
232        "applicationDescription":{
233          "shape":"Description",
234          "documentation":"<p>An optional description of the web application.</p>"
235        },
236        "clientToken":{
237          "shape":"ClientRequestToken",
238          "documentation":"<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
239          "idempotencyToken":true
240        },
241        "roleArn":{
242          "shape":"Arn",
243          "documentation":"<p>The ARN of the role that the web application assumes when it interacts with AWS IoT Core.</p> <note> <p>The name of the role must be in the form <code>AWSIotFleetHub_<i>random_string</i> </code>.</p> </note>"
244        },
245        "tags":{
246          "shape":"TagMap",
247          "documentation":"<p>A set of key/value pairs that you can use to manage the web application resource.</p>"
248        }
249      }
250    },
251    "CreateApplicationResponse":{
252      "type":"structure",
253      "required":[
254        "applicationId",
255        "applicationArn"
256      ],
257      "members":{
258        "applicationId":{
259          "shape":"Id",
260          "documentation":"<p>The unique Id of the web application.</p>"
261        },
262        "applicationArn":{
263          "shape":"Arn",
264          "documentation":"<p>The ARN of the web application.</p>"
265        }
266      }
267    },
268    "DeleteApplicationRequest":{
269      "type":"structure",
270      "required":["applicationId"],
271      "members":{
272        "applicationId":{
273          "shape":"Id",
274          "documentation":"<p>The unique Id of the web application.</p>",
275          "location":"uri",
276          "locationName":"applicationId"
277        },
278        "clientToken":{
279          "shape":"ClientRequestToken",
280          "documentation":"<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
281          "idempotencyToken":true,
282          "location":"querystring",
283          "locationName":"clientToken"
284        }
285      }
286    },
287    "DeleteApplicationResponse":{
288      "type":"structure",
289      "members":{
290      }
291    },
292    "DescribeApplicationRequest":{
293      "type":"structure",
294      "required":["applicationId"],
295      "members":{
296        "applicationId":{
297          "shape":"Id",
298          "documentation":"<p>The unique Id of the web application.</p>",
299          "location":"uri",
300          "locationName":"applicationId"
301        }
302      }
303    },
304    "DescribeApplicationResponse":{
305      "type":"structure",
306      "required":[
307        "applicationId",
308        "applicationArn",
309        "applicationName",
310        "applicationUrl",
311        "applicationState",
312        "applicationCreationDate",
313        "applicationLastUpdateDate",
314        "roleArn"
315      ],
316      "members":{
317        "applicationId":{
318          "shape":"Id",
319          "documentation":"<p>The unique Id of the web application.</p>"
320        },
321        "applicationArn":{
322          "shape":"Arn",
323          "documentation":"<p>The ARN of the web application.</p>"
324        },
325        "applicationName":{
326          "shape":"Name",
327          "documentation":"<p>The name of the web application.</p>"
328        },
329        "applicationDescription":{
330          "shape":"Description",
331          "documentation":"<p>An optional description of the web application.</p>"
332        },
333        "applicationUrl":{
334          "shape":"Url",
335          "documentation":"<p>The URL of the web application.</p>"
336        },
337        "applicationState":{
338          "shape":"ApplicationState",
339          "documentation":"<p>The current state of the web application.</p>"
340        },
341        "applicationCreationDate":{
342          "shape":"Timestamp",
343          "documentation":"<p>The date (in Unix epoch time) when the application was created.</p>"
344        },
345        "applicationLastUpdateDate":{
346          "shape":"Timestamp",
347          "documentation":"<p>The date (in Unix epoch time) when the application was last updated.</p>"
348        },
349        "roleArn":{
350          "shape":"Arn",
351          "documentation":"<p>The ARN of the role that the web application assumes when it interacts with AWS IoT Core.</p>"
352        },
353        "ssoClientId":{
354          "shape":"SsoClientId",
355          "documentation":"<p>The Id of the single sign-on client that you use to authenticate and authorize users on the web application.</p>"
356        },
357        "errorMessage":{
358          "shape":"ErrorMessage",
359          "documentation":"<p>A message indicating why the <code>DescribeApplication</code> API failed.</p>"
360        },
361        "tags":{
362          "shape":"TagMap",
363          "documentation":"<p>A set of key/value pairs that you can use to manage the web application resource.</p>"
364        }
365      }
366    },
367    "Description":{
368      "type":"string",
369      "max":2048,
370      "min":1,
371      "pattern":"^[ -~]*$"
372    },
373    "ErrorMessage":{"type":"string"},
374    "Id":{
375      "type":"string",
376      "max":36,
377      "min":36,
378      "pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
379    },
380    "InternalFailureException":{
381      "type":"structure",
382      "members":{
383        "message":{"shape":"errorMessage"}
384      },
385      "documentation":"<p>An unexpected error has occurred.</p>",
386      "error":{"httpStatusCode":500},
387      "exception":true,
388      "fault":true
389    },
390    "InvalidRequestException":{
391      "type":"structure",
392      "members":{
393        "message":{"shape":"errorMessage"}
394      },
395      "documentation":"<p>The request is not valid.</p>",
396      "error":{"httpStatusCode":400},
397      "exception":true
398    },
399    "LimitExceededException":{
400      "type":"structure",
401      "members":{
402        "message":{"shape":"errorMessage"}
403      },
404      "documentation":"<p>A limit has been exceeded.</p>",
405      "error":{"httpStatusCode":410},
406      "exception":true
407    },
408    "ListApplicationsRequest":{
409      "type":"structure",
410      "members":{
411        "nextToken":{
412          "shape":"NextToken",
413          "documentation":"<p>A token used to get the next set of results.</p>",
414          "location":"querystring",
415          "locationName":"nextToken"
416        }
417      }
418    },
419    "ListApplicationsResponse":{
420      "type":"structure",
421      "members":{
422        "applicationSummaries":{
423          "shape":"ApplicationSummaries",
424          "documentation":"<p>An array of objects that provide summaries of information about the web applications in the list.</p>"
425        },
426        "nextToken":{
427          "shape":"NextToken",
428          "documentation":"<p>A token used to get the next set of results.</p>"
429        }
430      }
431    },
432    "ListTagsForResourceRequest":{
433      "type":"structure",
434      "required":["resourceArn"],
435      "members":{
436        "resourceArn":{
437          "shape":"ResourceArn",
438          "documentation":"<p>The ARN of the resource.</p>",
439          "location":"uri",
440          "locationName":"resourceArn"
441        }
442      }
443    },
444    "ListTagsForResourceResponse":{
445      "type":"structure",
446      "members":{
447        "tags":{
448          "shape":"TagMap",
449          "documentation":"<p>The list of tags assigned to the resource.</p>"
450        }
451      }
452    },
453    "Name":{
454      "type":"string",
455      "max":100,
456      "min":1,
457      "pattern":"^[ -~]*$"
458    },
459    "NextToken":{
460      "type":"string",
461      "max":2048,
462      "min":1,
463      "pattern":"^[A-Za-z0-9+/=]+$"
464    },
465    "ResourceArn":{"type":"string"},
466    "ResourceNotFoundException":{
467      "type":"structure",
468      "members":{
469        "message":{"shape":"errorMessage"}
470      },
471      "documentation":"<p>The specified resource does not exist.</p>",
472      "error":{"httpStatusCode":404},
473      "exception":true
474    },
475    "SsoClientId":{"type":"string"},
476    "TagKey":{
477      "type":"string",
478      "max":128,
479      "min":1,
480      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
481    },
482    "TagKeyList":{
483      "type":"list",
484      "member":{"shape":"TagKey"}
485    },
486    "TagMap":{
487      "type":"map",
488      "key":{"shape":"TagKey"},
489      "value":{"shape":"TagValue"},
490      "max":50,
491      "min":1
492    },
493    "TagResourceRequest":{
494      "type":"structure",
495      "required":[
496        "resourceArn",
497        "tags"
498      ],
499      "members":{
500        "resourceArn":{
501          "shape":"ResourceArn",
502          "documentation":"<p>The ARN of the resource.</p>",
503          "location":"uri",
504          "locationName":"resourceArn"
505        },
506        "tags":{
507          "shape":"TagMap",
508          "documentation":"<p>The new or modified tags for the resource.</p>"
509        }
510      }
511    },
512    "TagResourceResponse":{
513      "type":"structure",
514      "members":{
515      }
516    },
517    "TagValue":{
518      "type":"string",
519      "max":256,
520      "min":1
521    },
522    "ThrottlingException":{
523      "type":"structure",
524      "members":{
525        "message":{"shape":"errorMessage"}
526      },
527      "documentation":"<p>The rate exceeds the limit.</p>",
528      "error":{"httpStatusCode":400},
529      "exception":true
530    },
531    "Timestamp":{"type":"long"},
532    "UntagResourceRequest":{
533      "type":"structure",
534      "required":[
535        "resourceArn",
536        "tagKeys"
537      ],
538      "members":{
539        "resourceArn":{
540          "shape":"ResourceArn",
541          "documentation":"<p>The ARN of the resource.</p>",
542          "location":"uri",
543          "locationName":"resourceArn"
544        },
545        "tagKeys":{
546          "shape":"TagKeyList",
547          "documentation":"<p>A list of the keys of the tags to be removed from the resource.</p>",
548          "location":"querystring",
549          "locationName":"tagKeys"
550        }
551      }
552    },
553    "UntagResourceResponse":{
554      "type":"structure",
555      "members":{
556      }
557    },
558    "UpdateApplicationRequest":{
559      "type":"structure",
560      "required":["applicationId"],
561      "members":{
562        "applicationId":{
563          "shape":"Id",
564          "documentation":"<p>The unique Id of the web application.</p>",
565          "location":"uri",
566          "locationName":"applicationId"
567        },
568        "applicationName":{
569          "shape":"Name",
570          "documentation":"<p>The name of the web application.</p>"
571        },
572        "applicationDescription":{
573          "shape":"Description",
574          "documentation":"<p>An optional description of the web application.</p>"
575        },
576        "clientToken":{
577          "shape":"ClientRequestToken",
578          "documentation":"<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
579          "idempotencyToken":true
580        }
581      }
582    },
583    "UpdateApplicationResponse":{
584      "type":"structure",
585      "members":{
586      }
587    },
588    "Url":{
589      "type":"string",
590      "max":256,
591      "min":1,
592      "pattern":"^https\\://\\S+$"
593    },
594    "errorMessage":{"type":"string"}
595  },
596  "documentation":"<p>With Fleet Hub for AWS IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets.</p> <note> <p>Fleet Hub for AWS IoT Device Management is in public preview and is subject to change.</p> </note>"
597}
598