1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2017-03-14",
5    "endpointPrefix":"servicediscovery",
6    "jsonVersion":"1.1",
7    "protocol":"json",
8    "serviceAbbreviation":"ServiceDiscovery",
9    "serviceFullName":"AWS Cloud Map",
10    "serviceId":"ServiceDiscovery",
11    "signatureVersion":"v4",
12    "targetPrefix":"Route53AutoNaming_v20170314",
13    "uid":"servicediscovery-2017-03-14"
14  },
15  "operations":{
16    "CreateHttpNamespace":{
17      "name":"CreateHttpNamespace",
18      "http":{
19        "method":"POST",
20        "requestUri":"/"
21      },
22      "input":{"shape":"CreateHttpNamespaceRequest"},
23      "output":{"shape":"CreateHttpNamespaceResponse"},
24      "errors":[
25        {"shape":"InvalidInput"},
26        {"shape":"NamespaceAlreadyExists"},
27        {"shape":"ResourceLimitExceeded"},
28        {"shape":"DuplicateRequest"},
29        {"shape":"TooManyTagsException"}
30      ]
31    },
32    "CreatePrivateDnsNamespace":{
33      "name":"CreatePrivateDnsNamespace",
34      "http":{
35        "method":"POST",
36        "requestUri":"/"
37      },
38      "input":{"shape":"CreatePrivateDnsNamespaceRequest"},
39      "output":{"shape":"CreatePrivateDnsNamespaceResponse"},
40      "errors":[
41        {"shape":"InvalidInput"},
42        {"shape":"NamespaceAlreadyExists"},
43        {"shape":"ResourceLimitExceeded"},
44        {"shape":"DuplicateRequest"},
45        {"shape":"TooManyTagsException"}
46      ]
47    },
48    "CreatePublicDnsNamespace":{
49      "name":"CreatePublicDnsNamespace",
50      "http":{
51        "method":"POST",
52        "requestUri":"/"
53      },
54      "input":{"shape":"CreatePublicDnsNamespaceRequest"},
55      "output":{"shape":"CreatePublicDnsNamespaceResponse"},
56      "errors":[
57        {"shape":"InvalidInput"},
58        {"shape":"NamespaceAlreadyExists"},
59        {"shape":"ResourceLimitExceeded"},
60        {"shape":"DuplicateRequest"},
61        {"shape":"TooManyTagsException"}
62      ]
63    },
64    "CreateService":{
65      "name":"CreateService",
66      "http":{
67        "method":"POST",
68        "requestUri":"/"
69      },
70      "input":{"shape":"CreateServiceRequest"},
71      "output":{"shape":"CreateServiceResponse"},
72      "errors":[
73        {"shape":"InvalidInput"},
74        {"shape":"ResourceLimitExceeded"},
75        {"shape":"NamespaceNotFound"},
76        {"shape":"ServiceAlreadyExists"},
77        {"shape":"TooManyTagsException"}
78      ]
79    },
80    "DeleteNamespace":{
81      "name":"DeleteNamespace",
82      "http":{
83        "method":"POST",
84        "requestUri":"/"
85      },
86      "input":{"shape":"DeleteNamespaceRequest"},
87      "output":{"shape":"DeleteNamespaceResponse"},
88      "errors":[
89        {"shape":"InvalidInput"},
90        {"shape":"NamespaceNotFound"},
91        {"shape":"ResourceInUse"},
92        {"shape":"DuplicateRequest"}
93      ]
94    },
95    "DeleteService":{
96      "name":"DeleteService",
97      "http":{
98        "method":"POST",
99        "requestUri":"/"
100      },
101      "input":{"shape":"DeleteServiceRequest"},
102      "output":{"shape":"DeleteServiceResponse"},
103      "errors":[
104        {"shape":"InvalidInput"},
105        {"shape":"ServiceNotFound"},
106        {"shape":"ResourceInUse"}
107      ]
108    },
109    "DeregisterInstance":{
110      "name":"DeregisterInstance",
111      "http":{
112        "method":"POST",
113        "requestUri":"/"
114      },
115      "input":{"shape":"DeregisterInstanceRequest"},
116      "output":{"shape":"DeregisterInstanceResponse"},
117      "errors":[
118        {"shape":"DuplicateRequest"},
119        {"shape":"InvalidInput"},
120        {"shape":"InstanceNotFound"},
121        {"shape":"ResourceInUse"},
122        {"shape":"ServiceNotFound"}
123      ]
124    },
125    "DiscoverInstances":{
126      "name":"DiscoverInstances",
127      "http":{
128        "method":"POST",
129        "requestUri":"/"
130      },
131      "input":{"shape":"DiscoverInstancesRequest"},
132      "output":{"shape":"DiscoverInstancesResponse"},
133      "errors":[
134        {"shape":"ServiceNotFound"},
135        {"shape":"NamespaceNotFound"},
136        {"shape":"InvalidInput"},
137        {"shape":"RequestLimitExceeded"}
138      ],
139      "endpoint":{"hostPrefix":"data-"}
140    },
141    "GetInstance":{
142      "name":"GetInstance",
143      "http":{
144        "method":"POST",
145        "requestUri":"/"
146      },
147      "input":{"shape":"GetInstanceRequest"},
148      "output":{"shape":"GetInstanceResponse"},
149      "errors":[
150        {"shape":"InstanceNotFound"},
151        {"shape":"InvalidInput"},
152        {"shape":"ServiceNotFound"}
153      ]
154    },
155    "GetInstancesHealthStatus":{
156      "name":"GetInstancesHealthStatus",
157      "http":{
158        "method":"POST",
159        "requestUri":"/"
160      },
161      "input":{"shape":"GetInstancesHealthStatusRequest"},
162      "output":{"shape":"GetInstancesHealthStatusResponse"},
163      "errors":[
164        {"shape":"InstanceNotFound"},
165        {"shape":"InvalidInput"},
166        {"shape":"ServiceNotFound"}
167      ]
168    },
169    "GetNamespace":{
170      "name":"GetNamespace",
171      "http":{
172        "method":"POST",
173        "requestUri":"/"
174      },
175      "input":{"shape":"GetNamespaceRequest"},
176      "output":{"shape":"GetNamespaceResponse"},
177      "errors":[
178        {"shape":"InvalidInput"},
179        {"shape":"NamespaceNotFound"}
180      ]
181    },
182    "GetOperation":{
183      "name":"GetOperation",
184      "http":{
185        "method":"POST",
186        "requestUri":"/"
187      },
188      "input":{"shape":"GetOperationRequest"},
189      "output":{"shape":"GetOperationResponse"},
190      "errors":[
191        {"shape":"InvalidInput"},
192        {"shape":"OperationNotFound"}
193      ]
194    },
195    "GetService":{
196      "name":"GetService",
197      "http":{
198        "method":"POST",
199        "requestUri":"/"
200      },
201      "input":{"shape":"GetServiceRequest"},
202      "output":{"shape":"GetServiceResponse"},
203      "errors":[
204        {"shape":"InvalidInput"},
205        {"shape":"ServiceNotFound"}
206      ]
207    },
208    "ListInstances":{
209      "name":"ListInstances",
210      "http":{
211        "method":"POST",
212        "requestUri":"/"
213      },
214      "input":{"shape":"ListInstancesRequest"},
215      "output":{"shape":"ListInstancesResponse"},
216      "errors":[
217        {"shape":"ServiceNotFound"},
218        {"shape":"InvalidInput"}
219      ]
220    },
221    "ListNamespaces":{
222      "name":"ListNamespaces",
223      "http":{
224        "method":"POST",
225        "requestUri":"/"
226      },
227      "input":{"shape":"ListNamespacesRequest"},
228      "output":{"shape":"ListNamespacesResponse"},
229      "errors":[
230        {"shape":"InvalidInput"}
231      ]
232    },
233    "ListOperations":{
234      "name":"ListOperations",
235      "http":{
236        "method":"POST",
237        "requestUri":"/"
238      },
239      "input":{"shape":"ListOperationsRequest"},
240      "output":{"shape":"ListOperationsResponse"},
241      "errors":[
242        {"shape":"InvalidInput"}
243      ]
244    },
245    "ListServices":{
246      "name":"ListServices",
247      "http":{
248        "method":"POST",
249        "requestUri":"/"
250      },
251      "input":{"shape":"ListServicesRequest"},
252      "output":{"shape":"ListServicesResponse"},
253      "errors":[
254        {"shape":"InvalidInput"}
255      ]
256    },
257    "ListTagsForResource":{
258      "name":"ListTagsForResource",
259      "http":{
260        "method":"POST",
261        "requestUri":"/"
262      },
263      "input":{"shape":"ListTagsForResourceRequest"},
264      "output":{"shape":"ListTagsForResourceResponse"},
265      "errors":[
266        {"shape":"ResourceNotFoundException"},
267        {"shape":"InvalidInput"}
268      ]
269    },
270    "RegisterInstance":{
271      "name":"RegisterInstance",
272      "http":{
273        "method":"POST",
274        "requestUri":"/"
275      },
276      "input":{"shape":"RegisterInstanceRequest"},
277      "output":{"shape":"RegisterInstanceResponse"},
278      "errors":[
279        {"shape":"DuplicateRequest"},
280        {"shape":"InvalidInput"},
281        {"shape":"ResourceInUse"},
282        {"shape":"ResourceLimitExceeded"},
283        {"shape":"ServiceNotFound"}
284      ]
285    },
286    "TagResource":{
287      "name":"TagResource",
288      "http":{
289        "method":"POST",
290        "requestUri":"/"
291      },
292      "input":{"shape":"TagResourceRequest"},
293      "output":{"shape":"TagResourceResponse"},
294      "errors":[
295        {"shape":"ResourceNotFoundException"},
296        {"shape":"TooManyTagsException"},
297        {"shape":"InvalidInput"}
298      ]
299    },
300    "UntagResource":{
301      "name":"UntagResource",
302      "http":{
303        "method":"POST",
304        "requestUri":"/"
305      },
306      "input":{"shape":"UntagResourceRequest"},
307      "output":{"shape":"UntagResourceResponse"},
308      "errors":[
309        {"shape":"ResourceNotFoundException"},
310        {"shape":"InvalidInput"}
311      ]
312    },
313    "UpdateHttpNamespace":{
314      "name":"UpdateHttpNamespace",
315      "http":{
316        "method":"POST",
317        "requestUri":"/"
318      },
319      "input":{"shape":"UpdateHttpNamespaceRequest"},
320      "output":{"shape":"UpdateHttpNamespaceResponse"},
321      "errors":[
322        {"shape":"InvalidInput"},
323        {"shape":"NamespaceNotFound"},
324        {"shape":"ResourceInUse"},
325        {"shape":"DuplicateRequest"}
326      ]
327    },
328    "UpdateInstanceCustomHealthStatus":{
329      "name":"UpdateInstanceCustomHealthStatus",
330      "http":{
331        "method":"POST",
332        "requestUri":"/"
333      },
334      "input":{"shape":"UpdateInstanceCustomHealthStatusRequest"},
335      "errors":[
336        {"shape":"InstanceNotFound"},
337        {"shape":"ServiceNotFound"},
338        {"shape":"CustomHealthNotFound"},
339        {"shape":"InvalidInput"}
340      ]
341    },
342    "UpdatePrivateDnsNamespace":{
343      "name":"UpdatePrivateDnsNamespace",
344      "http":{
345        "method":"POST",
346        "requestUri":"/"
347      },
348      "input":{"shape":"UpdatePrivateDnsNamespaceRequest"},
349      "output":{"shape":"UpdatePrivateDnsNamespaceResponse"},
350      "errors":[
351        {"shape":"InvalidInput"},
352        {"shape":"NamespaceNotFound"},
353        {"shape":"ResourceInUse"},
354        {"shape":"DuplicateRequest"}
355      ]
356    },
357    "UpdatePublicDnsNamespace":{
358      "name":"UpdatePublicDnsNamespace",
359      "http":{
360        "method":"POST",
361        "requestUri":"/"
362      },
363      "input":{"shape":"UpdatePublicDnsNamespaceRequest"},
364      "output":{"shape":"UpdatePublicDnsNamespaceResponse"},
365      "errors":[
366        {"shape":"InvalidInput"},
367        {"shape":"NamespaceNotFound"},
368        {"shape":"ResourceInUse"},
369        {"shape":"DuplicateRequest"}
370      ]
371    },
372    "UpdateService":{
373      "name":"UpdateService",
374      "http":{
375        "method":"POST",
376        "requestUri":"/"
377      },
378      "input":{"shape":"UpdateServiceRequest"},
379      "output":{"shape":"UpdateServiceResponse"},
380      "errors":[
381        {"shape":"DuplicateRequest"},
382        {"shape":"InvalidInput"},
383        {"shape":"ServiceNotFound"}
384      ]
385    }
386  },
387  "shapes":{
388    "AmazonResourceName":{
389      "type":"string",
390      "max":1011,
391      "min":1
392    },
393    "Arn":{
394      "type":"string",
395      "max":255
396    },
397    "AttrKey":{
398      "type":"string",
399      "max":255,
400      "pattern":"^[a-zA-Z0-9!-~]+$"
401    },
402    "AttrValue":{
403      "type":"string",
404      "max":1024,
405      "pattern":"^([a-zA-Z0-9!-~][ \\ta-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$"
406    },
407    "Attributes":{
408      "type":"map",
409      "key":{"shape":"AttrKey"},
410      "value":{"shape":"AttrValue"}
411    },
412    "Code":{"type":"string"},
413    "CreateHttpNamespaceRequest":{
414      "type":"structure",
415      "required":["Name"],
416      "members":{
417        "Name":{"shape":"NamespaceNameHttp"},
418        "CreatorRequestId":{
419          "shape":"ResourceId",
420          "idempotencyToken":true
421        },
422        "Description":{"shape":"ResourceDescription"},
423        "Tags":{"shape":"TagList"}
424      }
425    },
426    "CreateHttpNamespaceResponse":{
427      "type":"structure",
428      "members":{
429        "OperationId":{"shape":"OperationId"}
430      }
431    },
432    "CreatePrivateDnsNamespaceRequest":{
433      "type":"structure",
434      "required":[
435        "Name",
436        "Vpc"
437      ],
438      "members":{
439        "Name":{"shape":"NamespaceNamePrivate"},
440        "CreatorRequestId":{
441          "shape":"ResourceId",
442          "idempotencyToken":true
443        },
444        "Description":{"shape":"ResourceDescription"},
445        "Vpc":{"shape":"ResourceId"},
446        "Tags":{"shape":"TagList"},
447        "Properties":{"shape":"PrivateDnsNamespaceProperties"}
448      }
449    },
450    "CreatePrivateDnsNamespaceResponse":{
451      "type":"structure",
452      "members":{
453        "OperationId":{"shape":"OperationId"}
454      }
455    },
456    "CreatePublicDnsNamespaceRequest":{
457      "type":"structure",
458      "required":["Name"],
459      "members":{
460        "Name":{"shape":"NamespaceNamePublic"},
461        "CreatorRequestId":{
462          "shape":"ResourceId",
463          "idempotencyToken":true
464        },
465        "Description":{"shape":"ResourceDescription"},
466        "Tags":{"shape":"TagList"},
467        "Properties":{"shape":"PublicDnsNamespaceProperties"}
468      }
469    },
470    "CreatePublicDnsNamespaceResponse":{
471      "type":"structure",
472      "members":{
473        "OperationId":{"shape":"OperationId"}
474      }
475    },
476    "CreateServiceRequest":{
477      "type":"structure",
478      "required":["Name"],
479      "members":{
480        "Name":{"shape":"ServiceName"},
481        "NamespaceId":{"shape":"ResourceId"},
482        "CreatorRequestId":{
483          "shape":"ResourceId",
484          "idempotencyToken":true
485        },
486        "Description":{"shape":"ResourceDescription"},
487        "DnsConfig":{"shape":"DnsConfig"},
488        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
489        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
490        "Tags":{"shape":"TagList"},
491        "Type":{"shape":"ServiceTypeOption"}
492      }
493    },
494    "CreateServiceResponse":{
495      "type":"structure",
496      "members":{
497        "Service":{"shape":"Service"}
498      }
499    },
500    "CustomHealthNotFound":{
501      "type":"structure",
502      "members":{
503        "Message":{"shape":"ErrorMessage"}
504      },
505      "exception":true
506    },
507    "CustomHealthStatus":{
508      "type":"string",
509      "enum":[
510        "HEALTHY",
511        "UNHEALTHY"
512      ]
513    },
514    "DeleteNamespaceRequest":{
515      "type":"structure",
516      "required":["Id"],
517      "members":{
518        "Id":{"shape":"ResourceId"}
519      }
520    },
521    "DeleteNamespaceResponse":{
522      "type":"structure",
523      "members":{
524        "OperationId":{"shape":"OperationId"}
525      }
526    },
527    "DeleteServiceRequest":{
528      "type":"structure",
529      "required":["Id"],
530      "members":{
531        "Id":{"shape":"ResourceId"}
532      }
533    },
534    "DeleteServiceResponse":{
535      "type":"structure",
536      "members":{
537      }
538    },
539    "DeregisterInstanceRequest":{
540      "type":"structure",
541      "required":[
542        "ServiceId",
543        "InstanceId"
544      ],
545      "members":{
546        "ServiceId":{"shape":"ResourceId"},
547        "InstanceId":{"shape":"ResourceId"}
548      }
549    },
550    "DeregisterInstanceResponse":{
551      "type":"structure",
552      "members":{
553        "OperationId":{"shape":"OperationId"}
554      }
555    },
556    "DiscoverInstancesRequest":{
557      "type":"structure",
558      "required":[
559        "NamespaceName",
560        "ServiceName"
561      ],
562      "members":{
563        "NamespaceName":{"shape":"NamespaceName"},
564        "ServiceName":{"shape":"ServiceName"},
565        "MaxResults":{"shape":"DiscoverMaxResults"},
566        "QueryParameters":{"shape":"Attributes"},
567        "OptionalParameters":{"shape":"Attributes"},
568        "HealthStatus":{"shape":"HealthStatusFilter"}
569      }
570    },
571    "DiscoverInstancesResponse":{
572      "type":"structure",
573      "members":{
574        "Instances":{"shape":"HttpInstanceSummaryList"}
575      }
576    },
577    "DiscoverMaxResults":{
578      "type":"integer",
579      "max":1000,
580      "min":1
581    },
582    "DnsConfig":{
583      "type":"structure",
584      "required":["DnsRecords"],
585      "members":{
586        "NamespaceId":{
587          "shape":"ResourceId",
588          "deprecated":true,
589          "deprecatedMessage":"Top level attribute in request should be used to reference namespace-id"
590        },
591        "RoutingPolicy":{"shape":"RoutingPolicy"},
592        "DnsRecords":{"shape":"DnsRecordList"}
593      }
594    },
595    "DnsConfigChange":{
596      "type":"structure",
597      "required":["DnsRecords"],
598      "members":{
599        "DnsRecords":{"shape":"DnsRecordList"}
600      }
601    },
602    "DnsProperties":{
603      "type":"structure",
604      "members":{
605        "HostedZoneId":{"shape":"ResourceId"},
606        "SOA":{"shape":"SOA"}
607      }
608    },
609    "DnsRecord":{
610      "type":"structure",
611      "required":[
612        "Type",
613        "TTL"
614      ],
615      "members":{
616        "Type":{"shape":"RecordType"},
617        "TTL":{"shape":"RecordTTL"}
618      }
619    },
620    "DnsRecordList":{
621      "type":"list",
622      "member":{"shape":"DnsRecord"}
623    },
624    "DuplicateRequest":{
625      "type":"structure",
626      "members":{
627        "Message":{"shape":"ErrorMessage"},
628        "DuplicateOperationId":{"shape":"ResourceId"}
629      },
630      "exception":true
631    },
632    "ErrorMessage":{"type":"string"},
633    "FailureThreshold":{
634      "type":"integer",
635      "max":10,
636      "min":1
637    },
638    "FilterCondition":{
639      "type":"string",
640      "enum":[
641        "EQ",
642        "IN",
643        "BETWEEN"
644      ]
645    },
646    "FilterValue":{
647      "type":"string",
648      "max":255,
649      "min":1
650    },
651    "FilterValues":{
652      "type":"list",
653      "member":{"shape":"FilterValue"}
654    },
655    "GetInstanceRequest":{
656      "type":"structure",
657      "required":[
658        "ServiceId",
659        "InstanceId"
660      ],
661      "members":{
662        "ServiceId":{"shape":"ResourceId"},
663        "InstanceId":{"shape":"ResourceId"}
664      }
665    },
666    "GetInstanceResponse":{
667      "type":"structure",
668      "members":{
669        "Instance":{"shape":"Instance"}
670      }
671    },
672    "GetInstancesHealthStatusRequest":{
673      "type":"structure",
674      "required":["ServiceId"],
675      "members":{
676        "ServiceId":{"shape":"ResourceId"},
677        "Instances":{"shape":"InstanceIdList"},
678        "MaxResults":{"shape":"MaxResults"},
679        "NextToken":{"shape":"NextToken"}
680      }
681    },
682    "GetInstancesHealthStatusResponse":{
683      "type":"structure",
684      "members":{
685        "Status":{"shape":"InstanceHealthStatusMap"},
686        "NextToken":{"shape":"NextToken"}
687      }
688    },
689    "GetNamespaceRequest":{
690      "type":"structure",
691      "required":["Id"],
692      "members":{
693        "Id":{"shape":"ResourceId"}
694      }
695    },
696    "GetNamespaceResponse":{
697      "type":"structure",
698      "members":{
699        "Namespace":{"shape":"Namespace"}
700      }
701    },
702    "GetOperationRequest":{
703      "type":"structure",
704      "required":["OperationId"],
705      "members":{
706        "OperationId":{"shape":"ResourceId"}
707      }
708    },
709    "GetOperationResponse":{
710      "type":"structure",
711      "members":{
712        "Operation":{"shape":"Operation"}
713      }
714    },
715    "GetServiceRequest":{
716      "type":"structure",
717      "required":["Id"],
718      "members":{
719        "Id":{"shape":"ResourceId"}
720      }
721    },
722    "GetServiceResponse":{
723      "type":"structure",
724      "members":{
725        "Service":{"shape":"Service"}
726      }
727    },
728    "HealthCheckConfig":{
729      "type":"structure",
730      "required":["Type"],
731      "members":{
732        "Type":{"shape":"HealthCheckType"},
733        "ResourcePath":{"shape":"ResourcePath"},
734        "FailureThreshold":{"shape":"FailureThreshold"}
735      }
736    },
737    "HealthCheckCustomConfig":{
738      "type":"structure",
739      "members":{
740        "FailureThreshold":{
741          "shape":"FailureThreshold",
742          "deprecated":true,
743          "deprecatedMessage":"Configurable FailureThreshold of HealthCheckCustomConfig is deprecated.  It will always have value 1."
744        }
745      }
746    },
747    "HealthCheckType":{
748      "type":"string",
749      "enum":[
750        "HTTP",
751        "HTTPS",
752        "TCP"
753      ]
754    },
755    "HealthStatus":{
756      "type":"string",
757      "enum":[
758        "HEALTHY",
759        "UNHEALTHY",
760        "UNKNOWN"
761      ]
762    },
763    "HealthStatusFilter":{
764      "type":"string",
765      "enum":[
766        "HEALTHY",
767        "UNHEALTHY",
768        "ALL",
769        "HEALTHY_OR_ELSE_ALL"
770      ]
771    },
772    "HttpInstanceSummary":{
773      "type":"structure",
774      "members":{
775        "InstanceId":{"shape":"ResourceId"},
776        "NamespaceName":{"shape":"NamespaceNameHttp"},
777        "ServiceName":{"shape":"ServiceName"},
778        "HealthStatus":{"shape":"HealthStatus"},
779        "Attributes":{"shape":"Attributes"}
780      }
781    },
782    "HttpInstanceSummaryList":{
783      "type":"list",
784      "member":{"shape":"HttpInstanceSummary"}
785    },
786    "HttpNamespaceChange":{
787      "type":"structure",
788      "required":["Description"],
789      "members":{
790        "Description":{"shape":"ResourceDescription"}
791      }
792    },
793    "HttpProperties":{
794      "type":"structure",
795      "members":{
796        "HttpName":{"shape":"NamespaceName"}
797      }
798    },
799    "Instance":{
800      "type":"structure",
801      "required":["Id"],
802      "members":{
803        "Id":{"shape":"ResourceId"},
804        "CreatorRequestId":{"shape":"ResourceId"},
805        "Attributes":{"shape":"Attributes"}
806      }
807    },
808    "InstanceHealthStatusMap":{
809      "type":"map",
810      "key":{"shape":"ResourceId"},
811      "value":{"shape":"HealthStatus"}
812    },
813    "InstanceId":{
814      "type":"string",
815      "max":64,
816      "pattern":"^[0-9a-zA-Z_/:.@-]+$"
817    },
818    "InstanceIdList":{
819      "type":"list",
820      "member":{"shape":"ResourceId"},
821      "min":1
822    },
823    "InstanceNotFound":{
824      "type":"structure",
825      "members":{
826        "Message":{"shape":"ErrorMessage"}
827      },
828      "exception":true
829    },
830    "InstanceSummary":{
831      "type":"structure",
832      "members":{
833        "Id":{"shape":"ResourceId"},
834        "Attributes":{"shape":"Attributes"}
835      }
836    },
837    "InstanceSummaryList":{
838      "type":"list",
839      "member":{"shape":"InstanceSummary"}
840    },
841    "InvalidInput":{
842      "type":"structure",
843      "members":{
844        "Message":{"shape":"ErrorMessage"}
845      },
846      "exception":true
847    },
848    "ListInstancesRequest":{
849      "type":"structure",
850      "required":["ServiceId"],
851      "members":{
852        "ServiceId":{"shape":"ResourceId"},
853        "NextToken":{"shape":"NextToken"},
854        "MaxResults":{"shape":"MaxResults"}
855      }
856    },
857    "ListInstancesResponse":{
858      "type":"structure",
859      "members":{
860        "Instances":{"shape":"InstanceSummaryList"},
861        "NextToken":{"shape":"NextToken"}
862      }
863    },
864    "ListNamespacesRequest":{
865      "type":"structure",
866      "members":{
867        "NextToken":{"shape":"NextToken"},
868        "MaxResults":{"shape":"MaxResults"},
869        "Filters":{"shape":"NamespaceFilters"}
870      }
871    },
872    "ListNamespacesResponse":{
873      "type":"structure",
874      "members":{
875        "Namespaces":{"shape":"NamespaceSummariesList"},
876        "NextToken":{"shape":"NextToken"}
877      }
878    },
879    "ListOperationsRequest":{
880      "type":"structure",
881      "members":{
882        "NextToken":{"shape":"NextToken"},
883        "MaxResults":{"shape":"MaxResults"},
884        "Filters":{"shape":"OperationFilters"}
885      }
886    },
887    "ListOperationsResponse":{
888      "type":"structure",
889      "members":{
890        "Operations":{"shape":"OperationSummaryList"},
891        "NextToken":{"shape":"NextToken"}
892      }
893    },
894    "ListServicesRequest":{
895      "type":"structure",
896      "members":{
897        "NextToken":{"shape":"NextToken"},
898        "MaxResults":{"shape":"MaxResults"},
899        "Filters":{"shape":"ServiceFilters"}
900      }
901    },
902    "ListServicesResponse":{
903      "type":"structure",
904      "members":{
905        "Services":{"shape":"ServiceSummariesList"},
906        "NextToken":{"shape":"NextToken"}
907      }
908    },
909    "ListTagsForResourceRequest":{
910      "type":"structure",
911      "required":["ResourceARN"],
912      "members":{
913        "ResourceARN":{"shape":"AmazonResourceName"}
914      }
915    },
916    "ListTagsForResourceResponse":{
917      "type":"structure",
918      "members":{
919        "Tags":{"shape":"TagList"}
920      }
921    },
922    "MaxResults":{
923      "type":"integer",
924      "max":100,
925      "min":1
926    },
927    "Message":{"type":"string"},
928    "Namespace":{
929      "type":"structure",
930      "members":{
931        "Id":{"shape":"ResourceId"},
932        "Arn":{"shape":"Arn"},
933        "Name":{"shape":"NamespaceName"},
934        "Type":{"shape":"NamespaceType"},
935        "Description":{"shape":"ResourceDescription"},
936        "ServiceCount":{"shape":"ResourceCount"},
937        "Properties":{"shape":"NamespaceProperties"},
938        "CreateDate":{"shape":"Timestamp"},
939        "CreatorRequestId":{"shape":"ResourceId"}
940      }
941    },
942    "NamespaceAlreadyExists":{
943      "type":"structure",
944      "members":{
945        "Message":{"shape":"ErrorMessage"},
946        "CreatorRequestId":{"shape":"ResourceId"},
947        "NamespaceId":{"shape":"ResourceId"}
948      },
949      "exception":true
950    },
951    "NamespaceFilter":{
952      "type":"structure",
953      "required":[
954        "Name",
955        "Values"
956      ],
957      "members":{
958        "Name":{"shape":"NamespaceFilterName"},
959        "Values":{"shape":"FilterValues"},
960        "Condition":{"shape":"FilterCondition"}
961      }
962    },
963    "NamespaceFilterName":{
964      "type":"string",
965      "enum":["TYPE"]
966    },
967    "NamespaceFilters":{
968      "type":"list",
969      "member":{"shape":"NamespaceFilter"}
970    },
971    "NamespaceName":{
972      "type":"string",
973      "max":1024
974    },
975    "NamespaceNameHttp":{
976      "type":"string",
977      "max":1024,
978      "pattern":"^[!-~]{1,1024}$"
979    },
980    "NamespaceNamePrivate":{
981      "type":"string",
982      "max":1024,
983      "pattern":"^[!-~]{1,1024}$"
984    },
985    "NamespaceNamePublic":{
986      "type":"string",
987      "max":1024,
988      "pattern":"^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$"
989    },
990    "NamespaceNotFound":{
991      "type":"structure",
992      "members":{
993        "Message":{"shape":"ErrorMessage"}
994      },
995      "exception":true
996    },
997    "NamespaceProperties":{
998      "type":"structure",
999      "members":{
1000        "DnsProperties":{"shape":"DnsProperties"},
1001        "HttpProperties":{"shape":"HttpProperties"}
1002      }
1003    },
1004    "NamespaceSummariesList":{
1005      "type":"list",
1006      "member":{"shape":"NamespaceSummary"}
1007    },
1008    "NamespaceSummary":{
1009      "type":"structure",
1010      "members":{
1011        "Id":{"shape":"ResourceId"},
1012        "Arn":{"shape":"Arn"},
1013        "Name":{"shape":"NamespaceName"},
1014        "Type":{"shape":"NamespaceType"},
1015        "Description":{"shape":"ResourceDescription"},
1016        "ServiceCount":{"shape":"ResourceCount"},
1017        "Properties":{"shape":"NamespaceProperties"},
1018        "CreateDate":{"shape":"Timestamp"}
1019      }
1020    },
1021    "NamespaceType":{
1022      "type":"string",
1023      "enum":[
1024        "DNS_PUBLIC",
1025        "DNS_PRIVATE",
1026        "HTTP"
1027      ]
1028    },
1029    "NextToken":{
1030      "type":"string",
1031      "max":4096
1032    },
1033    "Operation":{
1034      "type":"structure",
1035      "members":{
1036        "Id":{"shape":"OperationId"},
1037        "Type":{"shape":"OperationType"},
1038        "Status":{"shape":"OperationStatus"},
1039        "ErrorMessage":{"shape":"Message"},
1040        "ErrorCode":{"shape":"Code"},
1041        "CreateDate":{"shape":"Timestamp"},
1042        "UpdateDate":{"shape":"Timestamp"},
1043        "Targets":{"shape":"OperationTargetsMap"}
1044      }
1045    },
1046    "OperationFilter":{
1047      "type":"structure",
1048      "required":[
1049        "Name",
1050        "Values"
1051      ],
1052      "members":{
1053        "Name":{"shape":"OperationFilterName"},
1054        "Values":{"shape":"FilterValues"},
1055        "Condition":{"shape":"FilterCondition"}
1056      }
1057    },
1058    "OperationFilterName":{
1059      "type":"string",
1060      "enum":[
1061        "NAMESPACE_ID",
1062        "SERVICE_ID",
1063        "STATUS",
1064        "TYPE",
1065        "UPDATE_DATE"
1066      ]
1067    },
1068    "OperationFilters":{
1069      "type":"list",
1070      "member":{"shape":"OperationFilter"}
1071    },
1072    "OperationId":{
1073      "type":"string",
1074      "max":255
1075    },
1076    "OperationNotFound":{
1077      "type":"structure",
1078      "members":{
1079        "Message":{"shape":"ErrorMessage"}
1080      },
1081      "exception":true
1082    },
1083    "OperationStatus":{
1084      "type":"string",
1085      "enum":[
1086        "SUBMITTED",
1087        "PENDING",
1088        "SUCCESS",
1089        "FAIL"
1090      ]
1091    },
1092    "OperationSummary":{
1093      "type":"structure",
1094      "members":{
1095        "Id":{"shape":"OperationId"},
1096        "Status":{"shape":"OperationStatus"}
1097      }
1098    },
1099    "OperationSummaryList":{
1100      "type":"list",
1101      "member":{"shape":"OperationSummary"}
1102    },
1103    "OperationTargetType":{
1104      "type":"string",
1105      "enum":[
1106        "NAMESPACE",
1107        "SERVICE",
1108        "INSTANCE"
1109      ]
1110    },
1111    "OperationTargetsMap":{
1112      "type":"map",
1113      "key":{"shape":"OperationTargetType"},
1114      "value":{"shape":"ResourceId"}
1115    },
1116    "OperationType":{
1117      "type":"string",
1118      "enum":[
1119        "CREATE_NAMESPACE",
1120        "DELETE_NAMESPACE",
1121        "UPDATE_NAMESPACE",
1122        "UPDATE_SERVICE",
1123        "REGISTER_INSTANCE",
1124        "DEREGISTER_INSTANCE"
1125      ]
1126    },
1127    "PrivateDnsNamespaceChange":{
1128      "type":"structure",
1129      "members":{
1130        "Description":{"shape":"ResourceDescription"},
1131        "Properties":{"shape":"PrivateDnsNamespacePropertiesChange"}
1132      }
1133    },
1134    "PrivateDnsNamespaceProperties":{
1135      "type":"structure",
1136      "required":["DnsProperties"],
1137      "members":{
1138        "DnsProperties":{"shape":"PrivateDnsPropertiesMutable"}
1139      }
1140    },
1141    "PrivateDnsNamespacePropertiesChange":{
1142      "type":"structure",
1143      "required":["DnsProperties"],
1144      "members":{
1145        "DnsProperties":{"shape":"PrivateDnsPropertiesMutableChange"}
1146      }
1147    },
1148    "PrivateDnsPropertiesMutable":{
1149      "type":"structure",
1150      "required":["SOA"],
1151      "members":{
1152        "SOA":{"shape":"SOA"}
1153      }
1154    },
1155    "PrivateDnsPropertiesMutableChange":{
1156      "type":"structure",
1157      "required":["SOA"],
1158      "members":{
1159        "SOA":{"shape":"SOAChange"}
1160      }
1161    },
1162    "PublicDnsNamespaceChange":{
1163      "type":"structure",
1164      "members":{
1165        "Description":{"shape":"ResourceDescription"},
1166        "Properties":{"shape":"PublicDnsNamespacePropertiesChange"}
1167      }
1168    },
1169    "PublicDnsNamespaceProperties":{
1170      "type":"structure",
1171      "required":["DnsProperties"],
1172      "members":{
1173        "DnsProperties":{"shape":"PublicDnsPropertiesMutable"}
1174      }
1175    },
1176    "PublicDnsNamespacePropertiesChange":{
1177      "type":"structure",
1178      "required":["DnsProperties"],
1179      "members":{
1180        "DnsProperties":{"shape":"PublicDnsPropertiesMutableChange"}
1181      }
1182    },
1183    "PublicDnsPropertiesMutable":{
1184      "type":"structure",
1185      "required":["SOA"],
1186      "members":{
1187        "SOA":{"shape":"SOA"}
1188      }
1189    },
1190    "PublicDnsPropertiesMutableChange":{
1191      "type":"structure",
1192      "required":["SOA"],
1193      "members":{
1194        "SOA":{"shape":"SOAChange"}
1195      }
1196    },
1197    "RecordTTL":{
1198      "type":"long",
1199      "max":2147483647,
1200      "min":0
1201    },
1202    "RecordType":{
1203      "type":"string",
1204      "enum":[
1205        "SRV",
1206        "A",
1207        "AAAA",
1208        "CNAME"
1209      ]
1210    },
1211    "RegisterInstanceRequest":{
1212      "type":"structure",
1213      "required":[
1214        "ServiceId",
1215        "InstanceId",
1216        "Attributes"
1217      ],
1218      "members":{
1219        "ServiceId":{"shape":"ResourceId"},
1220        "InstanceId":{"shape":"InstanceId"},
1221        "CreatorRequestId":{
1222          "shape":"ResourceId",
1223          "idempotencyToken":true
1224        },
1225        "Attributes":{"shape":"Attributes"}
1226      }
1227    },
1228    "RegisterInstanceResponse":{
1229      "type":"structure",
1230      "members":{
1231        "OperationId":{"shape":"OperationId"}
1232      }
1233    },
1234    "RequestLimitExceeded":{
1235      "type":"structure",
1236      "members":{
1237        "Message":{"shape":"ErrorMessage"}
1238      },
1239      "exception":true
1240    },
1241    "ResourceCount":{"type":"integer"},
1242    "ResourceDescription":{
1243      "type":"string",
1244      "max":1024
1245    },
1246    "ResourceId":{
1247      "type":"string",
1248      "max":64
1249    },
1250    "ResourceInUse":{
1251      "type":"structure",
1252      "members":{
1253        "Message":{"shape":"ErrorMessage"}
1254      },
1255      "exception":true
1256    },
1257    "ResourceLimitExceeded":{
1258      "type":"structure",
1259      "members":{
1260        "Message":{"shape":"ErrorMessage"}
1261      },
1262      "exception":true
1263    },
1264    "ResourceNotFoundException":{
1265      "type":"structure",
1266      "members":{
1267        "Message":{"shape":"ErrorMessage"}
1268      },
1269      "exception":true
1270    },
1271    "ResourcePath":{
1272      "type":"string",
1273      "max":255
1274    },
1275    "RoutingPolicy":{
1276      "type":"string",
1277      "enum":[
1278        "MULTIVALUE",
1279        "WEIGHTED"
1280      ]
1281    },
1282    "SOA":{
1283      "type":"structure",
1284      "required":["TTL"],
1285      "members":{
1286        "TTL":{"shape":"RecordTTL"}
1287      }
1288    },
1289    "SOAChange":{
1290      "type":"structure",
1291      "required":["TTL"],
1292      "members":{
1293        "TTL":{"shape":"RecordTTL"}
1294      }
1295    },
1296    "Service":{
1297      "type":"structure",
1298      "members":{
1299        "Id":{"shape":"ResourceId"},
1300        "Arn":{"shape":"Arn"},
1301        "Name":{"shape":"ServiceName"},
1302        "NamespaceId":{"shape":"ResourceId"},
1303        "Description":{"shape":"ResourceDescription"},
1304        "InstanceCount":{"shape":"ResourceCount"},
1305        "DnsConfig":{"shape":"DnsConfig"},
1306        "Type":{"shape":"ServiceType"},
1307        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
1308        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
1309        "CreateDate":{"shape":"Timestamp"},
1310        "CreatorRequestId":{"shape":"ResourceId"}
1311      }
1312    },
1313    "ServiceAlreadyExists":{
1314      "type":"structure",
1315      "members":{
1316        "Message":{"shape":"ErrorMessage"},
1317        "CreatorRequestId":{"shape":"ResourceId"},
1318        "ServiceId":{"shape":"ResourceId"}
1319      },
1320      "exception":true
1321    },
1322    "ServiceChange":{
1323      "type":"structure",
1324      "members":{
1325        "Description":{"shape":"ResourceDescription"},
1326        "DnsConfig":{"shape":"DnsConfigChange"},
1327        "HealthCheckConfig":{"shape":"HealthCheckConfig"}
1328      }
1329    },
1330    "ServiceFilter":{
1331      "type":"structure",
1332      "required":[
1333        "Name",
1334        "Values"
1335      ],
1336      "members":{
1337        "Name":{"shape":"ServiceFilterName"},
1338        "Values":{"shape":"FilterValues"},
1339        "Condition":{"shape":"FilterCondition"}
1340      }
1341    },
1342    "ServiceFilterName":{
1343      "type":"string",
1344      "enum":["NAMESPACE_ID"]
1345    },
1346    "ServiceFilters":{
1347      "type":"list",
1348      "member":{"shape":"ServiceFilter"}
1349    },
1350    "ServiceName":{
1351      "type":"string",
1352      "pattern":"((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\\.$)"
1353    },
1354    "ServiceNotFound":{
1355      "type":"structure",
1356      "members":{
1357        "Message":{"shape":"ErrorMessage"}
1358      },
1359      "exception":true
1360    },
1361    "ServiceSummariesList":{
1362      "type":"list",
1363      "member":{"shape":"ServiceSummary"}
1364    },
1365    "ServiceSummary":{
1366      "type":"structure",
1367      "members":{
1368        "Id":{"shape":"ResourceId"},
1369        "Arn":{"shape":"Arn"},
1370        "Name":{"shape":"ServiceName"},
1371        "Type":{"shape":"ServiceType"},
1372        "Description":{"shape":"ResourceDescription"},
1373        "InstanceCount":{"shape":"ResourceCount"},
1374        "DnsConfig":{"shape":"DnsConfig"},
1375        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
1376        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
1377        "CreateDate":{"shape":"Timestamp"}
1378      }
1379    },
1380    "ServiceType":{
1381      "type":"string",
1382      "enum":[
1383        "HTTP",
1384        "DNS_HTTP",
1385        "DNS"
1386      ]
1387    },
1388    "ServiceTypeOption":{
1389      "type":"string",
1390      "enum":["HTTP"]
1391    },
1392    "Tag":{
1393      "type":"structure",
1394      "required":[
1395        "Key",
1396        "Value"
1397      ],
1398      "members":{
1399        "Key":{"shape":"TagKey"},
1400        "Value":{"shape":"TagValue"}
1401      }
1402    },
1403    "TagKey":{
1404      "type":"string",
1405      "max":128,
1406      "min":1
1407    },
1408    "TagKeyList":{
1409      "type":"list",
1410      "member":{"shape":"TagKey"},
1411      "max":200,
1412      "min":0
1413    },
1414    "TagList":{
1415      "type":"list",
1416      "member":{"shape":"Tag"},
1417      "max":200,
1418      "min":0
1419    },
1420    "TagResourceRequest":{
1421      "type":"structure",
1422      "required":[
1423        "ResourceARN",
1424        "Tags"
1425      ],
1426      "members":{
1427        "ResourceARN":{"shape":"AmazonResourceName"},
1428        "Tags":{"shape":"TagList"}
1429      }
1430    },
1431    "TagResourceResponse":{
1432      "type":"structure",
1433      "members":{
1434      }
1435    },
1436    "TagValue":{
1437      "type":"string",
1438      "max":256,
1439      "min":0
1440    },
1441    "Timestamp":{"type":"timestamp"},
1442    "TooManyTagsException":{
1443      "type":"structure",
1444      "members":{
1445        "Message":{"shape":"ErrorMessage"},
1446        "ResourceName":{"shape":"AmazonResourceName"}
1447      },
1448      "exception":true
1449    },
1450    "UntagResourceRequest":{
1451      "type":"structure",
1452      "required":[
1453        "ResourceARN",
1454        "TagKeys"
1455      ],
1456      "members":{
1457        "ResourceARN":{"shape":"AmazonResourceName"},
1458        "TagKeys":{"shape":"TagKeyList"}
1459      }
1460    },
1461    "UntagResourceResponse":{
1462      "type":"structure",
1463      "members":{
1464      }
1465    },
1466    "UpdateHttpNamespaceRequest":{
1467      "type":"structure",
1468      "required":[
1469        "Id",
1470        "Namespace"
1471      ],
1472      "members":{
1473        "Id":{"shape":"ResourceId"},
1474        "UpdaterRequestId":{
1475          "shape":"ResourceId",
1476          "idempotencyToken":true
1477        },
1478        "Namespace":{"shape":"HttpNamespaceChange"}
1479      }
1480    },
1481    "UpdateHttpNamespaceResponse":{
1482      "type":"structure",
1483      "members":{
1484        "OperationId":{"shape":"OperationId"}
1485      }
1486    },
1487    "UpdateInstanceCustomHealthStatusRequest":{
1488      "type":"structure",
1489      "required":[
1490        "ServiceId",
1491        "InstanceId",
1492        "Status"
1493      ],
1494      "members":{
1495        "ServiceId":{"shape":"ResourceId"},
1496        "InstanceId":{"shape":"ResourceId"},
1497        "Status":{"shape":"CustomHealthStatus"}
1498      }
1499    },
1500    "UpdatePrivateDnsNamespaceRequest":{
1501      "type":"structure",
1502      "required":[
1503        "Id",
1504        "Namespace"
1505      ],
1506      "members":{
1507        "Id":{"shape":"ResourceId"},
1508        "UpdaterRequestId":{
1509          "shape":"ResourceId",
1510          "idempotencyToken":true
1511        },
1512        "Namespace":{"shape":"PrivateDnsNamespaceChange"}
1513      }
1514    },
1515    "UpdatePrivateDnsNamespaceResponse":{
1516      "type":"structure",
1517      "members":{
1518        "OperationId":{"shape":"OperationId"}
1519      }
1520    },
1521    "UpdatePublicDnsNamespaceRequest":{
1522      "type":"structure",
1523      "required":[
1524        "Id",
1525        "Namespace"
1526      ],
1527      "members":{
1528        "Id":{"shape":"ResourceId"},
1529        "UpdaterRequestId":{
1530          "shape":"ResourceId",
1531          "idempotencyToken":true
1532        },
1533        "Namespace":{"shape":"PublicDnsNamespaceChange"}
1534      }
1535    },
1536    "UpdatePublicDnsNamespaceResponse":{
1537      "type":"structure",
1538      "members":{
1539        "OperationId":{"shape":"OperationId"}
1540      }
1541    },
1542    "UpdateServiceRequest":{
1543      "type":"structure",
1544      "required":[
1545        "Id",
1546        "Service"
1547      ],
1548      "members":{
1549        "Id":{"shape":"ResourceId"},
1550        "Service":{"shape":"ServiceChange"}
1551      }
1552    },
1553    "UpdateServiceResponse":{
1554      "type":"structure",
1555      "members":{
1556        "OperationId":{"shape":"OperationId"}
1557      }
1558    }
1559  }
1560}
1561