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    "UpdateInstanceCustomHealthStatus":{
314      "name":"UpdateInstanceCustomHealthStatus",
315      "http":{
316        "method":"POST",
317        "requestUri":"/"
318      },
319      "input":{"shape":"UpdateInstanceCustomHealthStatusRequest"},
320      "errors":[
321        {"shape":"InstanceNotFound"},
322        {"shape":"ServiceNotFound"},
323        {"shape":"CustomHealthNotFound"},
324        {"shape":"InvalidInput"}
325      ]
326    },
327    "UpdateService":{
328      "name":"UpdateService",
329      "http":{
330        "method":"POST",
331        "requestUri":"/"
332      },
333      "input":{"shape":"UpdateServiceRequest"},
334      "output":{"shape":"UpdateServiceResponse"},
335      "errors":[
336        {"shape":"DuplicateRequest"},
337        {"shape":"InvalidInput"},
338        {"shape":"ServiceNotFound"}
339      ]
340    }
341  },
342  "shapes":{
343    "AmazonResourceName":{
344      "type":"string",
345      "max":1011,
346      "min":1
347    },
348    "Arn":{
349      "type":"string",
350      "max":255
351    },
352    "AttrKey":{
353      "type":"string",
354      "max":255,
355      "pattern":"^[a-zA-Z0-9!-~]+$"
356    },
357    "AttrValue":{
358      "type":"string",
359      "max":1024,
360      "pattern":"^([a-zA-Z0-9!-~][ \\ta-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$"
361    },
362    "Attributes":{
363      "type":"map",
364      "key":{"shape":"AttrKey"},
365      "value":{"shape":"AttrValue"}
366    },
367    "Code":{"type":"string"},
368    "CreateHttpNamespaceRequest":{
369      "type":"structure",
370      "required":["Name"],
371      "members":{
372        "Name":{"shape":"NamespaceName"},
373        "CreatorRequestId":{
374          "shape":"ResourceId",
375          "idempotencyToken":true
376        },
377        "Description":{"shape":"ResourceDescription"},
378        "Tags":{"shape":"TagList"}
379      }
380    },
381    "CreateHttpNamespaceResponse":{
382      "type":"structure",
383      "members":{
384        "OperationId":{"shape":"OperationId"}
385      }
386    },
387    "CreatePrivateDnsNamespaceRequest":{
388      "type":"structure",
389      "required":[
390        "Name",
391        "Vpc"
392      ],
393      "members":{
394        "Name":{"shape":"NamespaceName"},
395        "CreatorRequestId":{
396          "shape":"ResourceId",
397          "idempotencyToken":true
398        },
399        "Description":{"shape":"ResourceDescription"},
400        "Vpc":{"shape":"ResourceId"},
401        "Tags":{"shape":"TagList"}
402      }
403    },
404    "CreatePrivateDnsNamespaceResponse":{
405      "type":"structure",
406      "members":{
407        "OperationId":{"shape":"OperationId"}
408      }
409    },
410    "CreatePublicDnsNamespaceRequest":{
411      "type":"structure",
412      "required":["Name"],
413      "members":{
414        "Name":{"shape":"NamespaceName"},
415        "CreatorRequestId":{
416          "shape":"ResourceId",
417          "idempotencyToken":true
418        },
419        "Description":{"shape":"ResourceDescription"},
420        "Tags":{"shape":"TagList"}
421      }
422    },
423    "CreatePublicDnsNamespaceResponse":{
424      "type":"structure",
425      "members":{
426        "OperationId":{"shape":"OperationId"}
427      }
428    },
429    "CreateServiceRequest":{
430      "type":"structure",
431      "required":["Name"],
432      "members":{
433        "Name":{"shape":"ServiceName"},
434        "NamespaceId":{"shape":"ResourceId"},
435        "CreatorRequestId":{
436          "shape":"ResourceId",
437          "idempotencyToken":true
438        },
439        "Description":{"shape":"ResourceDescription"},
440        "DnsConfig":{"shape":"DnsConfig"},
441        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
442        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
443        "Tags":{"shape":"TagList"}
444      }
445    },
446    "CreateServiceResponse":{
447      "type":"structure",
448      "members":{
449        "Service":{"shape":"Service"}
450      }
451    },
452    "CustomHealthNotFound":{
453      "type":"structure",
454      "members":{
455        "Message":{"shape":"ErrorMessage"}
456      },
457      "exception":true
458    },
459    "CustomHealthStatus":{
460      "type":"string",
461      "enum":[
462        "HEALTHY",
463        "UNHEALTHY"
464      ]
465    },
466    "DeleteNamespaceRequest":{
467      "type":"structure",
468      "required":["Id"],
469      "members":{
470        "Id":{"shape":"ResourceId"}
471      }
472    },
473    "DeleteNamespaceResponse":{
474      "type":"structure",
475      "members":{
476        "OperationId":{"shape":"OperationId"}
477      }
478    },
479    "DeleteServiceRequest":{
480      "type":"structure",
481      "required":["Id"],
482      "members":{
483        "Id":{"shape":"ResourceId"}
484      }
485    },
486    "DeleteServiceResponse":{
487      "type":"structure",
488      "members":{
489      }
490    },
491    "DeregisterInstanceRequest":{
492      "type":"structure",
493      "required":[
494        "ServiceId",
495        "InstanceId"
496      ],
497      "members":{
498        "ServiceId":{"shape":"ResourceId"},
499        "InstanceId":{"shape":"ResourceId"}
500      }
501    },
502    "DeregisterInstanceResponse":{
503      "type":"structure",
504      "members":{
505        "OperationId":{"shape":"OperationId"}
506      }
507    },
508    "DiscoverInstancesRequest":{
509      "type":"structure",
510      "required":[
511        "NamespaceName",
512        "ServiceName"
513      ],
514      "members":{
515        "NamespaceName":{"shape":"NamespaceName"},
516        "ServiceName":{"shape":"ServiceName"},
517        "MaxResults":{"shape":"DiscoverMaxResults"},
518        "QueryParameters":{"shape":"Attributes"},
519        "HealthStatus":{"shape":"HealthStatusFilter"}
520      }
521    },
522    "DiscoverInstancesResponse":{
523      "type":"structure",
524      "members":{
525        "Instances":{"shape":"HttpInstanceSummaryList"}
526      }
527    },
528    "DiscoverMaxResults":{
529      "type":"integer",
530      "max":1000,
531      "min":1
532    },
533    "DnsConfig":{
534      "type":"structure",
535      "required":["DnsRecords"],
536      "members":{
537        "NamespaceId":{
538          "shape":"ResourceId",
539          "deprecated":true,
540          "deprecatedMessage":"Top level attribute in request should be used to reference namespace-id"
541        },
542        "RoutingPolicy":{"shape":"RoutingPolicy"},
543        "DnsRecords":{"shape":"DnsRecordList"}
544      }
545    },
546    "DnsConfigChange":{
547      "type":"structure",
548      "required":["DnsRecords"],
549      "members":{
550        "DnsRecords":{"shape":"DnsRecordList"}
551      }
552    },
553    "DnsProperties":{
554      "type":"structure",
555      "members":{
556        "HostedZoneId":{"shape":"ResourceId"}
557      }
558    },
559    "DnsRecord":{
560      "type":"structure",
561      "required":[
562        "Type",
563        "TTL"
564      ],
565      "members":{
566        "Type":{"shape":"RecordType"},
567        "TTL":{"shape":"RecordTTL"}
568      }
569    },
570    "DnsRecordList":{
571      "type":"list",
572      "member":{"shape":"DnsRecord"}
573    },
574    "DuplicateRequest":{
575      "type":"structure",
576      "members":{
577        "Message":{"shape":"ErrorMessage"},
578        "DuplicateOperationId":{"shape":"ResourceId"}
579      },
580      "exception":true
581    },
582    "ErrorMessage":{"type":"string"},
583    "FailureThreshold":{
584      "type":"integer",
585      "max":10,
586      "min":1
587    },
588    "FilterCondition":{
589      "type":"string",
590      "enum":[
591        "EQ",
592        "IN",
593        "BETWEEN"
594      ]
595    },
596    "FilterValue":{
597      "type":"string",
598      "max":255,
599      "min":1
600    },
601    "FilterValues":{
602      "type":"list",
603      "member":{"shape":"FilterValue"}
604    },
605    "GetInstanceRequest":{
606      "type":"structure",
607      "required":[
608        "ServiceId",
609        "InstanceId"
610      ],
611      "members":{
612        "ServiceId":{"shape":"ResourceId"},
613        "InstanceId":{"shape":"ResourceId"}
614      }
615    },
616    "GetInstanceResponse":{
617      "type":"structure",
618      "members":{
619        "Instance":{"shape":"Instance"}
620      }
621    },
622    "GetInstancesHealthStatusRequest":{
623      "type":"structure",
624      "required":["ServiceId"],
625      "members":{
626        "ServiceId":{"shape":"ResourceId"},
627        "Instances":{"shape":"InstanceIdList"},
628        "MaxResults":{"shape":"MaxResults"},
629        "NextToken":{"shape":"NextToken"}
630      }
631    },
632    "GetInstancesHealthStatusResponse":{
633      "type":"structure",
634      "members":{
635        "Status":{"shape":"InstanceHealthStatusMap"},
636        "NextToken":{"shape":"NextToken"}
637      }
638    },
639    "GetNamespaceRequest":{
640      "type":"structure",
641      "required":["Id"],
642      "members":{
643        "Id":{"shape":"ResourceId"}
644      }
645    },
646    "GetNamespaceResponse":{
647      "type":"structure",
648      "members":{
649        "Namespace":{"shape":"Namespace"}
650      }
651    },
652    "GetOperationRequest":{
653      "type":"structure",
654      "required":["OperationId"],
655      "members":{
656        "OperationId":{"shape":"ResourceId"}
657      }
658    },
659    "GetOperationResponse":{
660      "type":"structure",
661      "members":{
662        "Operation":{"shape":"Operation"}
663      }
664    },
665    "GetServiceRequest":{
666      "type":"structure",
667      "required":["Id"],
668      "members":{
669        "Id":{"shape":"ResourceId"}
670      }
671    },
672    "GetServiceResponse":{
673      "type":"structure",
674      "members":{
675        "Service":{"shape":"Service"}
676      }
677    },
678    "HealthCheckConfig":{
679      "type":"structure",
680      "required":["Type"],
681      "members":{
682        "Type":{"shape":"HealthCheckType"},
683        "ResourcePath":{"shape":"ResourcePath"},
684        "FailureThreshold":{"shape":"FailureThreshold"}
685      }
686    },
687    "HealthCheckCustomConfig":{
688      "type":"structure",
689      "members":{
690        "FailureThreshold":{"shape":"FailureThreshold"}
691      }
692    },
693    "HealthCheckType":{
694      "type":"string",
695      "enum":[
696        "HTTP",
697        "HTTPS",
698        "TCP"
699      ]
700    },
701    "HealthStatus":{
702      "type":"string",
703      "enum":[
704        "HEALTHY",
705        "UNHEALTHY",
706        "UNKNOWN"
707      ]
708    },
709    "HealthStatusFilter":{
710      "type":"string",
711      "enum":[
712        "HEALTHY",
713        "UNHEALTHY",
714        "ALL"
715      ]
716    },
717    "HttpInstanceSummary":{
718      "type":"structure",
719      "members":{
720        "InstanceId":{"shape":"ResourceId"},
721        "NamespaceName":{"shape":"NamespaceName"},
722        "ServiceName":{"shape":"ServiceName"},
723        "HealthStatus":{"shape":"HealthStatus"},
724        "Attributes":{"shape":"Attributes"}
725      }
726    },
727    "HttpInstanceSummaryList":{
728      "type":"list",
729      "member":{"shape":"HttpInstanceSummary"}
730    },
731    "HttpProperties":{
732      "type":"structure",
733      "members":{
734        "HttpName":{"shape":"NamespaceName"}
735      }
736    },
737    "Instance":{
738      "type":"structure",
739      "required":["Id"],
740      "members":{
741        "Id":{"shape":"ResourceId"},
742        "CreatorRequestId":{"shape":"ResourceId"},
743        "Attributes":{"shape":"Attributes"}
744      }
745    },
746    "InstanceHealthStatusMap":{
747      "type":"map",
748      "key":{"shape":"ResourceId"},
749      "value":{"shape":"HealthStatus"}
750    },
751    "InstanceIdList":{
752      "type":"list",
753      "member":{"shape":"ResourceId"},
754      "min":1
755    },
756    "InstanceNotFound":{
757      "type":"structure",
758      "members":{
759        "Message":{"shape":"ErrorMessage"}
760      },
761      "exception":true
762    },
763    "InstanceSummary":{
764      "type":"structure",
765      "members":{
766        "Id":{"shape":"ResourceId"},
767        "Attributes":{"shape":"Attributes"}
768      }
769    },
770    "InstanceSummaryList":{
771      "type":"list",
772      "member":{"shape":"InstanceSummary"}
773    },
774    "InvalidInput":{
775      "type":"structure",
776      "members":{
777        "Message":{"shape":"ErrorMessage"}
778      },
779      "exception":true
780    },
781    "ListInstancesRequest":{
782      "type":"structure",
783      "required":["ServiceId"],
784      "members":{
785        "ServiceId":{"shape":"ResourceId"},
786        "NextToken":{"shape":"NextToken"},
787        "MaxResults":{"shape":"MaxResults"}
788      }
789    },
790    "ListInstancesResponse":{
791      "type":"structure",
792      "members":{
793        "Instances":{"shape":"InstanceSummaryList"},
794        "NextToken":{"shape":"NextToken"}
795      }
796    },
797    "ListNamespacesRequest":{
798      "type":"structure",
799      "members":{
800        "NextToken":{"shape":"NextToken"},
801        "MaxResults":{"shape":"MaxResults"},
802        "Filters":{"shape":"NamespaceFilters"}
803      }
804    },
805    "ListNamespacesResponse":{
806      "type":"structure",
807      "members":{
808        "Namespaces":{"shape":"NamespaceSummariesList"},
809        "NextToken":{"shape":"NextToken"}
810      }
811    },
812    "ListOperationsRequest":{
813      "type":"structure",
814      "members":{
815        "NextToken":{"shape":"NextToken"},
816        "MaxResults":{"shape":"MaxResults"},
817        "Filters":{"shape":"OperationFilters"}
818      }
819    },
820    "ListOperationsResponse":{
821      "type":"structure",
822      "members":{
823        "Operations":{"shape":"OperationSummaryList"},
824        "NextToken":{"shape":"NextToken"}
825      }
826    },
827    "ListServicesRequest":{
828      "type":"structure",
829      "members":{
830        "NextToken":{"shape":"NextToken"},
831        "MaxResults":{"shape":"MaxResults"},
832        "Filters":{"shape":"ServiceFilters"}
833      }
834    },
835    "ListServicesResponse":{
836      "type":"structure",
837      "members":{
838        "Services":{"shape":"ServiceSummariesList"},
839        "NextToken":{"shape":"NextToken"}
840      }
841    },
842    "ListTagsForResourceRequest":{
843      "type":"structure",
844      "required":["ResourceARN"],
845      "members":{
846        "ResourceARN":{"shape":"AmazonResourceName"}
847      }
848    },
849    "ListTagsForResourceResponse":{
850      "type":"structure",
851      "members":{
852        "Tags":{"shape":"TagList"}
853      }
854    },
855    "MaxResults":{
856      "type":"integer",
857      "max":100,
858      "min":1
859    },
860    "Message":{"type":"string"},
861    "Namespace":{
862      "type":"structure",
863      "members":{
864        "Id":{"shape":"ResourceId"},
865        "Arn":{"shape":"Arn"},
866        "Name":{"shape":"NamespaceName"},
867        "Type":{"shape":"NamespaceType"},
868        "Description":{"shape":"ResourceDescription"},
869        "ServiceCount":{"shape":"ResourceCount"},
870        "Properties":{"shape":"NamespaceProperties"},
871        "CreateDate":{"shape":"Timestamp"},
872        "CreatorRequestId":{"shape":"ResourceId"}
873      }
874    },
875    "NamespaceAlreadyExists":{
876      "type":"structure",
877      "members":{
878        "Message":{"shape":"ErrorMessage"},
879        "CreatorRequestId":{"shape":"ResourceId"},
880        "NamespaceId":{"shape":"ResourceId"}
881      },
882      "exception":true
883    },
884    "NamespaceFilter":{
885      "type":"structure",
886      "required":[
887        "Name",
888        "Values"
889      ],
890      "members":{
891        "Name":{"shape":"NamespaceFilterName"},
892        "Values":{"shape":"FilterValues"},
893        "Condition":{"shape":"FilterCondition"}
894      }
895    },
896    "NamespaceFilterName":{
897      "type":"string",
898      "enum":["TYPE"]
899    },
900    "NamespaceFilters":{
901      "type":"list",
902      "member":{"shape":"NamespaceFilter"}
903    },
904    "NamespaceName":{
905      "type":"string",
906      "max":1024
907    },
908    "NamespaceNotFound":{
909      "type":"structure",
910      "members":{
911        "Message":{"shape":"ErrorMessage"}
912      },
913      "exception":true
914    },
915    "NamespaceProperties":{
916      "type":"structure",
917      "members":{
918        "DnsProperties":{"shape":"DnsProperties"},
919        "HttpProperties":{"shape":"HttpProperties"}
920      }
921    },
922    "NamespaceSummariesList":{
923      "type":"list",
924      "member":{"shape":"NamespaceSummary"}
925    },
926    "NamespaceSummary":{
927      "type":"structure",
928      "members":{
929        "Id":{"shape":"ResourceId"},
930        "Arn":{"shape":"Arn"},
931        "Name":{"shape":"NamespaceName"},
932        "Type":{"shape":"NamespaceType"},
933        "Description":{"shape":"ResourceDescription"},
934        "ServiceCount":{"shape":"ResourceCount"},
935        "Properties":{"shape":"NamespaceProperties"},
936        "CreateDate":{"shape":"Timestamp"}
937      }
938    },
939    "NamespaceType":{
940      "type":"string",
941      "enum":[
942        "DNS_PUBLIC",
943        "DNS_PRIVATE",
944        "HTTP"
945      ]
946    },
947    "NextToken":{
948      "type":"string",
949      "max":4096
950    },
951    "Operation":{
952      "type":"structure",
953      "members":{
954        "Id":{"shape":"OperationId"},
955        "Type":{"shape":"OperationType"},
956        "Status":{"shape":"OperationStatus"},
957        "ErrorMessage":{"shape":"Message"},
958        "ErrorCode":{"shape":"Code"},
959        "CreateDate":{"shape":"Timestamp"},
960        "UpdateDate":{"shape":"Timestamp"},
961        "Targets":{"shape":"OperationTargetsMap"}
962      }
963    },
964    "OperationFilter":{
965      "type":"structure",
966      "required":[
967        "Name",
968        "Values"
969      ],
970      "members":{
971        "Name":{"shape":"OperationFilterName"},
972        "Values":{"shape":"FilterValues"},
973        "Condition":{"shape":"FilterCondition"}
974      }
975    },
976    "OperationFilterName":{
977      "type":"string",
978      "enum":[
979        "NAMESPACE_ID",
980        "SERVICE_ID",
981        "STATUS",
982        "TYPE",
983        "UPDATE_DATE"
984      ]
985    },
986    "OperationFilters":{
987      "type":"list",
988      "member":{"shape":"OperationFilter"}
989    },
990    "OperationId":{
991      "type":"string",
992      "max":255
993    },
994    "OperationNotFound":{
995      "type":"structure",
996      "members":{
997        "Message":{"shape":"ErrorMessage"}
998      },
999      "exception":true
1000    },
1001    "OperationStatus":{
1002      "type":"string",
1003      "enum":[
1004        "SUBMITTED",
1005        "PENDING",
1006        "SUCCESS",
1007        "FAIL"
1008      ]
1009    },
1010    "OperationSummary":{
1011      "type":"structure",
1012      "members":{
1013        "Id":{"shape":"OperationId"},
1014        "Status":{"shape":"OperationStatus"}
1015      }
1016    },
1017    "OperationSummaryList":{
1018      "type":"list",
1019      "member":{"shape":"OperationSummary"}
1020    },
1021    "OperationTargetType":{
1022      "type":"string",
1023      "enum":[
1024        "NAMESPACE",
1025        "SERVICE",
1026        "INSTANCE"
1027      ]
1028    },
1029    "OperationTargetsMap":{
1030      "type":"map",
1031      "key":{"shape":"OperationTargetType"},
1032      "value":{"shape":"ResourceId"}
1033    },
1034    "OperationType":{
1035      "type":"string",
1036      "enum":[
1037        "CREATE_NAMESPACE",
1038        "DELETE_NAMESPACE",
1039        "UPDATE_SERVICE",
1040        "REGISTER_INSTANCE",
1041        "DEREGISTER_INSTANCE"
1042      ]
1043    },
1044    "RecordTTL":{
1045      "type":"long",
1046      "max":2147483647,
1047      "min":0
1048    },
1049    "RecordType":{
1050      "type":"string",
1051      "enum":[
1052        "SRV",
1053        "A",
1054        "AAAA",
1055        "CNAME"
1056      ]
1057    },
1058    "RegisterInstanceRequest":{
1059      "type":"structure",
1060      "required":[
1061        "ServiceId",
1062        "InstanceId",
1063        "Attributes"
1064      ],
1065      "members":{
1066        "ServiceId":{"shape":"ResourceId"},
1067        "InstanceId":{"shape":"ResourceId"},
1068        "CreatorRequestId":{
1069          "shape":"ResourceId",
1070          "idempotencyToken":true
1071        },
1072        "Attributes":{"shape":"Attributes"}
1073      }
1074    },
1075    "RegisterInstanceResponse":{
1076      "type":"structure",
1077      "members":{
1078        "OperationId":{"shape":"OperationId"}
1079      }
1080    },
1081    "RequestLimitExceeded":{
1082      "type":"structure",
1083      "members":{
1084        "Message":{"shape":"ErrorMessage"}
1085      },
1086      "exception":true
1087    },
1088    "ResourceCount":{"type":"integer"},
1089    "ResourceDescription":{
1090      "type":"string",
1091      "max":1024
1092    },
1093    "ResourceId":{
1094      "type":"string",
1095      "max":64
1096    },
1097    "ResourceInUse":{
1098      "type":"structure",
1099      "members":{
1100        "Message":{"shape":"ErrorMessage"}
1101      },
1102      "exception":true
1103    },
1104    "ResourceLimitExceeded":{
1105      "type":"structure",
1106      "members":{
1107        "Message":{"shape":"ErrorMessage"}
1108      },
1109      "exception":true
1110    },
1111    "ResourceNotFoundException":{
1112      "type":"structure",
1113      "members":{
1114        "Message":{"shape":"ErrorMessage"}
1115      },
1116      "exception":true
1117    },
1118    "ResourcePath":{
1119      "type":"string",
1120      "max":255
1121    },
1122    "RoutingPolicy":{
1123      "type":"string",
1124      "enum":[
1125        "MULTIVALUE",
1126        "WEIGHTED"
1127      ]
1128    },
1129    "Service":{
1130      "type":"structure",
1131      "members":{
1132        "Id":{"shape":"ResourceId"},
1133        "Arn":{"shape":"Arn"},
1134        "Name":{"shape":"ServiceName"},
1135        "NamespaceId":{"shape":"ResourceId"},
1136        "Description":{"shape":"ResourceDescription"},
1137        "InstanceCount":{"shape":"ResourceCount"},
1138        "DnsConfig":{"shape":"DnsConfig"},
1139        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
1140        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
1141        "CreateDate":{"shape":"Timestamp"},
1142        "CreatorRequestId":{"shape":"ResourceId"}
1143      }
1144    },
1145    "ServiceAlreadyExists":{
1146      "type":"structure",
1147      "members":{
1148        "Message":{"shape":"ErrorMessage"},
1149        "CreatorRequestId":{"shape":"ResourceId"},
1150        "ServiceId":{"shape":"ResourceId"}
1151      },
1152      "exception":true
1153    },
1154    "ServiceChange":{
1155      "type":"structure",
1156      "members":{
1157        "Description":{"shape":"ResourceDescription"},
1158        "DnsConfig":{"shape":"DnsConfigChange"},
1159        "HealthCheckConfig":{"shape":"HealthCheckConfig"}
1160      }
1161    },
1162    "ServiceFilter":{
1163      "type":"structure",
1164      "required":[
1165        "Name",
1166        "Values"
1167      ],
1168      "members":{
1169        "Name":{"shape":"ServiceFilterName"},
1170        "Values":{"shape":"FilterValues"},
1171        "Condition":{"shape":"FilterCondition"}
1172      }
1173    },
1174    "ServiceFilterName":{
1175      "type":"string",
1176      "enum":["NAMESPACE_ID"]
1177    },
1178    "ServiceFilters":{
1179      "type":"list",
1180      "member":{"shape":"ServiceFilter"}
1181    },
1182    "ServiceName":{
1183      "type":"string",
1184      "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]))*$)|(^\\.$)"
1185    },
1186    "ServiceNotFound":{
1187      "type":"structure",
1188      "members":{
1189        "Message":{"shape":"ErrorMessage"}
1190      },
1191      "exception":true
1192    },
1193    "ServiceSummariesList":{
1194      "type":"list",
1195      "member":{"shape":"ServiceSummary"}
1196    },
1197    "ServiceSummary":{
1198      "type":"structure",
1199      "members":{
1200        "Id":{"shape":"ResourceId"},
1201        "Arn":{"shape":"Arn"},
1202        "Name":{"shape":"ServiceName"},
1203        "Description":{"shape":"ResourceDescription"},
1204        "InstanceCount":{"shape":"ResourceCount"},
1205        "DnsConfig":{"shape":"DnsConfig"},
1206        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
1207        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
1208        "CreateDate":{"shape":"Timestamp"}
1209      }
1210    },
1211    "Tag":{
1212      "type":"structure",
1213      "required":[
1214        "Key",
1215        "Value"
1216      ],
1217      "members":{
1218        "Key":{"shape":"TagKey"},
1219        "Value":{"shape":"TagValue"}
1220      }
1221    },
1222    "TagKey":{
1223      "type":"string",
1224      "max":128,
1225      "min":1
1226    },
1227    "TagKeyList":{
1228      "type":"list",
1229      "member":{"shape":"TagKey"},
1230      "max":200,
1231      "min":0
1232    },
1233    "TagList":{
1234      "type":"list",
1235      "member":{"shape":"Tag"},
1236      "max":200,
1237      "min":0
1238    },
1239    "TagResourceRequest":{
1240      "type":"structure",
1241      "required":[
1242        "ResourceARN",
1243        "Tags"
1244      ],
1245      "members":{
1246        "ResourceARN":{"shape":"AmazonResourceName"},
1247        "Tags":{"shape":"TagList"}
1248      }
1249    },
1250    "TagResourceResponse":{
1251      "type":"structure",
1252      "members":{
1253      }
1254    },
1255    "TagValue":{
1256      "type":"string",
1257      "max":256,
1258      "min":0
1259    },
1260    "Timestamp":{"type":"timestamp"},
1261    "TooManyTagsException":{
1262      "type":"structure",
1263      "members":{
1264        "Message":{"shape":"ErrorMessage"},
1265        "ResourceName":{"shape":"AmazonResourceName"}
1266      },
1267      "exception":true
1268    },
1269    "UntagResourceRequest":{
1270      "type":"structure",
1271      "required":[
1272        "ResourceARN",
1273        "TagKeys"
1274      ],
1275      "members":{
1276        "ResourceARN":{"shape":"AmazonResourceName"},
1277        "TagKeys":{"shape":"TagKeyList"}
1278      }
1279    },
1280    "UntagResourceResponse":{
1281      "type":"structure",
1282      "members":{
1283      }
1284    },
1285    "UpdateInstanceCustomHealthStatusRequest":{
1286      "type":"structure",
1287      "required":[
1288        "ServiceId",
1289        "InstanceId",
1290        "Status"
1291      ],
1292      "members":{
1293        "ServiceId":{"shape":"ResourceId"},
1294        "InstanceId":{"shape":"ResourceId"},
1295        "Status":{"shape":"CustomHealthStatus"}
1296      }
1297    },
1298    "UpdateServiceRequest":{
1299      "type":"structure",
1300      "required":[
1301        "Id",
1302        "Service"
1303      ],
1304      "members":{
1305        "Id":{"shape":"ResourceId"},
1306        "Service":{"shape":"ServiceChange"}
1307      }
1308    },
1309    "UpdateServiceResponse":{
1310      "type":"structure",
1311      "members":{
1312        "OperationId":{"shape":"OperationId"}
1313      }
1314    }
1315  }
1316}
1317