@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Service Catalog App Registry
@version 2020-06-24
@auth AWS SigV4
@endpoints 24
@hint download_for_search
@toc applications(13), attribute-groups(5), configuration(2), tags(3), sync(1)

@group applications
@endpoint PUT /applications/{application}/attribute-groups/{attributeGroup}
@required {application: str, attributeGroup: str}
@returns(200) {applicationArn: str?, attributeGroupArn: str?}

@endpoint PUT /applications/{application}/resources/{resourceType}/{resource}
@required {application: str, resourceType: str, resource: str}
@optional {options: [str]}
@returns(200) {applicationArn: str?, resourceArn: str?, options: [str]?}

@endpoint POST /applications
@required {name: str, clientToken: str}
@optional {description: str, tags: map<str,str>}
@returns(200) {application: Application?{id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, tags: map<str,str>?, applicationTag: map<str,str>?}}

@endgroup

@group attribute-groups
@endpoint POST /attribute-groups
@required {name: str, attributes: str, clientToken: str}
@optional {description: str, tags: map<str,str>}
@returns(200) {attributeGroup: AttributeGroup?{id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, tags: map<str,str>?}}

@endgroup

@group applications
@endpoint DELETE /applications/{application}
@required {application: str}
@returns(200) {application: ApplicationSummary?{id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?}}

@endgroup

@group attribute-groups
@endpoint DELETE /attribute-groups/{attributeGroup}
@required {attributeGroup: str}
@returns(200) {attributeGroup: AttributeGroupSummary?{id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, createdBy: str?}}

@endgroup

@group applications
@endpoint DELETE /applications/{application}/attribute-groups/{attributeGroup}
@required {application: str, attributeGroup: str}
@returns(200) {applicationArn: str?, attributeGroupArn: str?}

@endpoint DELETE /applications/{application}/resources/{resourceType}/{resource}
@required {application: str, resourceType: str, resource: str}
@returns(200) {applicationArn: str?, resourceArn: str?}

@endpoint GET /applications/{application}
@required {application: str}
@returns(200) {id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, associatedResourceCount: int?, tags: map<str,str>?, integrations: Integrations?{resourceGroup: ResourceGroup?{state: str?, arn: str?, errorMessage: str?}, applicationTagResourceGroup: ResourceGroup?{state: str?, arn: str?, errorMessage: str?}}, applicationTag: map<str,str>?}

@endpoint GET /applications/{application}/resources/{resourceType}/{resource}
@required {application: str, resourceType: str, resource: str}
@optional {nextToken: str, resourceTagStatus: [str], maxResults: int}
@returns(200) {resource: Resource?{name: str?, arn: str?, associationTime: str(timestamp)?, integrations: ResourceIntegrations?{resourceGroup: ResourceGroup?{state: str?, arn: str?, errorMessage: str?}}}, options: [str]?, applicationTagResult: ApplicationTagResult?{applicationTagStatus: str?, errorMessage: str?, resources: [ResourcesListItem]?, nextToken: str?}}

@endgroup

@group attribute-groups
@endpoint GET /attribute-groups/{attributeGroup}
@required {attributeGroup: str}
@returns(200) {id: str?, arn: str?, name: str?, description: str?, attributes: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, tags: map<str,str>?, createdBy: str?}

@endgroup

@group configuration
@endpoint GET /configuration
@returns(200) {configuration: AppRegistryConfiguration?{tagQueryConfiguration: TagQueryConfiguration?{tagKey: str?}}}

@endgroup

@group applications
@endpoint GET /applications
@optional {nextToken: str, maxResults: int}
@returns(200) {applications: [ApplicationSummary]?, nextToken: str?}

@endpoint GET /applications/{application}/attribute-groups
@required {application: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {attributeGroups: [str]?, nextToken: str?}

@endpoint GET /applications/{application}/resources
@required {application: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {resources: [ResourceInfo]?, nextToken: str?}

@endgroup

@group attribute-groups
@endpoint GET /attribute-groups
@optional {nextToken: str, maxResults: int}
@returns(200) {attributeGroups: [AttributeGroupSummary]?, nextToken: str?}

@endgroup

@group applications
@endpoint GET /applications/{application}/attribute-group-details
@required {application: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {attributeGroupsDetails: [AttributeGroupDetails]?, nextToken: str?}

@endgroup

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

@endgroup

@group configuration
@endpoint PUT /configuration
@required {configuration: AppRegistryConfiguration}

@endgroup

@group sync
@endpoint POST /sync/{resourceType}/{resource}
@required {resourceType: str, resource: str}
@returns(200) {applicationArn: str?, resourceArn: str?, actionTaken: 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 applications
@endpoint PATCH /applications/{application}
@required {application: str}
@optional {name: str, description: str}
@returns(200) {application: Application?{id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, tags: map<str,str>?, applicationTag: map<str,str>?}}

@endgroup

@group attribute-groups
@endpoint PATCH /attribute-groups/{attributeGroup}
@required {attributeGroup: str}
@optional {name: str, description: str, attributes: str}
@returns(200) {attributeGroup: AttributeGroup?{id: str?, arn: str?, name: str?, description: str?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, tags: map<str,str>?}}

@endgroup

@end
