@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon AppIntegrations Service
@version 2020-07-29
@auth AWS SigV4
@endpoints 23
@hint download_for_search
@toc applications(6), dataIntegrations(8), eventIntegrations(6), tags(3)

@group applications
@endpoint POST /applications
@desc Creates and persists an Application resource.
@required {Name: str, Namespace: str, ApplicationSourceConfig: ApplicationSourceConfig}
@optional {Description: str, Subscriptions: [Subscription], Publications: [Publication], ClientToken: str, Tags: map<str,str>, Permissions: [str]}
@returns(200) {Arn: str?, Id: str?}

@endgroup

@group dataIntegrations
@endpoint POST /dataIntegrations
@desc Creates and persists a DataIntegration resource.  You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the CreateDataIntegration API.
@required {Name: str, KmsKey: str}
@optional {Description: str, SourceURI: str, ScheduleConfig: ScheduleConfiguration, Tags: map<str,str>, ClientToken: str, FileConfiguration: FileConfiguration, ObjectConfiguration: map<str,map<str,[str]>>}
@returns(200) {Arn: str?, Id: str?, Name: str?, Description: str?, KmsKey: str?, SourceURI: str?, ScheduleConfiguration: ScheduleConfiguration?{FirstExecutionFrom: str?, Object: str?, ScheduleExpression: str}, Tags: map<str,str>?, ClientToken: str?, FileConfiguration: FileConfiguration?{Folders: [str], Filters: map<str,[str]>?}, ObjectConfiguration: map<str,map<str,[str]>>?}

@endpoint POST /dataIntegrations/{Identifier}/associations
@desc Creates and persists a DataIntegrationAssociation resource.
@required {DataIntegrationIdentifier: str}
@optional {ClientId: str, ObjectConfiguration: map<str,map<str,[str]>>, DestinationURI: str, ClientAssociationMetadata: map<str,str>, ClientToken: str, ExecutionConfiguration: ExecutionConfiguration}
@returns(200) {DataIntegrationAssociationId: str?, DataIntegrationArn: str?}

@endgroup

@group eventIntegrations
@endpoint POST /eventIntegrations
@desc Creates an EventIntegration, given a specified name, description, and a reference to an Amazon EventBridge bus in your account and a partner event source that pushes events to that bus. No objects are created in the your account, only metadata that is persisted on the EventIntegration control plane.
@required {Name: str, EventFilter: EventFilter, EventBridgeBus: str}
@optional {Description: str, ClientToken: str, Tags: map<str,str>}
@returns(200) {EventIntegrationArn: str?}

@endgroup

@group applications
@endpoint DELETE /applications/{ApplicationIdentifier}
@desc Deletes the Application. Only Applications that don't have any Application Associations can be deleted.
@required {Arn: str}

@endgroup

@group dataIntegrations
@endpoint DELETE /dataIntegrations/{Identifier}
@desc Deletes the DataIntegration. Only DataIntegrations that don't have any DataIntegrationAssociations can be deleted. Deleting a DataIntegration also deletes the underlying Amazon AppFlow flow and service linked role.   You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the CreateDataIntegration API.
@required {DataIntegrationIdentifier: str}

@endgroup

@group eventIntegrations
@endpoint DELETE /eventIntegrations/{Name}
@desc Deletes the specified existing event integration. If the event integration is associated with clients, the request is rejected.
@required {Name: str}

@endgroup

@group applications
@endpoint GET /applications/{ApplicationIdentifier}
@desc Get an Application resource.
@required {Arn: str}
@returns(200) {Arn: str?, Id: str?, Name: str?, Namespace: str?, Description: str?, ApplicationSourceConfig: ApplicationSourceConfig?{ExternalUrlConfig: ExternalUrlConfig?{AccessUrl: str, ApprovedOrigins: [str]?}}, Subscriptions: [Subscription]?, Publications: [Publication]?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)?, Tags: map<str,str>?, Permissions: [str]?}

@endgroup

@group dataIntegrations
@endpoint GET /dataIntegrations/{Identifier}
@desc Returns information about the DataIntegration.  You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the CreateDataIntegration API.
@required {Identifier: str}
@returns(200) {Arn: str?, Id: str?, Name: str?, Description: str?, KmsKey: str?, SourceURI: str?, ScheduleConfiguration: ScheduleConfiguration?{FirstExecutionFrom: str?, Object: str?, ScheduleExpression: str}, Tags: map<str,str>?, FileConfiguration: FileConfiguration?{Folders: [str], Filters: map<str,[str]>?}, ObjectConfiguration: map<str,map<str,[str]>>?}

@endgroup

@group eventIntegrations
@endpoint GET /eventIntegrations/{Name}
@desc Returns information about the event integration.
@required {Name: str}
@returns(200) {Name: str?, Description: str?, EventIntegrationArn: str?, EventBridgeBus: str?, EventFilter: EventFilter?{Source: str}, Tags: map<str,str>?}

@endgroup

@group applications
@endpoint GET /applications/{ApplicationIdentifier}/associations
@desc Returns a paginated list of application associations for an application.
@required {ApplicationId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {ApplicationAssociations: [ApplicationAssociationSummary]?, NextToken: str?}

@endpoint GET /applications
@desc Lists applications in the account.
@optional {nextToken: str, maxResults: int}
@returns(200) {Applications: [ApplicationSummary]?, NextToken: str?}

@endgroup

@group dataIntegrations
@endpoint GET /dataIntegrations/{Identifier}/associations
@desc Returns a paginated list of DataIntegration associations in the account.  You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the CreateDataIntegration API.
@required {DataIntegrationIdentifier: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {DataIntegrationAssociations: [DataIntegrationAssociationSummary]?, NextToken: str?}

@endpoint GET /dataIntegrations
@desc Returns a paginated list of DataIntegrations in the account.  You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the CreateDataIntegration API.
@optional {nextToken: str, maxResults: int}
@returns(200) {DataIntegrations: [DataIntegrationSummary]?, NextToken: str?}

@endgroup

@group eventIntegrations
@endpoint GET /eventIntegrations/{Name}/associations
@desc Returns a paginated list of event integration associations in the account.
@required {EventIntegrationName: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {EventIntegrationAssociations: [EventIntegrationAssociation]?, NextToken: str?}

@endpoint GET /eventIntegrations
@desc Returns a paginated list of event integrations in the account.
@optional {nextToken: str, maxResults: int}
@returns(200) {EventIntegrations: [EventIntegration]?, NextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@desc Lists the tags for the specified resource.
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endpoint POST /tags/{resourceArn}
@desc Adds the specified tags to the specified resource.
@required {resourceArn: str, tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@desc Removes the specified tags from the specified resource.
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group applications
@endpoint PATCH /applications/{ApplicationIdentifier}
@desc Updates and persists an Application resource.
@required {Arn: str}
@optional {Name: str, Description: str, ApplicationSourceConfig: ApplicationSourceConfig, Subscriptions: [Subscription], Publications: [Publication], Permissions: [str]}

@endgroup

@group dataIntegrations
@endpoint PATCH /dataIntegrations/{Identifier}
@desc Updates the description of a DataIntegration.  You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the CreateDataIntegration API.
@required {Identifier: str}
@optional {Name: str, Description: str}

@endpoint PATCH /dataIntegrations/{Identifier}/associations/{DataIntegrationAssociationIdentifier}
@desc Updates and persists a DataIntegrationAssociation resource.   Updating a DataIntegrationAssociation with ExecutionConfiguration will rerun the on-demand job.
@required {DataIntegrationIdentifier: str, DataIntegrationAssociationIdentifier: str, ExecutionConfiguration: ExecutionConfiguration}

@endgroup

@group eventIntegrations
@endpoint PATCH /eventIntegrations/{Name}
@desc Updates the description of an event integration.
@required {Name: str}
@optional {Description: str}

@endgroup

@end
