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      ]
30    },
31    "CreatePrivateDnsNamespace":{
32      "name":"CreatePrivateDnsNamespace",
33      "http":{
34        "method":"POST",
35        "requestUri":"/"
36      },
37      "input":{"shape":"CreatePrivateDnsNamespaceRequest"},
38      "output":{"shape":"CreatePrivateDnsNamespaceResponse"},
39      "errors":[
40        {"shape":"InvalidInput"},
41        {"shape":"NamespaceAlreadyExists"},
42        {"shape":"ResourceLimitExceeded"},
43        {"shape":"DuplicateRequest"}
44      ]
45    },
46    "CreatePublicDnsNamespace":{
47      "name":"CreatePublicDnsNamespace",
48      "http":{
49        "method":"POST",
50        "requestUri":"/"
51      },
52      "input":{"shape":"CreatePublicDnsNamespaceRequest"},
53      "output":{"shape":"CreatePublicDnsNamespaceResponse"},
54      "errors":[
55        {"shape":"InvalidInput"},
56        {"shape":"NamespaceAlreadyExists"},
57        {"shape":"ResourceLimitExceeded"},
58        {"shape":"DuplicateRequest"}
59      ]
60    },
61    "CreateService":{
62      "name":"CreateService",
63      "http":{
64        "method":"POST",
65        "requestUri":"/"
66      },
67      "input":{"shape":"CreateServiceRequest"},
68      "output":{"shape":"CreateServiceResponse"},
69      "errors":[
70        {"shape":"InvalidInput"},
71        {"shape":"ResourceLimitExceeded"},
72        {"shape":"NamespaceNotFound"},
73        {"shape":"ServiceAlreadyExists"}
74      ]
75    },
76    "DeleteNamespace":{
77      "name":"DeleteNamespace",
78      "http":{
79        "method":"POST",
80        "requestUri":"/"
81      },
82      "input":{"shape":"DeleteNamespaceRequest"},
83      "output":{"shape":"DeleteNamespaceResponse"},
84      "errors":[
85        {"shape":"InvalidInput"},
86        {"shape":"NamespaceNotFound"},
87        {"shape":"ResourceInUse"},
88        {"shape":"DuplicateRequest"}
89      ]
90    },
91    "DeleteService":{
92      "name":"DeleteService",
93      "http":{
94        "method":"POST",
95        "requestUri":"/"
96      },
97      "input":{"shape":"DeleteServiceRequest"},
98      "output":{"shape":"DeleteServiceResponse"},
99      "errors":[
100        {"shape":"InvalidInput"},
101        {"shape":"ServiceNotFound"},
102        {"shape":"ResourceInUse"}
103      ]
104    },
105    "DeregisterInstance":{
106      "name":"DeregisterInstance",
107      "http":{
108        "method":"POST",
109        "requestUri":"/"
110      },
111      "input":{"shape":"DeregisterInstanceRequest"},
112      "output":{"shape":"DeregisterInstanceResponse"},
113      "errors":[
114        {"shape":"DuplicateRequest"},
115        {"shape":"InvalidInput"},
116        {"shape":"InstanceNotFound"},
117        {"shape":"ResourceInUse"},
118        {"shape":"ServiceNotFound"}
119      ]
120    },
121    "DiscoverInstances":{
122      "name":"DiscoverInstances",
123      "http":{
124        "method":"POST",
125        "requestUri":"/"
126      },
127      "input":{"shape":"DiscoverInstancesRequest"},
128      "output":{"shape":"DiscoverInstancesResponse"},
129      "errors":[
130        {"shape":"ServiceNotFound"},
131        {"shape":"NamespaceNotFound"},
132        {"shape":"InvalidInput"}
133      ],
134      "endpoint":{"hostPrefix":"data-"}
135    },
136    "GetInstance":{
137      "name":"GetInstance",
138      "http":{
139        "method":"POST",
140        "requestUri":"/"
141      },
142      "input":{"shape":"GetInstanceRequest"},
143      "output":{"shape":"GetInstanceResponse"},
144      "errors":[
145        {"shape":"InstanceNotFound"},
146        {"shape":"InvalidInput"},
147        {"shape":"ServiceNotFound"}
148      ]
149    },
150    "GetInstancesHealthStatus":{
151      "name":"GetInstancesHealthStatus",
152      "http":{
153        "method":"POST",
154        "requestUri":"/"
155      },
156      "input":{"shape":"GetInstancesHealthStatusRequest"},
157      "output":{"shape":"GetInstancesHealthStatusResponse"},
158      "errors":[
159        {"shape":"InstanceNotFound"},
160        {"shape":"InvalidInput"},
161        {"shape":"ServiceNotFound"}
162      ]
163    },
164    "GetNamespace":{
165      "name":"GetNamespace",
166      "http":{
167        "method":"POST",
168        "requestUri":"/"
169      },
170      "input":{"shape":"GetNamespaceRequest"},
171      "output":{"shape":"GetNamespaceResponse"},
172      "errors":[
173        {"shape":"InvalidInput"},
174        {"shape":"NamespaceNotFound"}
175      ]
176    },
177    "GetOperation":{
178      "name":"GetOperation",
179      "http":{
180        "method":"POST",
181        "requestUri":"/"
182      },
183      "input":{"shape":"GetOperationRequest"},
184      "output":{"shape":"GetOperationResponse"},
185      "errors":[
186        {"shape":"InvalidInput"},
187        {"shape":"OperationNotFound"}
188      ]
189    },
190    "GetService":{
191      "name":"GetService",
192      "http":{
193        "method":"POST",
194        "requestUri":"/"
195      },
196      "input":{"shape":"GetServiceRequest"},
197      "output":{"shape":"GetServiceResponse"},
198      "errors":[
199        {"shape":"InvalidInput"},
200        {"shape":"ServiceNotFound"}
201      ]
202    },
203    "ListInstances":{
204      "name":"ListInstances",
205      "http":{
206        "method":"POST",
207        "requestUri":"/"
208      },
209      "input":{"shape":"ListInstancesRequest"},
210      "output":{"shape":"ListInstancesResponse"},
211      "errors":[
212        {"shape":"ServiceNotFound"},
213        {"shape":"InvalidInput"}
214      ]
215    },
216    "ListNamespaces":{
217      "name":"ListNamespaces",
218      "http":{
219        "method":"POST",
220        "requestUri":"/"
221      },
222      "input":{"shape":"ListNamespacesRequest"},
223      "output":{"shape":"ListNamespacesResponse"},
224      "errors":[
225        {"shape":"InvalidInput"}
226      ]
227    },
228    "ListOperations":{
229      "name":"ListOperations",
230      "http":{
231        "method":"POST",
232        "requestUri":"/"
233      },
234      "input":{"shape":"ListOperationsRequest"},
235      "output":{"shape":"ListOperationsResponse"},
236      "errors":[
237        {"shape":"InvalidInput"}
238      ]
239    },
240    "ListServices":{
241      "name":"ListServices",
242      "http":{
243        "method":"POST",
244        "requestUri":"/"
245      },
246      "input":{"shape":"ListServicesRequest"},
247      "output":{"shape":"ListServicesResponse"},
248      "errors":[
249        {"shape":"InvalidInput"}
250      ]
251    },
252    "RegisterInstance":{
253      "name":"RegisterInstance",
254      "http":{
255        "method":"POST",
256        "requestUri":"/"
257      },
258      "input":{"shape":"RegisterInstanceRequest"},
259      "output":{"shape":"RegisterInstanceResponse"},
260      "errors":[
261        {"shape":"DuplicateRequest"},
262        {"shape":"InvalidInput"},
263        {"shape":"ResourceInUse"},
264        {"shape":"ResourceLimitExceeded"},
265        {"shape":"ServiceNotFound"}
266      ]
267    },
268    "UpdateInstanceCustomHealthStatus":{
269      "name":"UpdateInstanceCustomHealthStatus",
270      "http":{
271        "method":"POST",
272        "requestUri":"/"
273      },
274      "input":{"shape":"UpdateInstanceCustomHealthStatusRequest"},
275      "errors":[
276        {"shape":"InstanceNotFound"},
277        {"shape":"ServiceNotFound"},
278        {"shape":"CustomHealthNotFound"},
279        {"shape":"InvalidInput"}
280      ]
281    },
282    "UpdateService":{
283      "name":"UpdateService",
284      "http":{
285        "method":"POST",
286        "requestUri":"/"
287      },
288      "input":{"shape":"UpdateServiceRequest"},
289      "output":{"shape":"UpdateServiceResponse"},
290      "errors":[
291        {"shape":"DuplicateRequest"},
292        {"shape":"InvalidInput"},
293        {"shape":"ServiceNotFound"}
294      ]
295    }
296  },
297  "shapes":{
298    "Arn":{
299      "type":"string",
300      "max":255
301    },
302    "AttrKey":{
303      "type":"string",
304      "max":255
305    },
306    "AttrValue":{
307      "type":"string",
308      "max":1024
309    },
310    "Attributes":{
311      "type":"map",
312      "key":{"shape":"AttrKey"},
313      "value":{"shape":"AttrValue"}
314    },
315    "Code":{"type":"string"},
316    "CreateHttpNamespaceRequest":{
317      "type":"structure",
318      "required":["Name"],
319      "members":{
320        "Name":{"shape":"NamespaceName"},
321        "CreatorRequestId":{
322          "shape":"ResourceId",
323          "idempotencyToken":true
324        },
325        "Description":{"shape":"ResourceDescription"}
326      }
327    },
328    "CreateHttpNamespaceResponse":{
329      "type":"structure",
330      "members":{
331        "OperationId":{"shape":"OperationId"}
332      }
333    },
334    "CreatePrivateDnsNamespaceRequest":{
335      "type":"structure",
336      "required":[
337        "Name",
338        "Vpc"
339      ],
340      "members":{
341        "Name":{"shape":"NamespaceName"},
342        "CreatorRequestId":{
343          "shape":"ResourceId",
344          "idempotencyToken":true
345        },
346        "Description":{"shape":"ResourceDescription"},
347        "Vpc":{"shape":"ResourceId"}
348      }
349    },
350    "CreatePrivateDnsNamespaceResponse":{
351      "type":"structure",
352      "members":{
353        "OperationId":{"shape":"OperationId"}
354      }
355    },
356    "CreatePublicDnsNamespaceRequest":{
357      "type":"structure",
358      "required":["Name"],
359      "members":{
360        "Name":{"shape":"NamespaceName"},
361        "CreatorRequestId":{
362          "shape":"ResourceId",
363          "idempotencyToken":true
364        },
365        "Description":{"shape":"ResourceDescription"}
366      }
367    },
368    "CreatePublicDnsNamespaceResponse":{
369      "type":"structure",
370      "members":{
371        "OperationId":{"shape":"OperationId"}
372      }
373    },
374    "CreateServiceRequest":{
375      "type":"structure",
376      "required":["Name"],
377      "members":{
378        "Name":{"shape":"ServiceName"},
379        "NamespaceId":{"shape":"ResourceId"},
380        "CreatorRequestId":{
381          "shape":"ResourceId",
382          "idempotencyToken":true
383        },
384        "Description":{"shape":"ResourceDescription"},
385        "DnsConfig":{"shape":"DnsConfig"},
386        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
387        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"}
388      }
389    },
390    "CreateServiceResponse":{
391      "type":"structure",
392      "members":{
393        "Service":{"shape":"Service"}
394      }
395    },
396    "CustomHealthNotFound":{
397      "type":"structure",
398      "members":{
399        "Message":{"shape":"ErrorMessage"}
400      },
401      "exception":true
402    },
403    "CustomHealthStatus":{
404      "type":"string",
405      "enum":[
406        "HEALTHY",
407        "UNHEALTHY"
408      ]
409    },
410    "DeleteNamespaceRequest":{
411      "type":"structure",
412      "required":["Id"],
413      "members":{
414        "Id":{"shape":"ResourceId"}
415      }
416    },
417    "DeleteNamespaceResponse":{
418      "type":"structure",
419      "members":{
420        "OperationId":{"shape":"OperationId"}
421      }
422    },
423    "DeleteServiceRequest":{
424      "type":"structure",
425      "required":["Id"],
426      "members":{
427        "Id":{"shape":"ResourceId"}
428      }
429    },
430    "DeleteServiceResponse":{
431      "type":"structure",
432      "members":{
433      }
434    },
435    "DeregisterInstanceRequest":{
436      "type":"structure",
437      "required":[
438        "ServiceId",
439        "InstanceId"
440      ],
441      "members":{
442        "ServiceId":{"shape":"ResourceId"},
443        "InstanceId":{"shape":"ResourceId"}
444      }
445    },
446    "DeregisterInstanceResponse":{
447      "type":"structure",
448      "members":{
449        "OperationId":{"shape":"OperationId"}
450      }
451    },
452    "DiscoverInstancesRequest":{
453      "type":"structure",
454      "required":[
455        "NamespaceName",
456        "ServiceName"
457      ],
458      "members":{
459        "NamespaceName":{"shape":"NamespaceName"},
460        "ServiceName":{"shape":"ServiceName"},
461        "MaxResults":{"shape":"MaxResults"},
462        "QueryParameters":{"shape":"Attributes"},
463        "HealthStatus":{"shape":"HealthStatusFilter"}
464      }
465    },
466    "DiscoverInstancesResponse":{
467      "type":"structure",
468      "members":{
469        "Instances":{"shape":"HttpInstanceSummaryList"}
470      }
471    },
472    "DnsConfig":{
473      "type":"structure",
474      "required":["DnsRecords"],
475      "members":{
476        "NamespaceId":{
477          "shape":"ResourceId",
478          "deprecated":true,
479          "deprecatedMessage":"Top level attribute in request should be used to reference namespace-id"
480        },
481        "RoutingPolicy":{"shape":"RoutingPolicy"},
482        "DnsRecords":{"shape":"DnsRecordList"}
483      }
484    },
485    "DnsConfigChange":{
486      "type":"structure",
487      "required":["DnsRecords"],
488      "members":{
489        "DnsRecords":{"shape":"DnsRecordList"}
490      }
491    },
492    "DnsProperties":{
493      "type":"structure",
494      "members":{
495        "HostedZoneId":{"shape":"ResourceId"}
496      }
497    },
498    "DnsRecord":{
499      "type":"structure",
500      "required":[
501        "Type",
502        "TTL"
503      ],
504      "members":{
505        "Type":{"shape":"RecordType"},
506        "TTL":{"shape":"RecordTTL"}
507      }
508    },
509    "DnsRecordList":{
510      "type":"list",
511      "member":{"shape":"DnsRecord"}
512    },
513    "DuplicateRequest":{
514      "type":"structure",
515      "members":{
516        "Message":{"shape":"ErrorMessage"},
517        "DuplicateOperationId":{"shape":"ResourceId"}
518      },
519      "exception":true
520    },
521    "ErrorMessage":{"type":"string"},
522    "FailureThreshold":{
523      "type":"integer",
524      "max":10,
525      "min":1
526    },
527    "FilterCondition":{
528      "type":"string",
529      "enum":[
530        "EQ",
531        "IN",
532        "BETWEEN"
533      ]
534    },
535    "FilterValue":{
536      "type":"string",
537      "max":255,
538      "min":1
539    },
540    "FilterValues":{
541      "type":"list",
542      "member":{"shape":"FilterValue"}
543    },
544    "GetInstanceRequest":{
545      "type":"structure",
546      "required":[
547        "ServiceId",
548        "InstanceId"
549      ],
550      "members":{
551        "ServiceId":{"shape":"ResourceId"},
552        "InstanceId":{"shape":"ResourceId"}
553      }
554    },
555    "GetInstanceResponse":{
556      "type":"structure",
557      "members":{
558        "Instance":{"shape":"Instance"}
559      }
560    },
561    "GetInstancesHealthStatusRequest":{
562      "type":"structure",
563      "required":["ServiceId"],
564      "members":{
565        "ServiceId":{"shape":"ResourceId"},
566        "Instances":{"shape":"InstanceIdList"},
567        "MaxResults":{"shape":"MaxResults"},
568        "NextToken":{"shape":"NextToken"}
569      }
570    },
571    "GetInstancesHealthStatusResponse":{
572      "type":"structure",
573      "members":{
574        "Status":{"shape":"InstanceHealthStatusMap"},
575        "NextToken":{"shape":"NextToken"}
576      }
577    },
578    "GetNamespaceRequest":{
579      "type":"structure",
580      "required":["Id"],
581      "members":{
582        "Id":{"shape":"ResourceId"}
583      }
584    },
585    "GetNamespaceResponse":{
586      "type":"structure",
587      "members":{
588        "Namespace":{"shape":"Namespace"}
589      }
590    },
591    "GetOperationRequest":{
592      "type":"structure",
593      "required":["OperationId"],
594      "members":{
595        "OperationId":{"shape":"ResourceId"}
596      }
597    },
598    "GetOperationResponse":{
599      "type":"structure",
600      "members":{
601        "Operation":{"shape":"Operation"}
602      }
603    },
604    "GetServiceRequest":{
605      "type":"structure",
606      "required":["Id"],
607      "members":{
608        "Id":{"shape":"ResourceId"}
609      }
610    },
611    "GetServiceResponse":{
612      "type":"structure",
613      "members":{
614        "Service":{"shape":"Service"}
615      }
616    },
617    "HealthCheckConfig":{
618      "type":"structure",
619      "required":["Type"],
620      "members":{
621        "Type":{"shape":"HealthCheckType"},
622        "ResourcePath":{"shape":"ResourcePath"},
623        "FailureThreshold":{"shape":"FailureThreshold"}
624      }
625    },
626    "HealthCheckCustomConfig":{
627      "type":"structure",
628      "members":{
629        "FailureThreshold":{"shape":"FailureThreshold"}
630      }
631    },
632    "HealthCheckType":{
633      "type":"string",
634      "enum":[
635        "HTTP",
636        "HTTPS",
637        "TCP"
638      ]
639    },
640    "HealthStatus":{
641      "type":"string",
642      "enum":[
643        "HEALTHY",
644        "UNHEALTHY",
645        "UNKNOWN"
646      ]
647    },
648    "HealthStatusFilter":{
649      "type":"string",
650      "enum":[
651        "HEALTHY",
652        "UNHEALTHY",
653        "ALL"
654      ]
655    },
656    "HttpInstanceSummary":{
657      "type":"structure",
658      "members":{
659        "InstanceId":{"shape":"ResourceId"},
660        "NamespaceName":{"shape":"NamespaceName"},
661        "ServiceName":{"shape":"ServiceName"},
662        "HealthStatus":{"shape":"HealthStatus"},
663        "Attributes":{"shape":"Attributes"}
664      }
665    },
666    "HttpInstanceSummaryList":{
667      "type":"list",
668      "member":{"shape":"HttpInstanceSummary"}
669    },
670    "HttpProperties":{
671      "type":"structure",
672      "members":{
673        "HttpName":{"shape":"NamespaceName"}
674      }
675    },
676    "Instance":{
677      "type":"structure",
678      "required":["Id"],
679      "members":{
680        "Id":{"shape":"ResourceId"},
681        "CreatorRequestId":{"shape":"ResourceId"},
682        "Attributes":{"shape":"Attributes"}
683      }
684    },
685    "InstanceHealthStatusMap":{
686      "type":"map",
687      "key":{"shape":"ResourceId"},
688      "value":{"shape":"HealthStatus"}
689    },
690    "InstanceIdList":{
691      "type":"list",
692      "member":{"shape":"ResourceId"},
693      "min":1
694    },
695    "InstanceNotFound":{
696      "type":"structure",
697      "members":{
698        "Message":{"shape":"ErrorMessage"}
699      },
700      "exception":true
701    },
702    "InstanceSummary":{
703      "type":"structure",
704      "members":{
705        "Id":{"shape":"ResourceId"},
706        "Attributes":{"shape":"Attributes"}
707      }
708    },
709    "InstanceSummaryList":{
710      "type":"list",
711      "member":{"shape":"InstanceSummary"}
712    },
713    "InvalidInput":{
714      "type":"structure",
715      "members":{
716        "Message":{"shape":"ErrorMessage"}
717      },
718      "exception":true
719    },
720    "ListInstancesRequest":{
721      "type":"structure",
722      "required":["ServiceId"],
723      "members":{
724        "ServiceId":{"shape":"ResourceId"},
725        "NextToken":{"shape":"NextToken"},
726        "MaxResults":{"shape":"MaxResults"}
727      }
728    },
729    "ListInstancesResponse":{
730      "type":"structure",
731      "members":{
732        "Instances":{"shape":"InstanceSummaryList"},
733        "NextToken":{"shape":"NextToken"}
734      }
735    },
736    "ListNamespacesRequest":{
737      "type":"structure",
738      "members":{
739        "NextToken":{"shape":"NextToken"},
740        "MaxResults":{"shape":"MaxResults"},
741        "Filters":{"shape":"NamespaceFilters"}
742      }
743    },
744    "ListNamespacesResponse":{
745      "type":"structure",
746      "members":{
747        "Namespaces":{"shape":"NamespaceSummariesList"},
748        "NextToken":{"shape":"NextToken"}
749      }
750    },
751    "ListOperationsRequest":{
752      "type":"structure",
753      "members":{
754        "NextToken":{"shape":"NextToken"},
755        "MaxResults":{"shape":"MaxResults"},
756        "Filters":{"shape":"OperationFilters"}
757      }
758    },
759    "ListOperationsResponse":{
760      "type":"structure",
761      "members":{
762        "Operations":{"shape":"OperationSummaryList"},
763        "NextToken":{"shape":"NextToken"}
764      }
765    },
766    "ListServicesRequest":{
767      "type":"structure",
768      "members":{
769        "NextToken":{"shape":"NextToken"},
770        "MaxResults":{"shape":"MaxResults"},
771        "Filters":{"shape":"ServiceFilters"}
772      }
773    },
774    "ListServicesResponse":{
775      "type":"structure",
776      "members":{
777        "Services":{"shape":"ServiceSummariesList"},
778        "NextToken":{"shape":"NextToken"}
779      }
780    },
781    "MaxResults":{
782      "type":"integer",
783      "max":100,
784      "min":1
785    },
786    "Message":{"type":"string"},
787    "Namespace":{
788      "type":"structure",
789      "members":{
790        "Id":{"shape":"ResourceId"},
791        "Arn":{"shape":"Arn"},
792        "Name":{"shape":"NamespaceName"},
793        "Type":{"shape":"NamespaceType"},
794        "Description":{"shape":"ResourceDescription"},
795        "ServiceCount":{"shape":"ResourceCount"},
796        "Properties":{"shape":"NamespaceProperties"},
797        "CreateDate":{"shape":"Timestamp"},
798        "CreatorRequestId":{"shape":"ResourceId"}
799      }
800    },
801    "NamespaceAlreadyExists":{
802      "type":"structure",
803      "members":{
804        "Message":{"shape":"ErrorMessage"},
805        "CreatorRequestId":{"shape":"ResourceId"},
806        "NamespaceId":{"shape":"ResourceId"}
807      },
808      "exception":true
809    },
810    "NamespaceFilter":{
811      "type":"structure",
812      "required":[
813        "Name",
814        "Values"
815      ],
816      "members":{
817        "Name":{"shape":"NamespaceFilterName"},
818        "Values":{"shape":"FilterValues"},
819        "Condition":{"shape":"FilterCondition"}
820      }
821    },
822    "NamespaceFilterName":{
823      "type":"string",
824      "enum":["TYPE"]
825    },
826    "NamespaceFilters":{
827      "type":"list",
828      "member":{"shape":"NamespaceFilter"}
829    },
830    "NamespaceName":{
831      "type":"string",
832      "max":1024
833    },
834    "NamespaceNotFound":{
835      "type":"structure",
836      "members":{
837        "Message":{"shape":"ErrorMessage"}
838      },
839      "exception":true
840    },
841    "NamespaceProperties":{
842      "type":"structure",
843      "members":{
844        "DnsProperties":{"shape":"DnsProperties"},
845        "HttpProperties":{"shape":"HttpProperties"}
846      }
847    },
848    "NamespaceSummariesList":{
849      "type":"list",
850      "member":{"shape":"NamespaceSummary"}
851    },
852    "NamespaceSummary":{
853      "type":"structure",
854      "members":{
855        "Id":{"shape":"ResourceId"},
856        "Arn":{"shape":"Arn"},
857        "Name":{"shape":"NamespaceName"},
858        "Type":{"shape":"NamespaceType"},
859        "Description":{"shape":"ResourceDescription"},
860        "ServiceCount":{"shape":"ResourceCount"},
861        "Properties":{"shape":"NamespaceProperties"},
862        "CreateDate":{"shape":"Timestamp"}
863      }
864    },
865    "NamespaceType":{
866      "type":"string",
867      "enum":[
868        "DNS_PUBLIC",
869        "DNS_PRIVATE",
870        "HTTP"
871      ]
872    },
873    "NextToken":{
874      "type":"string",
875      "max":4096
876    },
877    "Operation":{
878      "type":"structure",
879      "members":{
880        "Id":{"shape":"OperationId"},
881        "Type":{"shape":"OperationType"},
882        "Status":{"shape":"OperationStatus"},
883        "ErrorMessage":{"shape":"Message"},
884        "ErrorCode":{"shape":"Code"},
885        "CreateDate":{"shape":"Timestamp"},
886        "UpdateDate":{"shape":"Timestamp"},
887        "Targets":{"shape":"OperationTargetsMap"}
888      }
889    },
890    "OperationFilter":{
891      "type":"structure",
892      "required":[
893        "Name",
894        "Values"
895      ],
896      "members":{
897        "Name":{"shape":"OperationFilterName"},
898        "Values":{"shape":"FilterValues"},
899        "Condition":{"shape":"FilterCondition"}
900      }
901    },
902    "OperationFilterName":{
903      "type":"string",
904      "enum":[
905        "NAMESPACE_ID",
906        "SERVICE_ID",
907        "STATUS",
908        "TYPE",
909        "UPDATE_DATE"
910      ]
911    },
912    "OperationFilters":{
913      "type":"list",
914      "member":{"shape":"OperationFilter"}
915    },
916    "OperationId":{
917      "type":"string",
918      "max":255
919    },
920    "OperationNotFound":{
921      "type":"structure",
922      "members":{
923        "Message":{"shape":"ErrorMessage"}
924      },
925      "exception":true
926    },
927    "OperationStatus":{
928      "type":"string",
929      "enum":[
930        "SUBMITTED",
931        "PENDING",
932        "SUCCESS",
933        "FAIL"
934      ]
935    },
936    "OperationSummary":{
937      "type":"structure",
938      "members":{
939        "Id":{"shape":"OperationId"},
940        "Status":{"shape":"OperationStatus"}
941      }
942    },
943    "OperationSummaryList":{
944      "type":"list",
945      "member":{"shape":"OperationSummary"}
946    },
947    "OperationTargetType":{
948      "type":"string",
949      "enum":[
950        "NAMESPACE",
951        "SERVICE",
952        "INSTANCE"
953      ]
954    },
955    "OperationTargetsMap":{
956      "type":"map",
957      "key":{"shape":"OperationTargetType"},
958      "value":{"shape":"ResourceId"}
959    },
960    "OperationType":{
961      "type":"string",
962      "enum":[
963        "CREATE_NAMESPACE",
964        "DELETE_NAMESPACE",
965        "UPDATE_SERVICE",
966        "REGISTER_INSTANCE",
967        "DEREGISTER_INSTANCE"
968      ]
969    },
970    "RecordTTL":{
971      "type":"long",
972      "max":2147483647,
973      "min":0
974    },
975    "RecordType":{
976      "type":"string",
977      "enum":[
978        "SRV",
979        "A",
980        "AAAA",
981        "CNAME"
982      ]
983    },
984    "RegisterInstanceRequest":{
985      "type":"structure",
986      "required":[
987        "ServiceId",
988        "InstanceId",
989        "Attributes"
990      ],
991      "members":{
992        "ServiceId":{"shape":"ResourceId"},
993        "InstanceId":{"shape":"ResourceId"},
994        "CreatorRequestId":{
995          "shape":"ResourceId",
996          "idempotencyToken":true
997        },
998        "Attributes":{"shape":"Attributes"}
999      }
1000    },
1001    "RegisterInstanceResponse":{
1002      "type":"structure",
1003      "members":{
1004        "OperationId":{"shape":"OperationId"}
1005      }
1006    },
1007    "ResourceCount":{"type":"integer"},
1008    "ResourceDescription":{
1009      "type":"string",
1010      "max":1024
1011    },
1012    "ResourceId":{
1013      "type":"string",
1014      "max":64
1015    },
1016    "ResourceInUse":{
1017      "type":"structure",
1018      "members":{
1019        "Message":{"shape":"ErrorMessage"}
1020      },
1021      "exception":true
1022    },
1023    "ResourceLimitExceeded":{
1024      "type":"structure",
1025      "members":{
1026        "Message":{"shape":"ErrorMessage"}
1027      },
1028      "exception":true
1029    },
1030    "ResourcePath":{
1031      "type":"string",
1032      "max":255
1033    },
1034    "RoutingPolicy":{
1035      "type":"string",
1036      "enum":[
1037        "MULTIVALUE",
1038        "WEIGHTED"
1039      ]
1040    },
1041    "Service":{
1042      "type":"structure",
1043      "members":{
1044        "Id":{"shape":"ResourceId"},
1045        "Arn":{"shape":"Arn"},
1046        "Name":{"shape":"ServiceName"},
1047        "NamespaceId":{"shape":"ResourceId"},
1048        "Description":{"shape":"ResourceDescription"},
1049        "InstanceCount":{"shape":"ResourceCount"},
1050        "DnsConfig":{"shape":"DnsConfig"},
1051        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
1052        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
1053        "CreateDate":{"shape":"Timestamp"},
1054        "CreatorRequestId":{"shape":"ResourceId"}
1055      }
1056    },
1057    "ServiceAlreadyExists":{
1058      "type":"structure",
1059      "members":{
1060        "Message":{"shape":"ErrorMessage"},
1061        "CreatorRequestId":{"shape":"ResourceId"},
1062        "ServiceId":{"shape":"ResourceId"}
1063      },
1064      "exception":true
1065    },
1066    "ServiceChange":{
1067      "type":"structure",
1068      "required":["DnsConfig"],
1069      "members":{
1070        "Description":{"shape":"ResourceDescription"},
1071        "DnsConfig":{"shape":"DnsConfigChange"},
1072        "HealthCheckConfig":{"shape":"HealthCheckConfig"}
1073      }
1074    },
1075    "ServiceFilter":{
1076      "type":"structure",
1077      "required":[
1078        "Name",
1079        "Values"
1080      ],
1081      "members":{
1082        "Name":{"shape":"ServiceFilterName"},
1083        "Values":{"shape":"FilterValues"},
1084        "Condition":{"shape":"FilterCondition"}
1085      }
1086    },
1087    "ServiceFilterName":{
1088      "type":"string",
1089      "enum":["NAMESPACE_ID"]
1090    },
1091    "ServiceFilters":{
1092      "type":"list",
1093      "member":{"shape":"ServiceFilter"}
1094    },
1095    "ServiceName":{
1096      "type":"string",
1097      "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]))*$)|(^\\.$)"
1098    },
1099    "ServiceNotFound":{
1100      "type":"structure",
1101      "members":{
1102        "Message":{"shape":"ErrorMessage"}
1103      },
1104      "exception":true
1105    },
1106    "ServiceSummariesList":{
1107      "type":"list",
1108      "member":{"shape":"ServiceSummary"}
1109    },
1110    "ServiceSummary":{
1111      "type":"structure",
1112      "members":{
1113        "Id":{"shape":"ResourceId"},
1114        "Arn":{"shape":"Arn"},
1115        "Name":{"shape":"ServiceName"},
1116        "Description":{"shape":"ResourceDescription"},
1117        "InstanceCount":{"shape":"ResourceCount"},
1118        "DnsConfig":{"shape":"DnsConfig"},
1119        "HealthCheckConfig":{"shape":"HealthCheckConfig"},
1120        "HealthCheckCustomConfig":{"shape":"HealthCheckCustomConfig"},
1121        "CreateDate":{"shape":"Timestamp"}
1122      }
1123    },
1124    "Timestamp":{"type":"timestamp"},
1125    "UpdateInstanceCustomHealthStatusRequest":{
1126      "type":"structure",
1127      "required":[
1128        "ServiceId",
1129        "InstanceId",
1130        "Status"
1131      ],
1132      "members":{
1133        "ServiceId":{"shape":"ResourceId"},
1134        "InstanceId":{"shape":"ResourceId"},
1135        "Status":{"shape":"CustomHealthStatus"}
1136      }
1137    },
1138    "UpdateServiceRequest":{
1139      "type":"structure",
1140      "required":[
1141        "Id",
1142        "Service"
1143      ],
1144      "members":{
1145        "Id":{"shape":"ResourceId"},
1146        "Service":{"shape":"ServiceChange"}
1147      }
1148    },
1149    "UpdateServiceResponse":{
1150      "type":"structure",
1151      "members":{
1152        "OperationId":{"shape":"OperationId"}
1153      }
1154    }
1155  }
1156}
1157