@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
@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
@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
@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
@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
@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
@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}
@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}
@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}
@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}
@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}
@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}
@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
@required {appId: str, domainName: str}
@optional {startTime: str(timestamp), endTime: str(timestamp)}
@returns(200) {logUrl: str?}

@endpoint GET /apps/{appId}
@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}
@required {artifactId: str}
@returns(200) {artifactId: str, artifactUrl: str}

@endgroup

@group apps
@endpoint GET /apps/{appId}/backendenvironments/{environmentName}
@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}
@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}
@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}
@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}
@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
@optional {nextToken: str, maxResults: int}
@returns(200) {apps: [App], nextToken: str?}

@endpoint GET /apps/{appId}/branches/{branchName}/jobs/{jobId}/artifacts
@required {appId: str, branchName: str, jobId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {artifacts: [Artifact], nextToken: str?}

@endpoint GET /apps/{appId}/backendenvironments
@required {appId: str}
@optional {environmentName: str, nextToken: str, maxResults: int}
@returns(200) {backendEnvironments: [BackendEnvironment], nextToken: str?}

@endpoint GET /apps/{appId}/branches
@required {appId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {branches: [Branch], nextToken: str?}

@endpoint GET /apps/{appId}/domains
@required {appId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {domainAssociations: [DomainAssociation], nextToken: str?}

@endpoint GET /apps/{appId}/branches/{branchName}/jobs
@required {appId: str, branchName: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {jobSummaries: [JobSummary], nextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group apps
@endpoint GET /apps/{appId}/webhooks
@required {appId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {webhooks: [Webhook], nextToken: str?}

@endpoint POST /apps/{appId}/branches/{branchName}/deployments/start
@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
@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
@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}
@required {resourceArn: str, tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group apps
@endpoint POST /apps/{appId}
@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}
@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}
@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}
@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
