1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2019-01-25",
5    "endpointPrefix":"appmesh",
6    "jsonVersion":"1.1",
7    "protocol":"rest-json",
8    "serviceFullName":"AWS App Mesh",
9    "serviceId":"App Mesh",
10    "signatureVersion":"v4",
11    "signingName":"appmesh",
12    "uid":"appmesh-2019-01-25"
13  },
14  "operations":{
15    "CreateGatewayRoute":{
16      "name":"CreateGatewayRoute",
17      "http":{
18        "method":"PUT",
19        "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes",
20        "responseCode":200
21      },
22      "input":{"shape":"CreateGatewayRouteInput"},
23      "output":{"shape":"CreateGatewayRouteOutput"},
24      "errors":[
25        {"shape":"NotFoundException"},
26        {"shape":"BadRequestException"},
27        {"shape":"ConflictException"},
28        {"shape":"TooManyRequestsException"},
29        {"shape":"ForbiddenException"},
30        {"shape":"ServiceUnavailableException"},
31        {"shape":"InternalServerErrorException"},
32        {"shape":"LimitExceededException"}
33      ],
34      "idempotent":true
35    },
36    "CreateMesh":{
37      "name":"CreateMesh",
38      "http":{
39        "method":"PUT",
40        "requestUri":"/v20190125/meshes",
41        "responseCode":200
42      },
43      "input":{"shape":"CreateMeshInput"},
44      "output":{"shape":"CreateMeshOutput"},
45      "errors":[
46        {"shape":"NotFoundException"},
47        {"shape":"BadRequestException"},
48        {"shape":"ConflictException"},
49        {"shape":"TooManyRequestsException"},
50        {"shape":"ForbiddenException"},
51        {"shape":"ServiceUnavailableException"},
52        {"shape":"InternalServerErrorException"},
53        {"shape":"LimitExceededException"}
54      ],
55      "idempotent":true
56    },
57    "CreateRoute":{
58      "name":"CreateRoute",
59      "http":{
60        "method":"PUT",
61        "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes",
62        "responseCode":200
63      },
64      "input":{"shape":"CreateRouteInput"},
65      "output":{"shape":"CreateRouteOutput"},
66      "errors":[
67        {"shape":"NotFoundException"},
68        {"shape":"BadRequestException"},
69        {"shape":"ConflictException"},
70        {"shape":"TooManyRequestsException"},
71        {"shape":"ForbiddenException"},
72        {"shape":"ServiceUnavailableException"},
73        {"shape":"InternalServerErrorException"},
74        {"shape":"LimitExceededException"}
75      ],
76      "idempotent":true
77    },
78    "CreateVirtualGateway":{
79      "name":"CreateVirtualGateway",
80      "http":{
81        "method":"PUT",
82        "requestUri":"/v20190125/meshes/{meshName}/virtualGateways",
83        "responseCode":200
84      },
85      "input":{"shape":"CreateVirtualGatewayInput"},
86      "output":{"shape":"CreateVirtualGatewayOutput"},
87      "errors":[
88        {"shape":"NotFoundException"},
89        {"shape":"BadRequestException"},
90        {"shape":"ConflictException"},
91        {"shape":"TooManyRequestsException"},
92        {"shape":"ForbiddenException"},
93        {"shape":"ServiceUnavailableException"},
94        {"shape":"InternalServerErrorException"},
95        {"shape":"LimitExceededException"}
96      ],
97      "idempotent":true
98    },
99    "CreateVirtualNode":{
100      "name":"CreateVirtualNode",
101      "http":{
102        "method":"PUT",
103        "requestUri":"/v20190125/meshes/{meshName}/virtualNodes",
104        "responseCode":200
105      },
106      "input":{"shape":"CreateVirtualNodeInput"},
107      "output":{"shape":"CreateVirtualNodeOutput"},
108      "errors":[
109        {"shape":"NotFoundException"},
110        {"shape":"BadRequestException"},
111        {"shape":"ConflictException"},
112        {"shape":"TooManyRequestsException"},
113        {"shape":"ForbiddenException"},
114        {"shape":"ServiceUnavailableException"},
115        {"shape":"InternalServerErrorException"},
116        {"shape":"LimitExceededException"}
117      ],
118      "idempotent":true
119    },
120    "CreateVirtualRouter":{
121      "name":"CreateVirtualRouter",
122      "http":{
123        "method":"PUT",
124        "requestUri":"/v20190125/meshes/{meshName}/virtualRouters",
125        "responseCode":200
126      },
127      "input":{"shape":"CreateVirtualRouterInput"},
128      "output":{"shape":"CreateVirtualRouterOutput"},
129      "errors":[
130        {"shape":"NotFoundException"},
131        {"shape":"BadRequestException"},
132        {"shape":"ConflictException"},
133        {"shape":"TooManyRequestsException"},
134        {"shape":"ForbiddenException"},
135        {"shape":"ServiceUnavailableException"},
136        {"shape":"InternalServerErrorException"},
137        {"shape":"LimitExceededException"}
138      ],
139      "idempotent":true
140    },
141    "CreateVirtualService":{
142      "name":"CreateVirtualService",
143      "http":{
144        "method":"PUT",
145        "requestUri":"/v20190125/meshes/{meshName}/virtualServices",
146        "responseCode":200
147      },
148      "input":{"shape":"CreateVirtualServiceInput"},
149      "output":{"shape":"CreateVirtualServiceOutput"},
150      "errors":[
151        {"shape":"NotFoundException"},
152        {"shape":"BadRequestException"},
153        {"shape":"ConflictException"},
154        {"shape":"TooManyRequestsException"},
155        {"shape":"ForbiddenException"},
156        {"shape":"ServiceUnavailableException"},
157        {"shape":"InternalServerErrorException"},
158        {"shape":"LimitExceededException"}
159      ],
160      "idempotent":true
161    },
162    "DeleteGatewayRoute":{
163      "name":"DeleteGatewayRoute",
164      "http":{
165        "method":"DELETE",
166        "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}",
167        "responseCode":200
168      },
169      "input":{"shape":"DeleteGatewayRouteInput"},
170      "output":{"shape":"DeleteGatewayRouteOutput"},
171      "errors":[
172        {"shape":"NotFoundException"},
173        {"shape":"BadRequestException"},
174        {"shape":"TooManyRequestsException"},
175        {"shape":"ForbiddenException"},
176        {"shape":"ResourceInUseException"},
177        {"shape":"ServiceUnavailableException"},
178        {"shape":"InternalServerErrorException"}
179      ],
180      "idempotent":true
181    },
182    "DeleteMesh":{
183      "name":"DeleteMesh",
184      "http":{
185        "method":"DELETE",
186        "requestUri":"/v20190125/meshes/{meshName}",
187        "responseCode":200
188      },
189      "input":{"shape":"DeleteMeshInput"},
190      "output":{"shape":"DeleteMeshOutput"},
191      "errors":[
192        {"shape":"NotFoundException"},
193        {"shape":"BadRequestException"},
194        {"shape":"TooManyRequestsException"},
195        {"shape":"ForbiddenException"},
196        {"shape":"ResourceInUseException"},
197        {"shape":"ServiceUnavailableException"},
198        {"shape":"InternalServerErrorException"}
199      ],
200      "idempotent":true
201    },
202    "DeleteRoute":{
203      "name":"DeleteRoute",
204      "http":{
205        "method":"DELETE",
206        "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}",
207        "responseCode":200
208      },
209      "input":{"shape":"DeleteRouteInput"},
210      "output":{"shape":"DeleteRouteOutput"},
211      "errors":[
212        {"shape":"NotFoundException"},
213        {"shape":"BadRequestException"},
214        {"shape":"TooManyRequestsException"},
215        {"shape":"ForbiddenException"},
216        {"shape":"ResourceInUseException"},
217        {"shape":"ServiceUnavailableException"},
218        {"shape":"InternalServerErrorException"}
219      ],
220      "idempotent":true
221    },
222    "DeleteVirtualGateway":{
223      "name":"DeleteVirtualGateway",
224      "http":{
225        "method":"DELETE",
226        "requestUri":"/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}",
227        "responseCode":200
228      },
229      "input":{"shape":"DeleteVirtualGatewayInput"},
230      "output":{"shape":"DeleteVirtualGatewayOutput"},
231      "errors":[
232        {"shape":"NotFoundException"},
233        {"shape":"BadRequestException"},
234        {"shape":"TooManyRequestsException"},
235        {"shape":"ForbiddenException"},
236        {"shape":"ResourceInUseException"},
237        {"shape":"ServiceUnavailableException"},
238        {"shape":"InternalServerErrorException"}
239      ],
240      "idempotent":true
241    },
242    "DeleteVirtualNode":{
243      "name":"DeleteVirtualNode",
244      "http":{
245        "method":"DELETE",
246        "requestUri":"/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}",
247        "responseCode":200
248      },
249      "input":{"shape":"DeleteVirtualNodeInput"},
250      "output":{"shape":"DeleteVirtualNodeOutput"},
251      "errors":[
252        {"shape":"NotFoundException"},
253        {"shape":"BadRequestException"},
254        {"shape":"TooManyRequestsException"},
255        {"shape":"ForbiddenException"},
256        {"shape":"ResourceInUseException"},
257        {"shape":"ServiceUnavailableException"},
258        {"shape":"InternalServerErrorException"}
259      ],
260      "idempotent":true
261    },
262    "DeleteVirtualRouter":{
263      "name":"DeleteVirtualRouter",
264      "http":{
265        "method":"DELETE",
266        "requestUri":"/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}",
267        "responseCode":200
268      },
269      "input":{"shape":"DeleteVirtualRouterInput"},
270      "output":{"shape":"DeleteVirtualRouterOutput"},
271      "errors":[
272        {"shape":"NotFoundException"},
273        {"shape":"BadRequestException"},
274        {"shape":"TooManyRequestsException"},
275        {"shape":"ForbiddenException"},
276        {"shape":"ResourceInUseException"},
277        {"shape":"ServiceUnavailableException"},
278        {"shape":"InternalServerErrorException"}
279      ],
280      "idempotent":true
281    },
282    "DeleteVirtualService":{
283      "name":"DeleteVirtualService",
284      "http":{
285        "method":"DELETE",
286        "requestUri":"/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}",
287        "responseCode":200
288      },
289      "input":{"shape":"DeleteVirtualServiceInput"},
290      "output":{"shape":"DeleteVirtualServiceOutput"},
291      "errors":[
292        {"shape":"NotFoundException"},
293        {"shape":"BadRequestException"},
294        {"shape":"TooManyRequestsException"},
295        {"shape":"ForbiddenException"},
296        {"shape":"ResourceInUseException"},
297        {"shape":"ServiceUnavailableException"},
298        {"shape":"InternalServerErrorException"}
299      ],
300      "idempotent":true
301    },
302    "DescribeGatewayRoute":{
303      "name":"DescribeGatewayRoute",
304      "http":{
305        "method":"GET",
306        "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}",
307        "responseCode":200
308      },
309      "input":{"shape":"DescribeGatewayRouteInput"},
310      "output":{"shape":"DescribeGatewayRouteOutput"},
311      "errors":[
312        {"shape":"NotFoundException"},
313        {"shape":"BadRequestException"},
314        {"shape":"TooManyRequestsException"},
315        {"shape":"ForbiddenException"},
316        {"shape":"ServiceUnavailableException"},
317        {"shape":"InternalServerErrorException"}
318      ]
319    },
320    "DescribeMesh":{
321      "name":"DescribeMesh",
322      "http":{
323        "method":"GET",
324        "requestUri":"/v20190125/meshes/{meshName}",
325        "responseCode":200
326      },
327      "input":{"shape":"DescribeMeshInput"},
328      "output":{"shape":"DescribeMeshOutput"},
329      "errors":[
330        {"shape":"NotFoundException"},
331        {"shape":"BadRequestException"},
332        {"shape":"TooManyRequestsException"},
333        {"shape":"ForbiddenException"},
334        {"shape":"ServiceUnavailableException"},
335        {"shape":"InternalServerErrorException"}
336      ]
337    },
338    "DescribeRoute":{
339      "name":"DescribeRoute",
340      "http":{
341        "method":"GET",
342        "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}",
343        "responseCode":200
344      },
345      "input":{"shape":"DescribeRouteInput"},
346      "output":{"shape":"DescribeRouteOutput"},
347      "errors":[
348        {"shape":"NotFoundException"},
349        {"shape":"BadRequestException"},
350        {"shape":"TooManyRequestsException"},
351        {"shape":"ForbiddenException"},
352        {"shape":"ServiceUnavailableException"},
353        {"shape":"InternalServerErrorException"}
354      ]
355    },
356    "DescribeVirtualGateway":{
357      "name":"DescribeVirtualGateway",
358      "http":{
359        "method":"GET",
360        "requestUri":"/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}",
361        "responseCode":200
362      },
363      "input":{"shape":"DescribeVirtualGatewayInput"},
364      "output":{"shape":"DescribeVirtualGatewayOutput"},
365      "errors":[
366        {"shape":"NotFoundException"},
367        {"shape":"BadRequestException"},
368        {"shape":"TooManyRequestsException"},
369        {"shape":"ForbiddenException"},
370        {"shape":"ServiceUnavailableException"},
371        {"shape":"InternalServerErrorException"}
372      ]
373    },
374    "DescribeVirtualNode":{
375      "name":"DescribeVirtualNode",
376      "http":{
377        "method":"GET",
378        "requestUri":"/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}",
379        "responseCode":200
380      },
381      "input":{"shape":"DescribeVirtualNodeInput"},
382      "output":{"shape":"DescribeVirtualNodeOutput"},
383      "errors":[
384        {"shape":"NotFoundException"},
385        {"shape":"BadRequestException"},
386        {"shape":"TooManyRequestsException"},
387        {"shape":"ForbiddenException"},
388        {"shape":"ServiceUnavailableException"},
389        {"shape":"InternalServerErrorException"}
390      ]
391    },
392    "DescribeVirtualRouter":{
393      "name":"DescribeVirtualRouter",
394      "http":{
395        "method":"GET",
396        "requestUri":"/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}",
397        "responseCode":200
398      },
399      "input":{"shape":"DescribeVirtualRouterInput"},
400      "output":{"shape":"DescribeVirtualRouterOutput"},
401      "errors":[
402        {"shape":"NotFoundException"},
403        {"shape":"BadRequestException"},
404        {"shape":"TooManyRequestsException"},
405        {"shape":"ForbiddenException"},
406        {"shape":"ServiceUnavailableException"},
407        {"shape":"InternalServerErrorException"}
408      ]
409    },
410    "DescribeVirtualService":{
411      "name":"DescribeVirtualService",
412      "http":{
413        "method":"GET",
414        "requestUri":"/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}",
415        "responseCode":200
416      },
417      "input":{"shape":"DescribeVirtualServiceInput"},
418      "output":{"shape":"DescribeVirtualServiceOutput"},
419      "errors":[
420        {"shape":"NotFoundException"},
421        {"shape":"BadRequestException"},
422        {"shape":"TooManyRequestsException"},
423        {"shape":"ForbiddenException"},
424        {"shape":"ServiceUnavailableException"},
425        {"shape":"InternalServerErrorException"}
426      ]
427    },
428    "ListGatewayRoutes":{
429      "name":"ListGatewayRoutes",
430      "http":{
431        "method":"GET",
432        "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes",
433        "responseCode":200
434      },
435      "input":{"shape":"ListGatewayRoutesInput"},
436      "output":{"shape":"ListGatewayRoutesOutput"},
437      "errors":[
438        {"shape":"NotFoundException"},
439        {"shape":"BadRequestException"},
440        {"shape":"TooManyRequestsException"},
441        {"shape":"ForbiddenException"},
442        {"shape":"ServiceUnavailableException"},
443        {"shape":"InternalServerErrorException"}
444      ]
445    },
446    "ListMeshes":{
447      "name":"ListMeshes",
448      "http":{
449        "method":"GET",
450        "requestUri":"/v20190125/meshes",
451        "responseCode":200
452      },
453      "input":{"shape":"ListMeshesInput"},
454      "output":{"shape":"ListMeshesOutput"},
455      "errors":[
456        {"shape":"NotFoundException"},
457        {"shape":"BadRequestException"},
458        {"shape":"TooManyRequestsException"},
459        {"shape":"ForbiddenException"},
460        {"shape":"ServiceUnavailableException"},
461        {"shape":"InternalServerErrorException"}
462      ]
463    },
464    "ListRoutes":{
465      "name":"ListRoutes",
466      "http":{
467        "method":"GET",
468        "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes",
469        "responseCode":200
470      },
471      "input":{"shape":"ListRoutesInput"},
472      "output":{"shape":"ListRoutesOutput"},
473      "errors":[
474        {"shape":"NotFoundException"},
475        {"shape":"BadRequestException"},
476        {"shape":"TooManyRequestsException"},
477        {"shape":"ForbiddenException"},
478        {"shape":"ServiceUnavailableException"},
479        {"shape":"InternalServerErrorException"}
480      ]
481    },
482    "ListTagsForResource":{
483      "name":"ListTagsForResource",
484      "http":{
485        "method":"GET",
486        "requestUri":"/v20190125/tags",
487        "responseCode":200
488      },
489      "input":{"shape":"ListTagsForResourceInput"},
490      "output":{"shape":"ListTagsForResourceOutput"},
491      "errors":[
492        {"shape":"NotFoundException"},
493        {"shape":"BadRequestException"},
494        {"shape":"TooManyRequestsException"},
495        {"shape":"ForbiddenException"},
496        {"shape":"ServiceUnavailableException"},
497        {"shape":"InternalServerErrorException"}
498      ]
499    },
500    "ListVirtualGateways":{
501      "name":"ListVirtualGateways",
502      "http":{
503        "method":"GET",
504        "requestUri":"/v20190125/meshes/{meshName}/virtualGateways",
505        "responseCode":200
506      },
507      "input":{"shape":"ListVirtualGatewaysInput"},
508      "output":{"shape":"ListVirtualGatewaysOutput"},
509      "errors":[
510        {"shape":"NotFoundException"},
511        {"shape":"BadRequestException"},
512        {"shape":"TooManyRequestsException"},
513        {"shape":"ForbiddenException"},
514        {"shape":"ServiceUnavailableException"},
515        {"shape":"InternalServerErrorException"}
516      ]
517    },
518    "ListVirtualNodes":{
519      "name":"ListVirtualNodes",
520      "http":{
521        "method":"GET",
522        "requestUri":"/v20190125/meshes/{meshName}/virtualNodes",
523        "responseCode":200
524      },
525      "input":{"shape":"ListVirtualNodesInput"},
526      "output":{"shape":"ListVirtualNodesOutput"},
527      "errors":[
528        {"shape":"NotFoundException"},
529        {"shape":"BadRequestException"},
530        {"shape":"TooManyRequestsException"},
531        {"shape":"ForbiddenException"},
532        {"shape":"ServiceUnavailableException"},
533        {"shape":"InternalServerErrorException"}
534      ]
535    },
536    "ListVirtualRouters":{
537      "name":"ListVirtualRouters",
538      "http":{
539        "method":"GET",
540        "requestUri":"/v20190125/meshes/{meshName}/virtualRouters",
541        "responseCode":200
542      },
543      "input":{"shape":"ListVirtualRoutersInput"},
544      "output":{"shape":"ListVirtualRoutersOutput"},
545      "errors":[
546        {"shape":"NotFoundException"},
547        {"shape":"BadRequestException"},
548        {"shape":"TooManyRequestsException"},
549        {"shape":"ForbiddenException"},
550        {"shape":"ServiceUnavailableException"},
551        {"shape":"InternalServerErrorException"}
552      ]
553    },
554    "ListVirtualServices":{
555      "name":"ListVirtualServices",
556      "http":{
557        "method":"GET",
558        "requestUri":"/v20190125/meshes/{meshName}/virtualServices",
559        "responseCode":200
560      },
561      "input":{"shape":"ListVirtualServicesInput"},
562      "output":{"shape":"ListVirtualServicesOutput"},
563      "errors":[
564        {"shape":"NotFoundException"},
565        {"shape":"BadRequestException"},
566        {"shape":"TooManyRequestsException"},
567        {"shape":"ForbiddenException"},
568        {"shape":"ServiceUnavailableException"},
569        {"shape":"InternalServerErrorException"}
570      ]
571    },
572    "TagResource":{
573      "name":"TagResource",
574      "http":{
575        "method":"PUT",
576        "requestUri":"/v20190125/tag",
577        "responseCode":200
578      },
579      "input":{"shape":"TagResourceInput"},
580      "output":{"shape":"TagResourceOutput"},
581      "errors":[
582        {"shape":"NotFoundException"},
583        {"shape":"BadRequestException"},
584        {"shape":"TooManyTagsException"},
585        {"shape":"TooManyRequestsException"},
586        {"shape":"ForbiddenException"},
587        {"shape":"ServiceUnavailableException"},
588        {"shape":"InternalServerErrorException"}
589      ],
590      "idempotent":true
591    },
592    "UntagResource":{
593      "name":"UntagResource",
594      "http":{
595        "method":"PUT",
596        "requestUri":"/v20190125/untag",
597        "responseCode":200
598      },
599      "input":{"shape":"UntagResourceInput"},
600      "output":{"shape":"UntagResourceOutput"},
601      "errors":[
602        {"shape":"NotFoundException"},
603        {"shape":"BadRequestException"},
604        {"shape":"TooManyRequestsException"},
605        {"shape":"ForbiddenException"},
606        {"shape":"ServiceUnavailableException"},
607        {"shape":"InternalServerErrorException"}
608      ],
609      "idempotent":true
610    },
611    "UpdateGatewayRoute":{
612      "name":"UpdateGatewayRoute",
613      "http":{
614        "method":"PUT",
615        "requestUri":"/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}",
616        "responseCode":200
617      },
618      "input":{"shape":"UpdateGatewayRouteInput"},
619      "output":{"shape":"UpdateGatewayRouteOutput"},
620      "errors":[
621        {"shape":"NotFoundException"},
622        {"shape":"BadRequestException"},
623        {"shape":"ConflictException"},
624        {"shape":"TooManyRequestsException"},
625        {"shape":"ForbiddenException"},
626        {"shape":"ServiceUnavailableException"},
627        {"shape":"InternalServerErrorException"},
628        {"shape":"LimitExceededException"}
629      ],
630      "idempotent":true
631    },
632    "UpdateMesh":{
633      "name":"UpdateMesh",
634      "http":{
635        "method":"PUT",
636        "requestUri":"/v20190125/meshes/{meshName}",
637        "responseCode":200
638      },
639      "input":{"shape":"UpdateMeshInput"},
640      "output":{"shape":"UpdateMeshOutput"},
641      "errors":[
642        {"shape":"NotFoundException"},
643        {"shape":"BadRequestException"},
644        {"shape":"ConflictException"},
645        {"shape":"TooManyRequestsException"},
646        {"shape":"ForbiddenException"},
647        {"shape":"ServiceUnavailableException"},
648        {"shape":"InternalServerErrorException"}
649      ],
650      "idempotent":true
651    },
652    "UpdateRoute":{
653      "name":"UpdateRoute",
654      "http":{
655        "method":"PUT",
656        "requestUri":"/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}",
657        "responseCode":200
658      },
659      "input":{"shape":"UpdateRouteInput"},
660      "output":{"shape":"UpdateRouteOutput"},
661      "errors":[
662        {"shape":"NotFoundException"},
663        {"shape":"BadRequestException"},
664        {"shape":"ConflictException"},
665        {"shape":"TooManyRequestsException"},
666        {"shape":"ForbiddenException"},
667        {"shape":"ServiceUnavailableException"},
668        {"shape":"InternalServerErrorException"},
669        {"shape":"LimitExceededException"}
670      ],
671      "idempotent":true
672    },
673    "UpdateVirtualGateway":{
674      "name":"UpdateVirtualGateway",
675      "http":{
676        "method":"PUT",
677        "requestUri":"/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}",
678        "responseCode":200
679      },
680      "input":{"shape":"UpdateVirtualGatewayInput"},
681      "output":{"shape":"UpdateVirtualGatewayOutput"},
682      "errors":[
683        {"shape":"NotFoundException"},
684        {"shape":"BadRequestException"},
685        {"shape":"ConflictException"},
686        {"shape":"TooManyRequestsException"},
687        {"shape":"ForbiddenException"},
688        {"shape":"ServiceUnavailableException"},
689        {"shape":"InternalServerErrorException"},
690        {"shape":"LimitExceededException"}
691      ],
692      "idempotent":true
693    },
694    "UpdateVirtualNode":{
695      "name":"UpdateVirtualNode",
696      "http":{
697        "method":"PUT",
698        "requestUri":"/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}",
699        "responseCode":200
700      },
701      "input":{"shape":"UpdateVirtualNodeInput"},
702      "output":{"shape":"UpdateVirtualNodeOutput"},
703      "errors":[
704        {"shape":"NotFoundException"},
705        {"shape":"BadRequestException"},
706        {"shape":"ConflictException"},
707        {"shape":"TooManyRequestsException"},
708        {"shape":"ForbiddenException"},
709        {"shape":"ServiceUnavailableException"},
710        {"shape":"InternalServerErrorException"},
711        {"shape":"LimitExceededException"}
712      ],
713      "idempotent":true
714    },
715    "UpdateVirtualRouter":{
716      "name":"UpdateVirtualRouter",
717      "http":{
718        "method":"PUT",
719        "requestUri":"/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}",
720        "responseCode":200
721      },
722      "input":{"shape":"UpdateVirtualRouterInput"},
723      "output":{"shape":"UpdateVirtualRouterOutput"},
724      "errors":[
725        {"shape":"NotFoundException"},
726        {"shape":"BadRequestException"},
727        {"shape":"ConflictException"},
728        {"shape":"TooManyRequestsException"},
729        {"shape":"ForbiddenException"},
730        {"shape":"ServiceUnavailableException"},
731        {"shape":"InternalServerErrorException"},
732        {"shape":"LimitExceededException"}
733      ],
734      "idempotent":true
735    },
736    "UpdateVirtualService":{
737      "name":"UpdateVirtualService",
738      "http":{
739        "method":"PUT",
740        "requestUri":"/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}",
741        "responseCode":200
742      },
743      "input":{"shape":"UpdateVirtualServiceInput"},
744      "output":{"shape":"UpdateVirtualServiceOutput"},
745      "errors":[
746        {"shape":"NotFoundException"},
747        {"shape":"BadRequestException"},
748        {"shape":"ConflictException"},
749        {"shape":"TooManyRequestsException"},
750        {"shape":"ForbiddenException"},
751        {"shape":"ServiceUnavailableException"},
752        {"shape":"InternalServerErrorException"},
753        {"shape":"LimitExceededException"}
754      ],
755      "idempotent":true
756    }
757  },
758  "shapes":{
759    "AccessLog":{
760      "type":"structure",
761      "members":{
762        "file":{"shape":"FileAccessLog"}
763      },
764      "union":true
765    },
766    "AccountId":{
767      "type":"string",
768      "max":12,
769      "min":12
770    },
771    "Arn":{"type":"string"},
772    "AwsCloudMapInstanceAttribute":{
773      "type":"structure",
774      "required":[
775        "key",
776        "value"
777      ],
778      "members":{
779        "key":{"shape":"AwsCloudMapInstanceAttributeKey"},
780        "value":{"shape":"AwsCloudMapInstanceAttributeValue"}
781      }
782    },
783    "AwsCloudMapInstanceAttributeKey":{
784      "type":"string",
785      "max":255,
786      "min":1,
787      "pattern":"^[a-zA-Z0-9!-~]+$"
788    },
789    "AwsCloudMapInstanceAttributeValue":{
790      "type":"string",
791      "max":1024,
792      "min":1,
793      "pattern":"^([a-zA-Z0-9!-~][  a-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$"
794    },
795    "AwsCloudMapInstanceAttributes":{
796      "type":"list",
797      "member":{"shape":"AwsCloudMapInstanceAttribute"}
798    },
799    "AwsCloudMapName":{
800      "type":"string",
801      "max":1024,
802      "min":1
803    },
804    "AwsCloudMapServiceDiscovery":{
805      "type":"structure",
806      "required":[
807        "namespaceName",
808        "serviceName"
809      ],
810      "members":{
811        "attributes":{"shape":"AwsCloudMapInstanceAttributes"},
812        "namespaceName":{"shape":"AwsCloudMapName"},
813        "serviceName":{"shape":"AwsCloudMapName"}
814      }
815    },
816    "Backend":{
817      "type":"structure",
818      "members":{
819        "virtualService":{"shape":"VirtualServiceBackend"}
820      },
821      "union":true
822    },
823    "BackendDefaults":{
824      "type":"structure",
825      "members":{
826        "clientPolicy":{"shape":"ClientPolicy"}
827      }
828    },
829    "Backends":{
830      "type":"list",
831      "member":{"shape":"Backend"}
832    },
833    "BadRequestException":{
834      "type":"structure",
835      "members":{
836        "message":{"shape":"String"}
837      },
838      "error":{
839        "httpStatusCode":400,
840        "senderFault":true
841      },
842      "exception":true
843    },
844    "Boolean":{
845      "type":"boolean",
846      "box":true
847    },
848    "CertificateAuthorityArns":{
849      "type":"list",
850      "member":{"shape":"Arn"},
851      "max":3,
852      "min":1
853    },
854    "ClientPolicy":{
855      "type":"structure",
856      "members":{
857        "tls":{"shape":"ClientPolicyTls"}
858      }
859    },
860    "ClientPolicyTls":{
861      "type":"structure",
862      "required":["validation"],
863      "members":{
864        "certificate":{"shape":"ClientTlsCertificate"},
865        "enforce":{
866          "shape":"Boolean",
867          "box":true
868        },
869        "ports":{"shape":"PortSet"},
870        "validation":{"shape":"TlsValidationContext"}
871      }
872    },
873    "ClientTlsCertificate":{
874      "type":"structure",
875      "members":{
876        "file":{"shape":"ListenerTlsFileCertificate"},
877        "sds":{"shape":"ListenerTlsSdsCertificate"}
878      },
879      "union":true
880    },
881    "ConflictException":{
882      "type":"structure",
883      "members":{
884        "message":{"shape":"String"}
885      },
886      "error":{
887        "httpStatusCode":409,
888        "senderFault":true
889      },
890      "exception":true
891    },
892    "CreateGatewayRouteInput":{
893      "type":"structure",
894      "required":[
895        "gatewayRouteName",
896        "meshName",
897        "spec",
898        "virtualGatewayName"
899      ],
900      "members":{
901        "clientToken":{
902          "shape":"String",
903          "idempotencyToken":true
904        },
905        "gatewayRouteName":{"shape":"ResourceName"},
906        "meshName":{
907          "shape":"ResourceName",
908          "location":"uri",
909          "locationName":"meshName"
910        },
911        "meshOwner":{
912          "shape":"AccountId",
913          "location":"querystring",
914          "locationName":"meshOwner"
915        },
916        "spec":{"shape":"GatewayRouteSpec"},
917        "tags":{"shape":"TagList"},
918        "virtualGatewayName":{
919          "shape":"ResourceName",
920          "location":"uri",
921          "locationName":"virtualGatewayName"
922        }
923      }
924    },
925    "CreateGatewayRouteOutput":{
926      "type":"structure",
927      "required":["gatewayRoute"],
928      "members":{
929        "gatewayRoute":{"shape":"GatewayRouteData"}
930      },
931      "payload":"gatewayRoute"
932    },
933    "CreateMeshInput":{
934      "type":"structure",
935      "required":["meshName"],
936      "members":{
937        "clientToken":{
938          "shape":"String",
939          "idempotencyToken":true
940        },
941        "meshName":{"shape":"ResourceName"},
942        "spec":{"shape":"MeshSpec"},
943        "tags":{"shape":"TagList"}
944      }
945    },
946    "CreateMeshOutput":{
947      "type":"structure",
948      "required":["mesh"],
949      "members":{
950        "mesh":{"shape":"MeshData"}
951      },
952      "payload":"mesh"
953    },
954    "CreateRouteInput":{
955      "type":"structure",
956      "required":[
957        "meshName",
958        "routeName",
959        "spec",
960        "virtualRouterName"
961      ],
962      "members":{
963        "clientToken":{
964          "shape":"String",
965          "idempotencyToken":true
966        },
967        "meshName":{
968          "shape":"ResourceName",
969          "location":"uri",
970          "locationName":"meshName"
971        },
972        "meshOwner":{
973          "shape":"AccountId",
974          "location":"querystring",
975          "locationName":"meshOwner"
976        },
977        "routeName":{"shape":"ResourceName"},
978        "spec":{"shape":"RouteSpec"},
979        "tags":{"shape":"TagList"},
980        "virtualRouterName":{
981          "shape":"ResourceName",
982          "location":"uri",
983          "locationName":"virtualRouterName"
984        }
985      }
986    },
987    "CreateRouteOutput":{
988      "type":"structure",
989      "required":["route"],
990      "members":{
991        "route":{"shape":"RouteData"}
992      },
993      "payload":"route"
994    },
995    "CreateVirtualGatewayInput":{
996      "type":"structure",
997      "required":[
998        "meshName",
999        "spec",
1000        "virtualGatewayName"
1001      ],
1002      "members":{
1003        "clientToken":{
1004          "shape":"String",
1005          "idempotencyToken":true
1006        },
1007        "meshName":{
1008          "shape":"ResourceName",
1009          "location":"uri",
1010          "locationName":"meshName"
1011        },
1012        "meshOwner":{
1013          "shape":"AccountId",
1014          "location":"querystring",
1015          "locationName":"meshOwner"
1016        },
1017        "spec":{"shape":"VirtualGatewaySpec"},
1018        "tags":{"shape":"TagList"},
1019        "virtualGatewayName":{"shape":"ResourceName"}
1020      }
1021    },
1022    "CreateVirtualGatewayOutput":{
1023      "type":"structure",
1024      "required":["virtualGateway"],
1025      "members":{
1026        "virtualGateway":{"shape":"VirtualGatewayData"}
1027      },
1028      "payload":"virtualGateway"
1029    },
1030    "CreateVirtualNodeInput":{
1031      "type":"structure",
1032      "required":[
1033        "meshName",
1034        "spec",
1035        "virtualNodeName"
1036      ],
1037      "members":{
1038        "clientToken":{
1039          "shape":"String",
1040          "idempotencyToken":true
1041        },
1042        "meshName":{
1043          "shape":"ResourceName",
1044          "location":"uri",
1045          "locationName":"meshName"
1046        },
1047        "meshOwner":{
1048          "shape":"AccountId",
1049          "location":"querystring",
1050          "locationName":"meshOwner"
1051        },
1052        "spec":{"shape":"VirtualNodeSpec"},
1053        "tags":{"shape":"TagList"},
1054        "virtualNodeName":{"shape":"ResourceName"}
1055      }
1056    },
1057    "CreateVirtualNodeOutput":{
1058      "type":"structure",
1059      "required":["virtualNode"],
1060      "members":{
1061        "virtualNode":{"shape":"VirtualNodeData"}
1062      },
1063      "payload":"virtualNode"
1064    },
1065    "CreateVirtualRouterInput":{
1066      "type":"structure",
1067      "required":[
1068        "meshName",
1069        "spec",
1070        "virtualRouterName"
1071      ],
1072      "members":{
1073        "clientToken":{
1074          "shape":"String",
1075          "idempotencyToken":true
1076        },
1077        "meshName":{
1078          "shape":"ResourceName",
1079          "location":"uri",
1080          "locationName":"meshName"
1081        },
1082        "meshOwner":{
1083          "shape":"AccountId",
1084          "location":"querystring",
1085          "locationName":"meshOwner"
1086        },
1087        "spec":{"shape":"VirtualRouterSpec"},
1088        "tags":{"shape":"TagList"},
1089        "virtualRouterName":{"shape":"ResourceName"}
1090      }
1091    },
1092    "CreateVirtualRouterOutput":{
1093      "type":"structure",
1094      "required":["virtualRouter"],
1095      "members":{
1096        "virtualRouter":{"shape":"VirtualRouterData"}
1097      },
1098      "payload":"virtualRouter"
1099    },
1100    "CreateVirtualServiceInput":{
1101      "type":"structure",
1102      "required":[
1103        "meshName",
1104        "spec",
1105        "virtualServiceName"
1106      ],
1107      "members":{
1108        "clientToken":{
1109          "shape":"String",
1110          "idempotencyToken":true
1111        },
1112        "meshName":{
1113          "shape":"ResourceName",
1114          "location":"uri",
1115          "locationName":"meshName"
1116        },
1117        "meshOwner":{
1118          "shape":"AccountId",
1119          "location":"querystring",
1120          "locationName":"meshOwner"
1121        },
1122        "spec":{"shape":"VirtualServiceSpec"},
1123        "tags":{"shape":"TagList"},
1124        "virtualServiceName":{"shape":"ServiceName"}
1125      }
1126    },
1127    "CreateVirtualServiceOutput":{
1128      "type":"structure",
1129      "required":["virtualService"],
1130      "members":{
1131        "virtualService":{"shape":"VirtualServiceData"}
1132      },
1133      "payload":"virtualService"
1134    },
1135    "DefaultGatewayRouteRewrite":{
1136      "type":"string",
1137      "enum":[
1138        "ENABLED",
1139        "DISABLED"
1140      ]
1141    },
1142    "DeleteGatewayRouteInput":{
1143      "type":"structure",
1144      "required":[
1145        "gatewayRouteName",
1146        "meshName",
1147        "virtualGatewayName"
1148      ],
1149      "members":{
1150        "gatewayRouteName":{
1151          "shape":"ResourceName",
1152          "location":"uri",
1153          "locationName":"gatewayRouteName"
1154        },
1155        "meshName":{
1156          "shape":"ResourceName",
1157          "location":"uri",
1158          "locationName":"meshName"
1159        },
1160        "meshOwner":{
1161          "shape":"AccountId",
1162          "location":"querystring",
1163          "locationName":"meshOwner"
1164        },
1165        "virtualGatewayName":{
1166          "shape":"ResourceName",
1167          "location":"uri",
1168          "locationName":"virtualGatewayName"
1169        }
1170      }
1171    },
1172    "DeleteGatewayRouteOutput":{
1173      "type":"structure",
1174      "required":["gatewayRoute"],
1175      "members":{
1176        "gatewayRoute":{"shape":"GatewayRouteData"}
1177      },
1178      "payload":"gatewayRoute"
1179    },
1180    "DeleteMeshInput":{
1181      "type":"structure",
1182      "required":["meshName"],
1183      "members":{
1184        "meshName":{
1185          "shape":"ResourceName",
1186          "location":"uri",
1187          "locationName":"meshName"
1188        }
1189      }
1190    },
1191    "DeleteMeshOutput":{
1192      "type":"structure",
1193      "required":["mesh"],
1194      "members":{
1195        "mesh":{"shape":"MeshData"}
1196      },
1197      "payload":"mesh"
1198    },
1199    "DeleteRouteInput":{
1200      "type":"structure",
1201      "required":[
1202        "meshName",
1203        "routeName",
1204        "virtualRouterName"
1205      ],
1206      "members":{
1207        "meshName":{
1208          "shape":"ResourceName",
1209          "location":"uri",
1210          "locationName":"meshName"
1211        },
1212        "meshOwner":{
1213          "shape":"AccountId",
1214          "location":"querystring",
1215          "locationName":"meshOwner"
1216        },
1217        "routeName":{
1218          "shape":"ResourceName",
1219          "location":"uri",
1220          "locationName":"routeName"
1221        },
1222        "virtualRouterName":{
1223          "shape":"ResourceName",
1224          "location":"uri",
1225          "locationName":"virtualRouterName"
1226        }
1227      }
1228    },
1229    "DeleteRouteOutput":{
1230      "type":"structure",
1231      "required":["route"],
1232      "members":{
1233        "route":{"shape":"RouteData"}
1234      },
1235      "payload":"route"
1236    },
1237    "DeleteVirtualGatewayInput":{
1238      "type":"structure",
1239      "required":[
1240        "meshName",
1241        "virtualGatewayName"
1242      ],
1243      "members":{
1244        "meshName":{
1245          "shape":"ResourceName",
1246          "location":"uri",
1247          "locationName":"meshName"
1248        },
1249        "meshOwner":{
1250          "shape":"AccountId",
1251          "location":"querystring",
1252          "locationName":"meshOwner"
1253        },
1254        "virtualGatewayName":{
1255          "shape":"ResourceName",
1256          "location":"uri",
1257          "locationName":"virtualGatewayName"
1258        }
1259      }
1260    },
1261    "DeleteVirtualGatewayOutput":{
1262      "type":"structure",
1263      "required":["virtualGateway"],
1264      "members":{
1265        "virtualGateway":{"shape":"VirtualGatewayData"}
1266      },
1267      "payload":"virtualGateway"
1268    },
1269    "DeleteVirtualNodeInput":{
1270      "type":"structure",
1271      "required":[
1272        "meshName",
1273        "virtualNodeName"
1274      ],
1275      "members":{
1276        "meshName":{
1277          "shape":"ResourceName",
1278          "location":"uri",
1279          "locationName":"meshName"
1280        },
1281        "meshOwner":{
1282          "shape":"AccountId",
1283          "location":"querystring",
1284          "locationName":"meshOwner"
1285        },
1286        "virtualNodeName":{
1287          "shape":"ResourceName",
1288          "location":"uri",
1289          "locationName":"virtualNodeName"
1290        }
1291      }
1292    },
1293    "DeleteVirtualNodeOutput":{
1294      "type":"structure",
1295      "required":["virtualNode"],
1296      "members":{
1297        "virtualNode":{"shape":"VirtualNodeData"}
1298      },
1299      "payload":"virtualNode"
1300    },
1301    "DeleteVirtualRouterInput":{
1302      "type":"structure",
1303      "required":[
1304        "meshName",
1305        "virtualRouterName"
1306      ],
1307      "members":{
1308        "meshName":{
1309          "shape":"ResourceName",
1310          "location":"uri",
1311          "locationName":"meshName"
1312        },
1313        "meshOwner":{
1314          "shape":"AccountId",
1315          "location":"querystring",
1316          "locationName":"meshOwner"
1317        },
1318        "virtualRouterName":{
1319          "shape":"ResourceName",
1320          "location":"uri",
1321          "locationName":"virtualRouterName"
1322        }
1323      }
1324    },
1325    "DeleteVirtualRouterOutput":{
1326      "type":"structure",
1327      "required":["virtualRouter"],
1328      "members":{
1329        "virtualRouter":{"shape":"VirtualRouterData"}
1330      },
1331      "payload":"virtualRouter"
1332    },
1333    "DeleteVirtualServiceInput":{
1334      "type":"structure",
1335      "required":[
1336        "meshName",
1337        "virtualServiceName"
1338      ],
1339      "members":{
1340        "meshName":{
1341          "shape":"ResourceName",
1342          "location":"uri",
1343          "locationName":"meshName"
1344        },
1345        "meshOwner":{
1346          "shape":"AccountId",
1347          "location":"querystring",
1348          "locationName":"meshOwner"
1349        },
1350        "virtualServiceName":{
1351          "shape":"ServiceName",
1352          "location":"uri",
1353          "locationName":"virtualServiceName"
1354        }
1355      }
1356    },
1357    "DeleteVirtualServiceOutput":{
1358      "type":"structure",
1359      "required":["virtualService"],
1360      "members":{
1361        "virtualService":{"shape":"VirtualServiceData"}
1362      },
1363      "payload":"virtualService"
1364    },
1365    "DescribeGatewayRouteInput":{
1366      "type":"structure",
1367      "required":[
1368        "gatewayRouteName",
1369        "meshName",
1370        "virtualGatewayName"
1371      ],
1372      "members":{
1373        "gatewayRouteName":{
1374          "shape":"ResourceName",
1375          "location":"uri",
1376          "locationName":"gatewayRouteName"
1377        },
1378        "meshName":{
1379          "shape":"ResourceName",
1380          "location":"uri",
1381          "locationName":"meshName"
1382        },
1383        "meshOwner":{
1384          "shape":"AccountId",
1385          "location":"querystring",
1386          "locationName":"meshOwner"
1387        },
1388        "virtualGatewayName":{
1389          "shape":"ResourceName",
1390          "location":"uri",
1391          "locationName":"virtualGatewayName"
1392        }
1393      }
1394    },
1395    "DescribeGatewayRouteOutput":{
1396      "type":"structure",
1397      "required":["gatewayRoute"],
1398      "members":{
1399        "gatewayRoute":{"shape":"GatewayRouteData"}
1400      },
1401      "payload":"gatewayRoute"
1402    },
1403    "DescribeMeshInput":{
1404      "type":"structure",
1405      "required":["meshName"],
1406      "members":{
1407        "meshName":{
1408          "shape":"ResourceName",
1409          "location":"uri",
1410          "locationName":"meshName"
1411        },
1412        "meshOwner":{
1413          "shape":"AccountId",
1414          "location":"querystring",
1415          "locationName":"meshOwner"
1416        }
1417      }
1418    },
1419    "DescribeMeshOutput":{
1420      "type":"structure",
1421      "required":["mesh"],
1422      "members":{
1423        "mesh":{"shape":"MeshData"}
1424      },
1425      "payload":"mesh"
1426    },
1427    "DescribeRouteInput":{
1428      "type":"structure",
1429      "required":[
1430        "meshName",
1431        "routeName",
1432        "virtualRouterName"
1433      ],
1434      "members":{
1435        "meshName":{
1436          "shape":"ResourceName",
1437          "location":"uri",
1438          "locationName":"meshName"
1439        },
1440        "meshOwner":{
1441          "shape":"AccountId",
1442          "location":"querystring",
1443          "locationName":"meshOwner"
1444        },
1445        "routeName":{
1446          "shape":"ResourceName",
1447          "location":"uri",
1448          "locationName":"routeName"
1449        },
1450        "virtualRouterName":{
1451          "shape":"ResourceName",
1452          "location":"uri",
1453          "locationName":"virtualRouterName"
1454        }
1455      }
1456    },
1457    "DescribeRouteOutput":{
1458      "type":"structure",
1459      "required":["route"],
1460      "members":{
1461        "route":{"shape":"RouteData"}
1462      },
1463      "payload":"route"
1464    },
1465    "DescribeVirtualGatewayInput":{
1466      "type":"structure",
1467      "required":[
1468        "meshName",
1469        "virtualGatewayName"
1470      ],
1471      "members":{
1472        "meshName":{
1473          "shape":"ResourceName",
1474          "location":"uri",
1475          "locationName":"meshName"
1476        },
1477        "meshOwner":{
1478          "shape":"AccountId",
1479          "location":"querystring",
1480          "locationName":"meshOwner"
1481        },
1482        "virtualGatewayName":{
1483          "shape":"ResourceName",
1484          "location":"uri",
1485          "locationName":"virtualGatewayName"
1486        }
1487      }
1488    },
1489    "DescribeVirtualGatewayOutput":{
1490      "type":"structure",
1491      "required":["virtualGateway"],
1492      "members":{
1493        "virtualGateway":{"shape":"VirtualGatewayData"}
1494      },
1495      "payload":"virtualGateway"
1496    },
1497    "DescribeVirtualNodeInput":{
1498      "type":"structure",
1499      "required":[
1500        "meshName",
1501        "virtualNodeName"
1502      ],
1503      "members":{
1504        "meshName":{
1505          "shape":"ResourceName",
1506          "location":"uri",
1507          "locationName":"meshName"
1508        },
1509        "meshOwner":{
1510          "shape":"AccountId",
1511          "location":"querystring",
1512          "locationName":"meshOwner"
1513        },
1514        "virtualNodeName":{
1515          "shape":"ResourceName",
1516          "location":"uri",
1517          "locationName":"virtualNodeName"
1518        }
1519      }
1520    },
1521    "DescribeVirtualNodeOutput":{
1522      "type":"structure",
1523      "required":["virtualNode"],
1524      "members":{
1525        "virtualNode":{"shape":"VirtualNodeData"}
1526      },
1527      "payload":"virtualNode"
1528    },
1529    "DescribeVirtualRouterInput":{
1530      "type":"structure",
1531      "required":[
1532        "meshName",
1533        "virtualRouterName"
1534      ],
1535      "members":{
1536        "meshName":{
1537          "shape":"ResourceName",
1538          "location":"uri",
1539          "locationName":"meshName"
1540        },
1541        "meshOwner":{
1542          "shape":"AccountId",
1543          "location":"querystring",
1544          "locationName":"meshOwner"
1545        },
1546        "virtualRouterName":{
1547          "shape":"ResourceName",
1548          "location":"uri",
1549          "locationName":"virtualRouterName"
1550        }
1551      }
1552    },
1553    "DescribeVirtualRouterOutput":{
1554      "type":"structure",
1555      "required":["virtualRouter"],
1556      "members":{
1557        "virtualRouter":{"shape":"VirtualRouterData"}
1558      },
1559      "payload":"virtualRouter"
1560    },
1561    "DescribeVirtualServiceInput":{
1562      "type":"structure",
1563      "required":[
1564        "meshName",
1565        "virtualServiceName"
1566      ],
1567      "members":{
1568        "meshName":{
1569          "shape":"ResourceName",
1570          "location":"uri",
1571          "locationName":"meshName"
1572        },
1573        "meshOwner":{
1574          "shape":"AccountId",
1575          "location":"querystring",
1576          "locationName":"meshOwner"
1577        },
1578        "virtualServiceName":{
1579          "shape":"ServiceName",
1580          "location":"uri",
1581          "locationName":"virtualServiceName"
1582        }
1583      }
1584    },
1585    "DescribeVirtualServiceOutput":{
1586      "type":"structure",
1587      "required":["virtualService"],
1588      "members":{
1589        "virtualService":{"shape":"VirtualServiceData"}
1590      },
1591      "payload":"virtualService"
1592    },
1593    "DnsResponseType":{
1594      "type":"string",
1595      "enum":[
1596        "LOADBALANCER",
1597        "ENDPOINTS"
1598      ]
1599    },
1600    "DnsServiceDiscovery":{
1601      "type":"structure",
1602      "required":["hostname"],
1603      "members":{
1604        "hostname":{"shape":"Hostname"},
1605        "responseType":{"shape":"DnsResponseType"}
1606      }
1607    },
1608    "Duration":{
1609      "type":"structure",
1610      "members":{
1611        "unit":{"shape":"DurationUnit"},
1612        "value":{"shape":"DurationValue"}
1613      }
1614    },
1615    "DurationUnit":{
1616      "type":"string",
1617      "enum":[
1618        "s",
1619        "ms"
1620      ]
1621    },
1622    "DurationValue":{
1623      "type":"long",
1624      "box":true,
1625      "min":0
1626    },
1627    "EgressFilter":{
1628      "type":"structure",
1629      "required":["type"],
1630      "members":{
1631        "type":{"shape":"EgressFilterType"}
1632      }
1633    },
1634    "EgressFilterType":{
1635      "type":"string",
1636      "enum":[
1637        "ALLOW_ALL",
1638        "DROP_ALL"
1639      ]
1640    },
1641    "ExactHostName":{
1642      "type":"string",
1643      "max":253,
1644      "min":1
1645    },
1646    "FileAccessLog":{
1647      "type":"structure",
1648      "required":["path"],
1649      "members":{
1650        "path":{"shape":"FilePath"}
1651      }
1652    },
1653    "FilePath":{
1654      "type":"string",
1655      "max":255,
1656      "min":1
1657    },
1658    "ForbiddenException":{
1659      "type":"structure",
1660      "members":{
1661        "message":{"shape":"String"}
1662      },
1663      "error":{
1664        "httpStatusCode":403,
1665        "senderFault":true
1666      },
1667      "exception":true
1668    },
1669    "GatewayRouteData":{
1670      "type":"structure",
1671      "required":[
1672        "gatewayRouteName",
1673        "meshName",
1674        "metadata",
1675        "spec",
1676        "status",
1677        "virtualGatewayName"
1678      ],
1679      "members":{
1680        "gatewayRouteName":{"shape":"ResourceName"},
1681        "meshName":{"shape":"ResourceName"},
1682        "metadata":{"shape":"ResourceMetadata"},
1683        "spec":{"shape":"GatewayRouteSpec"},
1684        "status":{"shape":"GatewayRouteStatus"},
1685        "virtualGatewayName":{"shape":"ResourceName"}
1686      }
1687    },
1688    "GatewayRouteHostnameMatch":{
1689      "type":"structure",
1690      "members":{
1691        "exact":{"shape":"ExactHostName"},
1692        "suffix":{"shape":"SuffixHostname"}
1693      }
1694    },
1695    "GatewayRouteHostnameRewrite":{
1696      "type":"structure",
1697      "members":{
1698        "defaultTargetHostname":{"shape":"DefaultGatewayRouteRewrite"}
1699      }
1700    },
1701    "GatewayRouteList":{
1702      "type":"list",
1703      "member":{"shape":"GatewayRouteRef"}
1704    },
1705    "GatewayRoutePriority":{
1706      "type":"integer",
1707      "box":true,
1708      "max":1000,
1709      "min":0
1710    },
1711    "GatewayRouteRef":{
1712      "type":"structure",
1713      "required":[
1714        "arn",
1715        "createdAt",
1716        "gatewayRouteName",
1717        "lastUpdatedAt",
1718        "meshName",
1719        "meshOwner",
1720        "resourceOwner",
1721        "version",
1722        "virtualGatewayName"
1723      ],
1724      "members":{
1725        "arn":{"shape":"Arn"},
1726        "createdAt":{"shape":"Timestamp"},
1727        "gatewayRouteName":{"shape":"ResourceName"},
1728        "lastUpdatedAt":{"shape":"Timestamp"},
1729        "meshName":{"shape":"ResourceName"},
1730        "meshOwner":{"shape":"AccountId"},
1731        "resourceOwner":{"shape":"AccountId"},
1732        "version":{"shape":"Long"},
1733        "virtualGatewayName":{"shape":"ResourceName"}
1734      }
1735    },
1736    "GatewayRouteSpec":{
1737      "type":"structure",
1738      "members":{
1739        "grpcRoute":{"shape":"GrpcGatewayRoute"},
1740        "http2Route":{"shape":"HttpGatewayRoute"},
1741        "httpRoute":{"shape":"HttpGatewayRoute"},
1742        "priority":{"shape":"GatewayRoutePriority"}
1743      }
1744    },
1745    "GatewayRouteStatus":{
1746      "type":"structure",
1747      "required":["status"],
1748      "members":{
1749        "status":{"shape":"GatewayRouteStatusCode"}
1750      }
1751    },
1752    "GatewayRouteStatusCode":{
1753      "type":"string",
1754      "enum":[
1755        "ACTIVE",
1756        "INACTIVE",
1757        "DELETED"
1758      ]
1759    },
1760    "GatewayRouteTarget":{
1761      "type":"structure",
1762      "required":["virtualService"],
1763      "members":{
1764        "virtualService":{"shape":"GatewayRouteVirtualService"}
1765      }
1766    },
1767    "GatewayRouteVirtualService":{
1768      "type":"structure",
1769      "required":["virtualServiceName"],
1770      "members":{
1771        "virtualServiceName":{"shape":"ResourceName"}
1772      }
1773    },
1774    "GrpcGatewayRoute":{
1775      "type":"structure",
1776      "required":[
1777        "action",
1778        "match"
1779      ],
1780      "members":{
1781        "action":{"shape":"GrpcGatewayRouteAction"},
1782        "match":{"shape":"GrpcGatewayRouteMatch"}
1783      }
1784    },
1785    "GrpcGatewayRouteAction":{
1786      "type":"structure",
1787      "required":["target"],
1788      "members":{
1789        "rewrite":{"shape":"GrpcGatewayRouteRewrite"},
1790        "target":{"shape":"GatewayRouteTarget"}
1791      }
1792    },
1793    "GrpcGatewayRouteMatch":{
1794      "type":"structure",
1795      "members":{
1796        "hostname":{"shape":"GatewayRouteHostnameMatch"},
1797        "metadata":{"shape":"GrpcGatewayRouteMetadataList"},
1798        "serviceName":{"shape":"ServiceName"}
1799      }
1800    },
1801    "GrpcGatewayRouteMetadata":{
1802      "type":"structure",
1803      "required":["name"],
1804      "members":{
1805        "invert":{"shape":"Boolean"},
1806        "match":{"shape":"GrpcMetadataMatchMethod"},
1807        "name":{"shape":"HeaderName"}
1808      }
1809    },
1810    "GrpcGatewayRouteMetadataList":{
1811      "type":"list",
1812      "member":{"shape":"GrpcGatewayRouteMetadata"},
1813      "max":10,
1814      "min":1
1815    },
1816    "GrpcGatewayRouteRewrite":{
1817      "type":"structure",
1818      "members":{
1819        "hostname":{"shape":"GatewayRouteHostnameRewrite"}
1820      }
1821    },
1822    "GrpcMetadataMatchMethod":{
1823      "type":"structure",
1824      "members":{
1825        "exact":{"shape":"HeaderMatch"},
1826        "prefix":{"shape":"HeaderMatch"},
1827        "range":{"shape":"MatchRange"},
1828        "regex":{"shape":"HeaderMatch"},
1829        "suffix":{"shape":"HeaderMatch"}
1830      },
1831      "union":true
1832    },
1833    "GrpcRetryPolicy":{
1834      "type":"structure",
1835      "required":[
1836        "maxRetries",
1837        "perRetryTimeout"
1838      ],
1839      "members":{
1840        "grpcRetryEvents":{"shape":"GrpcRetryPolicyEvents"},
1841        "httpRetryEvents":{"shape":"HttpRetryPolicyEvents"},
1842        "maxRetries":{"shape":"MaxRetries"},
1843        "perRetryTimeout":{"shape":"Duration"},
1844        "tcpRetryEvents":{"shape":"TcpRetryPolicyEvents"}
1845      }
1846    },
1847    "GrpcRetryPolicyEvent":{
1848      "type":"string",
1849      "enum":[
1850        "cancelled",
1851        "deadline-exceeded",
1852        "internal",
1853        "resource-exhausted",
1854        "unavailable"
1855      ]
1856    },
1857    "GrpcRetryPolicyEvents":{
1858      "type":"list",
1859      "member":{"shape":"GrpcRetryPolicyEvent"},
1860      "max":5,
1861      "min":1
1862    },
1863    "GrpcRoute":{
1864      "type":"structure",
1865      "required":[
1866        "action",
1867        "match"
1868      ],
1869      "members":{
1870        "action":{"shape":"GrpcRouteAction"},
1871        "match":{"shape":"GrpcRouteMatch"},
1872        "retryPolicy":{"shape":"GrpcRetryPolicy"},
1873        "timeout":{"shape":"GrpcTimeout"}
1874      }
1875    },
1876    "GrpcRouteAction":{
1877      "type":"structure",
1878      "required":["weightedTargets"],
1879      "members":{
1880        "weightedTargets":{"shape":"WeightedTargets"}
1881      }
1882    },
1883    "GrpcRouteMatch":{
1884      "type":"structure",
1885      "members":{
1886        "metadata":{"shape":"GrpcRouteMetadataList"},
1887        "methodName":{"shape":"MethodName"},
1888        "serviceName":{"shape":"ServiceName"}
1889      }
1890    },
1891    "GrpcRouteMetadata":{
1892      "type":"structure",
1893      "required":["name"],
1894      "members":{
1895        "invert":{"shape":"Boolean"},
1896        "match":{"shape":"GrpcRouteMetadataMatchMethod"},
1897        "name":{"shape":"HeaderName"}
1898      }
1899    },
1900    "GrpcRouteMetadataList":{
1901      "type":"list",
1902      "member":{"shape":"GrpcRouteMetadata"},
1903      "max":10,
1904      "min":1
1905    },
1906    "GrpcRouteMetadataMatchMethod":{
1907      "type":"structure",
1908      "members":{
1909        "exact":{"shape":"HeaderMatch"},
1910        "prefix":{"shape":"HeaderMatch"},
1911        "range":{"shape":"MatchRange"},
1912        "regex":{"shape":"HeaderMatch"},
1913        "suffix":{"shape":"HeaderMatch"}
1914      },
1915      "union":true
1916    },
1917    "GrpcTimeout":{
1918      "type":"structure",
1919      "members":{
1920        "idle":{"shape":"Duration"},
1921        "perRequest":{"shape":"Duration"}
1922      }
1923    },
1924    "HeaderMatch":{
1925      "type":"string",
1926      "max":255,
1927      "min":1
1928    },
1929    "HeaderMatchMethod":{
1930      "type":"structure",
1931      "members":{
1932        "exact":{"shape":"HeaderMatch"},
1933        "prefix":{"shape":"HeaderMatch"},
1934        "range":{"shape":"MatchRange"},
1935        "regex":{"shape":"HeaderMatch"},
1936        "suffix":{"shape":"HeaderMatch"}
1937      },
1938      "union":true
1939    },
1940    "HeaderName":{
1941      "type":"string",
1942      "max":50,
1943      "min":1
1944    },
1945    "HealthCheckIntervalMillis":{
1946      "type":"long",
1947      "box":true,
1948      "max":300000,
1949      "min":5000
1950    },
1951    "HealthCheckPolicy":{
1952      "type":"structure",
1953      "required":[
1954        "healthyThreshold",
1955        "intervalMillis",
1956        "protocol",
1957        "timeoutMillis",
1958        "unhealthyThreshold"
1959      ],
1960      "members":{
1961        "healthyThreshold":{"shape":"HealthCheckThreshold"},
1962        "intervalMillis":{"shape":"HealthCheckIntervalMillis"},
1963        "path":{"shape":"String"},
1964        "port":{"shape":"PortNumber"},
1965        "protocol":{"shape":"PortProtocol"},
1966        "timeoutMillis":{"shape":"HealthCheckTimeoutMillis"},
1967        "unhealthyThreshold":{"shape":"HealthCheckThreshold"}
1968      }
1969    },
1970    "HealthCheckThreshold":{
1971      "type":"integer",
1972      "max":10,
1973      "min":2
1974    },
1975    "HealthCheckTimeoutMillis":{
1976      "type":"long",
1977      "box":true,
1978      "max":60000,
1979      "min":2000
1980    },
1981    "Hostname":{"type":"string"},
1982    "HttpGatewayRoute":{
1983      "type":"structure",
1984      "required":[
1985        "action",
1986        "match"
1987      ],
1988      "members":{
1989        "action":{"shape":"HttpGatewayRouteAction"},
1990        "match":{"shape":"HttpGatewayRouteMatch"}
1991      }
1992    },
1993    "HttpGatewayRouteAction":{
1994      "type":"structure",
1995      "required":["target"],
1996      "members":{
1997        "rewrite":{"shape":"HttpGatewayRouteRewrite"},
1998        "target":{"shape":"GatewayRouteTarget"}
1999      }
2000    },
2001    "HttpGatewayRouteHeader":{
2002      "type":"structure",
2003      "required":["name"],
2004      "members":{
2005        "invert":{"shape":"Boolean"},
2006        "match":{"shape":"HeaderMatchMethod"},
2007        "name":{"shape":"HeaderName"}
2008      }
2009    },
2010    "HttpGatewayRouteHeaders":{
2011      "type":"list",
2012      "member":{"shape":"HttpGatewayRouteHeader"},
2013      "max":10,
2014      "min":1
2015    },
2016    "HttpGatewayRouteMatch":{
2017      "type":"structure",
2018      "members":{
2019        "headers":{"shape":"HttpGatewayRouteHeaders"},
2020        "hostname":{"shape":"GatewayRouteHostnameMatch"},
2021        "method":{"shape":"HttpMethod"},
2022        "path":{"shape":"HttpPathMatch"},
2023        "prefix":{"shape":"String"},
2024        "queryParameters":{"shape":"HttpQueryParameters"}
2025      }
2026    },
2027    "HttpGatewayRoutePathRewrite":{
2028      "type":"structure",
2029      "members":{
2030        "exact":{"shape":"HttpPathExact"}
2031      }
2032    },
2033    "HttpGatewayRoutePrefix":{
2034      "type":"string",
2035      "max":255,
2036      "min":1
2037    },
2038    "HttpGatewayRoutePrefixRewrite":{
2039      "type":"structure",
2040      "members":{
2041        "defaultPrefix":{"shape":"DefaultGatewayRouteRewrite"},
2042        "value":{"shape":"HttpGatewayRoutePrefix"}
2043      }
2044    },
2045    "HttpGatewayRouteRewrite":{
2046      "type":"structure",
2047      "members":{
2048        "hostname":{"shape":"GatewayRouteHostnameRewrite"},
2049        "path":{"shape":"HttpGatewayRoutePathRewrite"},
2050        "prefix":{"shape":"HttpGatewayRoutePrefixRewrite"}
2051      }
2052    },
2053    "HttpMethod":{
2054      "type":"string",
2055      "enum":[
2056        "GET",
2057        "HEAD",
2058        "POST",
2059        "PUT",
2060        "DELETE",
2061        "CONNECT",
2062        "OPTIONS",
2063        "TRACE",
2064        "PATCH"
2065      ]
2066    },
2067    "HttpPathExact":{
2068      "type":"string",
2069      "max":255,
2070      "min":1
2071    },
2072    "HttpPathMatch":{
2073      "type":"structure",
2074      "members":{
2075        "exact":{"shape":"HttpPathExact"},
2076        "regex":{"shape":"HttpPathRegex"}
2077      }
2078    },
2079    "HttpPathRegex":{
2080      "type":"string",
2081      "max":255,
2082      "min":1
2083    },
2084    "HttpQueryParameter":{
2085      "type":"structure",
2086      "required":["name"],
2087      "members":{
2088        "match":{"shape":"QueryParameterMatch"},
2089        "name":{"shape":"QueryParameterName"}
2090      }
2091    },
2092    "HttpQueryParameters":{
2093      "type":"list",
2094      "member":{"shape":"HttpQueryParameter"},
2095      "max":10,
2096      "min":1
2097    },
2098    "HttpRetryPolicy":{
2099      "type":"structure",
2100      "required":[
2101        "maxRetries",
2102        "perRetryTimeout"
2103      ],
2104      "members":{
2105        "httpRetryEvents":{"shape":"HttpRetryPolicyEvents"},
2106        "maxRetries":{"shape":"MaxRetries"},
2107        "perRetryTimeout":{"shape":"Duration"},
2108        "tcpRetryEvents":{"shape":"TcpRetryPolicyEvents"}
2109      }
2110    },
2111    "HttpRetryPolicyEvent":{
2112      "type":"string",
2113      "max":25,
2114      "min":1
2115    },
2116    "HttpRetryPolicyEvents":{
2117      "type":"list",
2118      "member":{"shape":"HttpRetryPolicyEvent"},
2119      "max":25,
2120      "min":1
2121    },
2122    "HttpRoute":{
2123      "type":"structure",
2124      "required":[
2125        "action",
2126        "match"
2127      ],
2128      "members":{
2129        "action":{"shape":"HttpRouteAction"},
2130        "match":{"shape":"HttpRouteMatch"},
2131        "retryPolicy":{"shape":"HttpRetryPolicy"},
2132        "timeout":{"shape":"HttpTimeout"}
2133      }
2134    },
2135    "HttpRouteAction":{
2136      "type":"structure",
2137      "required":["weightedTargets"],
2138      "members":{
2139        "weightedTargets":{"shape":"WeightedTargets"}
2140      }
2141    },
2142    "HttpRouteHeader":{
2143      "type":"structure",
2144      "required":["name"],
2145      "members":{
2146        "invert":{"shape":"Boolean"},
2147        "match":{"shape":"HeaderMatchMethod"},
2148        "name":{"shape":"HeaderName"}
2149      }
2150    },
2151    "HttpRouteHeaders":{
2152      "type":"list",
2153      "member":{"shape":"HttpRouteHeader"},
2154      "max":10,
2155      "min":1
2156    },
2157    "HttpRouteMatch":{
2158      "type":"structure",
2159      "members":{
2160        "headers":{"shape":"HttpRouteHeaders"},
2161        "method":{"shape":"HttpMethod"},
2162        "path":{"shape":"HttpPathMatch"},
2163        "prefix":{"shape":"String"},
2164        "queryParameters":{"shape":"HttpQueryParameters"},
2165        "scheme":{"shape":"HttpScheme"}
2166      }
2167    },
2168    "HttpScheme":{
2169      "type":"string",
2170      "enum":[
2171        "http",
2172        "https"
2173      ]
2174    },
2175    "HttpTimeout":{
2176      "type":"structure",
2177      "members":{
2178        "idle":{"shape":"Duration"},
2179        "perRequest":{"shape":"Duration"}
2180      }
2181    },
2182    "InternalServerErrorException":{
2183      "type":"structure",
2184      "members":{
2185        "message":{"shape":"String"}
2186      },
2187      "error":{"httpStatusCode":500},
2188      "exception":true,
2189      "fault":true,
2190      "retryable":{"throttling":false}
2191    },
2192    "LimitExceededException":{
2193      "type":"structure",
2194      "members":{
2195        "message":{"shape":"String"}
2196      },
2197      "error":{
2198        "httpStatusCode":400,
2199        "senderFault":true
2200      },
2201      "exception":true
2202    },
2203    "ListGatewayRoutesInput":{
2204      "type":"structure",
2205      "required":[
2206        "meshName",
2207        "virtualGatewayName"
2208      ],
2209      "members":{
2210        "limit":{
2211          "shape":"ListGatewayRoutesLimit",
2212          "location":"querystring",
2213          "locationName":"limit"
2214        },
2215        "meshName":{
2216          "shape":"ResourceName",
2217          "location":"uri",
2218          "locationName":"meshName"
2219        },
2220        "meshOwner":{
2221          "shape":"AccountId",
2222          "location":"querystring",
2223          "locationName":"meshOwner"
2224        },
2225        "nextToken":{
2226          "shape":"String",
2227          "location":"querystring",
2228          "locationName":"nextToken"
2229        },
2230        "virtualGatewayName":{
2231          "shape":"ResourceName",
2232          "location":"uri",
2233          "locationName":"virtualGatewayName"
2234        }
2235      }
2236    },
2237    "ListGatewayRoutesLimit":{
2238      "type":"integer",
2239      "box":true,
2240      "max":100,
2241      "min":1
2242    },
2243    "ListGatewayRoutesOutput":{
2244      "type":"structure",
2245      "required":["gatewayRoutes"],
2246      "members":{
2247        "gatewayRoutes":{"shape":"GatewayRouteList"},
2248        "nextToken":{"shape":"String"}
2249      }
2250    },
2251    "ListMeshesInput":{
2252      "type":"structure",
2253      "members":{
2254        "limit":{
2255          "shape":"ListMeshesLimit",
2256          "location":"querystring",
2257          "locationName":"limit"
2258        },
2259        "nextToken":{
2260          "shape":"String",
2261          "location":"querystring",
2262          "locationName":"nextToken"
2263        }
2264      }
2265    },
2266    "ListMeshesLimit":{
2267      "type":"integer",
2268      "box":true,
2269      "max":100,
2270      "min":1
2271    },
2272    "ListMeshesOutput":{
2273      "type":"structure",
2274      "required":["meshes"],
2275      "members":{
2276        "meshes":{"shape":"MeshList"},
2277        "nextToken":{"shape":"String"}
2278      }
2279    },
2280    "ListRoutesInput":{
2281      "type":"structure",
2282      "required":[
2283        "meshName",
2284        "virtualRouterName"
2285      ],
2286      "members":{
2287        "limit":{
2288          "shape":"ListRoutesLimit",
2289          "location":"querystring",
2290          "locationName":"limit"
2291        },
2292        "meshName":{
2293          "shape":"ResourceName",
2294          "location":"uri",
2295          "locationName":"meshName"
2296        },
2297        "meshOwner":{
2298          "shape":"AccountId",
2299          "location":"querystring",
2300          "locationName":"meshOwner"
2301        },
2302        "nextToken":{
2303          "shape":"String",
2304          "location":"querystring",
2305          "locationName":"nextToken"
2306        },
2307        "virtualRouterName":{
2308          "shape":"ResourceName",
2309          "location":"uri",
2310          "locationName":"virtualRouterName"
2311        }
2312      }
2313    },
2314    "ListRoutesLimit":{
2315      "type":"integer",
2316      "box":true,
2317      "max":100,
2318      "min":1
2319    },
2320    "ListRoutesOutput":{
2321      "type":"structure",
2322      "required":["routes"],
2323      "members":{
2324        "nextToken":{"shape":"String"},
2325        "routes":{"shape":"RouteList"}
2326      }
2327    },
2328    "ListTagsForResourceInput":{
2329      "type":"structure",
2330      "required":["resourceArn"],
2331      "members":{
2332        "limit":{
2333          "shape":"TagsLimit",
2334          "location":"querystring",
2335          "locationName":"limit"
2336        },
2337        "nextToken":{
2338          "shape":"String",
2339          "location":"querystring",
2340          "locationName":"nextToken"
2341        },
2342        "resourceArn":{
2343          "shape":"Arn",
2344          "location":"querystring",
2345          "locationName":"resourceArn"
2346        }
2347      }
2348    },
2349    "ListTagsForResourceOutput":{
2350      "type":"structure",
2351      "required":["tags"],
2352      "members":{
2353        "nextToken":{"shape":"String"},
2354        "tags":{"shape":"TagList"}
2355      }
2356    },
2357    "ListVirtualGatewaysInput":{
2358      "type":"structure",
2359      "required":["meshName"],
2360      "members":{
2361        "limit":{
2362          "shape":"ListVirtualGatewaysLimit",
2363          "location":"querystring",
2364          "locationName":"limit"
2365        },
2366        "meshName":{
2367          "shape":"ResourceName",
2368          "location":"uri",
2369          "locationName":"meshName"
2370        },
2371        "meshOwner":{
2372          "shape":"AccountId",
2373          "location":"querystring",
2374          "locationName":"meshOwner"
2375        },
2376        "nextToken":{
2377          "shape":"String",
2378          "location":"querystring",
2379          "locationName":"nextToken"
2380        }
2381      }
2382    },
2383    "ListVirtualGatewaysLimit":{
2384      "type":"integer",
2385      "box":true,
2386      "max":100,
2387      "min":1
2388    },
2389    "ListVirtualGatewaysOutput":{
2390      "type":"structure",
2391      "required":["virtualGateways"],
2392      "members":{
2393        "nextToken":{"shape":"String"},
2394        "virtualGateways":{"shape":"VirtualGatewayList"}
2395      }
2396    },
2397    "ListVirtualNodesInput":{
2398      "type":"structure",
2399      "required":["meshName"],
2400      "members":{
2401        "limit":{
2402          "shape":"ListVirtualNodesLimit",
2403          "location":"querystring",
2404          "locationName":"limit"
2405        },
2406        "meshName":{
2407          "shape":"ResourceName",
2408          "location":"uri",
2409          "locationName":"meshName"
2410        },
2411        "meshOwner":{
2412          "shape":"AccountId",
2413          "location":"querystring",
2414          "locationName":"meshOwner"
2415        },
2416        "nextToken":{
2417          "shape":"String",
2418          "location":"querystring",
2419          "locationName":"nextToken"
2420        }
2421      }
2422    },
2423    "ListVirtualNodesLimit":{
2424      "type":"integer",
2425      "box":true,
2426      "max":100,
2427      "min":1
2428    },
2429    "ListVirtualNodesOutput":{
2430      "type":"structure",
2431      "required":["virtualNodes"],
2432      "members":{
2433        "nextToken":{"shape":"String"},
2434        "virtualNodes":{"shape":"VirtualNodeList"}
2435      }
2436    },
2437    "ListVirtualRoutersInput":{
2438      "type":"structure",
2439      "required":["meshName"],
2440      "members":{
2441        "limit":{
2442          "shape":"ListVirtualRoutersLimit",
2443          "location":"querystring",
2444          "locationName":"limit"
2445        },
2446        "meshName":{
2447          "shape":"ResourceName",
2448          "location":"uri",
2449          "locationName":"meshName"
2450        },
2451        "meshOwner":{
2452          "shape":"AccountId",
2453          "location":"querystring",
2454          "locationName":"meshOwner"
2455        },
2456        "nextToken":{
2457          "shape":"String",
2458          "location":"querystring",
2459          "locationName":"nextToken"
2460        }
2461      }
2462    },
2463    "ListVirtualRoutersLimit":{
2464      "type":"integer",
2465      "box":true,
2466      "max":100,
2467      "min":1
2468    },
2469    "ListVirtualRoutersOutput":{
2470      "type":"structure",
2471      "required":["virtualRouters"],
2472      "members":{
2473        "nextToken":{"shape":"String"},
2474        "virtualRouters":{"shape":"VirtualRouterList"}
2475      }
2476    },
2477    "ListVirtualServicesInput":{
2478      "type":"structure",
2479      "required":["meshName"],
2480      "members":{
2481        "limit":{
2482          "shape":"ListVirtualServicesLimit",
2483          "location":"querystring",
2484          "locationName":"limit"
2485        },
2486        "meshName":{
2487          "shape":"ResourceName",
2488          "location":"uri",
2489          "locationName":"meshName"
2490        },
2491        "meshOwner":{
2492          "shape":"AccountId",
2493          "location":"querystring",
2494          "locationName":"meshOwner"
2495        },
2496        "nextToken":{
2497          "shape":"String",
2498          "location":"querystring",
2499          "locationName":"nextToken"
2500        }
2501      }
2502    },
2503    "ListVirtualServicesLimit":{
2504      "type":"integer",
2505      "box":true,
2506      "max":100,
2507      "min":1
2508    },
2509    "ListVirtualServicesOutput":{
2510      "type":"structure",
2511      "required":["virtualServices"],
2512      "members":{
2513        "nextToken":{"shape":"String"},
2514        "virtualServices":{"shape":"VirtualServiceList"}
2515      }
2516    },
2517    "Listener":{
2518      "type":"structure",
2519      "required":["portMapping"],
2520      "members":{
2521        "connectionPool":{"shape":"VirtualNodeConnectionPool"},
2522        "healthCheck":{"shape":"HealthCheckPolicy"},
2523        "outlierDetection":{"shape":"OutlierDetection"},
2524        "portMapping":{"shape":"PortMapping"},
2525        "timeout":{"shape":"ListenerTimeout"},
2526        "tls":{"shape":"ListenerTls"}
2527      }
2528    },
2529    "ListenerTimeout":{
2530      "type":"structure",
2531      "members":{
2532        "grpc":{"shape":"GrpcTimeout"},
2533        "http":{"shape":"HttpTimeout"},
2534        "http2":{"shape":"HttpTimeout"},
2535        "tcp":{"shape":"TcpTimeout"}
2536      },
2537      "union":true
2538    },
2539    "ListenerTls":{
2540      "type":"structure",
2541      "required":[
2542        "certificate",
2543        "mode"
2544      ],
2545      "members":{
2546        "certificate":{"shape":"ListenerTlsCertificate"},
2547        "mode":{"shape":"ListenerTlsMode"},
2548        "validation":{"shape":"ListenerTlsValidationContext"}
2549      }
2550    },
2551    "ListenerTlsAcmCertificate":{
2552      "type":"structure",
2553      "required":["certificateArn"],
2554      "members":{
2555        "certificateArn":{"shape":"Arn"}
2556      }
2557    },
2558    "ListenerTlsCertificate":{
2559      "type":"structure",
2560      "members":{
2561        "acm":{"shape":"ListenerTlsAcmCertificate"},
2562        "file":{"shape":"ListenerTlsFileCertificate"},
2563        "sds":{"shape":"ListenerTlsSdsCertificate"}
2564      },
2565      "union":true
2566    },
2567    "ListenerTlsFileCertificate":{
2568      "type":"structure",
2569      "required":[
2570        "certificateChain",
2571        "privateKey"
2572      ],
2573      "members":{
2574        "certificateChain":{"shape":"FilePath"},
2575        "privateKey":{"shape":"FilePath"}
2576      }
2577    },
2578    "ListenerTlsMode":{
2579      "type":"string",
2580      "enum":[
2581        "STRICT",
2582        "PERMISSIVE",
2583        "DISABLED"
2584      ]
2585    },
2586    "ListenerTlsSdsCertificate":{
2587      "type":"structure",
2588      "required":["secretName"],
2589      "members":{
2590        "secretName":{"shape":"SdsSecretName"}
2591      }
2592    },
2593    "ListenerTlsValidationContext":{
2594      "type":"structure",
2595      "required":["trust"],
2596      "members":{
2597        "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"},
2598        "trust":{"shape":"ListenerTlsValidationContextTrust"}
2599      }
2600    },
2601    "ListenerTlsValidationContextTrust":{
2602      "type":"structure",
2603      "members":{
2604        "file":{"shape":"TlsValidationContextFileTrust"},
2605        "sds":{"shape":"TlsValidationContextSdsTrust"}
2606      },
2607      "union":true
2608    },
2609    "Listeners":{
2610      "type":"list",
2611      "member":{"shape":"Listener"},
2612      "max":1,
2613      "min":0
2614    },
2615    "Logging":{
2616      "type":"structure",
2617      "members":{
2618        "accessLog":{"shape":"AccessLog"}
2619      }
2620    },
2621    "Long":{
2622      "type":"long",
2623      "box":true
2624    },
2625    "MatchRange":{
2626      "type":"structure",
2627      "required":[
2628        "end",
2629        "start"
2630      ],
2631      "members":{
2632        "end":{"shape":"Long"},
2633        "start":{"shape":"Long"}
2634      }
2635    },
2636    "MaxConnections":{
2637      "type":"integer",
2638      "min":1
2639    },
2640    "MaxPendingRequests":{
2641      "type":"integer",
2642      "min":1
2643    },
2644    "MaxRequests":{
2645      "type":"integer",
2646      "min":1
2647    },
2648    "MaxRetries":{
2649      "type":"long",
2650      "box":true,
2651      "min":0
2652    },
2653    "MeshData":{
2654      "type":"structure",
2655      "required":[
2656        "meshName",
2657        "metadata",
2658        "spec",
2659        "status"
2660      ],
2661      "members":{
2662        "meshName":{"shape":"ResourceName"},
2663        "metadata":{"shape":"ResourceMetadata"},
2664        "spec":{"shape":"MeshSpec"},
2665        "status":{"shape":"MeshStatus"}
2666      }
2667    },
2668    "MeshList":{
2669      "type":"list",
2670      "member":{"shape":"MeshRef"}
2671    },
2672    "MeshRef":{
2673      "type":"structure",
2674      "required":[
2675        "arn",
2676        "createdAt",
2677        "lastUpdatedAt",
2678        "meshName",
2679        "meshOwner",
2680        "resourceOwner",
2681        "version"
2682      ],
2683      "members":{
2684        "arn":{"shape":"Arn"},
2685        "createdAt":{"shape":"Timestamp"},
2686        "lastUpdatedAt":{"shape":"Timestamp"},
2687        "meshName":{"shape":"ResourceName"},
2688        "meshOwner":{"shape":"AccountId"},
2689        "resourceOwner":{"shape":"AccountId"},
2690        "version":{"shape":"Long"}
2691      }
2692    },
2693    "MeshSpec":{
2694      "type":"structure",
2695      "members":{
2696        "egressFilter":{"shape":"EgressFilter"}
2697      }
2698    },
2699    "MeshStatus":{
2700      "type":"structure",
2701      "members":{
2702        "status":{"shape":"MeshStatusCode"}
2703      }
2704    },
2705    "MeshStatusCode":{
2706      "type":"string",
2707      "enum":[
2708        "ACTIVE",
2709        "INACTIVE",
2710        "DELETED"
2711      ]
2712    },
2713    "MethodName":{
2714      "type":"string",
2715      "max":50,
2716      "min":1
2717    },
2718    "NotFoundException":{
2719      "type":"structure",
2720      "members":{
2721        "message":{"shape":"String"}
2722      },
2723      "error":{
2724        "httpStatusCode":404,
2725        "senderFault":true
2726      },
2727      "exception":true
2728    },
2729    "OutlierDetection":{
2730      "type":"structure",
2731      "required":[
2732        "baseEjectionDuration",
2733        "interval",
2734        "maxEjectionPercent",
2735        "maxServerErrors"
2736      ],
2737      "members":{
2738        "baseEjectionDuration":{"shape":"Duration"},
2739        "interval":{"shape":"Duration"},
2740        "maxEjectionPercent":{"shape":"OutlierDetectionMaxEjectionPercent"},
2741        "maxServerErrors":{"shape":"OutlierDetectionMaxServerErrors"}
2742      }
2743    },
2744    "OutlierDetectionMaxEjectionPercent":{
2745      "type":"integer",
2746      "box":true,
2747      "max":100,
2748      "min":0
2749    },
2750    "OutlierDetectionMaxServerErrors":{
2751      "type":"long",
2752      "box":true,
2753      "min":1
2754    },
2755    "PercentInt":{
2756      "type":"integer",
2757      "max":100,
2758      "min":0
2759    },
2760    "PortMapping":{
2761      "type":"structure",
2762      "required":[
2763        "port",
2764        "protocol"
2765      ],
2766      "members":{
2767        "port":{"shape":"PortNumber"},
2768        "protocol":{"shape":"PortProtocol"}
2769      }
2770    },
2771    "PortNumber":{
2772      "type":"integer",
2773      "max":65535,
2774      "min":1
2775    },
2776    "PortProtocol":{
2777      "type":"string",
2778      "enum":[
2779        "http",
2780        "tcp",
2781        "http2",
2782        "grpc"
2783      ]
2784    },
2785    "PortSet":{
2786      "type":"list",
2787      "member":{"shape":"PortNumber"}
2788    },
2789    "QueryParameterMatch":{
2790      "type":"structure",
2791      "members":{
2792        "exact":{"shape":"String"}
2793      }
2794    },
2795    "QueryParameterName":{"type":"string"},
2796    "ResourceInUseException":{
2797      "type":"structure",
2798      "members":{
2799        "message":{"shape":"String"}
2800      },
2801      "error":{
2802        "httpStatusCode":409,
2803        "senderFault":true
2804      },
2805      "exception":true
2806    },
2807    "ResourceMetadata":{
2808      "type":"structure",
2809      "required":[
2810        "arn",
2811        "createdAt",
2812        "lastUpdatedAt",
2813        "meshOwner",
2814        "resourceOwner",
2815        "uid",
2816        "version"
2817      ],
2818      "members":{
2819        "arn":{"shape":"Arn"},
2820        "createdAt":{"shape":"Timestamp"},
2821        "lastUpdatedAt":{"shape":"Timestamp"},
2822        "meshOwner":{"shape":"AccountId"},
2823        "resourceOwner":{"shape":"AccountId"},
2824        "uid":{"shape":"String"},
2825        "version":{"shape":"Long"}
2826      }
2827    },
2828    "ResourceName":{
2829      "type":"string",
2830      "max":255,
2831      "min":1
2832    },
2833    "RouteData":{
2834      "type":"structure",
2835      "required":[
2836        "meshName",
2837        "metadata",
2838        "routeName",
2839        "spec",
2840        "status",
2841        "virtualRouterName"
2842      ],
2843      "members":{
2844        "meshName":{"shape":"ResourceName"},
2845        "metadata":{"shape":"ResourceMetadata"},
2846        "routeName":{"shape":"ResourceName"},
2847        "spec":{"shape":"RouteSpec"},
2848        "status":{"shape":"RouteStatus"},
2849        "virtualRouterName":{"shape":"ResourceName"}
2850      }
2851    },
2852    "RouteList":{
2853      "type":"list",
2854      "member":{"shape":"RouteRef"}
2855    },
2856    "RoutePriority":{
2857      "type":"integer",
2858      "box":true,
2859      "max":1000,
2860      "min":0
2861    },
2862    "RouteRef":{
2863      "type":"structure",
2864      "required":[
2865        "arn",
2866        "createdAt",
2867        "lastUpdatedAt",
2868        "meshName",
2869        "meshOwner",
2870        "resourceOwner",
2871        "routeName",
2872        "version",
2873        "virtualRouterName"
2874      ],
2875      "members":{
2876        "arn":{"shape":"Arn"},
2877        "createdAt":{"shape":"Timestamp"},
2878        "lastUpdatedAt":{"shape":"Timestamp"},
2879        "meshName":{"shape":"ResourceName"},
2880        "meshOwner":{"shape":"AccountId"},
2881        "resourceOwner":{"shape":"AccountId"},
2882        "routeName":{"shape":"ResourceName"},
2883        "version":{"shape":"Long"},
2884        "virtualRouterName":{"shape":"ResourceName"}
2885      }
2886    },
2887    "RouteSpec":{
2888      "type":"structure",
2889      "members":{
2890        "grpcRoute":{"shape":"GrpcRoute"},
2891        "http2Route":{"shape":"HttpRoute"},
2892        "httpRoute":{"shape":"HttpRoute"},
2893        "priority":{"shape":"RoutePriority"},
2894        "tcpRoute":{"shape":"TcpRoute"}
2895      }
2896    },
2897    "RouteStatus":{
2898      "type":"structure",
2899      "required":["status"],
2900      "members":{
2901        "status":{"shape":"RouteStatusCode"}
2902      }
2903    },
2904    "RouteStatusCode":{
2905      "type":"string",
2906      "enum":[
2907        "ACTIVE",
2908        "INACTIVE",
2909        "DELETED"
2910      ]
2911    },
2912    "SdsSecretName":{"type":"string"},
2913    "ServiceDiscovery":{
2914      "type":"structure",
2915      "members":{
2916        "awsCloudMap":{"shape":"AwsCloudMapServiceDiscovery"},
2917        "dns":{"shape":"DnsServiceDiscovery"}
2918      },
2919      "union":true
2920    },
2921    "ServiceName":{"type":"string"},
2922    "ServiceUnavailableException":{
2923      "type":"structure",
2924      "members":{
2925        "message":{"shape":"String"}
2926      },
2927      "error":{"httpStatusCode":503},
2928      "exception":true,
2929      "fault":true,
2930      "retryable":{"throttling":false}
2931    },
2932    "String":{"type":"string"},
2933    "SubjectAlternativeName":{
2934      "type":"string",
2935      "max":254,
2936      "min":1
2937    },
2938    "SubjectAlternativeNameList":{
2939      "type":"list",
2940      "member":{"shape":"SubjectAlternativeName"}
2941    },
2942    "SubjectAlternativeNameMatchers":{
2943      "type":"structure",
2944      "required":["exact"],
2945      "members":{
2946        "exact":{"shape":"SubjectAlternativeNameList"}
2947      }
2948    },
2949    "SubjectAlternativeNames":{
2950      "type":"structure",
2951      "required":["match"],
2952      "members":{
2953        "match":{"shape":"SubjectAlternativeNameMatchers"}
2954      }
2955    },
2956    "SuffixHostname":{
2957      "type":"string",
2958      "max":253,
2959      "min":1
2960    },
2961    "TagKey":{
2962      "type":"string",
2963      "max":128,
2964      "min":1
2965    },
2966    "TagKeyList":{
2967      "type":"list",
2968      "member":{"shape":"TagKey"},
2969      "max":50,
2970      "min":0
2971    },
2972    "TagList":{
2973      "type":"list",
2974      "member":{"shape":"TagRef"},
2975      "max":50,
2976      "min":0
2977    },
2978    "TagRef":{
2979      "type":"structure",
2980      "required":[
2981        "key",
2982        "value"
2983      ],
2984      "members":{
2985        "key":{"shape":"TagKey"},
2986        "value":{"shape":"TagValue"}
2987      }
2988    },
2989    "TagResourceInput":{
2990      "type":"structure",
2991      "required":[
2992        "resourceArn",
2993        "tags"
2994      ],
2995      "members":{
2996        "resourceArn":{
2997          "shape":"Arn",
2998          "location":"querystring",
2999          "locationName":"resourceArn"
3000        },
3001        "tags":{"shape":"TagList"}
3002      }
3003    },
3004    "TagResourceOutput":{
3005      "type":"structure",
3006      "members":{
3007      }
3008    },
3009    "TagValue":{
3010      "type":"string",
3011      "max":256,
3012      "min":0
3013    },
3014    "TagsLimit":{
3015      "type":"integer",
3016      "box":true,
3017      "max":50,
3018      "min":1
3019    },
3020    "TcpRetryPolicyEvent":{
3021      "type":"string",
3022      "enum":["connection-error"]
3023    },
3024    "TcpRetryPolicyEvents":{
3025      "type":"list",
3026      "member":{"shape":"TcpRetryPolicyEvent"},
3027      "max":1,
3028      "min":1
3029    },
3030    "TcpRoute":{
3031      "type":"structure",
3032      "required":["action"],
3033      "members":{
3034        "action":{"shape":"TcpRouteAction"},
3035        "timeout":{"shape":"TcpTimeout"}
3036      }
3037    },
3038    "TcpRouteAction":{
3039      "type":"structure",
3040      "required":["weightedTargets"],
3041      "members":{
3042        "weightedTargets":{"shape":"WeightedTargets"}
3043      }
3044    },
3045    "TcpTimeout":{
3046      "type":"structure",
3047      "members":{
3048        "idle":{"shape":"Duration"}
3049      }
3050    },
3051    "Timestamp":{"type":"timestamp"},
3052    "TlsValidationContext":{
3053      "type":"structure",
3054      "required":["trust"],
3055      "members":{
3056        "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"},
3057        "trust":{"shape":"TlsValidationContextTrust"}
3058      }
3059    },
3060    "TlsValidationContextAcmTrust":{
3061      "type":"structure",
3062      "required":["certificateAuthorityArns"],
3063      "members":{
3064        "certificateAuthorityArns":{"shape":"CertificateAuthorityArns"}
3065      }
3066    },
3067    "TlsValidationContextFileTrust":{
3068      "type":"structure",
3069      "required":["certificateChain"],
3070      "members":{
3071        "certificateChain":{"shape":"FilePath"}
3072      }
3073    },
3074    "TlsValidationContextSdsTrust":{
3075      "type":"structure",
3076      "required":["secretName"],
3077      "members":{
3078        "secretName":{"shape":"SdsSecretName"}
3079      }
3080    },
3081    "TlsValidationContextTrust":{
3082      "type":"structure",
3083      "members":{
3084        "acm":{"shape":"TlsValidationContextAcmTrust"},
3085        "file":{"shape":"TlsValidationContextFileTrust"},
3086        "sds":{"shape":"TlsValidationContextSdsTrust"}
3087      },
3088      "union":true
3089    },
3090    "TooManyRequestsException":{
3091      "type":"structure",
3092      "members":{
3093        "message":{"shape":"String"}
3094      },
3095      "error":{
3096        "httpStatusCode":429,
3097        "senderFault":true
3098      },
3099      "exception":true,
3100      "retryable":{"throttling":true}
3101    },
3102    "TooManyTagsException":{
3103      "type":"structure",
3104      "members":{
3105        "message":{"shape":"String"}
3106      },
3107      "error":{
3108        "httpStatusCode":400,
3109        "senderFault":true
3110      },
3111      "exception":true
3112    },
3113    "UntagResourceInput":{
3114      "type":"structure",
3115      "required":[
3116        "resourceArn",
3117        "tagKeys"
3118      ],
3119      "members":{
3120        "resourceArn":{
3121          "shape":"Arn",
3122          "location":"querystring",
3123          "locationName":"resourceArn"
3124        },
3125        "tagKeys":{"shape":"TagKeyList"}
3126      }
3127    },
3128    "UntagResourceOutput":{
3129      "type":"structure",
3130      "members":{
3131      }
3132    },
3133    "UpdateGatewayRouteInput":{
3134      "type":"structure",
3135      "required":[
3136        "gatewayRouteName",
3137        "meshName",
3138        "spec",
3139        "virtualGatewayName"
3140      ],
3141      "members":{
3142        "clientToken":{
3143          "shape":"String",
3144          "idempotencyToken":true
3145        },
3146        "gatewayRouteName":{
3147          "shape":"ResourceName",
3148          "location":"uri",
3149          "locationName":"gatewayRouteName"
3150        },
3151        "meshName":{
3152          "shape":"ResourceName",
3153          "location":"uri",
3154          "locationName":"meshName"
3155        },
3156        "meshOwner":{
3157          "shape":"AccountId",
3158          "location":"querystring",
3159          "locationName":"meshOwner"
3160        },
3161        "spec":{"shape":"GatewayRouteSpec"},
3162        "virtualGatewayName":{
3163          "shape":"ResourceName",
3164          "location":"uri",
3165          "locationName":"virtualGatewayName"
3166        }
3167      }
3168    },
3169    "UpdateGatewayRouteOutput":{
3170      "type":"structure",
3171      "required":["gatewayRoute"],
3172      "members":{
3173        "gatewayRoute":{"shape":"GatewayRouteData"}
3174      },
3175      "payload":"gatewayRoute"
3176    },
3177    "UpdateMeshInput":{
3178      "type":"structure",
3179      "required":["meshName"],
3180      "members":{
3181        "clientToken":{
3182          "shape":"String",
3183          "idempotencyToken":true
3184        },
3185        "meshName":{
3186          "shape":"ResourceName",
3187          "location":"uri",
3188          "locationName":"meshName"
3189        },
3190        "spec":{"shape":"MeshSpec"}
3191      }
3192    },
3193    "UpdateMeshOutput":{
3194      "type":"structure",
3195      "required":["mesh"],
3196      "members":{
3197        "mesh":{"shape":"MeshData"}
3198      },
3199      "payload":"mesh"
3200    },
3201    "UpdateRouteInput":{
3202      "type":"structure",
3203      "required":[
3204        "meshName",
3205        "routeName",
3206        "spec",
3207        "virtualRouterName"
3208      ],
3209      "members":{
3210        "clientToken":{
3211          "shape":"String",
3212          "idempotencyToken":true
3213        },
3214        "meshName":{
3215          "shape":"ResourceName",
3216          "location":"uri",
3217          "locationName":"meshName"
3218        },
3219        "meshOwner":{
3220          "shape":"AccountId",
3221          "location":"querystring",
3222          "locationName":"meshOwner"
3223        },
3224        "routeName":{
3225          "shape":"ResourceName",
3226          "location":"uri",
3227          "locationName":"routeName"
3228        },
3229        "spec":{"shape":"RouteSpec"},
3230        "virtualRouterName":{
3231          "shape":"ResourceName",
3232          "location":"uri",
3233          "locationName":"virtualRouterName"
3234        }
3235      }
3236    },
3237    "UpdateRouteOutput":{
3238      "type":"structure",
3239      "required":["route"],
3240      "members":{
3241        "route":{"shape":"RouteData"}
3242      },
3243      "payload":"route"
3244    },
3245    "UpdateVirtualGatewayInput":{
3246      "type":"structure",
3247      "required":[
3248        "meshName",
3249        "spec",
3250        "virtualGatewayName"
3251      ],
3252      "members":{
3253        "clientToken":{
3254          "shape":"String",
3255          "idempotencyToken":true
3256        },
3257        "meshName":{
3258          "shape":"ResourceName",
3259          "location":"uri",
3260          "locationName":"meshName"
3261        },
3262        "meshOwner":{
3263          "shape":"AccountId",
3264          "location":"querystring",
3265          "locationName":"meshOwner"
3266        },
3267        "spec":{"shape":"VirtualGatewaySpec"},
3268        "virtualGatewayName":{
3269          "shape":"ResourceName",
3270          "location":"uri",
3271          "locationName":"virtualGatewayName"
3272        }
3273      }
3274    },
3275    "UpdateVirtualGatewayOutput":{
3276      "type":"structure",
3277      "required":["virtualGateway"],
3278      "members":{
3279        "virtualGateway":{"shape":"VirtualGatewayData"}
3280      },
3281      "payload":"virtualGateway"
3282    },
3283    "UpdateVirtualNodeInput":{
3284      "type":"structure",
3285      "required":[
3286        "meshName",
3287        "spec",
3288        "virtualNodeName"
3289      ],
3290      "members":{
3291        "clientToken":{
3292          "shape":"String",
3293          "idempotencyToken":true
3294        },
3295        "meshName":{
3296          "shape":"ResourceName",
3297          "location":"uri",
3298          "locationName":"meshName"
3299        },
3300        "meshOwner":{
3301          "shape":"AccountId",
3302          "location":"querystring",
3303          "locationName":"meshOwner"
3304        },
3305        "spec":{"shape":"VirtualNodeSpec"},
3306        "virtualNodeName":{
3307          "shape":"ResourceName",
3308          "location":"uri",
3309          "locationName":"virtualNodeName"
3310        }
3311      }
3312    },
3313    "UpdateVirtualNodeOutput":{
3314      "type":"structure",
3315      "required":["virtualNode"],
3316      "members":{
3317        "virtualNode":{"shape":"VirtualNodeData"}
3318      },
3319      "payload":"virtualNode"
3320    },
3321    "UpdateVirtualRouterInput":{
3322      "type":"structure",
3323      "required":[
3324        "meshName",
3325        "spec",
3326        "virtualRouterName"
3327      ],
3328      "members":{
3329        "clientToken":{
3330          "shape":"String",
3331          "idempotencyToken":true
3332        },
3333        "meshName":{
3334          "shape":"ResourceName",
3335          "location":"uri",
3336          "locationName":"meshName"
3337        },
3338        "meshOwner":{
3339          "shape":"AccountId",
3340          "location":"querystring",
3341          "locationName":"meshOwner"
3342        },
3343        "spec":{"shape":"VirtualRouterSpec"},
3344        "virtualRouterName":{
3345          "shape":"ResourceName",
3346          "location":"uri",
3347          "locationName":"virtualRouterName"
3348        }
3349      }
3350    },
3351    "UpdateVirtualRouterOutput":{
3352      "type":"structure",
3353      "required":["virtualRouter"],
3354      "members":{
3355        "virtualRouter":{"shape":"VirtualRouterData"}
3356      },
3357      "payload":"virtualRouter"
3358    },
3359    "UpdateVirtualServiceInput":{
3360      "type":"structure",
3361      "required":[
3362        "meshName",
3363        "spec",
3364        "virtualServiceName"
3365      ],
3366      "members":{
3367        "clientToken":{
3368          "shape":"String",
3369          "idempotencyToken":true
3370        },
3371        "meshName":{
3372          "shape":"ResourceName",
3373          "location":"uri",
3374          "locationName":"meshName"
3375        },
3376        "meshOwner":{
3377          "shape":"AccountId",
3378          "location":"querystring",
3379          "locationName":"meshOwner"
3380        },
3381        "spec":{"shape":"VirtualServiceSpec"},
3382        "virtualServiceName":{
3383          "shape":"ServiceName",
3384          "location":"uri",
3385          "locationName":"virtualServiceName"
3386        }
3387      }
3388    },
3389    "UpdateVirtualServiceOutput":{
3390      "type":"structure",
3391      "required":["virtualService"],
3392      "members":{
3393        "virtualService":{"shape":"VirtualServiceData"}
3394      },
3395      "payload":"virtualService"
3396    },
3397    "VirtualGatewayAccessLog":{
3398      "type":"structure",
3399      "members":{
3400        "file":{"shape":"VirtualGatewayFileAccessLog"}
3401      },
3402      "union":true
3403    },
3404    "VirtualGatewayBackendDefaults":{
3405      "type":"structure",
3406      "members":{
3407        "clientPolicy":{"shape":"VirtualGatewayClientPolicy"}
3408      }
3409    },
3410    "VirtualGatewayCertificateAuthorityArns":{
3411      "type":"list",
3412      "member":{"shape":"Arn"},
3413      "max":3,
3414      "min":1
3415    },
3416    "VirtualGatewayClientPolicy":{
3417      "type":"structure",
3418      "members":{
3419        "tls":{"shape":"VirtualGatewayClientPolicyTls"}
3420      }
3421    },
3422    "VirtualGatewayClientPolicyTls":{
3423      "type":"structure",
3424      "required":["validation"],
3425      "members":{
3426        "certificate":{"shape":"VirtualGatewayClientTlsCertificate"},
3427        "enforce":{
3428          "shape":"Boolean",
3429          "box":true
3430        },
3431        "ports":{"shape":"PortSet"},
3432        "validation":{"shape":"VirtualGatewayTlsValidationContext"}
3433      }
3434    },
3435    "VirtualGatewayClientTlsCertificate":{
3436      "type":"structure",
3437      "members":{
3438        "file":{"shape":"VirtualGatewayListenerTlsFileCertificate"},
3439        "sds":{"shape":"VirtualGatewayListenerTlsSdsCertificate"}
3440      },
3441      "union":true
3442    },
3443    "VirtualGatewayConnectionPool":{
3444      "type":"structure",
3445      "members":{
3446        "grpc":{"shape":"VirtualGatewayGrpcConnectionPool"},
3447        "http":{"shape":"VirtualGatewayHttpConnectionPool"},
3448        "http2":{"shape":"VirtualGatewayHttp2ConnectionPool"}
3449      },
3450      "union":true
3451    },
3452    "VirtualGatewayData":{
3453      "type":"structure",
3454      "required":[
3455        "meshName",
3456        "metadata",
3457        "spec",
3458        "status",
3459        "virtualGatewayName"
3460      ],
3461      "members":{
3462        "meshName":{"shape":"ResourceName"},
3463        "metadata":{"shape":"ResourceMetadata"},
3464        "spec":{"shape":"VirtualGatewaySpec"},
3465        "status":{"shape":"VirtualGatewayStatus"},
3466        "virtualGatewayName":{"shape":"ResourceName"}
3467      }
3468    },
3469    "VirtualGatewayFileAccessLog":{
3470      "type":"structure",
3471      "required":["path"],
3472      "members":{
3473        "path":{"shape":"FilePath"}
3474      }
3475    },
3476    "VirtualGatewayGrpcConnectionPool":{
3477      "type":"structure",
3478      "required":["maxRequests"],
3479      "members":{
3480        "maxRequests":{"shape":"MaxRequests"}
3481      }
3482    },
3483    "VirtualGatewayHealthCheckIntervalMillis":{
3484      "type":"long",
3485      "box":true,
3486      "max":300000,
3487      "min":5000
3488    },
3489    "VirtualGatewayHealthCheckPolicy":{
3490      "type":"structure",
3491      "required":[
3492        "healthyThreshold",
3493        "intervalMillis",
3494        "protocol",
3495        "timeoutMillis",
3496        "unhealthyThreshold"
3497      ],
3498      "members":{
3499        "healthyThreshold":{"shape":"VirtualGatewayHealthCheckThreshold"},
3500        "intervalMillis":{"shape":"VirtualGatewayHealthCheckIntervalMillis"},
3501        "path":{"shape":"String"},
3502        "port":{"shape":"PortNumber"},
3503        "protocol":{"shape":"VirtualGatewayPortProtocol"},
3504        "timeoutMillis":{"shape":"VirtualGatewayHealthCheckTimeoutMillis"},
3505        "unhealthyThreshold":{"shape":"VirtualGatewayHealthCheckThreshold"}
3506      }
3507    },
3508    "VirtualGatewayHealthCheckThreshold":{
3509      "type":"integer",
3510      "max":10,
3511      "min":2
3512    },
3513    "VirtualGatewayHealthCheckTimeoutMillis":{
3514      "type":"long",
3515      "box":true,
3516      "max":60000,
3517      "min":2000
3518    },
3519    "VirtualGatewayHttp2ConnectionPool":{
3520      "type":"structure",
3521      "required":["maxRequests"],
3522      "members":{
3523        "maxRequests":{"shape":"MaxRequests"}
3524      }
3525    },
3526    "VirtualGatewayHttpConnectionPool":{
3527      "type":"structure",
3528      "required":["maxConnections"],
3529      "members":{
3530        "maxConnections":{"shape":"MaxConnections"},
3531        "maxPendingRequests":{
3532          "shape":"MaxPendingRequests",
3533          "box":true
3534        }
3535      }
3536    },
3537    "VirtualGatewayList":{
3538      "type":"list",
3539      "member":{"shape":"VirtualGatewayRef"}
3540    },
3541    "VirtualGatewayListener":{
3542      "type":"structure",
3543      "required":["portMapping"],
3544      "members":{
3545        "connectionPool":{"shape":"VirtualGatewayConnectionPool"},
3546        "healthCheck":{"shape":"VirtualGatewayHealthCheckPolicy"},
3547        "portMapping":{"shape":"VirtualGatewayPortMapping"},
3548        "tls":{"shape":"VirtualGatewayListenerTls"}
3549      }
3550    },
3551    "VirtualGatewayListenerTls":{
3552      "type":"structure",
3553      "required":[
3554        "certificate",
3555        "mode"
3556      ],
3557      "members":{
3558        "certificate":{"shape":"VirtualGatewayListenerTlsCertificate"},
3559        "mode":{"shape":"VirtualGatewayListenerTlsMode"},
3560        "validation":{"shape":"VirtualGatewayListenerTlsValidationContext"}
3561      }
3562    },
3563    "VirtualGatewayListenerTlsAcmCertificate":{
3564      "type":"structure",
3565      "required":["certificateArn"],
3566      "members":{
3567        "certificateArn":{"shape":"Arn"}
3568      }
3569    },
3570    "VirtualGatewayListenerTlsCertificate":{
3571      "type":"structure",
3572      "members":{
3573        "acm":{"shape":"VirtualGatewayListenerTlsAcmCertificate"},
3574        "file":{"shape":"VirtualGatewayListenerTlsFileCertificate"},
3575        "sds":{"shape":"VirtualGatewayListenerTlsSdsCertificate"}
3576      },
3577      "union":true
3578    },
3579    "VirtualGatewayListenerTlsFileCertificate":{
3580      "type":"structure",
3581      "required":[
3582        "certificateChain",
3583        "privateKey"
3584      ],
3585      "members":{
3586        "certificateChain":{"shape":"FilePath"},
3587        "privateKey":{"shape":"FilePath"}
3588      }
3589    },
3590    "VirtualGatewayListenerTlsMode":{
3591      "type":"string",
3592      "enum":[
3593        "STRICT",
3594        "PERMISSIVE",
3595        "DISABLED"
3596      ]
3597    },
3598    "VirtualGatewayListenerTlsSdsCertificate":{
3599      "type":"structure",
3600      "required":["secretName"],
3601      "members":{
3602        "secretName":{"shape":"VirtualGatewaySdsSecretName"}
3603      }
3604    },
3605    "VirtualGatewayListenerTlsValidationContext":{
3606      "type":"structure",
3607      "required":["trust"],
3608      "members":{
3609        "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"},
3610        "trust":{"shape":"VirtualGatewayListenerTlsValidationContextTrust"}
3611      }
3612    },
3613    "VirtualGatewayListenerTlsValidationContextTrust":{
3614      "type":"structure",
3615      "members":{
3616        "file":{"shape":"VirtualGatewayTlsValidationContextFileTrust"},
3617        "sds":{"shape":"VirtualGatewayTlsValidationContextSdsTrust"}
3618      },
3619      "union":true
3620    },
3621    "VirtualGatewayListeners":{
3622      "type":"list",
3623      "member":{"shape":"VirtualGatewayListener"},
3624      "max":1,
3625      "min":0
3626    },
3627    "VirtualGatewayLogging":{
3628      "type":"structure",
3629      "members":{
3630        "accessLog":{"shape":"VirtualGatewayAccessLog"}
3631      }
3632    },
3633    "VirtualGatewayPortMapping":{
3634      "type":"structure",
3635      "required":[
3636        "port",
3637        "protocol"
3638      ],
3639      "members":{
3640        "port":{"shape":"PortNumber"},
3641        "protocol":{"shape":"VirtualGatewayPortProtocol"}
3642      }
3643    },
3644    "VirtualGatewayPortProtocol":{
3645      "type":"string",
3646      "enum":[
3647        "http",
3648        "http2",
3649        "grpc"
3650      ]
3651    },
3652    "VirtualGatewayRef":{
3653      "type":"structure",
3654      "required":[
3655        "arn",
3656        "createdAt",
3657        "lastUpdatedAt",
3658        "meshName",
3659        "meshOwner",
3660        "resourceOwner",
3661        "version",
3662        "virtualGatewayName"
3663      ],
3664      "members":{
3665        "arn":{"shape":"Arn"},
3666        "createdAt":{"shape":"Timestamp"},
3667        "lastUpdatedAt":{"shape":"Timestamp"},
3668        "meshName":{"shape":"ResourceName"},
3669        "meshOwner":{"shape":"AccountId"},
3670        "resourceOwner":{"shape":"AccountId"},
3671        "version":{"shape":"Long"},
3672        "virtualGatewayName":{"shape":"ResourceName"}
3673      }
3674    },
3675    "VirtualGatewaySdsSecretName":{"type":"string"},
3676    "VirtualGatewaySpec":{
3677      "type":"structure",
3678      "required":["listeners"],
3679      "members":{
3680        "backendDefaults":{"shape":"VirtualGatewayBackendDefaults"},
3681        "listeners":{"shape":"VirtualGatewayListeners"},
3682        "logging":{"shape":"VirtualGatewayLogging"}
3683      }
3684    },
3685    "VirtualGatewayStatus":{
3686      "type":"structure",
3687      "required":["status"],
3688      "members":{
3689        "status":{"shape":"VirtualGatewayStatusCode"}
3690      }
3691    },
3692    "VirtualGatewayStatusCode":{
3693      "type":"string",
3694      "enum":[
3695        "ACTIVE",
3696        "INACTIVE",
3697        "DELETED"
3698      ]
3699    },
3700    "VirtualGatewayTlsValidationContext":{
3701      "type":"structure",
3702      "required":["trust"],
3703      "members":{
3704        "subjectAlternativeNames":{"shape":"SubjectAlternativeNames"},
3705        "trust":{"shape":"VirtualGatewayTlsValidationContextTrust"}
3706      }
3707    },
3708    "VirtualGatewayTlsValidationContextAcmTrust":{
3709      "type":"structure",
3710      "required":["certificateAuthorityArns"],
3711      "members":{
3712        "certificateAuthorityArns":{"shape":"VirtualGatewayCertificateAuthorityArns"}
3713      }
3714    },
3715    "VirtualGatewayTlsValidationContextFileTrust":{
3716      "type":"structure",
3717      "required":["certificateChain"],
3718      "members":{
3719        "certificateChain":{"shape":"FilePath"}
3720      }
3721    },
3722    "VirtualGatewayTlsValidationContextSdsTrust":{
3723      "type":"structure",
3724      "required":["secretName"],
3725      "members":{
3726        "secretName":{"shape":"VirtualGatewaySdsSecretName"}
3727      }
3728    },
3729    "VirtualGatewayTlsValidationContextTrust":{
3730      "type":"structure",
3731      "members":{
3732        "acm":{"shape":"VirtualGatewayTlsValidationContextAcmTrust"},
3733        "file":{"shape":"VirtualGatewayTlsValidationContextFileTrust"},
3734        "sds":{"shape":"VirtualGatewayTlsValidationContextSdsTrust"}
3735      },
3736      "union":true
3737    },
3738    "VirtualNodeConnectionPool":{
3739      "type":"structure",
3740      "members":{
3741        "grpc":{"shape":"VirtualNodeGrpcConnectionPool"},
3742        "http":{"shape":"VirtualNodeHttpConnectionPool"},
3743        "http2":{"shape":"VirtualNodeHttp2ConnectionPool"},
3744        "tcp":{"shape":"VirtualNodeTcpConnectionPool"}
3745      },
3746      "union":true
3747    },
3748    "VirtualNodeData":{
3749      "type":"structure",
3750      "required":[
3751        "meshName",
3752        "metadata",
3753        "spec",
3754        "status",
3755        "virtualNodeName"
3756      ],
3757      "members":{
3758        "meshName":{"shape":"ResourceName"},
3759        "metadata":{"shape":"ResourceMetadata"},
3760        "spec":{"shape":"VirtualNodeSpec"},
3761        "status":{"shape":"VirtualNodeStatus"},
3762        "virtualNodeName":{"shape":"ResourceName"}
3763      }
3764    },
3765    "VirtualNodeGrpcConnectionPool":{
3766      "type":"structure",
3767      "required":["maxRequests"],
3768      "members":{
3769        "maxRequests":{"shape":"MaxRequests"}
3770      }
3771    },
3772    "VirtualNodeHttp2ConnectionPool":{
3773      "type":"structure",
3774      "required":["maxRequests"],
3775      "members":{
3776        "maxRequests":{"shape":"MaxRequests"}
3777      }
3778    },
3779    "VirtualNodeHttpConnectionPool":{
3780      "type":"structure",
3781      "required":["maxConnections"],
3782      "members":{
3783        "maxConnections":{"shape":"MaxConnections"},
3784        "maxPendingRequests":{
3785          "shape":"MaxPendingRequests",
3786          "box":true
3787        }
3788      }
3789    },
3790    "VirtualNodeList":{
3791      "type":"list",
3792      "member":{"shape":"VirtualNodeRef"}
3793    },
3794    "VirtualNodeRef":{
3795      "type":"structure",
3796      "required":[
3797        "arn",
3798        "createdAt",
3799        "lastUpdatedAt",
3800        "meshName",
3801        "meshOwner",
3802        "resourceOwner",
3803        "version",
3804        "virtualNodeName"
3805      ],
3806      "members":{
3807        "arn":{"shape":"Arn"},
3808        "createdAt":{"shape":"Timestamp"},
3809        "lastUpdatedAt":{"shape":"Timestamp"},
3810        "meshName":{"shape":"ResourceName"},
3811        "meshOwner":{"shape":"AccountId"},
3812        "resourceOwner":{"shape":"AccountId"},
3813        "version":{"shape":"Long"},
3814        "virtualNodeName":{"shape":"ResourceName"}
3815      }
3816    },
3817    "VirtualNodeServiceProvider":{
3818      "type":"structure",
3819      "required":["virtualNodeName"],
3820      "members":{
3821        "virtualNodeName":{"shape":"ResourceName"}
3822      }
3823    },
3824    "VirtualNodeSpec":{
3825      "type":"structure",
3826      "members":{
3827        "backendDefaults":{"shape":"BackendDefaults"},
3828        "backends":{"shape":"Backends"},
3829        "listeners":{"shape":"Listeners"},
3830        "logging":{"shape":"Logging"},
3831        "serviceDiscovery":{"shape":"ServiceDiscovery"}
3832      }
3833    },
3834    "VirtualNodeStatus":{
3835      "type":"structure",
3836      "required":["status"],
3837      "members":{
3838        "status":{"shape":"VirtualNodeStatusCode"}
3839      }
3840    },
3841    "VirtualNodeStatusCode":{
3842      "type":"string",
3843      "enum":[
3844        "ACTIVE",
3845        "INACTIVE",
3846        "DELETED"
3847      ]
3848    },
3849    "VirtualNodeTcpConnectionPool":{
3850      "type":"structure",
3851      "required":["maxConnections"],
3852      "members":{
3853        "maxConnections":{"shape":"MaxConnections"}
3854      }
3855    },
3856    "VirtualRouterData":{
3857      "type":"structure",
3858      "required":[
3859        "meshName",
3860        "metadata",
3861        "spec",
3862        "status",
3863        "virtualRouterName"
3864      ],
3865      "members":{
3866        "meshName":{"shape":"ResourceName"},
3867        "metadata":{"shape":"ResourceMetadata"},
3868        "spec":{"shape":"VirtualRouterSpec"},
3869        "status":{"shape":"VirtualRouterStatus"},
3870        "virtualRouterName":{"shape":"ResourceName"}
3871      }
3872    },
3873    "VirtualRouterList":{
3874      "type":"list",
3875      "member":{"shape":"VirtualRouterRef"}
3876    },
3877    "VirtualRouterListener":{
3878      "type":"structure",
3879      "required":["portMapping"],
3880      "members":{
3881        "portMapping":{"shape":"PortMapping"}
3882      }
3883    },
3884    "VirtualRouterListeners":{
3885      "type":"list",
3886      "member":{"shape":"VirtualRouterListener"},
3887      "max":1,
3888      "min":1
3889    },
3890    "VirtualRouterRef":{
3891      "type":"structure",
3892      "required":[
3893        "arn",
3894        "createdAt",
3895        "lastUpdatedAt",
3896        "meshName",
3897        "meshOwner",
3898        "resourceOwner",
3899        "version",
3900        "virtualRouterName"
3901      ],
3902      "members":{
3903        "arn":{"shape":"Arn"},
3904        "createdAt":{"shape":"Timestamp"},
3905        "lastUpdatedAt":{"shape":"Timestamp"},
3906        "meshName":{"shape":"ResourceName"},
3907        "meshOwner":{"shape":"AccountId"},
3908        "resourceOwner":{"shape":"AccountId"},
3909        "version":{"shape":"Long"},
3910        "virtualRouterName":{"shape":"ResourceName"}
3911      }
3912    },
3913    "VirtualRouterServiceProvider":{
3914      "type":"structure",
3915      "required":["virtualRouterName"],
3916      "members":{
3917        "virtualRouterName":{"shape":"ResourceName"}
3918      }
3919    },
3920    "VirtualRouterSpec":{
3921      "type":"structure",
3922      "members":{
3923        "listeners":{"shape":"VirtualRouterListeners"}
3924      }
3925    },
3926    "VirtualRouterStatus":{
3927      "type":"structure",
3928      "required":["status"],
3929      "members":{
3930        "status":{"shape":"VirtualRouterStatusCode"}
3931      }
3932    },
3933    "VirtualRouterStatusCode":{
3934      "type":"string",
3935      "enum":[
3936        "ACTIVE",
3937        "INACTIVE",
3938        "DELETED"
3939      ]
3940    },
3941    "VirtualServiceBackend":{
3942      "type":"structure",
3943      "required":["virtualServiceName"],
3944      "members":{
3945        "clientPolicy":{"shape":"ClientPolicy"},
3946        "virtualServiceName":{"shape":"ServiceName"}
3947      }
3948    },
3949    "VirtualServiceData":{
3950      "type":"structure",
3951      "required":[
3952        "meshName",
3953        "metadata",
3954        "spec",
3955        "status",
3956        "virtualServiceName"
3957      ],
3958      "members":{
3959        "meshName":{"shape":"ResourceName"},
3960        "metadata":{"shape":"ResourceMetadata"},
3961        "spec":{"shape":"VirtualServiceSpec"},
3962        "status":{"shape":"VirtualServiceStatus"},
3963        "virtualServiceName":{"shape":"ServiceName"}
3964      }
3965    },
3966    "VirtualServiceList":{
3967      "type":"list",
3968      "member":{"shape":"VirtualServiceRef"}
3969    },
3970    "VirtualServiceProvider":{
3971      "type":"structure",
3972      "members":{
3973        "virtualNode":{"shape":"VirtualNodeServiceProvider"},
3974        "virtualRouter":{"shape":"VirtualRouterServiceProvider"}
3975      },
3976      "union":true
3977    },
3978    "VirtualServiceRef":{
3979      "type":"structure",
3980      "required":[
3981        "arn",
3982        "createdAt",
3983        "lastUpdatedAt",
3984        "meshName",
3985        "meshOwner",
3986        "resourceOwner",
3987        "version",
3988        "virtualServiceName"
3989      ],
3990      "members":{
3991        "arn":{"shape":"Arn"},
3992        "createdAt":{"shape":"Timestamp"},
3993        "lastUpdatedAt":{"shape":"Timestamp"},
3994        "meshName":{"shape":"ResourceName"},
3995        "meshOwner":{"shape":"AccountId"},
3996        "resourceOwner":{"shape":"AccountId"},
3997        "version":{"shape":"Long"},
3998        "virtualServiceName":{"shape":"ServiceName"}
3999      }
4000    },
4001    "VirtualServiceSpec":{
4002      "type":"structure",
4003      "members":{
4004        "provider":{"shape":"VirtualServiceProvider"}
4005      }
4006    },
4007    "VirtualServiceStatus":{
4008      "type":"structure",
4009      "required":["status"],
4010      "members":{
4011        "status":{"shape":"VirtualServiceStatusCode"}
4012      }
4013    },
4014    "VirtualServiceStatusCode":{
4015      "type":"string",
4016      "enum":[
4017        "ACTIVE",
4018        "INACTIVE",
4019        "DELETED"
4020      ]
4021    },
4022    "WeightedTarget":{
4023      "type":"structure",
4024      "required":[
4025        "virtualNode",
4026        "weight"
4027      ],
4028      "members":{
4029        "virtualNode":{"shape":"ResourceName"},
4030        "weight":{"shape":"PercentInt"}
4031      }
4032    },
4033    "WeightedTargets":{
4034      "type":"list",
4035      "member":{"shape":"WeightedTarget"},
4036      "max":10,
4037      "min":1
4038    }
4039  }
4040}
4041