1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2022-11-28",
5    "endpointPrefix":"docdb-elastic",
6    "jsonVersion":"1.1",
7    "protocol":"rest-json",
8    "serviceAbbreviation":"DocDB Elastic",
9    "serviceFullName":"Amazon DocumentDB Elastic Clusters",
10    "serviceId":"DocDB Elastic",
11    "signatureVersion":"v4",
12    "signingName":"docdb-elastic",
13    "uid":"docdb-elastic-2022-11-28"
14  },
15  "operations":{
16    "CreateCluster":{
17      "name":"CreateCluster",
18      "http":{
19        "method":"POST",
20        "requestUri":"/cluster",
21        "responseCode":200
22      },
23      "input":{"shape":"CreateClusterInput"},
24      "output":{"shape":"CreateClusterOutput"},
25      "errors":[
26        {"shape":"ThrottlingException"},
27        {"shape":"ValidationException"},
28        {"shape":"ServiceQuotaExceededException"},
29        {"shape":"ConflictException"},
30        {"shape":"InternalServerException"},
31        {"shape":"AccessDeniedException"}
32      ],
33      "documentation":"<p>Creates a new Elastic DocumentDB cluster and returns its Cluster structure.</p>",
34      "idempotent":true
35    },
36    "CreateClusterSnapshot":{
37      "name":"CreateClusterSnapshot",
38      "http":{
39        "method":"POST",
40        "requestUri":"/cluster-snapshot",
41        "responseCode":200
42      },
43      "input":{"shape":"CreateClusterSnapshotInput"},
44      "output":{"shape":"CreateClusterSnapshotOutput"},
45      "errors":[
46        {"shape":"ThrottlingException"},
47        {"shape":"ValidationException"},
48        {"shape":"ServiceQuotaExceededException"},
49        {"shape":"ConflictException"},
50        {"shape":"InternalServerException"},
51        {"shape":"ResourceNotFoundException"},
52        {"shape":"AccessDeniedException"}
53      ],
54      "documentation":"<p>Creates a snapshot of a cluster.</p>",
55      "idempotent":true
56    },
57    "DeleteCluster":{
58      "name":"DeleteCluster",
59      "http":{
60        "method":"DELETE",
61        "requestUri":"/cluster/{clusterArn}",
62        "responseCode":200
63      },
64      "input":{"shape":"DeleteClusterInput"},
65      "output":{"shape":"DeleteClusterOutput"},
66      "errors":[
67        {"shape":"ThrottlingException"},
68        {"shape":"ValidationException"},
69        {"shape":"ConflictException"},
70        {"shape":"InternalServerException"},
71        {"shape":"ResourceNotFoundException"},
72        {"shape":"AccessDeniedException"}
73      ],
74      "documentation":"<p>Delete a Elastic DocumentDB cluster.</p>",
75      "idempotent":true
76    },
77    "DeleteClusterSnapshot":{
78      "name":"DeleteClusterSnapshot",
79      "http":{
80        "method":"DELETE",
81        "requestUri":"/cluster-snapshot/{snapshotArn}",
82        "responseCode":200
83      },
84      "input":{"shape":"DeleteClusterSnapshotInput"},
85      "output":{"shape":"DeleteClusterSnapshotOutput"},
86      "errors":[
87        {"shape":"ThrottlingException"},
88        {"shape":"ValidationException"},
89        {"shape":"ConflictException"},
90        {"shape":"InternalServerException"},
91        {"shape":"ResourceNotFoundException"},
92        {"shape":"AccessDeniedException"}
93      ],
94      "documentation":"<p>Delete a Elastic DocumentDB snapshot.</p>",
95      "idempotent":true
96    },
97    "GetCluster":{
98      "name":"GetCluster",
99      "http":{
100        "method":"GET",
101        "requestUri":"/cluster/{clusterArn}",
102        "responseCode":200
103      },
104      "input":{"shape":"GetClusterInput"},
105      "output":{"shape":"GetClusterOutput"},
106      "errors":[
107        {"shape":"ThrottlingException"},
108        {"shape":"ValidationException"},
109        {"shape":"InternalServerException"},
110        {"shape":"ResourceNotFoundException"},
111        {"shape":"AccessDeniedException"}
112      ],
113      "documentation":"<p>Returns information about a specific Elastic DocumentDB cluster.</p>"
114    },
115    "GetClusterSnapshot":{
116      "name":"GetClusterSnapshot",
117      "http":{
118        "method":"GET",
119        "requestUri":"/cluster-snapshot/{snapshotArn}",
120        "responseCode":200
121      },
122      "input":{"shape":"GetClusterSnapshotInput"},
123      "output":{"shape":"GetClusterSnapshotOutput"},
124      "errors":[
125        {"shape":"ThrottlingException"},
126        {"shape":"ValidationException"},
127        {"shape":"InternalServerException"},
128        {"shape":"ResourceNotFoundException"},
129        {"shape":"AccessDeniedException"}
130      ],
131      "documentation":"<p>Returns information about a specific Elastic DocumentDB snapshot</p>"
132    },
133    "ListClusterSnapshots":{
134      "name":"ListClusterSnapshots",
135      "http":{
136        "method":"GET",
137        "requestUri":"/cluster-snapshots",
138        "responseCode":200
139      },
140      "input":{"shape":"ListClusterSnapshotsInput"},
141      "output":{"shape":"ListClusterSnapshotsOutput"},
142      "errors":[
143        {"shape":"ThrottlingException"},
144        {"shape":"ValidationException"},
145        {"shape":"InternalServerException"},
146        {"shape":"AccessDeniedException"}
147      ],
148      "documentation":"<p>Returns information about Elastic DocumentDB snapshots for a specified cluster.</p>"
149    },
150    "ListClusters":{
151      "name":"ListClusters",
152      "http":{
153        "method":"GET",
154        "requestUri":"/clusters",
155        "responseCode":200
156      },
157      "input":{"shape":"ListClustersInput"},
158      "output":{"shape":"ListClustersOutput"},
159      "errors":[
160        {"shape":"ThrottlingException"},
161        {"shape":"ValidationException"},
162        {"shape":"InternalServerException"},
163        {"shape":"AccessDeniedException"}
164      ],
165      "documentation":"<p>Returns information about provisioned Elastic DocumentDB clusters.</p>"
166    },
167    "ListTagsForResource":{
168      "name":"ListTagsForResource",
169      "http":{
170        "method":"GET",
171        "requestUri":"/tags/{resourceArn}",
172        "responseCode":200
173      },
174      "input":{"shape":"ListTagsForResourceRequest"},
175      "output":{"shape":"ListTagsForResourceResponse"},
176      "errors":[
177        {"shape":"ThrottlingException"},
178        {"shape":"ValidationException"},
179        {"shape":"InternalServerException"},
180        {"shape":"ResourceNotFoundException"}
181      ],
182      "documentation":"<p>Lists all tags on a Elastic DocumentDB resource</p>"
183    },
184    "RestoreClusterFromSnapshot":{
185      "name":"RestoreClusterFromSnapshot",
186      "http":{
187        "method":"POST",
188        "requestUri":"/cluster-snapshot/{snapshotArn}/restore",
189        "responseCode":200
190      },
191      "input":{"shape":"RestoreClusterFromSnapshotInput"},
192      "output":{"shape":"RestoreClusterFromSnapshotOutput"},
193      "errors":[
194        {"shape":"ThrottlingException"},
195        {"shape":"ValidationException"},
196        {"shape":"ServiceQuotaExceededException"},
197        {"shape":"ConflictException"},
198        {"shape":"InternalServerException"},
199        {"shape":"ResourceNotFoundException"},
200        {"shape":"AccessDeniedException"}
201      ],
202      "documentation":"<p>Restores a Elastic DocumentDB cluster from a snapshot.</p>",
203      "idempotent":true
204    },
205    "TagResource":{
206      "name":"TagResource",
207      "http":{
208        "method":"POST",
209        "requestUri":"/tags/{resourceArn}",
210        "responseCode":200
211      },
212      "input":{"shape":"TagResourceRequest"},
213      "output":{"shape":"TagResourceResponse"},
214      "errors":[
215        {"shape":"ThrottlingException"},
216        {"shape":"ValidationException"},
217        {"shape":"InternalServerException"},
218        {"shape":"ResourceNotFoundException"}
219      ],
220      "documentation":"<p>Adds metadata tags to a Elastic DocumentDB resource</p>"
221    },
222    "UntagResource":{
223      "name":"UntagResource",
224      "http":{
225        "method":"DELETE",
226        "requestUri":"/tags/{resourceArn}",
227        "responseCode":200
228      },
229      "input":{"shape":"UntagResourceRequest"},
230      "output":{"shape":"UntagResourceResponse"},
231      "errors":[
232        {"shape":"ThrottlingException"},
233        {"shape":"ValidationException"},
234        {"shape":"InternalServerException"},
235        {"shape":"ResourceNotFoundException"}
236      ],
237      "documentation":"<p>Removes metadata tags to a Elastic DocumentDB resource</p>",
238      "idempotent":true
239    },
240    "UpdateCluster":{
241      "name":"UpdateCluster",
242      "http":{
243        "method":"PUT",
244        "requestUri":"/cluster/{clusterArn}",
245        "responseCode":200
246      },
247      "input":{"shape":"UpdateClusterInput"},
248      "output":{"shape":"UpdateClusterOutput"},
249      "errors":[
250        {"shape":"ThrottlingException"},
251        {"shape":"ValidationException"},
252        {"shape":"ConflictException"},
253        {"shape":"InternalServerException"},
254        {"shape":"ResourceNotFoundException"},
255        {"shape":"AccessDeniedException"}
256      ],
257      "documentation":"<p>Modifies a Elastic DocumentDB cluster. This includes updating admin-username/password, upgrading API version setting up a backup window and maintenance window</p>",
258      "idempotent":true
259    }
260  },
261  "shapes":{
262    "AccessDeniedException":{
263      "type":"structure",
264      "required":["message"],
265      "members":{
266        "message":{
267          "shape":"String",
268          "documentation":"<p>An error message explaining why access was denied.</p>"
269        }
270      },
271      "documentation":"<p>An exception that occurs when there are not sufficient permissions to perform an action.</p>",
272      "error":{
273        "httpStatusCode":403,
274        "senderFault":true
275      },
276      "exception":true
277    },
278    "Arn":{
279      "type":"string",
280      "max":1011,
281      "min":1
282    },
283    "Auth":{
284      "type":"string",
285      "enum":[
286        "PLAIN_TEXT",
287        "SECRET_ARN"
288      ]
289    },
290    "Cluster":{
291      "type":"structure",
292      "required":[
293        "adminUserName",
294        "authType",
295        "clusterArn",
296        "clusterEndpoint",
297        "clusterName",
298        "createTime",
299        "kmsKeyId",
300        "preferredMaintenanceWindow",
301        "shardCapacity",
302        "shardCount",
303        "status",
304        "subnetIds",
305        "vpcSecurityGroupIds"
306      ],
307      "members":{
308        "adminUserName":{
309          "shape":"String",
310          "documentation":"<p>The name of the Elastic DocumentDB cluster administrator.</p>"
311        },
312        "authType":{
313          "shape":"Auth",
314          "documentation":"<p>The authentication type for the Elastic DocumentDB cluster.</p>"
315        },
316        "clusterArn":{
317          "shape":"String",
318          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>"
319        },
320        "clusterEndpoint":{
321          "shape":"String",
322          "documentation":"<p>The URL used to connect to the Elastic DocumentDB cluster.</p>"
323        },
324        "clusterName":{
325          "shape":"String",
326          "documentation":"<p>The name of the Elastic DocumentDB cluster.</p>"
327        },
328        "createTime":{
329          "shape":"String",
330          "documentation":"<p>The time when the Elastic DocumentDB cluster was created in Universal Coordinated Time (UTC).</p>"
331        },
332        "kmsKeyId":{
333          "shape":"String",
334          "documentation":"<p>The KMS key identifier to use to encrypt the Elastic DocumentDB cluster.</p>"
335        },
336        "preferredMaintenanceWindow":{
337          "shape":"String",
338          "documentation":"<p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p> <p> <i>Format</i>: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p>"
339        },
340        "shardCapacity":{
341          "shape":"Integer",
342          "documentation":"<p>The capacity of each shard in the Elastic DocumentDB cluster.</p>"
343        },
344        "shardCount":{
345          "shape":"Integer",
346          "documentation":"<p>The number of shards in the Elastic DocumentDB cluster.</p>"
347        },
348        "status":{
349          "shape":"Status",
350          "documentation":"<p>The status of the Elastic DocumentDB cluster.</p>"
351        },
352        "subnetIds":{
353          "shape":"StringList",
354          "documentation":"<p>The Amazon EC2 subnet IDs for the Elastic DocumentDB cluster.</p>"
355        },
356        "vpcSecurityGroupIds":{
357          "shape":"StringList",
358          "documentation":"<p>A list of EC2 VPC security groups associated with this cluster.</p>"
359        }
360      },
361      "documentation":"<p>Returns information about a specific Elastic DocumentDB cluster.</p>"
362    },
363    "ClusterInList":{
364      "type":"structure",
365      "required":[
366        "clusterArn",
367        "clusterName",
368        "status"
369      ],
370      "members":{
371        "clusterArn":{
372          "shape":"String",
373          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>"
374        },
375        "clusterName":{
376          "shape":"String",
377          "documentation":"<p>The name of the Elastic DocumentDB cluster.</p>"
378        },
379        "status":{
380          "shape":"Status",
381          "documentation":"<p>The status of the Elastic DocumentDB cluster.</p>"
382        }
383      },
384      "documentation":"<p>A list of Elastic DocumentDB cluster.</p>"
385    },
386    "ClusterList":{
387      "type":"list",
388      "member":{"shape":"ClusterInList"}
389    },
390    "ClusterSnapshot":{
391      "type":"structure",
392      "required":[
393        "adminUserName",
394        "clusterArn",
395        "clusterCreationTime",
396        "kmsKeyId",
397        "snapshotArn",
398        "snapshotCreationTime",
399        "snapshotName",
400        "status",
401        "subnetIds",
402        "vpcSecurityGroupIds"
403      ],
404      "members":{
405        "adminUserName":{
406          "shape":"String",
407          "documentation":"<p>The name of the Elastic DocumentDB cluster administrator.</p>"
408        },
409        "clusterArn":{
410          "shape":"String",
411          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>"
412        },
413        "clusterCreationTime":{
414          "shape":"String",
415          "documentation":"<p>The time when the Elastic DocumentDB cluster was created in Universal Coordinated Time (UTC).</p>"
416        },
417        "kmsKeyId":{
418          "shape":"String",
419          "documentation":"<p>The KMS key identifier to use to encrypt the Elastic DocumentDB cluster.</p>"
420        },
421        "snapshotArn":{
422          "shape":"String",
423          "documentation":"<p>The arn of the Elastic DocumentDB snapshot</p>"
424        },
425        "snapshotCreationTime":{
426          "shape":"String",
427          "documentation":"<p>The time when the Elastic DocumentDB snapshot was created in Universal Coordinated Time (UTC).</p>"
428        },
429        "snapshotName":{
430          "shape":"String",
431          "documentation":"<p>The name of the Elastic DocumentDB snapshot.</p>"
432        },
433        "status":{
434          "shape":"Status",
435          "documentation":"<p>The status of the Elastic DocumentDB snapshot.</p>"
436        },
437        "subnetIds":{
438          "shape":"StringList",
439          "documentation":"<p>A list of the IDs of subnets associated with the DB cluster snapshot.</p>"
440        },
441        "vpcSecurityGroupIds":{
442          "shape":"StringList",
443          "documentation":"<p>A list of the IDs of the VPC security groups associated with the cluster snapshot.</p>"
444        }
445      },
446      "documentation":"<p>Returns information about a specific Elastic DocumentDB snapshot.</p>"
447    },
448    "ClusterSnapshotInList":{
449      "type":"structure",
450      "required":[
451        "clusterArn",
452        "snapshotArn",
453        "snapshotCreationTime",
454        "snapshotName",
455        "status"
456      ],
457      "members":{
458        "clusterArn":{
459          "shape":"String",
460          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>"
461        },
462        "snapshotArn":{
463          "shape":"String",
464          "documentation":"<p>The arn of the Elastic DocumentDB snapshot</p>"
465        },
466        "snapshotCreationTime":{
467          "shape":"String",
468          "documentation":"<p>The time when the Elastic DocumentDB snapshot was created in Universal Coordinated Time (UTC).</p>"
469        },
470        "snapshotName":{
471          "shape":"String",
472          "documentation":"<p>The name of the Elastic DocumentDB snapshot.</p>"
473        },
474        "status":{
475          "shape":"Status",
476          "documentation":"<p>The status of the Elastic DocumentDB snapshot.</p>"
477        }
478      },
479      "documentation":"<p>A list of Elastic DocumentDB snapshots.</p>"
480    },
481    "ClusterSnapshotList":{
482      "type":"list",
483      "member":{"shape":"ClusterSnapshotInList"}
484    },
485    "ConflictException":{
486      "type":"structure",
487      "required":[
488        "message",
489        "resourceId",
490        "resourceType"
491      ],
492      "members":{
493        "message":{"shape":"String"},
494        "resourceId":{
495          "shape":"String",
496          "documentation":"<p>The ID of the resource where there was an access conflict.</p>"
497        },
498        "resourceType":{
499          "shape":"String",
500          "documentation":"<p>The type of the resource where there was an access conflict.</p>"
501        }
502      },
503      "documentation":"<p>There was an access conflict.</p>",
504      "error":{
505        "httpStatusCode":409,
506        "senderFault":true
507      },
508      "exception":true
509    },
510    "CreateClusterInput":{
511      "type":"structure",
512      "required":[
513        "adminUserName",
514        "adminUserPassword",
515        "authType",
516        "clusterName",
517        "shardCapacity",
518        "shardCount"
519      ],
520      "members":{
521        "adminUserName":{
522          "shape":"String",
523          "documentation":"<p>The name of the Elastic DocumentDB cluster administrator.</p> <p> <i>Constraints</i>:</p> <ul> <li> <p>Must be from 1 to 63 letters or numbers.</p> </li> <li> <p>The first character must be a letter.</p> </li> <li> <p>Cannot be a reserved word.</p> </li> </ul>"
524        },
525        "adminUserPassword":{
526          "shape":"Password",
527          "documentation":"<p>The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.</p> <p> <i>Constraints</i>:</p> <ul> <li> <p>Must contain from 8 to 100 characters.</p> </li> <li> <p>Cannot contain a forward slash (/), double quote (\"), or the \"at\" symbol (@).</p> </li> </ul>"
528        },
529        "authType":{
530          "shape":"Auth",
531          "documentation":"<p>The authentication type for the Elastic DocumentDB cluster.</p>"
532        },
533        "clientToken":{
534          "shape":"String",
535          "documentation":"<p>The client token for the Elastic DocumentDB cluster.</p>",
536          "idempotencyToken":true
537        },
538        "clusterName":{
539          "shape":"String",
540          "documentation":"<p>The name of the new Elastic DocumentDB cluster. This parameter is stored as a lowercase string.</p> <p> <i>Constraints</i>:</p> <ul> <li> <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p> </li> <li> <p>The first character must be a letter.</p> </li> <li> <p>Cannot end with a hyphen or contain two consecutive hyphens.</p> </li> </ul> <p> <i>Example</i>: <code>my-cluster</code> </p>"
541        },
542        "kmsKeyId":{
543          "shape":"String",
544          "documentation":"<p>The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster.</p> <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.</p> <p>If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.</p>"
545        },
546        "preferredMaintenanceWindow":{
547          "shape":"String",
548          "documentation":"<p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p> <p> <i>Format</i>: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> <i>Default</i>: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.</p> <p> <i>Valid days</i>: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p> <p> <i>Constraints</i>: Minimum 30-minute window.</p>"
549        },
550        "shardCapacity":{
551          "shape":"Integer",
552          "documentation":"<p>The capacity of each shard in the new Elastic DocumentDB cluster.</p>"
553        },
554        "shardCount":{
555          "shape":"Integer",
556          "documentation":"<p>The number of shards to create in the new Elastic DocumentDB cluster.</p>"
557        },
558        "subnetIds":{
559          "shape":"StringList",
560          "documentation":"<p>The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster.</p>"
561        },
562        "tags":{
563          "shape":"TagMap",
564          "documentation":"<p>The tags to be assigned to the new Elastic DocumentDB cluster.</p>"
565        },
566        "vpcSecurityGroupIds":{
567          "shape":"StringList",
568          "documentation":"<p>A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster.</p>"
569        }
570      }
571    },
572    "CreateClusterOutput":{
573      "type":"structure",
574      "required":["cluster"],
575      "members":{
576        "cluster":{
577          "shape":"Cluster",
578          "documentation":"<p>The new Elastic DocumentDB cluster that has been created.</p>"
579        }
580      }
581    },
582    "CreateClusterSnapshotInput":{
583      "type":"structure",
584      "required":[
585        "clusterArn",
586        "snapshotName"
587      ],
588      "members":{
589        "clusterArn":{
590          "shape":"String",
591          "documentation":"<p>The arn of the Elastic DocumentDB cluster that the snapshot will be taken from.</p>"
592        },
593        "snapshotName":{
594          "shape":"CreateClusterSnapshotInputSnapshotNameString",
595          "documentation":"<p>The name of the Elastic DocumentDB snapshot.</p>"
596        },
597        "tags":{
598          "shape":"TagMap",
599          "documentation":"<p>The tags to be assigned to the new Elastic DocumentDB snapshot.</p>"
600        }
601      }
602    },
603    "CreateClusterSnapshotInputSnapshotNameString":{
604      "type":"string",
605      "max":63,
606      "min":1
607    },
608    "CreateClusterSnapshotOutput":{
609      "type":"structure",
610      "required":["snapshot"],
611      "members":{
612        "snapshot":{
613          "shape":"ClusterSnapshot",
614          "documentation":"<p>Returns information about the new Elastic DocumentDB snapshot.</p>"
615        }
616      }
617    },
618    "DeleteClusterInput":{
619      "type":"structure",
620      "required":["clusterArn"],
621      "members":{
622        "clusterArn":{
623          "shape":"String",
624          "documentation":"<p>The arn of the Elastic DocumentDB cluster that is to be deleted.</p>",
625          "location":"uri",
626          "locationName":"clusterArn"
627        }
628      }
629    },
630    "DeleteClusterOutput":{
631      "type":"structure",
632      "required":["cluster"],
633      "members":{
634        "cluster":{
635          "shape":"Cluster",
636          "documentation":"<p>Returns information about the newly deleted Elastic DocumentDB cluster.</p>"
637        }
638      }
639    },
640    "DeleteClusterSnapshotInput":{
641      "type":"structure",
642      "required":["snapshotArn"],
643      "members":{
644        "snapshotArn":{
645          "shape":"String",
646          "documentation":"<p>The arn of the Elastic DocumentDB snapshot that is to be deleted.</p>",
647          "location":"uri",
648          "locationName":"snapshotArn"
649        }
650      }
651    },
652    "DeleteClusterSnapshotOutput":{
653      "type":"structure",
654      "required":["snapshot"],
655      "members":{
656        "snapshot":{
657          "shape":"ClusterSnapshot",
658          "documentation":"<p>Returns information about the newly deleted Elastic DocumentDB snapshot.</p>"
659        }
660      }
661    },
662    "GetClusterInput":{
663      "type":"structure",
664      "required":["clusterArn"],
665      "members":{
666        "clusterArn":{
667          "shape":"String",
668          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>",
669          "location":"uri",
670          "locationName":"clusterArn"
671        }
672      }
673    },
674    "GetClusterOutput":{
675      "type":"structure",
676      "required":["cluster"],
677      "members":{
678        "cluster":{
679          "shape":"Cluster",
680          "documentation":"<p>Returns information about a specific Elastic DocumentDB cluster.</p>"
681        }
682      }
683    },
684    "GetClusterSnapshotInput":{
685      "type":"structure",
686      "required":["snapshotArn"],
687      "members":{
688        "snapshotArn":{
689          "shape":"String",
690          "documentation":"<p>The arn of the Elastic DocumentDB snapshot.</p>",
691          "location":"uri",
692          "locationName":"snapshotArn"
693        }
694      }
695    },
696    "GetClusterSnapshotOutput":{
697      "type":"structure",
698      "required":["snapshot"],
699      "members":{
700        "snapshot":{
701          "shape":"ClusterSnapshot",
702          "documentation":"<p>Returns information about a specific Elastic DocumentDB snapshot.</p>"
703        }
704      }
705    },
706    "Integer":{
707      "type":"integer",
708      "box":true
709    },
710    "InternalServerException":{
711      "type":"structure",
712      "required":["message"],
713      "members":{
714        "message":{"shape":"String"}
715      },
716      "documentation":"<p>There was an internal server error.</p>",
717      "error":{"httpStatusCode":500},
718      "exception":true,
719      "fault":true,
720      "retryable":{"throttling":false}
721    },
722    "ListClusterSnapshotsInput":{
723      "type":"structure",
724      "members":{
725        "clusterArn":{
726          "shape":"String",
727          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>",
728          "location":"querystring",
729          "locationName":"clusterArn"
730        },
731        "maxResults":{
732          "shape":"ListClusterSnapshotsInputMaxResultsInteger",
733          "documentation":"<p>The maximum number of entries to recieve in the response.</p>",
734          "location":"querystring",
735          "locationName":"maxResults"
736        },
737        "nextToken":{
738          "shape":"PaginationToken",
739          "documentation":"<p>The nextToken which is used the get the next page of data.</p>",
740          "location":"querystring",
741          "locationName":"nextToken"
742        }
743      }
744    },
745    "ListClusterSnapshotsInputMaxResultsInteger":{
746      "type":"integer",
747      "box":true,
748      "max":100,
749      "min":20
750    },
751    "ListClusterSnapshotsOutput":{
752      "type":"structure",
753      "members":{
754        "nextToken":{
755          "shape":"PaginationToken",
756          "documentation":"<p>The response will provide a nextToken if there is more data beyond the maxResults.</p> <p>If there is no more data in the responce, the nextToken will not be returned.</p>"
757        },
758        "snapshots":{
759          "shape":"ClusterSnapshotList",
760          "documentation":"<p>A list of Elastic DocumentDB snapshots for a specified cluster.</p>"
761        }
762      }
763    },
764    "ListClustersInput":{
765      "type":"structure",
766      "members":{
767        "maxResults":{
768          "shape":"ListClustersInputMaxResultsInteger",
769          "documentation":"<p>The maximum number of entries to recieve in the response.</p>",
770          "location":"querystring",
771          "locationName":"maxResults"
772        },
773        "nextToken":{
774          "shape":"PaginationToken",
775          "documentation":"<p>The nextToken which is used the get the next page of data.</p>",
776          "location":"querystring",
777          "locationName":"nextToken"
778        }
779      }
780    },
781    "ListClustersInputMaxResultsInteger":{
782      "type":"integer",
783      "box":true,
784      "max":100,
785      "min":1
786    },
787    "ListClustersOutput":{
788      "type":"structure",
789      "members":{
790        "clusters":{
791          "shape":"ClusterList",
792          "documentation":"<p>A list of Elastic DocumentDB cluster.</p>"
793        },
794        "nextToken":{
795          "shape":"PaginationToken",
796          "documentation":"<p>The response will provide a nextToken if there is more data beyond the maxResults.</p> <p>If there is no more data in the responce, the nextToken will not be returned.</p>"
797        }
798      }
799    },
800    "ListTagsForResourceRequest":{
801      "type":"structure",
802      "required":["resourceArn"],
803      "members":{
804        "resourceArn":{
805          "shape":"Arn",
806          "documentation":"<p>The arn of the Elastic DocumentDB resource.</p>",
807          "location":"uri",
808          "locationName":"resourceArn"
809        }
810      }
811    },
812    "ListTagsForResourceResponse":{
813      "type":"structure",
814      "members":{
815        "tags":{
816          "shape":"TagMap",
817          "documentation":"<p>The list of tags for the specified Elastic DocumentDB resource.</p>"
818        }
819      }
820    },
821    "PaginationToken":{
822      "type":"string",
823      "documentation":"<p>Token or cursor used in paginated operations.</p> <p>When this value is provided as operation input, the service returns results from where the previous response left off. When this value is present in operation output, it indicates that there are more results to retrieve.</p> <p>This should be opaque to not expose implementation details and potentially versioned to allow evolution of pagination strategy.</p>"
824    },
825    "Password":{
826      "type":"string",
827      "sensitive":true
828    },
829    "ResourceNotFoundException":{
830      "type":"structure",
831      "required":[
832        "message",
833        "resourceId",
834        "resourceType"
835      ],
836      "members":{
837        "message":{
838          "shape":"String",
839          "documentation":"<p>An error message describing the failure.</p>"
840        },
841        "resourceId":{
842          "shape":"String",
843          "documentation":"<p>The ID of the resource that could not be located.</p>"
844        },
845        "resourceType":{
846          "shape":"String",
847          "documentation":"<p>The type of the resource that could not be found.</p>"
848        }
849      },
850      "documentation":"<p>The specified resource could not be located.</p>",
851      "error":{
852        "httpStatusCode":404,
853        "senderFault":true
854      },
855      "exception":true
856    },
857    "RestoreClusterFromSnapshotInput":{
858      "type":"structure",
859      "required":[
860        "clusterName",
861        "snapshotArn"
862      ],
863      "members":{
864        "clusterName":{
865          "shape":"String",
866          "documentation":"<p>The name of the Elastic DocumentDB cluster.</p>"
867        },
868        "kmsKeyId":{
869          "shape":"String",
870          "documentation":"<p>The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster.</p> <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.</p> <p>If an encryption key is not specified here, Elastic DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.</p>"
871        },
872        "snapshotArn":{
873          "shape":"String",
874          "documentation":"<p>The arn of the Elastic DocumentDB snapshot.</p>",
875          "location":"uri",
876          "locationName":"snapshotArn"
877        },
878        "subnetIds":{
879          "shape":"StringList",
880          "documentation":"<p>The Amazon EC2 subnet IDs for the Elastic DocumentDB cluster.</p>"
881        },
882        "tags":{
883          "shape":"TagMap",
884          "documentation":"<p>A list of the tag names to be assigned to the restored DB cluster, in the form of an array of key-value pairs in which the key is the tag name and the value is the key value.</p>"
885        },
886        "vpcSecurityGroupIds":{
887          "shape":"StringList",
888          "documentation":"<p>A list of EC2 VPC security groups to associate with the Elastic DocumentDB cluster.</p>"
889        }
890      }
891    },
892    "RestoreClusterFromSnapshotOutput":{
893      "type":"structure",
894      "required":["cluster"],
895      "members":{
896        "cluster":{
897          "shape":"Cluster",
898          "documentation":"<p>Returns information about a the restored Elastic DocumentDB cluster.</p>"
899        }
900      }
901    },
902    "ServiceQuotaExceededException":{
903      "type":"structure",
904      "required":["message"],
905      "members":{
906        "message":{"shape":"String"}
907      },
908      "documentation":"<p>The service quota for the action was exceeded.</p>",
909      "error":{
910        "httpStatusCode":402,
911        "senderFault":true
912      },
913      "exception":true
914    },
915    "Status":{
916      "type":"string",
917      "enum":[
918        "CREATING",
919        "ACTIVE",
920        "DELETING",
921        "UPDATING",
922        "VPC_ENDPOINT_LIMIT_EXCEEDED",
923        "IP_ADDRESS_LIMIT_EXCEEDED",
924        "INVALID_SECURITY_GROUP_ID",
925        "INVALID_SUBNET_ID",
926        "INACCESSIBLE_ENCRYPTION_CREDS"
927      ]
928    },
929    "String":{"type":"string"},
930    "StringList":{
931      "type":"list",
932      "member":{"shape":"String"}
933    },
934    "TagKey":{
935      "type":"string",
936      "max":128,
937      "min":1,
938      "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$"
939    },
940    "TagKeyList":{
941      "type":"list",
942      "member":{"shape":"TagKey"},
943      "max":50,
944      "min":0
945    },
946    "TagMap":{
947      "type":"map",
948      "key":{"shape":"TagKey"},
949      "value":{"shape":"TagValue"}
950    },
951    "TagResourceRequest":{
952      "type":"structure",
953      "required":[
954        "resourceArn",
955        "tags"
956      ],
957      "members":{
958        "resourceArn":{
959          "shape":"Arn",
960          "documentation":"<p>The arn of the Elastic DocumentDB resource.</p>",
961          "location":"uri",
962          "locationName":"resourceArn"
963        },
964        "tags":{
965          "shape":"TagMap",
966          "documentation":"<p>The tags to be assigned to the Elastic DocumentDB resource.</p>"
967        }
968      }
969    },
970    "TagResourceResponse":{
971      "type":"structure",
972      "members":{
973      }
974    },
975    "TagValue":{
976      "type":"string",
977      "max":256,
978      "min":0
979    },
980    "ThrottlingException":{
981      "type":"structure",
982      "required":["message"],
983      "members":{
984        "message":{"shape":"String"},
985        "retryAfterSeconds":{
986          "shape":"Integer",
987          "documentation":"<p>The number of seconds to wait before retrying the operation.</p>",
988          "location":"header",
989          "locationName":"Retry-After"
990        }
991      },
992      "documentation":"<p>ThrottlingException will be thrown when request was denied due to request throttling.</p>",
993      "error":{
994        "httpStatusCode":429,
995        "senderFault":true
996      },
997      "exception":true,
998      "retryable":{"throttling":false}
999    },
1000    "UntagResourceRequest":{
1001      "type":"structure",
1002      "required":[
1003        "resourceArn",
1004        "tagKeys"
1005      ],
1006      "members":{
1007        "resourceArn":{
1008          "shape":"Arn",
1009          "documentation":"<p>The arn of the Elastic DocumentDB resource.</p>",
1010          "location":"uri",
1011          "locationName":"resourceArn"
1012        },
1013        "tagKeys":{
1014          "shape":"TagKeyList",
1015          "documentation":"<p>The tag keys to be removed from the Elastic DocumentDB resource.</p>",
1016          "location":"querystring",
1017          "locationName":"tagKeys"
1018        }
1019      }
1020    },
1021    "UntagResourceResponse":{
1022      "type":"structure",
1023      "members":{
1024      }
1025    },
1026    "UpdateClusterInput":{
1027      "type":"structure",
1028      "required":["clusterArn"],
1029      "members":{
1030        "adminUserPassword":{
1031          "shape":"Password",
1032          "documentation":"<p>The password for the Elastic DocumentDB cluster administrator. This password can contain any printable ASCII character except forward slash (/), double quote (\"), or the \"at\" symbol (@).</p> <p> <i>Constraints</i>: Must contain from 8 to 100 characters.</p>"
1033        },
1034        "authType":{
1035          "shape":"Auth",
1036          "documentation":"<p>The authentication type for the Elastic DocumentDB cluster.</p>"
1037        },
1038        "clientToken":{
1039          "shape":"String",
1040          "documentation":"<p>The client token for the Elastic DocumentDB cluster.</p>",
1041          "idempotencyToken":true
1042        },
1043        "clusterArn":{
1044          "shape":"String",
1045          "documentation":"<p>The arn of the Elastic DocumentDB cluster.</p>",
1046          "location":"uri",
1047          "locationName":"clusterArn"
1048        },
1049        "preferredMaintenanceWindow":{
1050          "shape":"String",
1051          "documentation":"<p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p> <p> <i>Format</i>: <code>ddd:hh24:mi-ddd:hh24:mi</code> </p> <p> <i>Default</i>: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.</p> <p> <i>Valid days</i>: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p> <p> <i>Constraints</i>: Minimum 30-minute window.</p>"
1052        },
1053        "shardCapacity":{
1054          "shape":"Integer",
1055          "documentation":"<p>The capacity of each shard in the Elastic DocumentDB cluster.</p>"
1056        },
1057        "shardCount":{
1058          "shape":"Integer",
1059          "documentation":"<p>The number of shards to create in the Elastic DocumentDB cluster.</p>"
1060        },
1061        "subnetIds":{
1062          "shape":"StringList",
1063          "documentation":"<p>The number of shards to create in the Elastic DocumentDB cluster.</p>"
1064        },
1065        "vpcSecurityGroupIds":{
1066          "shape":"StringList",
1067          "documentation":"<p>A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster.</p>"
1068        }
1069      }
1070    },
1071    "UpdateClusterOutput":{
1072      "type":"structure",
1073      "required":["cluster"],
1074      "members":{
1075        "cluster":{
1076          "shape":"Cluster",
1077          "documentation":"<p>Returns information about the updated Elastic DocumentDB cluster.</p>"
1078        }
1079      }
1080    },
1081    "ValidationException":{
1082      "type":"structure",
1083      "required":[
1084        "message",
1085        "reason"
1086      ],
1087      "members":{
1088        "fieldList":{
1089          "shape":"ValidationExceptionFieldList",
1090          "documentation":"<p>A list of the fields in which the validation exception occurred.</p>"
1091        },
1092        "message":{
1093          "shape":"String",
1094          "documentation":"<p>An error message describing the validation exception.</p>"
1095        },
1096        "reason":{
1097          "shape":"ValidationExceptionReason",
1098          "documentation":"<p>The reason why the validation exception occurred (one of <code>unknownOperation</code>, <code>cannotParse</code>, <code>fieldValidationFailed</code>, or <code>other</code>).</p>"
1099        }
1100      },
1101      "documentation":"<p>A structure defining a validation exception.</p>",
1102      "error":{
1103        "httpStatusCode":400,
1104        "senderFault":true
1105      },
1106      "exception":true
1107    },
1108    "ValidationExceptionField":{
1109      "type":"structure",
1110      "required":[
1111        "message",
1112        "name"
1113      ],
1114      "members":{
1115        "message":{
1116          "shape":"String",
1117          "documentation":"<p>An error message describing the validation exception in this field.</p>"
1118        },
1119        "name":{
1120          "shape":"String",
1121          "documentation":"<p>The name of the field where the validation exception occurred.</p>"
1122        }
1123      },
1124      "documentation":"<p>A specific field in which a given validation exception occurred.</p>"
1125    },
1126    "ValidationExceptionFieldList":{
1127      "type":"list",
1128      "member":{"shape":"ValidationExceptionField"}
1129    },
1130    "ValidationExceptionReason":{
1131      "type":"string",
1132      "enum":[
1133        "unknownOperation",
1134        "cannotParse",
1135        "fieldValidationFailed",
1136        "other"
1137      ]
1138    }
1139  },
1140  "documentation":"<p>The new Amazon Elastic DocumentDB service endpoint.</p>"
1141}
1142