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