1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2018-04-01",
5    "endpointPrefix":"route53resolver",
6    "jsonVersion":"1.1",
7    "protocol":"json",
8    "serviceAbbreviation":"Route53Resolver",
9    "serviceFullName":"Amazon Route 53 Resolver",
10    "serviceId":"Route53Resolver",
11    "signatureVersion":"v4",
12    "targetPrefix":"Route53Resolver",
13    "uid":"route53resolver-2018-04-01"
14  },
15  "operations":{
16    "AssociateResolverEndpointIpAddress":{
17      "name":"AssociateResolverEndpointIpAddress",
18      "http":{
19        "method":"POST",
20        "requestUri":"/"
21      },
22      "input":{"shape":"AssociateResolverEndpointIpAddressRequest"},
23      "output":{"shape":"AssociateResolverEndpointIpAddressResponse"},
24      "errors":[
25        {"shape":"ResourceNotFoundException"},
26        {"shape":"InvalidParameterException"},
27        {"shape":"InvalidRequestException"},
28        {"shape":"ResourceExistsException"},
29        {"shape":"InternalServiceErrorException"},
30        {"shape":"LimitExceededException"},
31        {"shape":"ThrottlingException"}
32      ]
33    },
34    "AssociateResolverRule":{
35      "name":"AssociateResolverRule",
36      "http":{
37        "method":"POST",
38        "requestUri":"/"
39      },
40      "input":{"shape":"AssociateResolverRuleRequest"},
41      "output":{"shape":"AssociateResolverRuleResponse"},
42      "errors":[
43        {"shape":"ResourceNotFoundException"},
44        {"shape":"InvalidRequestException"},
45        {"shape":"InvalidParameterException"},
46        {"shape":"ResourceUnavailableException"},
47        {"shape":"ResourceExistsException"},
48        {"shape":"InternalServiceErrorException"},
49        {"shape":"ThrottlingException"}
50      ]
51    },
52    "CreateResolverEndpoint":{
53      "name":"CreateResolverEndpoint",
54      "http":{
55        "method":"POST",
56        "requestUri":"/"
57      },
58      "input":{"shape":"CreateResolverEndpointRequest"},
59      "output":{"shape":"CreateResolverEndpointResponse"},
60      "errors":[
61        {"shape":"InvalidParameterException"},
62        {"shape":"ResourceNotFoundException"},
63        {"shape":"InvalidRequestException"},
64        {"shape":"ResourceExistsException"},
65        {"shape":"LimitExceededException"},
66        {"shape":"InternalServiceErrorException"},
67        {"shape":"ThrottlingException"}
68      ]
69    },
70    "CreateResolverRule":{
71      "name":"CreateResolverRule",
72      "http":{
73        "method":"POST",
74        "requestUri":"/"
75      },
76      "input":{"shape":"CreateResolverRuleRequest"},
77      "output":{"shape":"CreateResolverRuleResponse"},
78      "errors":[
79        {"shape":"InvalidParameterException"},
80        {"shape":"InvalidRequestException"},
81        {"shape":"LimitExceededException"},
82        {"shape":"ResourceNotFoundException"},
83        {"shape":"ResourceExistsException"},
84        {"shape":"ResourceUnavailableException"},
85        {"shape":"InternalServiceErrorException"},
86        {"shape":"ThrottlingException"}
87      ]
88    },
89    "DeleteResolverEndpoint":{
90      "name":"DeleteResolverEndpoint",
91      "http":{
92        "method":"POST",
93        "requestUri":"/"
94      },
95      "input":{"shape":"DeleteResolverEndpointRequest"},
96      "output":{"shape":"DeleteResolverEndpointResponse"},
97      "errors":[
98        {"shape":"ResourceNotFoundException"},
99        {"shape":"InvalidParameterException"},
100        {"shape":"InvalidRequestException"},
101        {"shape":"InternalServiceErrorException"},
102        {"shape":"ThrottlingException"}
103      ]
104    },
105    "DeleteResolverRule":{
106      "name":"DeleteResolverRule",
107      "http":{
108        "method":"POST",
109        "requestUri":"/"
110      },
111      "input":{"shape":"DeleteResolverRuleRequest"},
112      "output":{"shape":"DeleteResolverRuleResponse"},
113      "errors":[
114        {"shape":"InvalidParameterException"},
115        {"shape":"ResourceNotFoundException"},
116        {"shape":"ResourceInUseException"},
117        {"shape":"InternalServiceErrorException"},
118        {"shape":"ThrottlingException"}
119      ]
120    },
121    "DisassociateResolverEndpointIpAddress":{
122      "name":"DisassociateResolverEndpointIpAddress",
123      "http":{
124        "method":"POST",
125        "requestUri":"/"
126      },
127      "input":{"shape":"DisassociateResolverEndpointIpAddressRequest"},
128      "output":{"shape":"DisassociateResolverEndpointIpAddressResponse"},
129      "errors":[
130        {"shape":"ResourceNotFoundException"},
131        {"shape":"InvalidParameterException"},
132        {"shape":"InvalidRequestException"},
133        {"shape":"ResourceExistsException"},
134        {"shape":"InternalServiceErrorException"},
135        {"shape":"ThrottlingException"}
136      ]
137    },
138    "DisassociateResolverRule":{
139      "name":"DisassociateResolverRule",
140      "http":{
141        "method":"POST",
142        "requestUri":"/"
143      },
144      "input":{"shape":"DisassociateResolverRuleRequest"},
145      "output":{"shape":"DisassociateResolverRuleResponse"},
146      "errors":[
147        {"shape":"ResourceNotFoundException"},
148        {"shape":"InvalidParameterException"},
149        {"shape":"InternalServiceErrorException"},
150        {"shape":"ThrottlingException"}
151      ]
152    },
153    "GetResolverEndpoint":{
154      "name":"GetResolverEndpoint",
155      "http":{
156        "method":"POST",
157        "requestUri":"/"
158      },
159      "input":{"shape":"GetResolverEndpointRequest"},
160      "output":{"shape":"GetResolverEndpointResponse"},
161      "errors":[
162        {"shape":"ResourceNotFoundException"},
163        {"shape":"InvalidParameterException"},
164        {"shape":"InternalServiceErrorException"},
165        {"shape":"ThrottlingException"}
166      ]
167    },
168    "GetResolverRule":{
169      "name":"GetResolverRule",
170      "http":{
171        "method":"POST",
172        "requestUri":"/"
173      },
174      "input":{"shape":"GetResolverRuleRequest"},
175      "output":{"shape":"GetResolverRuleResponse"},
176      "errors":[
177        {"shape":"ResourceNotFoundException"},
178        {"shape":"InvalidParameterException"},
179        {"shape":"InternalServiceErrorException"},
180        {"shape":"ThrottlingException"}
181      ]
182    },
183    "GetResolverRuleAssociation":{
184      "name":"GetResolverRuleAssociation",
185      "http":{
186        "method":"POST",
187        "requestUri":"/"
188      },
189      "input":{"shape":"GetResolverRuleAssociationRequest"},
190      "output":{"shape":"GetResolverRuleAssociationResponse"},
191      "errors":[
192        {"shape":"ResourceNotFoundException"},
193        {"shape":"InvalidParameterException"},
194        {"shape":"InternalServiceErrorException"},
195        {"shape":"ThrottlingException"}
196      ]
197    },
198    "GetResolverRulePolicy":{
199      "name":"GetResolverRulePolicy",
200      "http":{
201        "method":"POST",
202        "requestUri":"/"
203      },
204      "input":{"shape":"GetResolverRulePolicyRequest"},
205      "output":{"shape":"GetResolverRulePolicyResponse"},
206      "errors":[
207        {"shape":"InvalidParameterException"},
208        {"shape":"UnknownResourceException"},
209        {"shape":"InternalServiceErrorException"}
210      ]
211    },
212    "ListResolverEndpointIpAddresses":{
213      "name":"ListResolverEndpointIpAddresses",
214      "http":{
215        "method":"POST",
216        "requestUri":"/"
217      },
218      "input":{"shape":"ListResolverEndpointIpAddressesRequest"},
219      "output":{"shape":"ListResolverEndpointIpAddressesResponse"},
220      "errors":[
221        {"shape":"ResourceNotFoundException"},
222        {"shape":"InvalidParameterException"},
223        {"shape":"InternalServiceErrorException"},
224        {"shape":"InvalidNextTokenException"},
225        {"shape":"ThrottlingException"}
226      ]
227    },
228    "ListResolverEndpoints":{
229      "name":"ListResolverEndpoints",
230      "http":{
231        "method":"POST",
232        "requestUri":"/"
233      },
234      "input":{"shape":"ListResolverEndpointsRequest"},
235      "output":{"shape":"ListResolverEndpointsResponse"},
236      "errors":[
237        {"shape":"InvalidNextTokenException"},
238        {"shape":"InvalidRequestException"},
239        {"shape":"InvalidParameterException"},
240        {"shape":"InternalServiceErrorException"},
241        {"shape":"ThrottlingException"}
242      ]
243    },
244    "ListResolverRuleAssociations":{
245      "name":"ListResolverRuleAssociations",
246      "http":{
247        "method":"POST",
248        "requestUri":"/"
249      },
250      "input":{"shape":"ListResolverRuleAssociationsRequest"},
251      "output":{"shape":"ListResolverRuleAssociationsResponse"},
252      "errors":[
253        {"shape":"InvalidNextTokenException"},
254        {"shape":"InvalidRequestException"},
255        {"shape":"InvalidParameterException"},
256        {"shape":"InternalServiceErrorException"},
257        {"shape":"ThrottlingException"}
258      ]
259    },
260    "ListResolverRules":{
261      "name":"ListResolverRules",
262      "http":{
263        "method":"POST",
264        "requestUri":"/"
265      },
266      "input":{"shape":"ListResolverRulesRequest"},
267      "output":{"shape":"ListResolverRulesResponse"},
268      "errors":[
269        {"shape":"InvalidNextTokenException"},
270        {"shape":"InvalidRequestException"},
271        {"shape":"InvalidParameterException"},
272        {"shape":"InternalServiceErrorException"},
273        {"shape":"ThrottlingException"}
274      ]
275    },
276    "ListTagsForResource":{
277      "name":"ListTagsForResource",
278      "http":{
279        "method":"POST",
280        "requestUri":"/"
281      },
282      "input":{"shape":"ListTagsForResourceRequest"},
283      "output":{"shape":"ListTagsForResourceResponse"},
284      "errors":[
285        {"shape":"ResourceNotFoundException"},
286        {"shape":"InvalidParameterException"},
287        {"shape":"InvalidNextTokenException"},
288        {"shape":"InvalidRequestException"},
289        {"shape":"InternalServiceErrorException"},
290        {"shape":"ThrottlingException"}
291      ]
292    },
293    "PutResolverRulePolicy":{
294      "name":"PutResolverRulePolicy",
295      "http":{
296        "method":"POST",
297        "requestUri":"/"
298      },
299      "input":{"shape":"PutResolverRulePolicyRequest"},
300      "output":{"shape":"PutResolverRulePolicyResponse"},
301      "errors":[
302        {"shape":"InvalidPolicyDocument"},
303        {"shape":"InvalidParameterException"},
304        {"shape":"UnknownResourceException"},
305        {"shape":"InternalServiceErrorException"}
306      ]
307    },
308    "TagResource":{
309      "name":"TagResource",
310      "http":{
311        "method":"POST",
312        "requestUri":"/"
313      },
314      "input":{"shape":"TagResourceRequest"},
315      "output":{"shape":"TagResourceResponse"},
316      "errors":[
317        {"shape":"LimitExceededException"},
318        {"shape":"ResourceNotFoundException"},
319        {"shape":"InvalidParameterException"},
320        {"shape":"InvalidTagException"},
321        {"shape":"InternalServiceErrorException"},
322        {"shape":"ThrottlingException"}
323      ]
324    },
325    "UntagResource":{
326      "name":"UntagResource",
327      "http":{
328        "method":"POST",
329        "requestUri":"/"
330      },
331      "input":{"shape":"UntagResourceRequest"},
332      "output":{"shape":"UntagResourceResponse"},
333      "errors":[
334        {"shape":"ResourceNotFoundException"},
335        {"shape":"InvalidParameterException"},
336        {"shape":"InternalServiceErrorException"},
337        {"shape":"ThrottlingException"}
338      ]
339    },
340    "UpdateResolverEndpoint":{
341      "name":"UpdateResolverEndpoint",
342      "http":{
343        "method":"POST",
344        "requestUri":"/"
345      },
346      "input":{"shape":"UpdateResolverEndpointRequest"},
347      "output":{"shape":"UpdateResolverEndpointResponse"},
348      "errors":[
349        {"shape":"ResourceNotFoundException"},
350        {"shape":"InvalidParameterException"},
351        {"shape":"InvalidRequestException"},
352        {"shape":"InternalServiceErrorException"},
353        {"shape":"ThrottlingException"}
354      ]
355    },
356    "UpdateResolverRule":{
357      "name":"UpdateResolverRule",
358      "http":{
359        "method":"POST",
360        "requestUri":"/"
361      },
362      "input":{"shape":"UpdateResolverRuleRequest"},
363      "output":{"shape":"UpdateResolverRuleResponse"},
364      "errors":[
365        {"shape":"InvalidRequestException"},
366        {"shape":"InvalidParameterException"},
367        {"shape":"ResourceNotFoundException"},
368        {"shape":"ResourceUnavailableException"},
369        {"shape":"LimitExceededException"},
370        {"shape":"InternalServiceErrorException"},
371        {"shape":"ThrottlingException"}
372      ]
373    }
374  },
375  "shapes":{
376    "AccountId":{
377      "type":"string",
378      "max":32,
379      "min":12
380    },
381    "Arn":{
382      "type":"string",
383      "max":255,
384      "min":1
385    },
386    "AssociateResolverEndpointIpAddressRequest":{
387      "type":"structure",
388      "required":[
389        "ResolverEndpointId",
390        "IpAddress"
391      ],
392      "members":{
393        "ResolverEndpointId":{"shape":"ResourceId"},
394        "IpAddress":{"shape":"IpAddressUpdate"}
395      }
396    },
397    "AssociateResolverEndpointIpAddressResponse":{
398      "type":"structure",
399      "members":{
400        "ResolverEndpoint":{"shape":"ResolverEndpoint"}
401      }
402    },
403    "AssociateResolverRuleRequest":{
404      "type":"structure",
405      "required":[
406        "ResolverRuleId",
407        "VPCId"
408      ],
409      "members":{
410        "ResolverRuleId":{"shape":"ResourceId"},
411        "Name":{"shape":"Name"},
412        "VPCId":{"shape":"ResourceId"}
413      }
414    },
415    "AssociateResolverRuleResponse":{
416      "type":"structure",
417      "members":{
418        "ResolverRuleAssociation":{"shape":"ResolverRuleAssociation"}
419      }
420    },
421    "Boolean":{"type":"boolean"},
422    "CreateResolverEndpointRequest":{
423      "type":"structure",
424      "required":[
425        "CreatorRequestId",
426        "SecurityGroupIds",
427        "Direction",
428        "IpAddresses"
429      ],
430      "members":{
431        "CreatorRequestId":{"shape":"CreatorRequestId"},
432        "Name":{"shape":"Name"},
433        "SecurityGroupIds":{
434          "shape":"SecurityGroupIds",
435          "box":true
436        },
437        "Direction":{"shape":"ResolverEndpointDirection"},
438        "IpAddresses":{"shape":"IpAddressesRequest"},
439        "Tags":{
440          "shape":"TagList",
441          "box":true
442        }
443      }
444    },
445    "CreateResolverEndpointResponse":{
446      "type":"structure",
447      "members":{
448        "ResolverEndpoint":{"shape":"ResolverEndpoint"}
449      }
450    },
451    "CreateResolverRuleRequest":{
452      "type":"structure",
453      "required":[
454        "CreatorRequestId",
455        "RuleType",
456        "DomainName"
457      ],
458      "members":{
459        "CreatorRequestId":{"shape":"CreatorRequestId"},
460        "Name":{"shape":"Name"},
461        "RuleType":{"shape":"RuleTypeOption"},
462        "DomainName":{"shape":"DomainName"},
463        "TargetIps":{
464          "shape":"TargetList",
465          "box":true
466        },
467        "ResolverEndpointId":{
468          "shape":"ResourceId",
469          "box":true
470        },
471        "Tags":{
472          "shape":"TagList",
473          "box":true
474        }
475      }
476    },
477    "CreateResolverRuleResponse":{
478      "type":"structure",
479      "members":{
480        "ResolverRule":{"shape":"ResolverRule"}
481      }
482    },
483    "CreatorRequestId":{
484      "type":"string",
485      "max":255,
486      "min":1
487    },
488    "DeleteResolverEndpointRequest":{
489      "type":"structure",
490      "required":["ResolverEndpointId"],
491      "members":{
492        "ResolverEndpointId":{"shape":"ResourceId"}
493      }
494    },
495    "DeleteResolverEndpointResponse":{
496      "type":"structure",
497      "members":{
498        "ResolverEndpoint":{"shape":"ResolverEndpoint"}
499      }
500    },
501    "DeleteResolverRuleRequest":{
502      "type":"structure",
503      "required":["ResolverRuleId"],
504      "members":{
505        "ResolverRuleId":{"shape":"ResourceId"}
506      }
507    },
508    "DeleteResolverRuleResponse":{
509      "type":"structure",
510      "members":{
511        "ResolverRule":{"shape":"ResolverRule"}
512      }
513    },
514    "DisassociateResolverEndpointIpAddressRequest":{
515      "type":"structure",
516      "required":[
517        "ResolverEndpointId",
518        "IpAddress"
519      ],
520      "members":{
521        "ResolverEndpointId":{"shape":"ResourceId"},
522        "IpAddress":{"shape":"IpAddressUpdate"}
523      }
524    },
525    "DisassociateResolverEndpointIpAddressResponse":{
526      "type":"structure",
527      "members":{
528        "ResolverEndpoint":{"shape":"ResolverEndpoint"}
529      }
530    },
531    "DisassociateResolverRuleRequest":{
532      "type":"structure",
533      "required":[
534        "VPCId",
535        "ResolverRuleId"
536      ],
537      "members":{
538        "VPCId":{"shape":"ResourceId"},
539        "ResolverRuleId":{"shape":"ResourceId"}
540      }
541    },
542    "DisassociateResolverRuleResponse":{
543      "type":"structure",
544      "members":{
545        "ResolverRuleAssociation":{"shape":"ResolverRuleAssociation"}
546      }
547    },
548    "DomainName":{
549      "type":"string",
550      "max":256,
551      "min":1
552    },
553    "ExceptionMessage":{"type":"string"},
554    "Filter":{
555      "type":"structure",
556      "members":{
557        "Name":{"shape":"FilterName"},
558        "Values":{"shape":"FilterValues"}
559      }
560    },
561    "FilterName":{
562      "type":"string",
563      "max":64,
564      "min":1
565    },
566    "FilterValue":{
567      "type":"string",
568      "max":64,
569      "min":1
570    },
571    "FilterValues":{
572      "type":"list",
573      "member":{"shape":"FilterValue"}
574    },
575    "Filters":{
576      "type":"list",
577      "member":{"shape":"Filter"}
578    },
579    "GetResolverEndpointRequest":{
580      "type":"structure",
581      "required":["ResolverEndpointId"],
582      "members":{
583        "ResolverEndpointId":{"shape":"ResourceId"}
584      }
585    },
586    "GetResolverEndpointResponse":{
587      "type":"structure",
588      "members":{
589        "ResolverEndpoint":{"shape":"ResolverEndpoint"}
590      }
591    },
592    "GetResolverRuleAssociationRequest":{
593      "type":"structure",
594      "required":["ResolverRuleAssociationId"],
595      "members":{
596        "ResolverRuleAssociationId":{"shape":"ResourceId"}
597      }
598    },
599    "GetResolverRuleAssociationResponse":{
600      "type":"structure",
601      "members":{
602        "ResolverRuleAssociation":{"shape":"ResolverRuleAssociation"}
603      }
604    },
605    "GetResolverRulePolicyRequest":{
606      "type":"structure",
607      "required":["Arn"],
608      "members":{
609        "Arn":{"shape":"Arn"}
610      }
611    },
612    "GetResolverRulePolicyResponse":{
613      "type":"structure",
614      "members":{
615        "ResolverRulePolicy":{"shape":"ResolverRulePolicy"}
616      }
617    },
618    "GetResolverRuleRequest":{
619      "type":"structure",
620      "required":["ResolverRuleId"],
621      "members":{
622        "ResolverRuleId":{"shape":"ResourceId"}
623      }
624    },
625    "GetResolverRuleResponse":{
626      "type":"structure",
627      "members":{
628        "ResolverRule":{"shape":"ResolverRule"}
629      }
630    },
631    "InternalServiceErrorException":{
632      "type":"structure",
633      "members":{
634        "Message":{"shape":"ExceptionMessage"}
635      },
636      "exception":true
637    },
638    "InvalidNextTokenException":{
639      "type":"structure",
640      "members":{
641        "Message":{"shape":"String"}
642      },
643      "exception":true
644    },
645    "InvalidParameterException":{
646      "type":"structure",
647      "required":["Message"],
648      "members":{
649        "Message":{"shape":"ExceptionMessage"},
650        "FieldName":{"shape":"String"}
651      },
652      "exception":true
653    },
654    "InvalidPolicyDocument":{
655      "type":"structure",
656      "members":{
657        "Message":{"shape":"ExceptionMessage"}
658      },
659      "exception":true
660    },
661    "InvalidRequestException":{
662      "type":"structure",
663      "members":{
664        "Message":{"shape":"ExceptionMessage"}
665      },
666      "exception":true
667    },
668    "InvalidTagException":{
669      "type":"structure",
670      "members":{
671        "Message":{"shape":"ExceptionMessage"}
672      },
673      "exception":true
674    },
675    "Ip":{
676      "type":"string",
677      "max":36,
678      "min":7
679    },
680    "IpAddressCount":{"type":"integer"},
681    "IpAddressRequest":{
682      "type":"structure",
683      "required":["SubnetId"],
684      "members":{
685        "SubnetId":{"shape":"SubnetId"},
686        "Ip":{
687          "shape":"Ip",
688          "box":true
689        }
690      }
691    },
692    "IpAddressResponse":{
693      "type":"structure",
694      "members":{
695        "IpId":{"shape":"ResourceId"},
696        "SubnetId":{"shape":"SubnetId"},
697        "Ip":{"shape":"Ip"},
698        "Status":{"shape":"IpAddressStatus"},
699        "StatusMessage":{"shape":"StatusMessage"},
700        "CreationTime":{"shape":"Rfc3339TimeString"},
701        "ModificationTime":{"shape":"Rfc3339TimeString"}
702      }
703    },
704    "IpAddressStatus":{
705      "type":"string",
706      "enum":[
707        "CREATING",
708        "FAILED_CREATION",
709        "ATTACHING",
710        "ATTACHED",
711        "REMAP_DETACHING",
712        "REMAP_ATTACHING",
713        "DETACHING",
714        "FAILED_RESOURCE_GONE",
715        "DELETING",
716        "DELETE_FAILED_FAS_EXPIRED"
717      ]
718    },
719    "IpAddressUpdate":{
720      "type":"structure",
721      "members":{
722        "IpId":{
723          "shape":"ResourceId",
724          "box":true
725        },
726        "SubnetId":{
727          "shape":"SubnetId",
728          "box":true
729        },
730        "Ip":{
731          "shape":"Ip",
732          "box":true
733        }
734      }
735    },
736    "IpAddressesRequest":{
737      "type":"list",
738      "member":{"shape":"IpAddressRequest"},
739      "max":10,
740      "min":1
741    },
742    "IpAddressesResponse":{
743      "type":"list",
744      "member":{"shape":"IpAddressResponse"}
745    },
746    "LimitExceededException":{
747      "type":"structure",
748      "members":{
749        "Message":{"shape":"String"},
750        "ResourceType":{"shape":"String"}
751      },
752      "exception":true
753    },
754    "ListResolverEndpointIpAddressesRequest":{
755      "type":"structure",
756      "required":["ResolverEndpointId"],
757      "members":{
758        "ResolverEndpointId":{"shape":"ResourceId"},
759        "MaxResults":{
760          "shape":"MaxResults",
761          "box":true
762        },
763        "NextToken":{
764          "shape":"NextToken",
765          "box":true
766        }
767      }
768    },
769    "ListResolverEndpointIpAddressesResponse":{
770      "type":"structure",
771      "members":{
772        "NextToken":{"shape":"NextToken"},
773        "MaxResults":{"shape":"MaxResults"},
774        "IpAddresses":{"shape":"IpAddressesResponse"}
775      }
776    },
777    "ListResolverEndpointsRequest":{
778      "type":"structure",
779      "members":{
780        "MaxResults":{
781          "shape":"MaxResults",
782          "box":true
783        },
784        "NextToken":{
785          "shape":"NextToken",
786          "box":true
787        },
788        "Filters":{
789          "shape":"Filters",
790          "box":true
791        }
792      }
793    },
794    "ListResolverEndpointsResponse":{
795      "type":"structure",
796      "members":{
797        "NextToken":{"shape":"NextToken"},
798        "MaxResults":{"shape":"MaxResults"},
799        "ResolverEndpoints":{"shape":"ResolverEndpoints"}
800      }
801    },
802    "ListResolverRuleAssociationsRequest":{
803      "type":"structure",
804      "members":{
805        "MaxResults":{
806          "shape":"MaxResults",
807          "box":true
808        },
809        "NextToken":{
810          "shape":"NextToken",
811          "box":true
812        },
813        "Filters":{
814          "shape":"Filters",
815          "box":true
816        }
817      }
818    },
819    "ListResolverRuleAssociationsResponse":{
820      "type":"structure",
821      "members":{
822        "NextToken":{"shape":"NextToken"},
823        "MaxResults":{"shape":"MaxResults"},
824        "ResolverRuleAssociations":{"shape":"ResolverRuleAssociations"}
825      }
826    },
827    "ListResolverRulesRequest":{
828      "type":"structure",
829      "members":{
830        "MaxResults":{
831          "shape":"MaxResults",
832          "box":true
833        },
834        "NextToken":{
835          "shape":"NextToken",
836          "box":true
837        },
838        "Filters":{
839          "shape":"Filters",
840          "box":true
841        }
842      }
843    },
844    "ListResolverRulesResponse":{
845      "type":"structure",
846      "members":{
847        "NextToken":{"shape":"NextToken"},
848        "MaxResults":{"shape":"MaxResults"},
849        "ResolverRules":{"shape":"ResolverRules"}
850      }
851    },
852    "ListTagsForResourceRequest":{
853      "type":"structure",
854      "required":["ResourceArn"],
855      "members":{
856        "ResourceArn":{"shape":"Arn"},
857        "MaxResults":{
858          "shape":"MaxResults",
859          "box":true
860        },
861        "NextToken":{
862          "shape":"NextToken",
863          "box":true
864        }
865      }
866    },
867    "ListTagsForResourceResponse":{
868      "type":"structure",
869      "members":{
870        "Tags":{"shape":"TagList"},
871        "NextToken":{"shape":"NextToken"}
872      }
873    },
874    "MaxResults":{
875      "type":"integer",
876      "max":100,
877      "min":1
878    },
879    "Name":{
880      "type":"string",
881      "max":64,
882      "pattern":"(?!^[0-9]+$)([a-zA-Z0-9-_' ']+)"
883    },
884    "NextToken":{"type":"string"},
885    "Port":{
886      "type":"integer",
887      "max":65535,
888      "min":0
889    },
890    "PutResolverRulePolicyRequest":{
891      "type":"structure",
892      "required":[
893        "Arn",
894        "ResolverRulePolicy"
895      ],
896      "members":{
897        "Arn":{"shape":"Arn"},
898        "ResolverRulePolicy":{"shape":"ResolverRulePolicy"}
899      }
900    },
901    "PutResolverRulePolicyResponse":{
902      "type":"structure",
903      "members":{
904        "ReturnValue":{"shape":"Boolean"}
905      }
906    },
907    "ResolverEndpoint":{
908      "type":"structure",
909      "members":{
910        "Id":{"shape":"ResourceId"},
911        "CreatorRequestId":{"shape":"CreatorRequestId"},
912        "Arn":{"shape":"Arn"},
913        "Name":{"shape":"Name"},
914        "SecurityGroupIds":{"shape":"SecurityGroupIds"},
915        "Direction":{"shape":"ResolverEndpointDirection"},
916        "IpAddressCount":{"shape":"IpAddressCount"},
917        "HostVPCId":{"shape":"ResourceId"},
918        "Status":{"shape":"ResolverEndpointStatus"},
919        "StatusMessage":{"shape":"StatusMessage"},
920        "CreationTime":{"shape":"Rfc3339TimeString"},
921        "ModificationTime":{"shape":"Rfc3339TimeString"}
922      }
923    },
924    "ResolverEndpointDirection":{
925      "type":"string",
926      "enum":[
927        "INBOUND",
928        "OUTBOUND"
929      ]
930    },
931    "ResolverEndpointStatus":{
932      "type":"string",
933      "enum":[
934        "CREATING",
935        "OPERATIONAL",
936        "UPDATING",
937        "AUTO_RECOVERING",
938        "ACTION_NEEDED",
939        "DELETING"
940      ]
941    },
942    "ResolverEndpoints":{
943      "type":"list",
944      "member":{"shape":"ResolverEndpoint"}
945    },
946    "ResolverRule":{
947      "type":"structure",
948      "members":{
949        "Id":{"shape":"ResourceId"},
950        "CreatorRequestId":{"shape":"CreatorRequestId"},
951        "Arn":{"shape":"Arn"},
952        "DomainName":{"shape":"DomainName"},
953        "Status":{"shape":"ResolverRuleStatus"},
954        "StatusMessage":{"shape":"StatusMessage"},
955        "RuleType":{"shape":"RuleTypeOption"},
956        "Name":{"shape":"Name"},
957        "TargetIps":{"shape":"TargetList"},
958        "ResolverEndpointId":{"shape":"ResourceId"},
959        "OwnerId":{"shape":"AccountId"},
960        "ShareStatus":{"shape":"ShareStatus"}
961      }
962    },
963    "ResolverRuleAssociation":{
964      "type":"structure",
965      "members":{
966        "Id":{"shape":"ResourceId"},
967        "ResolverRuleId":{"shape":"ResourceId"},
968        "Name":{"shape":"Name"},
969        "VPCId":{"shape":"ResourceId"},
970        "Status":{"shape":"ResolverRuleAssociationStatus"},
971        "StatusMessage":{"shape":"StatusMessage"}
972      }
973    },
974    "ResolverRuleAssociationStatus":{
975      "type":"string",
976      "enum":[
977        "CREATING",
978        "COMPLETE",
979        "DELETING",
980        "FAILED",
981        "OVERRIDDEN"
982      ]
983    },
984    "ResolverRuleAssociations":{
985      "type":"list",
986      "member":{"shape":"ResolverRuleAssociation"}
987    },
988    "ResolverRuleConfig":{
989      "type":"structure",
990      "members":{
991        "Name":{"shape":"Name"},
992        "TargetIps":{"shape":"TargetList"},
993        "ResolverEndpointId":{"shape":"ResourceId"}
994      }
995    },
996    "ResolverRulePolicy":{
997      "type":"string",
998      "max":5000
999    },
1000    "ResolverRuleStatus":{
1001      "type":"string",
1002      "enum":[
1003        "COMPLETE",
1004        "DELETING",
1005        "UPDATING",
1006        "FAILED"
1007      ]
1008    },
1009    "ResolverRules":{
1010      "type":"list",
1011      "member":{"shape":"ResolverRule"}
1012    },
1013    "ResourceExistsException":{
1014      "type":"structure",
1015      "members":{
1016        "Message":{"shape":"String"},
1017        "ResourceType":{"shape":"String"}
1018      },
1019      "exception":true
1020    },
1021    "ResourceId":{
1022      "type":"string",
1023      "max":64,
1024      "min":1
1025    },
1026    "ResourceInUseException":{
1027      "type":"structure",
1028      "members":{
1029        "Message":{"shape":"String"},
1030        "ResourceType":{"shape":"String"}
1031      },
1032      "exception":true
1033    },
1034    "ResourceNotFoundException":{
1035      "type":"structure",
1036      "members":{
1037        "Message":{"shape":"String"},
1038        "ResourceType":{"shape":"String"}
1039      },
1040      "exception":true
1041    },
1042    "ResourceUnavailableException":{
1043      "type":"structure",
1044      "members":{
1045        "Message":{"shape":"String"},
1046        "ResourceType":{"shape":"String"}
1047      },
1048      "exception":true
1049    },
1050    "Rfc3339TimeString":{
1051      "type":"string",
1052      "max":40,
1053      "min":20
1054    },
1055    "RuleTypeOption":{
1056      "type":"string",
1057      "enum":[
1058        "FORWARD",
1059        "SYSTEM",
1060        "RECURSIVE"
1061      ]
1062    },
1063    "SecurityGroupIds":{
1064      "type":"list",
1065      "member":{"shape":"ResourceId"}
1066    },
1067    "ShareStatus":{
1068      "type":"string",
1069      "enum":[
1070        "NOT_SHARED",
1071        "SHARED_WITH_ME",
1072        "SHARED_BY_ME"
1073      ]
1074    },
1075    "StatusMessage":{
1076      "type":"string",
1077      "max":255
1078    },
1079    "String":{"type":"string"},
1080    "SubnetId":{
1081      "type":"string",
1082      "max":32,
1083      "min":1
1084    },
1085    "Tag":{
1086      "type":"structure",
1087      "members":{
1088        "Key":{"shape":"TagKey"},
1089        "Value":{"shape":"TagValue"}
1090      }
1091    },
1092    "TagKey":{"type":"string"},
1093    "TagKeyList":{
1094      "type":"list",
1095      "member":{"shape":"TagKey"}
1096    },
1097    "TagList":{
1098      "type":"list",
1099      "member":{"shape":"Tag"}
1100    },
1101    "TagResourceRequest":{
1102      "type":"structure",
1103      "required":[
1104        "ResourceArn",
1105        "Tags"
1106      ],
1107      "members":{
1108        "ResourceArn":{"shape":"Arn"},
1109        "Tags":{"shape":"TagList"}
1110      }
1111    },
1112    "TagResourceResponse":{
1113      "type":"structure",
1114      "members":{
1115      }
1116    },
1117    "TagValue":{"type":"string"},
1118    "TargetAddress":{
1119      "type":"structure",
1120      "required":["Ip"],
1121      "members":{
1122        "Ip":{"shape":"Ip"},
1123        "Port":{
1124          "shape":"Port",
1125          "box":true
1126        }
1127      }
1128    },
1129    "TargetList":{
1130      "type":"list",
1131      "member":{"shape":"TargetAddress"},
1132      "min":1
1133    },
1134    "ThrottlingException":{
1135      "type":"structure",
1136      "members":{
1137        "Message":{"shape":"ExceptionMessage"}
1138      },
1139      "exception":true
1140    },
1141    "UnknownResourceException":{
1142      "type":"structure",
1143      "members":{
1144        "Message":{"shape":"ExceptionMessage"}
1145      },
1146      "exception":true
1147    },
1148    "UntagResourceRequest":{
1149      "type":"structure",
1150      "required":[
1151        "ResourceArn",
1152        "TagKeys"
1153      ],
1154      "members":{
1155        "ResourceArn":{"shape":"Arn"},
1156        "TagKeys":{"shape":"TagKeyList"}
1157      }
1158    },
1159    "UntagResourceResponse":{
1160      "type":"structure",
1161      "members":{
1162      }
1163    },
1164    "UpdateResolverEndpointRequest":{
1165      "type":"structure",
1166      "required":["ResolverEndpointId"],
1167      "members":{
1168        "ResolverEndpointId":{"shape":"ResourceId"},
1169        "Name":{
1170          "shape":"Name",
1171          "box":true
1172        }
1173      }
1174    },
1175    "UpdateResolverEndpointResponse":{
1176      "type":"structure",
1177      "members":{
1178        "ResolverEndpoint":{"shape":"ResolverEndpoint"}
1179      }
1180    },
1181    "UpdateResolverRuleRequest":{
1182      "type":"structure",
1183      "required":[
1184        "ResolverRuleId",
1185        "Config"
1186      ],
1187      "members":{
1188        "ResolverRuleId":{"shape":"ResourceId"},
1189        "Config":{"shape":"ResolverRuleConfig"}
1190      }
1191    },
1192    "UpdateResolverRuleResponse":{
1193      "type":"structure",
1194      "members":{
1195        "ResolverRule":{"shape":"ResolverRule"}
1196      }
1197    }
1198  }
1199}
1200