@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWSServerlessApplicationRepository
@version 2017-09-08
@auth AWS SigV4
@endpoints 14
@toc applications(14)

@endpoint POST /applications
@desc Creates an application, optionally including an AWS SAM file to create the first application version in the same call.
@required {Author: str, Description: str, Name: str}
@optional {HomePageUrl: str, Labels: [str], LicenseBody: str, LicenseUrl: str, ReadmeBody: str, ReadmeUrl: str, SemanticVersion: str, SourceCodeArchiveUrl: str, SourceCodeUrl: str, SpdxLicenseId: str, TemplateBody: str, TemplateUrl: str}
@returns(200) {ApplicationId: str?, Author: str?, CreationTime: str?, Description: str?, HomePageUrl: str?, IsVerifiedAuthor: bool?, Labels: [str]?, LicenseUrl: str?, Name: str?, ReadmeUrl: str?, SpdxLicenseId: str?, VerifiedAuthorUrl: str?, Version: Version?{ApplicationId: str, CreationTime: str, ParameterDefinitions: [ParameterDefinition], RequiredCapabilities: [str], ResourcesSupported: bool, SemanticVersion: str, SourceCodeArchiveUrl: str?, SourceCodeUrl: str?, TemplateUrl: str}}

@endpoint PUT /applications/{applicationId}/versions/{semanticVersion}
@desc Creates an application version.
@required {ApplicationId: str, SemanticVersion: str}
@optional {SourceCodeArchiveUrl: str, SourceCodeUrl: str, TemplateBody: str, TemplateUrl: str}
@returns(200) {ApplicationId: str?, CreationTime: str?, ParameterDefinitions: [ParameterDefinition]?, RequiredCapabilities: [str]?, ResourcesSupported: bool?, SemanticVersion: str?, SourceCodeArchiveUrl: str?, SourceCodeUrl: str?, TemplateUrl: str?}

@endpoint POST /applications/{applicationId}/changesets
@desc Creates an AWS CloudFormation change set for the given application.
@required {ApplicationId: str, StackName: str}
@optional {Capabilities: [str], ChangeSetName: str, ClientToken: str, Description: str, NotificationArns: [str], ParameterOverrides: [ParameterValue], ResourceTypes: [str], RollbackConfiguration: RollbackConfiguration, SemanticVersion: str, Tags: [Tag], TemplateId: str}
@returns(200) {ApplicationId: str?, ChangeSetId: str?, SemanticVersion: str?, StackId: str?}

@endpoint POST /applications/{applicationId}/templates
@desc Creates an AWS CloudFormation template.
@required {ApplicationId: str}
@optional {SemanticVersion: str}
@returns(200) {ApplicationId: str?, CreationTime: str?, ExpirationTime: str?, SemanticVersion: str?, Status: str?, TemplateId: str?, TemplateUrl: str?}

@endpoint DELETE /applications/{applicationId}
@desc Deletes the specified application.
@required {ApplicationId: str}

@endpoint GET /applications/{applicationId}
@desc Gets the specified application.
@required {ApplicationId: str}
@optional {semanticVersion: str}
@returns(200) {ApplicationId: str?, Author: str?, CreationTime: str?, Description: str?, HomePageUrl: str?, IsVerifiedAuthor: bool?, Labels: [str]?, LicenseUrl: str?, Name: str?, ReadmeUrl: str?, SpdxLicenseId: str?, VerifiedAuthorUrl: str?, Version: Version?{ApplicationId: str, CreationTime: str, ParameterDefinitions: [ParameterDefinition], RequiredCapabilities: [str], ResourcesSupported: bool, SemanticVersion: str, SourceCodeArchiveUrl: str?, SourceCodeUrl: str?, TemplateUrl: str}}

@endpoint GET /applications/{applicationId}/policy
@desc Retrieves the policy for the application.
@required {ApplicationId: str}
@returns(200) {Statements: [ApplicationPolicyStatement]?}

@endpoint GET /applications/{applicationId}/templates/{templateId}
@desc Gets the specified AWS CloudFormation template.
@required {ApplicationId: str, TemplateId: str}
@returns(200) {ApplicationId: str?, CreationTime: str?, ExpirationTime: str?, SemanticVersion: str?, Status: str?, TemplateId: str?, TemplateUrl: str?}

@endpoint GET /applications/{applicationId}/dependencies
@desc Retrieves the list of applications nested in the containing application.
@required {ApplicationId: str}
@optional {maxItems: int, nextToken: str, semanticVersion: str}
@returns(200) {Dependencies: [ApplicationDependencySummary]?, NextToken: str?}

@endpoint GET /applications/{applicationId}/versions
@desc Lists versions for the specified application.
@required {ApplicationId: str}
@optional {maxItems: int, nextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionSummary]?}

@endpoint GET /applications
@desc Lists applications owned by the requester.
@optional {maxItems: int, nextToken: str}
@returns(200) {Applications: [ApplicationSummary]?, NextToken: str?}

@endpoint PUT /applications/{applicationId}/policy
@desc Sets the permission policy for an application. For the list of actions supported for this operation, see
 Application 
 Permissions
 .
@required {ApplicationId: str, Statements: [ApplicationPolicyStatement]}
@returns(200) {Statements: [ApplicationPolicyStatement]?}

@endpoint POST /applications/{applicationId}/unshare
@desc Unshares an application from an AWS Organization.This operation can be called only from the organization's master account.
@required {ApplicationId: str, OrganizationId: str}

@endpoint PATCH /applications/{applicationId}
@desc Updates the specified application.
@required {ApplicationId: str}
@optional {Author: str, Description: str, HomePageUrl: str, Labels: [str], ReadmeBody: str, ReadmeUrl: str}
@returns(200) {ApplicationId: str?, Author: str?, CreationTime: str?, Description: str?, HomePageUrl: str?, IsVerifiedAuthor: bool?, Labels: [str]?, LicenseUrl: str?, Name: str?, ReadmeUrl: str?, SpdxLicenseId: str?, VerifiedAuthorUrl: str?, Version: Version?{ApplicationId: str, CreationTime: str, ParameterDefinitions: [ParameterDefinition], RequiredCapabilities: [str], ResourcesSupported: bool, SemanticVersion: str, SourceCodeArchiveUrl: str?, SourceCodeUrl: str?, TemplateUrl: str}}

@end
