1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2017-07-25",
5    "endpointPrefix":"amplify",
6    "jsonVersion":"1.1",
7    "protocol":"rest-json",
8    "serviceAbbreviation":"Amplify",
9    "serviceFullName":"AWS Amplify",
10    "serviceId":"Amplify",
11    "signatureVersion":"v4",
12    "signingName":"amplify",
13    "uid":"amplify-2017-07-25"
14  },
15  "operations":{
16    "CreateApp":{
17      "name":"CreateApp",
18      "http":{
19        "method":"POST",
20        "requestUri":"/apps"
21      },
22      "input":{"shape":"CreateAppRequest"},
23      "output":{"shape":"CreateAppResult"},
24      "errors":[
25        {"shape":"BadRequestException"},
26        {"shape":"UnauthorizedException"},
27        {"shape":"InternalFailureException"},
28        {"shape":"LimitExceededException"},
29        {"shape":"DependentServiceFailureException"}
30      ]
31    },
32    "CreateBackendEnvironment":{
33      "name":"CreateBackendEnvironment",
34      "http":{
35        "method":"POST",
36        "requestUri":"/apps/{appId}/backendenvironments"
37      },
38      "input":{"shape":"CreateBackendEnvironmentRequest"},
39      "output":{"shape":"CreateBackendEnvironmentResult"},
40      "errors":[
41        {"shape":"BadRequestException"},
42        {"shape":"UnauthorizedException"},
43        {"shape":"NotFoundException"},
44        {"shape":"InternalFailureException"},
45        {"shape":"LimitExceededException"}
46      ]
47    },
48    "CreateBranch":{
49      "name":"CreateBranch",
50      "http":{
51        "method":"POST",
52        "requestUri":"/apps/{appId}/branches"
53      },
54      "input":{"shape":"CreateBranchRequest"},
55      "output":{"shape":"CreateBranchResult"},
56      "errors":[
57        {"shape":"BadRequestException"},
58        {"shape":"UnauthorizedException"},
59        {"shape":"NotFoundException"},
60        {"shape":"InternalFailureException"},
61        {"shape":"LimitExceededException"},
62        {"shape":"DependentServiceFailureException"}
63      ]
64    },
65    "CreateDeployment":{
66      "name":"CreateDeployment",
67      "http":{
68        "method":"POST",
69        "requestUri":"/apps/{appId}/branches/{branchName}/deployments"
70      },
71      "input":{"shape":"CreateDeploymentRequest"},
72      "output":{"shape":"CreateDeploymentResult"},
73      "errors":[
74        {"shape":"BadRequestException"},
75        {"shape":"UnauthorizedException"},
76        {"shape":"InternalFailureException"},
77        {"shape":"LimitExceededException"}
78      ]
79    },
80    "CreateDomainAssociation":{
81      "name":"CreateDomainAssociation",
82      "http":{
83        "method":"POST",
84        "requestUri":"/apps/{appId}/domains"
85      },
86      "input":{"shape":"CreateDomainAssociationRequest"},
87      "output":{"shape":"CreateDomainAssociationResult"},
88      "errors":[
89        {"shape":"BadRequestException"},
90        {"shape":"UnauthorizedException"},
91        {"shape":"NotFoundException"},
92        {"shape":"InternalFailureException"},
93        {"shape":"LimitExceededException"},
94        {"shape":"DependentServiceFailureException"}
95      ]
96    },
97    "CreateWebhook":{
98      "name":"CreateWebhook",
99      "http":{
100        "method":"POST",
101        "requestUri":"/apps/{appId}/webhooks"
102      },
103      "input":{"shape":"CreateWebhookRequest"},
104      "output":{"shape":"CreateWebhookResult"},
105      "errors":[
106        {"shape":"BadRequestException"},
107        {"shape":"UnauthorizedException"},
108        {"shape":"NotFoundException"},
109        {"shape":"InternalFailureException"},
110        {"shape":"LimitExceededException"},
111        {"shape":"DependentServiceFailureException"}
112      ]
113    },
114    "DeleteApp":{
115      "name":"DeleteApp",
116      "http":{
117        "method":"DELETE",
118        "requestUri":"/apps/{appId}"
119      },
120      "input":{"shape":"DeleteAppRequest"},
121      "output":{"shape":"DeleteAppResult"},
122      "errors":[
123        {"shape":"BadRequestException"},
124        {"shape":"NotFoundException"},
125        {"shape":"UnauthorizedException"},
126        {"shape":"InternalFailureException"},
127        {"shape":"DependentServiceFailureException"}
128      ]
129    },
130    "DeleteBackendEnvironment":{
131      "name":"DeleteBackendEnvironment",
132      "http":{
133        "method":"DELETE",
134        "requestUri":"/apps/{appId}/backendenvironments/{environmentName}"
135      },
136      "input":{"shape":"DeleteBackendEnvironmentRequest"},
137      "output":{"shape":"DeleteBackendEnvironmentResult"},
138      "errors":[
139        {"shape":"BadRequestException"},
140        {"shape":"UnauthorizedException"},
141        {"shape":"NotFoundException"},
142        {"shape":"InternalFailureException"},
143        {"shape":"DependentServiceFailureException"}
144      ]
145    },
146    "DeleteBranch":{
147      "name":"DeleteBranch",
148      "http":{
149        "method":"DELETE",
150        "requestUri":"/apps/{appId}/branches/{branchName}"
151      },
152      "input":{"shape":"DeleteBranchRequest"},
153      "output":{"shape":"DeleteBranchResult"},
154      "errors":[
155        {"shape":"BadRequestException"},
156        {"shape":"UnauthorizedException"},
157        {"shape":"NotFoundException"},
158        {"shape":"InternalFailureException"},
159        {"shape":"DependentServiceFailureException"}
160      ]
161    },
162    "DeleteDomainAssociation":{
163      "name":"DeleteDomainAssociation",
164      "http":{
165        "method":"DELETE",
166        "requestUri":"/apps/{appId}/domains/{domainName}"
167      },
168      "input":{"shape":"DeleteDomainAssociationRequest"},
169      "output":{"shape":"DeleteDomainAssociationResult"},
170      "errors":[
171        {"shape":"BadRequestException"},
172        {"shape":"UnauthorizedException"},
173        {"shape":"NotFoundException"},
174        {"shape":"InternalFailureException"},
175        {"shape":"DependentServiceFailureException"}
176      ]
177    },
178    "DeleteJob":{
179      "name":"DeleteJob",
180      "http":{
181        "method":"DELETE",
182        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}"
183      },
184      "input":{"shape":"DeleteJobRequest"},
185      "output":{"shape":"DeleteJobResult"},
186      "errors":[
187        {"shape":"BadRequestException"},
188        {"shape":"UnauthorizedException"},
189        {"shape":"InternalFailureException"},
190        {"shape":"NotFoundException"},
191        {"shape":"LimitExceededException"}
192      ]
193    },
194    "DeleteWebhook":{
195      "name":"DeleteWebhook",
196      "http":{
197        "method":"DELETE",
198        "requestUri":"/webhooks/{webhookId}"
199      },
200      "input":{"shape":"DeleteWebhookRequest"},
201      "output":{"shape":"DeleteWebhookResult"},
202      "errors":[
203        {"shape":"BadRequestException"},
204        {"shape":"UnauthorizedException"},
205        {"shape":"InternalFailureException"},
206        {"shape":"NotFoundException"},
207        {"shape":"LimitExceededException"}
208      ]
209    },
210    "GenerateAccessLogs":{
211      "name":"GenerateAccessLogs",
212      "http":{
213        "method":"POST",
214        "requestUri":"/apps/{appId}/accesslogs"
215      },
216      "input":{"shape":"GenerateAccessLogsRequest"},
217      "output":{"shape":"GenerateAccessLogsResult"},
218      "errors":[
219        {"shape":"NotFoundException"},
220        {"shape":"BadRequestException"},
221        {"shape":"UnauthorizedException"},
222        {"shape":"InternalFailureException"}
223      ]
224    },
225    "GetApp":{
226      "name":"GetApp",
227      "http":{
228        "method":"GET",
229        "requestUri":"/apps/{appId}"
230      },
231      "input":{"shape":"GetAppRequest"},
232      "output":{"shape":"GetAppResult"},
233      "errors":[
234        {"shape":"BadRequestException"},
235        {"shape":"NotFoundException"},
236        {"shape":"UnauthorizedException"},
237        {"shape":"InternalFailureException"}
238      ]
239    },
240    "GetArtifactUrl":{
241      "name":"GetArtifactUrl",
242      "http":{
243        "method":"GET",
244        "requestUri":"/artifacts/{artifactId}"
245      },
246      "input":{"shape":"GetArtifactUrlRequest"},
247      "output":{"shape":"GetArtifactUrlResult"},
248      "errors":[
249        {"shape":"BadRequestException"},
250        {"shape":"UnauthorizedException"},
251        {"shape":"InternalFailureException"},
252        {"shape":"NotFoundException"},
253        {"shape":"LimitExceededException"}
254      ]
255    },
256    "GetBackendEnvironment":{
257      "name":"GetBackendEnvironment",
258      "http":{
259        "method":"GET",
260        "requestUri":"/apps/{appId}/backendenvironments/{environmentName}"
261      },
262      "input":{"shape":"GetBackendEnvironmentRequest"},
263      "output":{"shape":"GetBackendEnvironmentResult"},
264      "errors":[
265        {"shape":"BadRequestException"},
266        {"shape":"UnauthorizedException"},
267        {"shape":"NotFoundException"},
268        {"shape":"InternalFailureException"}
269      ]
270    },
271    "GetBranch":{
272      "name":"GetBranch",
273      "http":{
274        "method":"GET",
275        "requestUri":"/apps/{appId}/branches/{branchName}"
276      },
277      "input":{"shape":"GetBranchRequest"},
278      "output":{"shape":"GetBranchResult"},
279      "errors":[
280        {"shape":"BadRequestException"},
281        {"shape":"UnauthorizedException"},
282        {"shape":"NotFoundException"},
283        {"shape":"InternalFailureException"}
284      ]
285    },
286    "GetDomainAssociation":{
287      "name":"GetDomainAssociation",
288      "http":{
289        "method":"GET",
290        "requestUri":"/apps/{appId}/domains/{domainName}"
291      },
292      "input":{"shape":"GetDomainAssociationRequest"},
293      "output":{"shape":"GetDomainAssociationResult"},
294      "errors":[
295        {"shape":"BadRequestException"},
296        {"shape":"UnauthorizedException"},
297        {"shape":"NotFoundException"},
298        {"shape":"InternalFailureException"}
299      ]
300    },
301    "GetJob":{
302      "name":"GetJob",
303      "http":{
304        "method":"GET",
305        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}"
306      },
307      "input":{"shape":"GetJobRequest"},
308      "output":{"shape":"GetJobResult"},
309      "errors":[
310        {"shape":"BadRequestException"},
311        {"shape":"UnauthorizedException"},
312        {"shape":"InternalFailureException"},
313        {"shape":"NotFoundException"},
314        {"shape":"LimitExceededException"}
315      ]
316    },
317    "GetWebhook":{
318      "name":"GetWebhook",
319      "http":{
320        "method":"GET",
321        "requestUri":"/webhooks/{webhookId}"
322      },
323      "input":{"shape":"GetWebhookRequest"},
324      "output":{"shape":"GetWebhookResult"},
325      "errors":[
326        {"shape":"BadRequestException"},
327        {"shape":"UnauthorizedException"},
328        {"shape":"InternalFailureException"},
329        {"shape":"NotFoundException"},
330        {"shape":"LimitExceededException"}
331      ]
332    },
333    "ListApps":{
334      "name":"ListApps",
335      "http":{
336        "method":"GET",
337        "requestUri":"/apps"
338      },
339      "input":{"shape":"ListAppsRequest"},
340      "output":{"shape":"ListAppsResult"},
341      "errors":[
342        {"shape":"BadRequestException"},
343        {"shape":"UnauthorizedException"},
344        {"shape":"InternalFailureException"}
345      ]
346    },
347    "ListArtifacts":{
348      "name":"ListArtifacts",
349      "http":{
350        "method":"GET",
351        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}/artifacts"
352      },
353      "input":{"shape":"ListArtifactsRequest"},
354      "output":{"shape":"ListArtifactsResult"},
355      "errors":[
356        {"shape":"BadRequestException"},
357        {"shape":"UnauthorizedException"},
358        {"shape":"InternalFailureException"},
359        {"shape":"LimitExceededException"}
360      ]
361    },
362    "ListBackendEnvironments":{
363      "name":"ListBackendEnvironments",
364      "http":{
365        "method":"GET",
366        "requestUri":"/apps/{appId}/backendenvironments"
367      },
368      "input":{"shape":"ListBackendEnvironmentsRequest"},
369      "output":{"shape":"ListBackendEnvironmentsResult"},
370      "errors":[
371        {"shape":"BadRequestException"},
372        {"shape":"UnauthorizedException"},
373        {"shape":"InternalFailureException"}
374      ]
375    },
376    "ListBranches":{
377      "name":"ListBranches",
378      "http":{
379        "method":"GET",
380        "requestUri":"/apps/{appId}/branches"
381      },
382      "input":{"shape":"ListBranchesRequest"},
383      "output":{"shape":"ListBranchesResult"},
384      "errors":[
385        {"shape":"BadRequestException"},
386        {"shape":"UnauthorizedException"},
387        {"shape":"InternalFailureException"}
388      ]
389    },
390    "ListDomainAssociations":{
391      "name":"ListDomainAssociations",
392      "http":{
393        "method":"GET",
394        "requestUri":"/apps/{appId}/domains"
395      },
396      "input":{"shape":"ListDomainAssociationsRequest"},
397      "output":{"shape":"ListDomainAssociationsResult"},
398      "errors":[
399        {"shape":"BadRequestException"},
400        {"shape":"UnauthorizedException"},
401        {"shape":"InternalFailureException"}
402      ]
403    },
404    "ListJobs":{
405      "name":"ListJobs",
406      "http":{
407        "method":"GET",
408        "requestUri":"/apps/{appId}/branches/{branchName}/jobs"
409      },
410      "input":{"shape":"ListJobsRequest"},
411      "output":{"shape":"ListJobsResult"},
412      "errors":[
413        {"shape":"BadRequestException"},
414        {"shape":"UnauthorizedException"},
415        {"shape":"InternalFailureException"},
416        {"shape":"LimitExceededException"}
417      ]
418    },
419    "ListTagsForResource":{
420      "name":"ListTagsForResource",
421      "http":{
422        "method":"GET",
423        "requestUri":"/tags/{resourceArn}"
424      },
425      "input":{"shape":"ListTagsForResourceRequest"},
426      "output":{"shape":"ListTagsForResourceResponse"},
427      "errors":[
428        {"shape":"InternalFailureException"},
429        {"shape":"BadRequestException"},
430        {"shape":"ResourceNotFoundException"}
431      ]
432    },
433    "ListWebhooks":{
434      "name":"ListWebhooks",
435      "http":{
436        "method":"GET",
437        "requestUri":"/apps/{appId}/webhooks"
438      },
439      "input":{"shape":"ListWebhooksRequest"},
440      "output":{"shape":"ListWebhooksResult"},
441      "errors":[
442        {"shape":"BadRequestException"},
443        {"shape":"UnauthorizedException"},
444        {"shape":"InternalFailureException"},
445        {"shape":"LimitExceededException"}
446      ]
447    },
448    "StartDeployment":{
449      "name":"StartDeployment",
450      "http":{
451        "method":"POST",
452        "requestUri":"/apps/{appId}/branches/{branchName}/deployments/start"
453      },
454      "input":{"shape":"StartDeploymentRequest"},
455      "output":{"shape":"StartDeploymentResult"},
456      "errors":[
457        {"shape":"BadRequestException"},
458        {"shape":"UnauthorizedException"},
459        {"shape":"InternalFailureException"},
460        {"shape":"NotFoundException"},
461        {"shape":"LimitExceededException"}
462      ]
463    },
464    "StartJob":{
465      "name":"StartJob",
466      "http":{
467        "method":"POST",
468        "requestUri":"/apps/{appId}/branches/{branchName}/jobs"
469      },
470      "input":{"shape":"StartJobRequest"},
471      "output":{"shape":"StartJobResult"},
472      "errors":[
473        {"shape":"BadRequestException"},
474        {"shape":"UnauthorizedException"},
475        {"shape":"InternalFailureException"},
476        {"shape":"NotFoundException"},
477        {"shape":"LimitExceededException"}
478      ]
479    },
480    "StopJob":{
481      "name":"StopJob",
482      "http":{
483        "method":"DELETE",
484        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}/stop"
485      },
486      "input":{"shape":"StopJobRequest"},
487      "output":{"shape":"StopJobResult"},
488      "errors":[
489        {"shape":"BadRequestException"},
490        {"shape":"UnauthorizedException"},
491        {"shape":"InternalFailureException"},
492        {"shape":"NotFoundException"},
493        {"shape":"LimitExceededException"}
494      ]
495    },
496    "TagResource":{
497      "name":"TagResource",
498      "http":{
499        "method":"POST",
500        "requestUri":"/tags/{resourceArn}"
501      },
502      "input":{"shape":"TagResourceRequest"},
503      "output":{"shape":"TagResourceResponse"},
504      "errors":[
505        {"shape":"InternalFailureException"},
506        {"shape":"BadRequestException"},
507        {"shape":"ResourceNotFoundException"}
508      ]
509    },
510    "UntagResource":{
511      "name":"UntagResource",
512      "http":{
513        "method":"DELETE",
514        "requestUri":"/tags/{resourceArn}"
515      },
516      "input":{"shape":"UntagResourceRequest"},
517      "output":{"shape":"UntagResourceResponse"},
518      "errors":[
519        {"shape":"InternalFailureException"},
520        {"shape":"BadRequestException"},
521        {"shape":"ResourceNotFoundException"}
522      ]
523    },
524    "UpdateApp":{
525      "name":"UpdateApp",
526      "http":{
527        "method":"POST",
528        "requestUri":"/apps/{appId}"
529      },
530      "input":{"shape":"UpdateAppRequest"},
531      "output":{"shape":"UpdateAppResult"},
532      "errors":[
533        {"shape":"BadRequestException"},
534        {"shape":"NotFoundException"},
535        {"shape":"UnauthorizedException"},
536        {"shape":"InternalFailureException"}
537      ]
538    },
539    "UpdateBranch":{
540      "name":"UpdateBranch",
541      "http":{
542        "method":"POST",
543        "requestUri":"/apps/{appId}/branches/{branchName}"
544      },
545      "input":{"shape":"UpdateBranchRequest"},
546      "output":{"shape":"UpdateBranchResult"},
547      "errors":[
548        {"shape":"BadRequestException"},
549        {"shape":"UnauthorizedException"},
550        {"shape":"NotFoundException"},
551        {"shape":"InternalFailureException"},
552        {"shape":"DependentServiceFailureException"}
553      ]
554    },
555    "UpdateDomainAssociation":{
556      "name":"UpdateDomainAssociation",
557      "http":{
558        "method":"POST",
559        "requestUri":"/apps/{appId}/domains/{domainName}"
560      },
561      "input":{"shape":"UpdateDomainAssociationRequest"},
562      "output":{"shape":"UpdateDomainAssociationResult"},
563      "errors":[
564        {"shape":"BadRequestException"},
565        {"shape":"UnauthorizedException"},
566        {"shape":"NotFoundException"},
567        {"shape":"InternalFailureException"},
568        {"shape":"DependentServiceFailureException"}
569      ]
570    },
571    "UpdateWebhook":{
572      "name":"UpdateWebhook",
573      "http":{
574        "method":"POST",
575        "requestUri":"/webhooks/{webhookId}"
576      },
577      "input":{"shape":"UpdateWebhookRequest"},
578      "output":{"shape":"UpdateWebhookResult"},
579      "errors":[
580        {"shape":"BadRequestException"},
581        {"shape":"UnauthorizedException"},
582        {"shape":"NotFoundException"},
583        {"shape":"InternalFailureException"},
584        {"shape":"DependentServiceFailureException"}
585      ]
586    }
587  },
588  "shapes":{
589    "AccessToken":{
590      "type":"string",
591      "max":255,
592      "min":1,
593      "sensitive":true
594    },
595    "ActiveJobId":{
596      "type":"string",
597      "max":1000
598    },
599    "App":{
600      "type":"structure",
601      "required":[
602        "appId",
603        "appArn",
604        "name",
605        "description",
606        "repository",
607        "platform",
608        "createTime",
609        "updateTime",
610        "environmentVariables",
611        "defaultDomain",
612        "enableBranchAutoBuild",
613        "enableBasicAuth"
614      ],
615      "members":{
616        "appId":{"shape":"AppId"},
617        "appArn":{"shape":"AppArn"},
618        "name":{"shape":"Name"},
619        "tags":{"shape":"TagMap"},
620        "description":{"shape":"Description"},
621        "repository":{"shape":"Repository"},
622        "platform":{"shape":"Platform"},
623        "createTime":{"shape":"CreateTime"},
624        "updateTime":{"shape":"UpdateTime"},
625        "iamServiceRoleArn":{"shape":"ServiceRoleArn"},
626        "environmentVariables":{"shape":"EnvironmentVariables"},
627        "defaultDomain":{"shape":"DefaultDomain"},
628        "enableBranchAutoBuild":{"shape":"EnableBranchAutoBuild"},
629        "enableBranchAutoDeletion":{"shape":"EnableBranchAutoDeletion"},
630        "enableBasicAuth":{"shape":"EnableBasicAuth"},
631        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
632        "customRules":{"shape":"CustomRules"},
633        "productionBranch":{"shape":"ProductionBranch"},
634        "buildSpec":{"shape":"BuildSpec"},
635        "enableAutoBranchCreation":{"shape":"EnableAutoBranchCreation"},
636        "autoBranchCreationPatterns":{"shape":"AutoBranchCreationPatterns"},
637        "autoBranchCreationConfig":{"shape":"AutoBranchCreationConfig"}
638      }
639    },
640    "AppArn":{
641      "type":"string",
642      "max":1000
643    },
644    "AppId":{
645      "type":"string",
646      "max":255,
647      "min":1
648    },
649    "Apps":{
650      "type":"list",
651      "member":{"shape":"App"}
652    },
653    "Artifact":{
654      "type":"structure",
655      "required":[
656        "artifactFileName",
657        "artifactId"
658      ],
659      "members":{
660        "artifactFileName":{"shape":"ArtifactFileName"},
661        "artifactId":{"shape":"ArtifactId"}
662      }
663    },
664    "ArtifactFileName":{
665      "type":"string",
666      "max":1000
667    },
668    "ArtifactId":{
669      "type":"string",
670      "max":255
671    },
672    "ArtifactUrl":{
673      "type":"string",
674      "max":1000
675    },
676    "Artifacts":{
677      "type":"list",
678      "member":{"shape":"Artifact"}
679    },
680    "ArtifactsUrl":{
681      "type":"string",
682      "max":1000
683    },
684    "AssociatedResource":{
685      "type":"string",
686      "max":2048,
687      "min":1
688    },
689    "AssociatedResources":{
690      "type":"list",
691      "member":{"shape":"AssociatedResource"}
692    },
693    "AutoBranchCreationConfig":{
694      "type":"structure",
695      "members":{
696        "stage":{"shape":"Stage"},
697        "framework":{"shape":"Framework"},
698        "enableAutoBuild":{"shape":"EnableAutoBuild"},
699        "environmentVariables":{"shape":"EnvironmentVariables"},
700        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
701        "enableBasicAuth":{"shape":"EnableBasicAuth"},
702        "buildSpec":{"shape":"BuildSpec"},
703        "enablePullRequestPreview":{"shape":"EnablePullRequestPreview"},
704        "pullRequestEnvironmentName":{"shape":"PullRequestEnvironmentName"}
705      }
706    },
707    "AutoBranchCreationPattern":{
708      "type":"string",
709      "max":2048,
710      "min":1
711    },
712    "AutoBranchCreationPatterns":{
713      "type":"list",
714      "member":{"shape":"AutoBranchCreationPattern"}
715    },
716    "AutoSubDomainCreationPattern":{
717      "type":"string",
718      "max":2048,
719      "min":1
720    },
721    "AutoSubDomainCreationPatterns":{
722      "type":"list",
723      "member":{"shape":"AutoSubDomainCreationPattern"}
724    },
725    "AutoSubDomainIAMRole":{
726      "type":"string",
727      "max":1000,
728      "pattern":"^$|^arn:aws:iam::\\d{12}:role.+"
729    },
730    "BackendEnvironment":{
731      "type":"structure",
732      "required":[
733        "backendEnvironmentArn",
734        "environmentName",
735        "createTime",
736        "updateTime"
737      ],
738      "members":{
739        "backendEnvironmentArn":{"shape":"BackendEnvironmentArn"},
740        "environmentName":{"shape":"EnvironmentName"},
741        "stackName":{"shape":"StackName"},
742        "deploymentArtifacts":{"shape":"DeploymentArtifacts"},
743        "createTime":{"shape":"CreateTime"},
744        "updateTime":{"shape":"UpdateTime"}
745      }
746    },
747    "BackendEnvironmentArn":{
748      "type":"string",
749      "max":1000,
750      "min":1
751    },
752    "BackendEnvironments":{
753      "type":"list",
754      "member":{"shape":"BackendEnvironment"}
755    },
756    "BadRequestException":{
757      "type":"structure",
758      "members":{
759        "message":{"shape":"ErrorMessage"}
760      },
761      "error":{"httpStatusCode":400},
762      "exception":true
763    },
764    "BasicAuthCredentials":{
765      "type":"string",
766      "max":2000,
767      "sensitive":true
768    },
769    "Branch":{
770      "type":"structure",
771      "required":[
772        "branchArn",
773        "branchName",
774        "description",
775        "stage",
776        "displayName",
777        "enableNotification",
778        "createTime",
779        "updateTime",
780        "environmentVariables",
781        "enableAutoBuild",
782        "customDomains",
783        "framework",
784        "activeJobId",
785        "totalNumberOfJobs",
786        "enableBasicAuth",
787        "ttl",
788        "enablePullRequestPreview"
789      ],
790      "members":{
791        "branchArn":{"shape":"BranchArn"},
792        "branchName":{"shape":"BranchName"},
793        "description":{"shape":"Description"},
794        "tags":{"shape":"TagMap"},
795        "stage":{"shape":"Stage"},
796        "displayName":{"shape":"DisplayName"},
797        "enableNotification":{"shape":"EnableNotification"},
798        "createTime":{"shape":"CreateTime"},
799        "updateTime":{"shape":"UpdateTime"},
800        "environmentVariables":{"shape":"EnvironmentVariables"},
801        "enableAutoBuild":{"shape":"EnableAutoBuild"},
802        "customDomains":{"shape":"CustomDomains"},
803        "framework":{"shape":"Framework"},
804        "activeJobId":{"shape":"ActiveJobId"},
805        "totalNumberOfJobs":{"shape":"TotalNumberOfJobs"},
806        "enableBasicAuth":{"shape":"EnableBasicAuth"},
807        "thumbnailUrl":{"shape":"ThumbnailUrl"},
808        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
809        "buildSpec":{"shape":"BuildSpec"},
810        "ttl":{"shape":"TTL"},
811        "associatedResources":{"shape":"AssociatedResources"},
812        "enablePullRequestPreview":{"shape":"EnablePullRequestPreview"},
813        "pullRequestEnvironmentName":{"shape":"PullRequestEnvironmentName"},
814        "destinationBranch":{"shape":"BranchName"},
815        "sourceBranch":{"shape":"BranchName"},
816        "backendEnvironmentArn":{"shape":"BackendEnvironmentArn"}
817      }
818    },
819    "BranchArn":{
820      "type":"string",
821      "max":1000
822    },
823    "BranchName":{
824      "type":"string",
825      "max":255,
826      "min":1
827    },
828    "Branches":{
829      "type":"list",
830      "member":{"shape":"Branch"},
831      "max":255
832    },
833    "BuildSpec":{
834      "type":"string",
835      "max":25000,
836      "min":1
837    },
838    "CertificateVerificationDNSRecord":{
839      "type":"string",
840      "max":1000
841    },
842    "Code":{"type":"string"},
843    "CommitId":{
844      "type":"string",
845      "max":255
846    },
847    "CommitMessage":{
848      "type":"string",
849      "max":10000
850    },
851    "CommitTime":{"type":"timestamp"},
852    "Condition":{
853      "type":"string",
854      "max":2048,
855      "min":1
856    },
857    "Context":{"type":"string"},
858    "CreateAppRequest":{
859      "type":"structure",
860      "required":["name"],
861      "members":{
862        "name":{"shape":"Name"},
863        "description":{"shape":"Description"},
864        "repository":{"shape":"Repository"},
865        "platform":{"shape":"Platform"},
866        "iamServiceRoleArn":{"shape":"ServiceRoleArn"},
867        "oauthToken":{"shape":"OauthToken"},
868        "accessToken":{"shape":"AccessToken"},
869        "environmentVariables":{"shape":"EnvironmentVariables"},
870        "enableBranchAutoBuild":{"shape":"EnableBranchAutoBuild"},
871        "enableBranchAutoDeletion":{"shape":"EnableBranchAutoDeletion"},
872        "enableBasicAuth":{"shape":"EnableBasicAuth"},
873        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
874        "customRules":{"shape":"CustomRules"},
875        "tags":{"shape":"TagMap"},
876        "buildSpec":{"shape":"BuildSpec"},
877        "enableAutoBranchCreation":{"shape":"EnableAutoBranchCreation"},
878        "autoBranchCreationPatterns":{"shape":"AutoBranchCreationPatterns"},
879        "autoBranchCreationConfig":{"shape":"AutoBranchCreationConfig"}
880      }
881    },
882    "CreateAppResult":{
883      "type":"structure",
884      "required":["app"],
885      "members":{
886        "app":{"shape":"App"}
887      }
888    },
889    "CreateBackendEnvironmentRequest":{
890      "type":"structure",
891      "required":[
892        "appId",
893        "environmentName"
894      ],
895      "members":{
896        "appId":{
897          "shape":"AppId",
898          "location":"uri",
899          "locationName":"appId"
900        },
901        "environmentName":{"shape":"EnvironmentName"},
902        "stackName":{"shape":"StackName"},
903        "deploymentArtifacts":{"shape":"DeploymentArtifacts"}
904      }
905    },
906    "CreateBackendEnvironmentResult":{
907      "type":"structure",
908      "required":["backendEnvironment"],
909      "members":{
910        "backendEnvironment":{"shape":"BackendEnvironment"}
911      }
912    },
913    "CreateBranchRequest":{
914      "type":"structure",
915      "required":[
916        "appId",
917        "branchName"
918      ],
919      "members":{
920        "appId":{
921          "shape":"AppId",
922          "location":"uri",
923          "locationName":"appId"
924        },
925        "branchName":{"shape":"BranchName"},
926        "description":{"shape":"Description"},
927        "stage":{"shape":"Stage"},
928        "framework":{"shape":"Framework"},
929        "enableNotification":{"shape":"EnableNotification"},
930        "enableAutoBuild":{"shape":"EnableAutoBuild"},
931        "environmentVariables":{"shape":"EnvironmentVariables"},
932        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
933        "enableBasicAuth":{"shape":"EnableBasicAuth"},
934        "tags":{"shape":"TagMap"},
935        "buildSpec":{"shape":"BuildSpec"},
936        "ttl":{"shape":"TTL"},
937        "displayName":{"shape":"DisplayName"},
938        "enablePullRequestPreview":{"shape":"EnablePullRequestPreview"},
939        "pullRequestEnvironmentName":{"shape":"PullRequestEnvironmentName"},
940        "backendEnvironmentArn":{"shape":"BackendEnvironmentArn"}
941      }
942    },
943    "CreateBranchResult":{
944      "type":"structure",
945      "required":["branch"],
946      "members":{
947        "branch":{"shape":"Branch"}
948      }
949    },
950    "CreateDeploymentRequest":{
951      "type":"structure",
952      "required":[
953        "appId",
954        "branchName"
955      ],
956      "members":{
957        "appId":{
958          "shape":"AppId",
959          "location":"uri",
960          "locationName":"appId"
961        },
962        "branchName":{
963          "shape":"BranchName",
964          "location":"uri",
965          "locationName":"branchName"
966        },
967        "fileMap":{"shape":"FileMap"}
968      }
969    },
970    "CreateDeploymentResult":{
971      "type":"structure",
972      "required":[
973        "fileUploadUrls",
974        "zipUploadUrl"
975      ],
976      "members":{
977        "jobId":{"shape":"JobId"},
978        "fileUploadUrls":{"shape":"FileUploadUrls"},
979        "zipUploadUrl":{"shape":"UploadUrl"}
980      }
981    },
982    "CreateDomainAssociationRequest":{
983      "type":"structure",
984      "required":[
985        "appId",
986        "domainName",
987        "subDomainSettings"
988      ],
989      "members":{
990        "appId":{
991          "shape":"AppId",
992          "location":"uri",
993          "locationName":"appId"
994        },
995        "domainName":{"shape":"DomainName"},
996        "enableAutoSubDomain":{"shape":"EnableAutoSubDomain"},
997        "subDomainSettings":{"shape":"SubDomainSettings"},
998        "autoSubDomainCreationPatterns":{"shape":"AutoSubDomainCreationPatterns"},
999        "autoSubDomainIAMRole":{"shape":"AutoSubDomainIAMRole"}
1000      }
1001    },
1002    "CreateDomainAssociationResult":{
1003      "type":"structure",
1004      "required":["domainAssociation"],
1005      "members":{
1006        "domainAssociation":{"shape":"DomainAssociation"}
1007      }
1008    },
1009    "CreateTime":{"type":"timestamp"},
1010    "CreateWebhookRequest":{
1011      "type":"structure",
1012      "required":[
1013        "appId",
1014        "branchName"
1015      ],
1016      "members":{
1017        "appId":{
1018          "shape":"AppId",
1019          "location":"uri",
1020          "locationName":"appId"
1021        },
1022        "branchName":{"shape":"BranchName"},
1023        "description":{"shape":"Description"}
1024      }
1025    },
1026    "CreateWebhookResult":{
1027      "type":"structure",
1028      "required":["webhook"],
1029      "members":{
1030        "webhook":{"shape":"Webhook"}
1031      }
1032    },
1033    "CustomDomain":{
1034      "type":"string",
1035      "max":255
1036    },
1037    "CustomDomains":{
1038      "type":"list",
1039      "member":{"shape":"CustomDomain"},
1040      "max":255
1041    },
1042    "CustomRule":{
1043      "type":"structure",
1044      "required":[
1045        "source",
1046        "target"
1047      ],
1048      "members":{
1049        "source":{"shape":"Source"},
1050        "target":{"shape":"Target"},
1051        "status":{"shape":"Status"},
1052        "condition":{"shape":"Condition"}
1053      }
1054    },
1055    "CustomRules":{
1056      "type":"list",
1057      "member":{"shape":"CustomRule"}
1058    },
1059    "DNSRecord":{
1060      "type":"string",
1061      "max":1000
1062    },
1063    "DefaultDomain":{
1064      "type":"string",
1065      "max":1000,
1066      "min":1
1067    },
1068    "DeleteAppRequest":{
1069      "type":"structure",
1070      "required":["appId"],
1071      "members":{
1072        "appId":{
1073          "shape":"AppId",
1074          "location":"uri",
1075          "locationName":"appId"
1076        }
1077      }
1078    },
1079    "DeleteAppResult":{
1080      "type":"structure",
1081      "required":["app"],
1082      "members":{
1083        "app":{"shape":"App"}
1084      }
1085    },
1086    "DeleteBackendEnvironmentRequest":{
1087      "type":"structure",
1088      "required":[
1089        "appId",
1090        "environmentName"
1091      ],
1092      "members":{
1093        "appId":{
1094          "shape":"AppId",
1095          "location":"uri",
1096          "locationName":"appId"
1097        },
1098        "environmentName":{
1099          "shape":"EnvironmentName",
1100          "location":"uri",
1101          "locationName":"environmentName"
1102        }
1103      }
1104    },
1105    "DeleteBackendEnvironmentResult":{
1106      "type":"structure",
1107      "required":["backendEnvironment"],
1108      "members":{
1109        "backendEnvironment":{"shape":"BackendEnvironment"}
1110      }
1111    },
1112    "DeleteBranchRequest":{
1113      "type":"structure",
1114      "required":[
1115        "appId",
1116        "branchName"
1117      ],
1118      "members":{
1119        "appId":{
1120          "shape":"AppId",
1121          "location":"uri",
1122          "locationName":"appId"
1123        },
1124        "branchName":{
1125          "shape":"BranchName",
1126          "location":"uri",
1127          "locationName":"branchName"
1128        }
1129      }
1130    },
1131    "DeleteBranchResult":{
1132      "type":"structure",
1133      "required":["branch"],
1134      "members":{
1135        "branch":{"shape":"Branch"}
1136      }
1137    },
1138    "DeleteDomainAssociationRequest":{
1139      "type":"structure",
1140      "required":[
1141        "appId",
1142        "domainName"
1143      ],
1144      "members":{
1145        "appId":{
1146          "shape":"AppId",
1147          "location":"uri",
1148          "locationName":"appId"
1149        },
1150        "domainName":{
1151          "shape":"DomainName",
1152          "location":"uri",
1153          "locationName":"domainName"
1154        }
1155      }
1156    },
1157    "DeleteDomainAssociationResult":{
1158      "type":"structure",
1159      "required":["domainAssociation"],
1160      "members":{
1161        "domainAssociation":{"shape":"DomainAssociation"}
1162      }
1163    },
1164    "DeleteJobRequest":{
1165      "type":"structure",
1166      "required":[
1167        "appId",
1168        "branchName",
1169        "jobId"
1170      ],
1171      "members":{
1172        "appId":{
1173          "shape":"AppId",
1174          "location":"uri",
1175          "locationName":"appId"
1176        },
1177        "branchName":{
1178          "shape":"BranchName",
1179          "location":"uri",
1180          "locationName":"branchName"
1181        },
1182        "jobId":{
1183          "shape":"JobId",
1184          "location":"uri",
1185          "locationName":"jobId"
1186        }
1187      }
1188    },
1189    "DeleteJobResult":{
1190      "type":"structure",
1191      "required":["jobSummary"],
1192      "members":{
1193        "jobSummary":{"shape":"JobSummary"}
1194      }
1195    },
1196    "DeleteWebhookRequest":{
1197      "type":"structure",
1198      "required":["webhookId"],
1199      "members":{
1200        "webhookId":{
1201          "shape":"WebhookId",
1202          "location":"uri",
1203          "locationName":"webhookId"
1204        }
1205      }
1206    },
1207    "DeleteWebhookResult":{
1208      "type":"structure",
1209      "required":["webhook"],
1210      "members":{
1211        "webhook":{"shape":"Webhook"}
1212      }
1213    },
1214    "DependentServiceFailureException":{
1215      "type":"structure",
1216      "members":{
1217        "message":{"shape":"ErrorMessage"}
1218      },
1219      "error":{"httpStatusCode":503},
1220      "exception":true
1221    },
1222    "DeploymentArtifacts":{
1223      "type":"string",
1224      "max":1000,
1225      "min":1
1226    },
1227    "Description":{
1228      "type":"string",
1229      "max":1000
1230    },
1231    "DisplayName":{
1232      "type":"string",
1233      "max":255
1234    },
1235    "DomainAssociation":{
1236      "type":"structure",
1237      "required":[
1238        "domainAssociationArn",
1239        "domainName",
1240        "enableAutoSubDomain",
1241        "domainStatus",
1242        "statusReason",
1243        "subDomains"
1244      ],
1245      "members":{
1246        "domainAssociationArn":{"shape":"DomainAssociationArn"},
1247        "domainName":{"shape":"DomainName"},
1248        "enableAutoSubDomain":{"shape":"EnableAutoSubDomain"},
1249        "autoSubDomainCreationPatterns":{"shape":"AutoSubDomainCreationPatterns"},
1250        "autoSubDomainIAMRole":{"shape":"AutoSubDomainIAMRole"},
1251        "domainStatus":{"shape":"DomainStatus"},
1252        "statusReason":{"shape":"StatusReason"},
1253        "certificateVerificationDNSRecord":{"shape":"CertificateVerificationDNSRecord"},
1254        "subDomains":{"shape":"SubDomains"}
1255      }
1256    },
1257    "DomainAssociationArn":{
1258      "type":"string",
1259      "max":1000
1260    },
1261    "DomainAssociations":{
1262      "type":"list",
1263      "member":{"shape":"DomainAssociation"},
1264      "max":255
1265    },
1266    "DomainName":{
1267      "type":"string",
1268      "max":255
1269    },
1270    "DomainPrefix":{
1271      "type":"string",
1272      "max":255
1273    },
1274    "DomainStatus":{
1275      "type":"string",
1276      "enum":[
1277        "PENDING_VERIFICATION",
1278        "IN_PROGRESS",
1279        "AVAILABLE",
1280        "PENDING_DEPLOYMENT",
1281        "FAILED",
1282        "CREATING",
1283        "REQUESTING_CERTIFICATE",
1284        "UPDATING"
1285      ]
1286    },
1287    "EnableAutoBranchCreation":{"type":"boolean"},
1288    "EnableAutoBuild":{"type":"boolean"},
1289    "EnableAutoSubDomain":{"type":"boolean"},
1290    "EnableBasicAuth":{"type":"boolean"},
1291    "EnableBranchAutoBuild":{"type":"boolean"},
1292    "EnableBranchAutoDeletion":{"type":"boolean"},
1293    "EnableNotification":{"type":"boolean"},
1294    "EnablePullRequestPreview":{"type":"boolean"},
1295    "EndTime":{"type":"timestamp"},
1296    "EnvKey":{
1297      "type":"string",
1298      "max":255
1299    },
1300    "EnvValue":{
1301      "type":"string",
1302      "max":1000
1303    },
1304    "EnvironmentName":{
1305      "type":"string",
1306      "max":255,
1307      "min":1
1308    },
1309    "EnvironmentVariables":{
1310      "type":"map",
1311      "key":{"shape":"EnvKey"},
1312      "value":{"shape":"EnvValue"}
1313    },
1314    "ErrorMessage":{
1315      "type":"string",
1316      "max":255
1317    },
1318    "FileMap":{
1319      "type":"map",
1320      "key":{"shape":"FileName"},
1321      "value":{"shape":"MD5Hash"}
1322    },
1323    "FileName":{
1324      "type":"string",
1325      "max":255
1326    },
1327    "FileUploadUrls":{
1328      "type":"map",
1329      "key":{"shape":"FileName"},
1330      "value":{"shape":"UploadUrl"}
1331    },
1332    "Framework":{
1333      "type":"string",
1334      "max":255
1335    },
1336    "GenerateAccessLogsRequest":{
1337      "type":"structure",
1338      "required":[
1339        "domainName",
1340        "appId"
1341      ],
1342      "members":{
1343        "startTime":{"shape":"StartTime"},
1344        "endTime":{"shape":"EndTime"},
1345        "domainName":{"shape":"DomainName"},
1346        "appId":{
1347          "shape":"AppId",
1348          "location":"uri",
1349          "locationName":"appId"
1350        }
1351      }
1352    },
1353    "GenerateAccessLogsResult":{
1354      "type":"structure",
1355      "members":{
1356        "logUrl":{"shape":"LogUrl"}
1357      }
1358    },
1359    "GetAppRequest":{
1360      "type":"structure",
1361      "required":["appId"],
1362      "members":{
1363        "appId":{
1364          "shape":"AppId",
1365          "location":"uri",
1366          "locationName":"appId"
1367        }
1368      }
1369    },
1370    "GetAppResult":{
1371      "type":"structure",
1372      "required":["app"],
1373      "members":{
1374        "app":{"shape":"App"}
1375      }
1376    },
1377    "GetArtifactUrlRequest":{
1378      "type":"structure",
1379      "required":["artifactId"],
1380      "members":{
1381        "artifactId":{
1382          "shape":"ArtifactId",
1383          "location":"uri",
1384          "locationName":"artifactId"
1385        }
1386      }
1387    },
1388    "GetArtifactUrlResult":{
1389      "type":"structure",
1390      "required":[
1391        "artifactId",
1392        "artifactUrl"
1393      ],
1394      "members":{
1395        "artifactId":{"shape":"ArtifactId"},
1396        "artifactUrl":{"shape":"ArtifactUrl"}
1397      }
1398    },
1399    "GetBackendEnvironmentRequest":{
1400      "type":"structure",
1401      "required":[
1402        "appId",
1403        "environmentName"
1404      ],
1405      "members":{
1406        "appId":{
1407          "shape":"AppId",
1408          "location":"uri",
1409          "locationName":"appId"
1410        },
1411        "environmentName":{
1412          "shape":"EnvironmentName",
1413          "location":"uri",
1414          "locationName":"environmentName"
1415        }
1416      }
1417    },
1418    "GetBackendEnvironmentResult":{
1419      "type":"structure",
1420      "required":["backendEnvironment"],
1421      "members":{
1422        "backendEnvironment":{"shape":"BackendEnvironment"}
1423      }
1424    },
1425    "GetBranchRequest":{
1426      "type":"structure",
1427      "required":[
1428        "appId",
1429        "branchName"
1430      ],
1431      "members":{
1432        "appId":{
1433          "shape":"AppId",
1434          "location":"uri",
1435          "locationName":"appId"
1436        },
1437        "branchName":{
1438          "shape":"BranchName",
1439          "location":"uri",
1440          "locationName":"branchName"
1441        }
1442      }
1443    },
1444    "GetBranchResult":{
1445      "type":"structure",
1446      "required":["branch"],
1447      "members":{
1448        "branch":{"shape":"Branch"}
1449      }
1450    },
1451    "GetDomainAssociationRequest":{
1452      "type":"structure",
1453      "required":[
1454        "appId",
1455        "domainName"
1456      ],
1457      "members":{
1458        "appId":{
1459          "shape":"AppId",
1460          "location":"uri",
1461          "locationName":"appId"
1462        },
1463        "domainName":{
1464          "shape":"DomainName",
1465          "location":"uri",
1466          "locationName":"domainName"
1467        }
1468      }
1469    },
1470    "GetDomainAssociationResult":{
1471      "type":"structure",
1472      "required":["domainAssociation"],
1473      "members":{
1474        "domainAssociation":{"shape":"DomainAssociation"}
1475      }
1476    },
1477    "GetJobRequest":{
1478      "type":"structure",
1479      "required":[
1480        "appId",
1481        "branchName",
1482        "jobId"
1483      ],
1484      "members":{
1485        "appId":{
1486          "shape":"AppId",
1487          "location":"uri",
1488          "locationName":"appId"
1489        },
1490        "branchName":{
1491          "shape":"BranchName",
1492          "location":"uri",
1493          "locationName":"branchName"
1494        },
1495        "jobId":{
1496          "shape":"JobId",
1497          "location":"uri",
1498          "locationName":"jobId"
1499        }
1500      }
1501    },
1502    "GetJobResult":{
1503      "type":"structure",
1504      "required":["job"],
1505      "members":{
1506        "job":{"shape":"Job"}
1507      }
1508    },
1509    "GetWebhookRequest":{
1510      "type":"structure",
1511      "required":["webhookId"],
1512      "members":{
1513        "webhookId":{
1514          "shape":"WebhookId",
1515          "location":"uri",
1516          "locationName":"webhookId"
1517        }
1518      }
1519    },
1520    "GetWebhookResult":{
1521      "type":"structure",
1522      "required":["webhook"],
1523      "members":{
1524        "webhook":{"shape":"Webhook"}
1525      }
1526    },
1527    "InternalFailureException":{
1528      "type":"structure",
1529      "members":{
1530        "message":{"shape":"ErrorMessage"}
1531      },
1532      "error":{"httpStatusCode":500},
1533      "exception":true,
1534      "fault":true
1535    },
1536    "Job":{
1537      "type":"structure",
1538      "required":[
1539        "summary",
1540        "steps"
1541      ],
1542      "members":{
1543        "summary":{"shape":"JobSummary"},
1544        "steps":{"shape":"Steps"}
1545      }
1546    },
1547    "JobArn":{
1548      "type":"string",
1549      "max":1000
1550    },
1551    "JobId":{
1552      "type":"string",
1553      "max":255
1554    },
1555    "JobReason":{
1556      "type":"string",
1557      "max":255
1558    },
1559    "JobStatus":{
1560      "type":"string",
1561      "enum":[
1562        "PENDING",
1563        "PROVISIONING",
1564        "RUNNING",
1565        "FAILED",
1566        "SUCCEED",
1567        "CANCELLING",
1568        "CANCELLED"
1569      ]
1570    },
1571    "JobSummaries":{
1572      "type":"list",
1573      "member":{"shape":"JobSummary"}
1574    },
1575    "JobSummary":{
1576      "type":"structure",
1577      "required":[
1578        "jobArn",
1579        "jobId",
1580        "commitId",
1581        "commitMessage",
1582        "commitTime",
1583        "startTime",
1584        "status",
1585        "jobType"
1586      ],
1587      "members":{
1588        "jobArn":{"shape":"JobArn"},
1589        "jobId":{"shape":"JobId"},
1590        "commitId":{"shape":"CommitId"},
1591        "commitMessage":{"shape":"CommitMessage"},
1592        "commitTime":{"shape":"CommitTime"},
1593        "startTime":{"shape":"StartTime"},
1594        "status":{"shape":"JobStatus"},
1595        "endTime":{"shape":"EndTime"},
1596        "jobType":{"shape":"JobType"}
1597      }
1598    },
1599    "JobType":{
1600      "type":"string",
1601      "enum":[
1602        "RELEASE",
1603        "RETRY",
1604        "MANUAL",
1605        "WEB_HOOK"
1606      ],
1607      "max":10
1608    },
1609    "LastDeployTime":{"type":"timestamp"},
1610    "LimitExceededException":{
1611      "type":"structure",
1612      "members":{
1613        "message":{"shape":"ErrorMessage"}
1614      },
1615      "error":{"httpStatusCode":429},
1616      "exception":true
1617    },
1618    "ListAppsRequest":{
1619      "type":"structure",
1620      "members":{
1621        "nextToken":{
1622          "shape":"NextToken",
1623          "location":"querystring",
1624          "locationName":"nextToken"
1625        },
1626        "maxResults":{
1627          "shape":"MaxResults",
1628          "location":"querystring",
1629          "locationName":"maxResults"
1630        }
1631      }
1632    },
1633    "ListAppsResult":{
1634      "type":"structure",
1635      "required":["apps"],
1636      "members":{
1637        "apps":{"shape":"Apps"},
1638        "nextToken":{"shape":"NextToken"}
1639      }
1640    },
1641    "ListArtifactsRequest":{
1642      "type":"structure",
1643      "required":[
1644        "appId",
1645        "branchName",
1646        "jobId"
1647      ],
1648      "members":{
1649        "appId":{
1650          "shape":"AppId",
1651          "location":"uri",
1652          "locationName":"appId"
1653        },
1654        "branchName":{
1655          "shape":"BranchName",
1656          "location":"uri",
1657          "locationName":"branchName"
1658        },
1659        "jobId":{
1660          "shape":"JobId",
1661          "location":"uri",
1662          "locationName":"jobId"
1663        },
1664        "nextToken":{
1665          "shape":"NextToken",
1666          "location":"querystring",
1667          "locationName":"nextToken"
1668        },
1669        "maxResults":{
1670          "shape":"MaxResults",
1671          "location":"querystring",
1672          "locationName":"maxResults"
1673        }
1674      }
1675    },
1676    "ListArtifactsResult":{
1677      "type":"structure",
1678      "required":["artifacts"],
1679      "members":{
1680        "artifacts":{"shape":"Artifacts"},
1681        "nextToken":{"shape":"NextToken"}
1682      }
1683    },
1684    "ListBackendEnvironmentsRequest":{
1685      "type":"structure",
1686      "required":["appId"],
1687      "members":{
1688        "appId":{
1689          "shape":"AppId",
1690          "location":"uri",
1691          "locationName":"appId"
1692        },
1693        "environmentName":{
1694          "shape":"EnvironmentName",
1695          "location":"querystring",
1696          "locationName":"environmentName"
1697        },
1698        "nextToken":{
1699          "shape":"NextToken",
1700          "location":"querystring",
1701          "locationName":"nextToken"
1702        },
1703        "maxResults":{
1704          "shape":"MaxResults",
1705          "location":"querystring",
1706          "locationName":"maxResults"
1707        }
1708      }
1709    },
1710    "ListBackendEnvironmentsResult":{
1711      "type":"structure",
1712      "required":["backendEnvironments"],
1713      "members":{
1714        "backendEnvironments":{"shape":"BackendEnvironments"},
1715        "nextToken":{"shape":"NextToken"}
1716      }
1717    },
1718    "ListBranchesRequest":{
1719      "type":"structure",
1720      "required":["appId"],
1721      "members":{
1722        "appId":{
1723          "shape":"AppId",
1724          "location":"uri",
1725          "locationName":"appId"
1726        },
1727        "nextToken":{
1728          "shape":"NextToken",
1729          "location":"querystring",
1730          "locationName":"nextToken"
1731        },
1732        "maxResults":{
1733          "shape":"MaxResults",
1734          "location":"querystring",
1735          "locationName":"maxResults"
1736        }
1737      }
1738    },
1739    "ListBranchesResult":{
1740      "type":"structure",
1741      "required":["branches"],
1742      "members":{
1743        "branches":{"shape":"Branches"},
1744        "nextToken":{"shape":"NextToken"}
1745      }
1746    },
1747    "ListDomainAssociationsRequest":{
1748      "type":"structure",
1749      "required":["appId"],
1750      "members":{
1751        "appId":{
1752          "shape":"AppId",
1753          "location":"uri",
1754          "locationName":"appId"
1755        },
1756        "nextToken":{
1757          "shape":"NextToken",
1758          "location":"querystring",
1759          "locationName":"nextToken"
1760        },
1761        "maxResults":{
1762          "shape":"MaxResults",
1763          "location":"querystring",
1764          "locationName":"maxResults"
1765        }
1766      }
1767    },
1768    "ListDomainAssociationsResult":{
1769      "type":"structure",
1770      "required":["domainAssociations"],
1771      "members":{
1772        "domainAssociations":{"shape":"DomainAssociations"},
1773        "nextToken":{"shape":"NextToken"}
1774      }
1775    },
1776    "ListJobsRequest":{
1777      "type":"structure",
1778      "required":[
1779        "appId",
1780        "branchName"
1781      ],
1782      "members":{
1783        "appId":{
1784          "shape":"AppId",
1785          "location":"uri",
1786          "locationName":"appId"
1787        },
1788        "branchName":{
1789          "shape":"BranchName",
1790          "location":"uri",
1791          "locationName":"branchName"
1792        },
1793        "nextToken":{
1794          "shape":"NextToken",
1795          "location":"querystring",
1796          "locationName":"nextToken"
1797        },
1798        "maxResults":{
1799          "shape":"MaxResults",
1800          "location":"querystring",
1801          "locationName":"maxResults"
1802        }
1803      }
1804    },
1805    "ListJobsResult":{
1806      "type":"structure",
1807      "required":["jobSummaries"],
1808      "members":{
1809        "jobSummaries":{"shape":"JobSummaries"},
1810        "nextToken":{"shape":"NextToken"}
1811      }
1812    },
1813    "ListTagsForResourceRequest":{
1814      "type":"structure",
1815      "required":["resourceArn"],
1816      "members":{
1817        "resourceArn":{
1818          "shape":"ResourceArn",
1819          "location":"uri",
1820          "locationName":"resourceArn"
1821        }
1822      }
1823    },
1824    "ListTagsForResourceResponse":{
1825      "type":"structure",
1826      "members":{
1827        "tags":{"shape":"TagMap"}
1828      }
1829    },
1830    "ListWebhooksRequest":{
1831      "type":"structure",
1832      "required":["appId"],
1833      "members":{
1834        "appId":{
1835          "shape":"AppId",
1836          "location":"uri",
1837          "locationName":"appId"
1838        },
1839        "nextToken":{
1840          "shape":"NextToken",
1841          "location":"querystring",
1842          "locationName":"nextToken"
1843        },
1844        "maxResults":{
1845          "shape":"MaxResults",
1846          "location":"querystring",
1847          "locationName":"maxResults"
1848        }
1849      }
1850    },
1851    "ListWebhooksResult":{
1852      "type":"structure",
1853      "required":["webhooks"],
1854      "members":{
1855        "webhooks":{"shape":"Webhooks"},
1856        "nextToken":{"shape":"NextToken"}
1857      }
1858    },
1859    "LogUrl":{
1860      "type":"string",
1861      "max":1000
1862    },
1863    "MD5Hash":{
1864      "type":"string",
1865      "max":32
1866    },
1867    "MaxResults":{
1868      "type":"integer",
1869      "max":100,
1870      "min":1
1871    },
1872    "Name":{
1873      "type":"string",
1874      "max":255,
1875      "min":1
1876    },
1877    "NextToken":{
1878      "type":"string",
1879      "max":2000
1880    },
1881    "NotFoundException":{
1882      "type":"structure",
1883      "members":{
1884        "message":{"shape":"ErrorMessage"}
1885      },
1886      "error":{"httpStatusCode":404},
1887      "exception":true
1888    },
1889    "OauthToken":{
1890      "type":"string",
1891      "max":100,
1892      "sensitive":true
1893    },
1894    "Platform":{
1895      "type":"string",
1896      "enum":["WEB"]
1897    },
1898    "ProductionBranch":{
1899      "type":"structure",
1900      "members":{
1901        "lastDeployTime":{"shape":"LastDeployTime"},
1902        "status":{"shape":"Status"},
1903        "thumbnailUrl":{"shape":"ThumbnailUrl"},
1904        "branchName":{"shape":"BranchName"}
1905      }
1906    },
1907    "PullRequestEnvironmentName":{
1908      "type":"string",
1909      "max":20
1910    },
1911    "Repository":{
1912      "type":"string",
1913      "max":1000
1914    },
1915    "ResourceArn":{
1916      "type":"string",
1917      "pattern":"^arn:aws:amplify:.*"
1918    },
1919    "ResourceNotFoundException":{
1920      "type":"structure",
1921      "required":[
1922        "code",
1923        "message"
1924      ],
1925      "members":{
1926        "code":{"shape":"Code"},
1927        "message":{"shape":"ErrorMessage"}
1928      },
1929      "error":{"httpStatusCode":404},
1930      "exception":true
1931    },
1932    "Screenshots":{
1933      "type":"map",
1934      "key":{"shape":"ThumbnailName"},
1935      "value":{"shape":"ThumbnailUrl"}
1936    },
1937    "ServiceRoleArn":{
1938      "type":"string",
1939      "max":1000,
1940      "min":1
1941    },
1942    "Source":{
1943      "type":"string",
1944      "max":2048,
1945      "min":1
1946    },
1947    "SourceUrl":{
1948      "type":"string",
1949      "max":1000
1950    },
1951    "StackName":{
1952      "type":"string",
1953      "max":255,
1954      "min":1
1955    },
1956    "Stage":{
1957      "type":"string",
1958      "enum":[
1959        "PRODUCTION",
1960        "BETA",
1961        "DEVELOPMENT",
1962        "EXPERIMENTAL",
1963        "PULL_REQUEST"
1964      ]
1965    },
1966    "StartDeploymentRequest":{
1967      "type":"structure",
1968      "required":[
1969        "appId",
1970        "branchName"
1971      ],
1972      "members":{
1973        "appId":{
1974          "shape":"AppId",
1975          "location":"uri",
1976          "locationName":"appId"
1977        },
1978        "branchName":{
1979          "shape":"BranchName",
1980          "location":"uri",
1981          "locationName":"branchName"
1982        },
1983        "jobId":{"shape":"JobId"},
1984        "sourceUrl":{"shape":"SourceUrl"}
1985      }
1986    },
1987    "StartDeploymentResult":{
1988      "type":"structure",
1989      "required":["jobSummary"],
1990      "members":{
1991        "jobSummary":{"shape":"JobSummary"}
1992      }
1993    },
1994    "StartJobRequest":{
1995      "type":"structure",
1996      "required":[
1997        "appId",
1998        "branchName",
1999        "jobType"
2000      ],
2001      "members":{
2002        "appId":{
2003          "shape":"AppId",
2004          "location":"uri",
2005          "locationName":"appId"
2006        },
2007        "branchName":{
2008          "shape":"BranchName",
2009          "location":"uri",
2010          "locationName":"branchName"
2011        },
2012        "jobId":{"shape":"JobId"},
2013        "jobType":{"shape":"JobType"},
2014        "jobReason":{"shape":"JobReason"},
2015        "commitId":{"shape":"CommitId"},
2016        "commitMessage":{"shape":"CommitMessage"},
2017        "commitTime":{"shape":"CommitTime"}
2018      }
2019    },
2020    "StartJobResult":{
2021      "type":"structure",
2022      "required":["jobSummary"],
2023      "members":{
2024        "jobSummary":{"shape":"JobSummary"}
2025      }
2026    },
2027    "StartTime":{"type":"timestamp"},
2028    "Status":{
2029      "type":"string",
2030      "max":7,
2031      "min":3
2032    },
2033    "StatusReason":{
2034      "type":"string",
2035      "max":1000
2036    },
2037    "Step":{
2038      "type":"structure",
2039      "required":[
2040        "stepName",
2041        "startTime",
2042        "status",
2043        "endTime"
2044      ],
2045      "members":{
2046        "stepName":{"shape":"StepName"},
2047        "startTime":{"shape":"StartTime"},
2048        "status":{"shape":"JobStatus"},
2049        "endTime":{"shape":"EndTime"},
2050        "logUrl":{"shape":"LogUrl"},
2051        "artifactsUrl":{"shape":"ArtifactsUrl"},
2052        "testArtifactsUrl":{"shape":"TestArtifactsUrl"},
2053        "testConfigUrl":{"shape":"TestConfigUrl"},
2054        "screenshots":{"shape":"Screenshots"},
2055        "statusReason":{"shape":"StatusReason"},
2056        "context":{"shape":"Context"}
2057      }
2058    },
2059    "StepName":{
2060      "type":"string",
2061      "max":255
2062    },
2063    "Steps":{
2064      "type":"list",
2065      "member":{"shape":"Step"}
2066    },
2067    "StopJobRequest":{
2068      "type":"structure",
2069      "required":[
2070        "appId",
2071        "branchName",
2072        "jobId"
2073      ],
2074      "members":{
2075        "appId":{
2076          "shape":"AppId",
2077          "location":"uri",
2078          "locationName":"appId"
2079        },
2080        "branchName":{
2081          "shape":"BranchName",
2082          "location":"uri",
2083          "locationName":"branchName"
2084        },
2085        "jobId":{
2086          "shape":"JobId",
2087          "location":"uri",
2088          "locationName":"jobId"
2089        }
2090      }
2091    },
2092    "StopJobResult":{
2093      "type":"structure",
2094      "required":["jobSummary"],
2095      "members":{
2096        "jobSummary":{"shape":"JobSummary"}
2097      }
2098    },
2099    "SubDomain":{
2100      "type":"structure",
2101      "required":[
2102        "subDomainSetting",
2103        "verified",
2104        "dnsRecord"
2105      ],
2106      "members":{
2107        "subDomainSetting":{"shape":"SubDomainSetting"},
2108        "verified":{"shape":"Verified"},
2109        "dnsRecord":{"shape":"DNSRecord"}
2110      }
2111    },
2112    "SubDomainSetting":{
2113      "type":"structure",
2114      "required":[
2115        "prefix",
2116        "branchName"
2117      ],
2118      "members":{
2119        "prefix":{"shape":"DomainPrefix"},
2120        "branchName":{"shape":"BranchName"}
2121      }
2122    },
2123    "SubDomainSettings":{
2124      "type":"list",
2125      "member":{"shape":"SubDomainSetting"},
2126      "max":255
2127    },
2128    "SubDomains":{
2129      "type":"list",
2130      "member":{"shape":"SubDomain"},
2131      "max":255
2132    },
2133    "TTL":{"type":"string"},
2134    "TagKey":{
2135      "type":"string",
2136      "max":128,
2137      "min":1,
2138      "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$"
2139    },
2140    "TagKeyList":{
2141      "type":"list",
2142      "member":{"shape":"TagKey"},
2143      "max":50,
2144      "min":1
2145    },
2146    "TagMap":{
2147      "type":"map",
2148      "key":{"shape":"TagKey"},
2149      "value":{"shape":"TagValue"},
2150      "max":50,
2151      "min":1
2152    },
2153    "TagResourceRequest":{
2154      "type":"structure",
2155      "required":[
2156        "resourceArn",
2157        "tags"
2158      ],
2159      "members":{
2160        "resourceArn":{
2161          "shape":"ResourceArn",
2162          "location":"uri",
2163          "locationName":"resourceArn"
2164        },
2165        "tags":{"shape":"TagMap"}
2166      }
2167    },
2168    "TagResourceResponse":{
2169      "type":"structure",
2170      "members":{
2171      }
2172    },
2173    "TagValue":{
2174      "type":"string",
2175      "max":256
2176    },
2177    "Target":{
2178      "type":"string",
2179      "max":2048,
2180      "min":1
2181    },
2182    "TestArtifactsUrl":{
2183      "type":"string",
2184      "max":1000
2185    },
2186    "TestConfigUrl":{
2187      "type":"string",
2188      "max":1000
2189    },
2190    "ThumbnailName":{
2191      "type":"string",
2192      "max":256
2193    },
2194    "ThumbnailUrl":{
2195      "type":"string",
2196      "max":2000,
2197      "min":1
2198    },
2199    "TotalNumberOfJobs":{
2200      "type":"string",
2201      "max":1000
2202    },
2203    "UnauthorizedException":{
2204      "type":"structure",
2205      "members":{
2206        "message":{"shape":"ErrorMessage"}
2207      },
2208      "error":{"httpStatusCode":401},
2209      "exception":true
2210    },
2211    "UntagResourceRequest":{
2212      "type":"structure",
2213      "required":[
2214        "resourceArn",
2215        "tagKeys"
2216      ],
2217      "members":{
2218        "resourceArn":{
2219          "shape":"ResourceArn",
2220          "location":"uri",
2221          "locationName":"resourceArn"
2222        },
2223        "tagKeys":{
2224          "shape":"TagKeyList",
2225          "location":"querystring",
2226          "locationName":"tagKeys"
2227        }
2228      }
2229    },
2230    "UntagResourceResponse":{
2231      "type":"structure",
2232      "members":{
2233      }
2234    },
2235    "UpdateAppRequest":{
2236      "type":"structure",
2237      "required":["appId"],
2238      "members":{
2239        "appId":{
2240          "shape":"AppId",
2241          "location":"uri",
2242          "locationName":"appId"
2243        },
2244        "name":{"shape":"Name"},
2245        "description":{"shape":"Description"},
2246        "platform":{"shape":"Platform"},
2247        "iamServiceRoleArn":{"shape":"ServiceRoleArn"},
2248        "environmentVariables":{"shape":"EnvironmentVariables"},
2249        "enableBranchAutoBuild":{"shape":"EnableAutoBuild"},
2250        "enableBranchAutoDeletion":{"shape":"EnableBranchAutoDeletion"},
2251        "enableBasicAuth":{"shape":"EnableBasicAuth"},
2252        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
2253        "customRules":{"shape":"CustomRules"},
2254        "buildSpec":{"shape":"BuildSpec"},
2255        "enableAutoBranchCreation":{"shape":"EnableAutoBranchCreation"},
2256        "autoBranchCreationPatterns":{"shape":"AutoBranchCreationPatterns"},
2257        "autoBranchCreationConfig":{"shape":"AutoBranchCreationConfig"},
2258        "repository":{"shape":"Repository"},
2259        "oauthToken":{"shape":"OauthToken"},
2260        "accessToken":{"shape":"AccessToken"}
2261      }
2262    },
2263    "UpdateAppResult":{
2264      "type":"structure",
2265      "required":["app"],
2266      "members":{
2267        "app":{"shape":"App"}
2268      }
2269    },
2270    "UpdateBranchRequest":{
2271      "type":"structure",
2272      "required":[
2273        "appId",
2274        "branchName"
2275      ],
2276      "members":{
2277        "appId":{
2278          "shape":"AppId",
2279          "location":"uri",
2280          "locationName":"appId"
2281        },
2282        "branchName":{
2283          "shape":"BranchName",
2284          "location":"uri",
2285          "locationName":"branchName"
2286        },
2287        "description":{"shape":"Description"},
2288        "framework":{"shape":"Framework"},
2289        "stage":{"shape":"Stage"},
2290        "enableNotification":{"shape":"EnableNotification"},
2291        "enableAutoBuild":{"shape":"EnableAutoBuild"},
2292        "environmentVariables":{"shape":"EnvironmentVariables"},
2293        "basicAuthCredentials":{"shape":"BasicAuthCredentials"},
2294        "enableBasicAuth":{"shape":"EnableBasicAuth"},
2295        "buildSpec":{"shape":"BuildSpec"},
2296        "ttl":{"shape":"TTL"},
2297        "displayName":{"shape":"DisplayName"},
2298        "enablePullRequestPreview":{"shape":"EnablePullRequestPreview"},
2299        "pullRequestEnvironmentName":{"shape":"PullRequestEnvironmentName"},
2300        "backendEnvironmentArn":{"shape":"BackendEnvironmentArn"}
2301      }
2302    },
2303    "UpdateBranchResult":{
2304      "type":"structure",
2305      "required":["branch"],
2306      "members":{
2307        "branch":{"shape":"Branch"}
2308      }
2309    },
2310    "UpdateDomainAssociationRequest":{
2311      "type":"structure",
2312      "required":[
2313        "appId",
2314        "domainName",
2315        "subDomainSettings"
2316      ],
2317      "members":{
2318        "appId":{
2319          "shape":"AppId",
2320          "location":"uri",
2321          "locationName":"appId"
2322        },
2323        "domainName":{
2324          "shape":"DomainName",
2325          "location":"uri",
2326          "locationName":"domainName"
2327        },
2328        "enableAutoSubDomain":{"shape":"EnableAutoSubDomain"},
2329        "subDomainSettings":{"shape":"SubDomainSettings"},
2330        "autoSubDomainCreationPatterns":{"shape":"AutoSubDomainCreationPatterns"},
2331        "autoSubDomainIAMRole":{"shape":"AutoSubDomainIAMRole"}
2332      }
2333    },
2334    "UpdateDomainAssociationResult":{
2335      "type":"structure",
2336      "required":["domainAssociation"],
2337      "members":{
2338        "domainAssociation":{"shape":"DomainAssociation"}
2339      }
2340    },
2341    "UpdateTime":{"type":"timestamp"},
2342    "UpdateWebhookRequest":{
2343      "type":"structure",
2344      "required":["webhookId"],
2345      "members":{
2346        "webhookId":{
2347          "shape":"WebhookId",
2348          "location":"uri",
2349          "locationName":"webhookId"
2350        },
2351        "branchName":{"shape":"BranchName"},
2352        "description":{"shape":"Description"}
2353      }
2354    },
2355    "UpdateWebhookResult":{
2356      "type":"structure",
2357      "required":["webhook"],
2358      "members":{
2359        "webhook":{"shape":"Webhook"}
2360      }
2361    },
2362    "UploadUrl":{
2363      "type":"string",
2364      "max":1000
2365    },
2366    "Verified":{"type":"boolean"},
2367    "Webhook":{
2368      "type":"structure",
2369      "required":[
2370        "webhookArn",
2371        "webhookId",
2372        "webhookUrl",
2373        "branchName",
2374        "description",
2375        "createTime",
2376        "updateTime"
2377      ],
2378      "members":{
2379        "webhookArn":{"shape":"WebhookArn"},
2380        "webhookId":{"shape":"WebhookId"},
2381        "webhookUrl":{"shape":"WebhookUrl"},
2382        "branchName":{"shape":"BranchName"},
2383        "description":{"shape":"Description"},
2384        "createTime":{"shape":"CreateTime"},
2385        "updateTime":{"shape":"UpdateTime"}
2386      }
2387    },
2388    "WebhookArn":{
2389      "type":"string",
2390      "max":1000
2391    },
2392    "WebhookId":{
2393      "type":"string",
2394      "max":255
2395    },
2396    "WebhookUrl":{
2397      "type":"string",
2398      "max":1000
2399    },
2400    "Webhooks":{
2401      "type":"list",
2402      "member":{"shape":"Webhook"}
2403    }
2404  }
2405}
2406