@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Amplify
@version 2017-07-25
@auth AWS SigV4
@endpoints 37
@hint download_for_search
@toc apps(30), webhooks(3), artifacts(1), tags(3)

@group apps
@endpoint POST /apps
@desc Creates a new Amplify app.
@required {name: str}
@optional {description: str, repository: str, platform: str, iamServiceRoleArn: str, oauthToken: str, accessToken: str, environmentVariables: map<str,str>, enableBranchAutoBuild: bool, enableBranchAutoDeletion: bool, enableBasicAuth: bool, basicAuthCredentials: str, customRules: [CustomRule], tags: map<str,str>, buildSpec: str, customHeaders: str, enableAutoBranchCreation: bool, autoBranchCreationPatterns: [str], autoBranchCreationConfig: AutoBranchCreationConfig, cacheConfig: CacheConfig}
@returns(200) {app: App{appId: str, appArn: str, name: str, tags: map<str,str>?, description: str, repository: str, platform: str, createTime: str(timestamp), updateTime: str(timestamp), iamServiceRoleArn: str?, environmentVariables: map<str,str>, defaultDomain: str, enableBranchAutoBuild: bool, enableBranchAutoDeletion: bool?, enableBasicAuth: bool, basicAuthCredentials: str?, customRules: [CustomRule]?, productionBranch: ProductionBranch?{lastDeployTime: str(timestamp)?, status: str?, thumbnailUrl: str?, branchName: str?}, buildSpec: str?, customHeaders: str?, enableAutoBranchCreation: bool?, autoBranchCreationPatterns: [str]?, autoBranchCreationConfig: AutoBranchCreationConfig?{stage: str?, framework: str?, enableAutoBuild: bool?, environmentVariables: map<str,str>?, basicAuthCredentials: str?, enableBasicAuth: bool?, enablePerformanceMode: bool?, buildSpec: str?, enablePullRequestPreview: bool?, pullRequestEnvironmentName: str?}, repositoryCloneMethod: str?, cacheConfig: CacheConfig?{type: str}}}

@endpoint POST /apps/{appId}/backendenvironments
@desc Creates a new backend environment for an Amplify app.  This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.
@required {appId: str, environmentName: str}
@optional {stackName: str, deploymentArtifacts: str}
@returns(200) {backendEnvironment: BackendEnvironment{backendEnvironmentArn: str, environmentName: str, stackName: str?, deploymentArtifacts: str?, createTime: str(timestamp), updateTime: str(timestamp)}}

@endpoint POST /apps/{appId}/branches
@desc Creates a new branch for an Amplify app.
@required {appId: str, branchName: str}
@optional {description: str, stage: str, framework: str, enableNotification: bool, enableAutoBuild: bool, environmentVariables: map<str,str>, basicAuthCredentials: str, enableBasicAuth: bool, enablePerformanceMode: bool, tags: map<str,str>, buildSpec: str, ttl: str, displayName: str, enablePullRequestPreview: bool, pullRequestEnvironmentName: str, backendEnvironmentArn: str, backend: Backend}
@returns(200) {branch: Branch{branchArn: str, branchName: str, description: str, tags: map<str,str>?, stage: str, displayName: str, enableNotification: bool, createTime: str(timestamp), updateTime: str(timestamp), environmentVariables: map<str,str>, enableAutoBuild: bool, customDomains: [str], framework: str, activeJobId: str, totalNumberOfJobs: str, enableBasicAuth: bool, enablePerformanceMode: bool?, thumbnailUrl: str?, basicAuthCredentials: str?, buildSpec: str?, ttl: str, associatedResources: [str]?, enablePullRequestPreview: bool, pullRequestEnvironmentName: str?, destinationBranch: str?, sourceBranch: str?, backendEnvironmentArn: str?, backend: Backend?{stackArn: str?}}}

@endpoint POST /apps/{appId}/branches/{branchName}/deployments
@desc Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a repository.  The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail.
@required {appId: str, branchName: str}
@optional {fileMap: map<str,str>}
@returns(200) {jobId: str?, fileUploadUrls: map<str,str>, zipUploadUrl: str}

@endpoint POST /apps/{appId}/domains
@desc Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app
@required {appId: str, domainName: str, subDomainSettings: [SubDomainSetting]}
@optional {enableAutoSubDomain: bool, autoSubDomainCreationPatterns: [str], autoSubDomainIAMRole: str, certificateSettings: CertificateSettings}
@returns(200) {domainAssociation: DomainAssociation{domainAssociationArn: str, domainName: str, enableAutoSubDomain: bool, autoSubDomainCreationPatterns: [str]?, autoSubDomainIAMRole: str?, domainStatus: str, updateStatus: str?, statusReason: str, certificateVerificationDNSRecord: str?, subDomains: [SubDomain], certificate: Certificate?{type: str, customCertificateArn: str?, certificateVerificationDNSRecord: str?}}}

@endpoint POST /apps/{appId}/webhooks
@desc Creates a new webhook on an Amplify app.
@required {appId: str, branchName: str}
@optional {description: str}
@returns(200) {webhook: Webhook{webhookArn: str, webhookId: str, webhookUrl: str, branchName: str, description: str, createTime: str(timestamp), updateTime: str(timestamp)}}

@endpoint DELETE /apps/{appId}
@desc Deletes an existing Amplify app specified by an app ID.
@required {appId: str}
@returns(200) {app: App{appId: str, appArn: str, name: str, tags: map<str,str>?, description: str, repository: str, platform: str, createTime: str(timestamp), updateTime: str(timestamp), iamServiceRoleArn: str?, environmentVariables: map<str,str>, defaultDomain: str, enableBranchAutoBuild: bool, enableBranchAutoDeletion: bool?, enableBasicAuth: bool, basicAuthCredentials: str?, customRules: [CustomRule]?, productionBranch: ProductionBranch?{lastDeployTime: str(timestamp)?, status: str?, thumbnailUrl: str?, branchName: str?}, buildSpec: str?, customHeaders: str?, enableAutoBranchCreation: bool?, autoBranchCreationPatterns: [str]?, autoBranchCreationConfig: AutoBranchCreationConfig?{stage: str?, framework: str?, enableAutoBuild: bool?, environmentVariables: map<str,str>?, basicAuthCredentials: str?, enableBasicAuth: bool?, enablePerformanceMode: bool?, buildSpec: str?, enablePullRequestPreview: bool?, pullRequestEnvironmentName: str?}, repositoryCloneMethod: str?, cacheConfig: CacheConfig?{type: str}}}

@endpoint DELETE /apps/{appId}/backendenvironments/{environmentName}
@desc Deletes a backend environment for an Amplify app.  This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.
@required {appId: str, environmentName: str}
@returns(200) {backendEnvironment: BackendEnvironment{backendEnvironmentArn: str, environmentName: str, stackName: str?, deploymentArtifacts: str?, createTime: str(timestamp), updateTime: str(timestamp)}}

@endpoint DELETE /apps/{appId}/branches/{branchName}
@desc Deletes a branch for an Amplify app.
@required {appId: str, branchName: str}
@returns(200) {branch: Branch{branchArn: str, branchName: str, description: str, tags: map<str,str>?, stage: str, displayName: str, enableNotification: bool, createTime: str(timestamp), updateTime: str(timestamp), environmentVariables: map<str,str>, enableAutoBuild: bool, customDomains: [str], framework: str, activeJobId: str, totalNumberOfJobs: str, enableBasicAuth: bool, enablePerformanceMode: bool?, thumbnailUrl: str?, basicAuthCredentials: str?, buildSpec: str?, ttl: str, associatedResources: [str]?, enablePullRequestPreview: bool, pullRequestEnvironmentName: str?, destinationBranch: str?, sourceBranch: str?, backendEnvironmentArn: str?, backend: Backend?{stackArn: str?}}}

@endpoint DELETE /apps/{appId}/domains/{domainName}
@desc Deletes a domain association for an Amplify app.
@required {appId: str, domainName: str}
@returns(200) {domainAssociation: DomainAssociation{domainAssociationArn: str, domainName: str, enableAutoSubDomain: bool, autoSubDomainCreationPatterns: [str]?, autoSubDomainIAMRole: str?, domainStatus: str, updateStatus: str?, statusReason: str, certificateVerificationDNSRecord: str?, subDomains: [SubDomain], certificate: Certificate?{type: str, customCertificateArn: str?, certificateVerificationDNSRecord: str?}}}

@endpoint DELETE /apps/{appId}/branches/{branchName}/jobs/{jobId}
@desc Deletes a job for a branch of an Amplify app.
@required {appId: str, branchName: str, jobId: str}
@returns(200) {jobSummary: JobSummary{jobArn: str, jobId: str, commitId: str, commitMessage: str, commitTime: str(timestamp), startTime: str(timestamp), status: str, endTime: str(timestamp)?, jobType: str}}

@endgroup

@group webhooks
@endpoint DELETE /webhooks/{webhookId}
@desc Deletes a webhook.
@required {webhookId: str}
@returns(200) {webhook: Webhook{webhookArn: str, webhookId: str, webhookUrl: str, branchName: str, description: str, createTime: str(timestamp), updateTime: str(timestamp)}}

@endgroup

@group apps
@endpoint POST /apps/{appId}/accesslogs
@desc Returns the website access logs for a specific time range using a presigned URL.
@required {appId: str, domainName: str}
@optional {startTime: str(timestamp), endTime: str(timestamp)}
@returns(200) {logUrl: str?}

@endpoint GET /apps/{appId}
@desc Returns an existing Amplify app specified by an app ID.
@required {appId: str}
@returns(200) {app: App{appId: str, appArn: str, name: str, tags: map<str,str>?, description: str, repository: str, platform: str, createTime: str(timestamp), updateTime: str(timestamp), iamServiceRoleArn: str?, environmentVariables: map<str,str>, defaultDomain: str, enableBranchAutoBuild: bool, enableBranchAutoDeletion: bool?, enableBasicAuth: bool, basicAuthCredentials: str?, customRules: [CustomRule]?, productionBranch: ProductionBranch?{lastDeployTime: str(timestamp)?, status: str?, thumbnailUrl: str?, branchName: str?}, buildSpec: str?, customHeaders: str?, enableAutoBranchCreation: bool?, autoBranchCreationPatterns: [str]?, autoBranchCreationConfig: AutoBranchCreationConfig?{stage: str?, framework: str?, enableAutoBuild: bool?, environmentVariables: map<str,str>?, basicAuthCredentials: str?, enableBasicAuth: bool?, enablePerformanceMode: bool?, buildSpec: str?, enablePullRequestPreview: bool?, pullRequestEnvironmentName: str?}, repositoryCloneMethod: str?, cacheConfig: CacheConfig?{type: str}}}

@endgroup

@group artifacts
@endpoint GET /artifacts/{artifactId}
@desc Returns the artifact info that corresponds to an artifact id.
@required {artifactId: str}
@returns(200) {artifactId: str, artifactUrl: str}

@endgroup

@group apps
@endpoint GET /apps/{appId}/backendenvironments/{environmentName}
@desc Returns a backend environment for an Amplify app.  This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.
@required {appId: str, environmentName: str}
@returns(200) {backendEnvironment: BackendEnvironment{backendEnvironmentArn: str, environmentName: str, stackName: str?, deploymentArtifacts: str?, createTime: str(timestamp), updateTime: str(timestamp)}}

@endpoint GET /apps/{appId}/branches/{branchName}
@desc Returns a branch for an Amplify app.
@required {appId: str, branchName: str}
@returns(200) {branch: Branch{branchArn: str, branchName: str, description: str, tags: map<str,str>?, stage: str, displayName: str, enableNotification: bool, createTime: str(timestamp), updateTime: str(timestamp), environmentVariables: map<str,str>, enableAutoBuild: bool, customDomains: [str], framework: str, activeJobId: str, totalNumberOfJobs: str, enableBasicAuth: bool, enablePerformanceMode: bool?, thumbnailUrl: str?, basicAuthCredentials: str?, buildSpec: str?, ttl: str, associatedResources: [str]?, enablePullRequestPreview: bool, pullRequestEnvironmentName: str?, destinationBranch: str?, sourceBranch: str?, backendEnvironmentArn: str?, backend: Backend?{stackArn: str?}}}

@endpoint GET /apps/{appId}/domains/{domainName}
@desc Returns the domain information for an Amplify app.
@required {appId: str, domainName: str}
@returns(200) {domainAssociation: DomainAssociation{domainAssociationArn: str, domainName: str, enableAutoSubDomain: bool, autoSubDomainCreationPatterns: [str]?, autoSubDomainIAMRole: str?, domainStatus: str, updateStatus: str?, statusReason: str, certificateVerificationDNSRecord: str?, subDomains: [SubDomain], certificate: Certificate?{type: str, customCertificateArn: str?, certificateVerificationDNSRecord: str?}}}

@endpoint GET /apps/{appId}/branches/{branchName}/jobs/{jobId}
@desc Returns a job for a branch of an Amplify app.
@required {appId: str, branchName: str, jobId: str}
@returns(200) {job: Job{summary: JobSummary{jobArn: str, jobId: str, commitId: str, commitMessage: str, commitTime: str(timestamp), startTime: str(timestamp), status: str, endTime: str(timestamp)?, jobType: str}, steps: [Step]}}

@endgroup

@group webhooks
@endpoint GET /webhooks/{webhookId}
@desc Returns the webhook information that corresponds to a specified webhook ID.
@required {webhookId: str}
@returns(200) {webhook: Webhook{webhookArn: str, webhookId: str, webhookUrl: str, branchName: str, description: str, createTime: str(timestamp), updateTime: str(timestamp)}}

@endgroup

@group apps
@endpoint GET /apps
@desc Returns a list of the existing Amplify apps.
@optional {nextToken: str, maxResults: int}
@returns(200) {apps: [App], nextToken: str?}

@endpoint GET /apps/{appId}/branches/{branchName}/jobs/{jobId}/artifacts
@desc Returns a list of artifacts for a specified app, branch, and job.
@required {appId: str, branchName: str, jobId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {artifacts: [Artifact], nextToken: str?}

@endpoint GET /apps/{appId}/backendenvironments
@desc Lists the backend environments for an Amplify app.  This API is available only to Amplify Gen 1 applications where the backend is created using Amplify Studio or the Amplify command line interface (CLI). This API isn’t available to Amplify Gen 2 applications. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.
@required {appId: str}
@optional {environmentName: str, nextToken: str, maxResults: int}
@returns(200) {backendEnvironments: [BackendEnvironment], nextToken: str?}

@endpoint GET /apps/{appId}/branches
@desc Lists the branches of an Amplify app.
@required {appId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {branches: [Branch], nextToken: str?}

@endpoint GET /apps/{appId}/domains
@desc Returns the domain associations for an Amplify app.
@required {appId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {domainAssociations: [DomainAssociation], nextToken: str?}

@endpoint GET /apps/{appId}/branches/{branchName}/jobs
@desc Lists the jobs for a branch of an Amplify app.
@required {appId: str, branchName: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {jobSummaries: [JobSummary], nextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@desc Returns a list of tags for a specified Amazon Resource Name (ARN).
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group apps
@endpoint GET /apps/{appId}/webhooks
@desc Returns a list of webhooks for an Amplify app.
@required {appId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {webhooks: [Webhook], nextToken: str?}

@endpoint POST /apps/{appId}/branches/{branchName}/deployments/start
@desc Starts a deployment for a manually deployed app. Manually deployed apps are not connected to a repository.  The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail.
@required {appId: str, branchName: str}
@optional {jobId: str, sourceUrl: str}
@returns(200) {jobSummary: JobSummary{jobArn: str, jobId: str, commitId: str, commitMessage: str, commitTime: str(timestamp), startTime: str(timestamp), status: str, endTime: str(timestamp)?, jobType: str}}

@endpoint POST /apps/{appId}/branches/{branchName}/jobs
@desc Starts a new job for a branch of an Amplify app.
@required {appId: str, branchName: str, jobType: str}
@optional {jobId: str, jobReason: str, commitId: str, commitMessage: str, commitTime: str(timestamp)}
@returns(200) {jobSummary: JobSummary{jobArn: str, jobId: str, commitId: str, commitMessage: str, commitTime: str(timestamp), startTime: str(timestamp), status: str, endTime: str(timestamp)?, jobType: str}}

@endpoint DELETE /apps/{appId}/branches/{branchName}/jobs/{jobId}/stop
@desc Stops a job that is in progress for a branch of an Amplify app.
@required {appId: str, branchName: str, jobId: str}
@returns(200) {jobSummary: JobSummary{jobArn: str, jobId: str, commitId: str, commitMessage: str, commitTime: str(timestamp), startTime: str(timestamp), status: str, endTime: str(timestamp)?, jobType: str}}

@endgroup

@group tags
@endpoint POST /tags/{resourceArn}
@desc Tags the resource with a tag key and value.
@required {resourceArn: str, tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@desc Untags a resource with a specified Amazon Resource Name (ARN).
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group apps
@endpoint POST /apps/{appId}
@desc Updates an existing Amplify app.
@required {appId: str}
@optional {name: str, description: str, platform: str, iamServiceRoleArn: str, environmentVariables: map<str,str>, enableBranchAutoBuild: bool, enableBranchAutoDeletion: bool, enableBasicAuth: bool, basicAuthCredentials: str, customRules: [CustomRule], buildSpec: str, customHeaders: str, enableAutoBranchCreation: bool, autoBranchCreationPatterns: [str], autoBranchCreationConfig: AutoBranchCreationConfig, repository: str, oauthToken: str, accessToken: str, cacheConfig: CacheConfig}
@returns(200) {app: App{appId: str, appArn: str, name: str, tags: map<str,str>?, description: str, repository: str, platform: str, createTime: str(timestamp), updateTime: str(timestamp), iamServiceRoleArn: str?, environmentVariables: map<str,str>, defaultDomain: str, enableBranchAutoBuild: bool, enableBranchAutoDeletion: bool?, enableBasicAuth: bool, basicAuthCredentials: str?, customRules: [CustomRule]?, productionBranch: ProductionBranch?{lastDeployTime: str(timestamp)?, status: str?, thumbnailUrl: str?, branchName: str?}, buildSpec: str?, customHeaders: str?, enableAutoBranchCreation: bool?, autoBranchCreationPatterns: [str]?, autoBranchCreationConfig: AutoBranchCreationConfig?{stage: str?, framework: str?, enableAutoBuild: bool?, environmentVariables: map<str,str>?, basicAuthCredentials: str?, enableBasicAuth: bool?, enablePerformanceMode: bool?, buildSpec: str?, enablePullRequestPreview: bool?, pullRequestEnvironmentName: str?}, repositoryCloneMethod: str?, cacheConfig: CacheConfig?{type: str}}}

@endpoint POST /apps/{appId}/branches/{branchName}
@desc Updates a branch for an Amplify app.
@required {appId: str, branchName: str}
@optional {description: str, framework: str, stage: str, enableNotification: bool, enableAutoBuild: bool, environmentVariables: map<str,str>, basicAuthCredentials: str, enableBasicAuth: bool, enablePerformanceMode: bool, buildSpec: str, ttl: str, displayName: str, enablePullRequestPreview: bool, pullRequestEnvironmentName: str, backendEnvironmentArn: str, backend: Backend}
@returns(200) {branch: Branch{branchArn: str, branchName: str, description: str, tags: map<str,str>?, stage: str, displayName: str, enableNotification: bool, createTime: str(timestamp), updateTime: str(timestamp), environmentVariables: map<str,str>, enableAutoBuild: bool, customDomains: [str], framework: str, activeJobId: str, totalNumberOfJobs: str, enableBasicAuth: bool, enablePerformanceMode: bool?, thumbnailUrl: str?, basicAuthCredentials: str?, buildSpec: str?, ttl: str, associatedResources: [str]?, enablePullRequestPreview: bool, pullRequestEnvironmentName: str?, destinationBranch: str?, sourceBranch: str?, backendEnvironmentArn: str?, backend: Backend?{stackArn: str?}}}

@endpoint POST /apps/{appId}/domains/{domainName}
@desc Creates a new domain association for an Amplify app.
@required {appId: str, domainName: str}
@optional {enableAutoSubDomain: bool, subDomainSettings: [SubDomainSetting], autoSubDomainCreationPatterns: [str], autoSubDomainIAMRole: str, certificateSettings: CertificateSettings}
@returns(200) {domainAssociation: DomainAssociation{domainAssociationArn: str, domainName: str, enableAutoSubDomain: bool, autoSubDomainCreationPatterns: [str]?, autoSubDomainIAMRole: str?, domainStatus: str, updateStatus: str?, statusReason: str, certificateVerificationDNSRecord: str?, subDomains: [SubDomain], certificate: Certificate?{type: str, customCertificateArn: str?, certificateVerificationDNSRecord: str?}}}

@endgroup

@group webhooks
@endpoint POST /webhooks/{webhookId}
@desc Updates a webhook.
@required {webhookId: str}
@optional {branchName: str, description: str}
@returns(200) {webhook: Webhook{webhookArn: str, webhookId: str, webhookUrl: str, branchName: str, description: str, createTime: str(timestamp), updateTime: str(timestamp)}}

@endgroup

@end
