Skip to content

SourceApiAssociation

The SourceApiAssociation resource allows you to manage AWS AppSync Source API Associations, enabling you to link various APIs for enhanced data management and retrieval.

Minimal Example

Create a basic SourceApiAssociation with required properties and a common optional property.

ts
import AWS from "alchemy/aws/control";

const sourceApiAssociation = await AWS.AppSync.SourceApiAssociation("mySourceApiAssociation", {
  Description: "This association links my source API to the AppSync API",
  SourceApiIdentifier: "source-api-12345",
  SourceApiAssociationConfig: {
    // Configuration details for the source API association
    type: "AWS_LAMBDA", // Example of a source API type
    endpoint: "arn:aws:lambda:us-west-2:123456789012:function:myLambdaFunction"
  }
});

Advanced Configuration

Configure a SourceApiAssociation with additional properties like merging APIs and adopting existing resources.

ts
const advancedSourceApiAssociation = await AWS.AppSync.SourceApiAssociation("advancedSourceApiAssociation", {
  Description: "Advanced configuration for source API association",
  SourceApiIdentifier: "source-api-67890",
  MergedApiIdentifier: "merged-api-54321",
  SourceApiAssociationConfig: {
    type: "HTTP", // Example of another source API type
    endpoint: "https://api.example.com/data",
    headers: {
      "Authorization": "Bearer my-secret-token"
    }
  },
  adopt: true // Adopt existing resource if it already exists
});

Merging Multiple APIs

Demonstrate how to merge multiple APIs into a single AppSync API.

ts
const mergedApiAssociation = await AWS.AppSync.SourceApiAssociation("mergedApiAssociation", {
  Description: "Merging two APIs into one AppSync API",
  SourceApiIdentifier: "source-api-11111",
  MergedApiIdentifier: "merged-api-22222",
  SourceApiAssociationConfig: {
    type: "GRAPHQL",
    endpoint: "https://graphql.example.com/graphql"
  }
});

Adoption of Existing Resource

Show how to create a SourceApiAssociation that adopts an existing resource.

ts
const adoptedSourceApiAssociation = await AWS.AppSync.SourceApiAssociation("adoptedSourceApiAssociation", {
  Description: "Adopting an existing source API association",
  SourceApiIdentifier: "existing-source-api",
  SourceApiAssociationConfig: {
    type: "AWS_STEP_FUNCTIONS",
    endpoint: "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine"
  },
  adopt: true // This will adopt the existing association without error
});