Skip to content
v2.273.0

Integration Class ​

Base class for backend integrations for an API Gateway method.

Use one of the concrete classes such as MockIntegration, AwsIntegration, LambdaIntegration or implement on your own by specifying the set of props.

Example ​

ts
declare const books: apigateway.Resource;
declare const iamUser: iam.User;

const getBooks = books.addMethod('GET', new apigateway.HttpIntegration('http://amazon.com'), {
  authorizationType: apigateway.AuthorizationType.IAM
});

iamUser.attachInlinePolicy(new iam.Policy(this, 'AllowBooks', {
  statements: [
    new iam.PolicyStatement({
      actions: [ 'execute-api:Invoke' ],
      effect: iam.Effect.ALLOW,
      resources: [ getBooks.methodArn ]
    })
  ]
}))
python
# books: apigateway.Resource
# iam_user: iam.User


get_books = books.add_method("GET", apigateway.HttpIntegration("http://amazon.com"),
    authorization_type=apigateway.AuthorizationType.IAM
)

iam_user.attach_inline_policy(iam.Policy(self, "AllowBooks",
    statements=[
        iam.PolicyStatement(
            actions=["execute-api:Invoke"],
            effect=iam.Effect.ALLOW,
            resources=[get_books.method_arn]
        )
    ]
))
java
Resource books;
User iamUser;


Method getBooks = books.addMethod("GET", new HttpIntegration("http://amazon.com"), MethodOptions.builder()
        .authorizationType(AuthorizationType.IAM)
        .build());

iamUser.attachInlinePolicy(Policy.Builder.create(this, "AllowBooks")
        .statements(List.of(
            PolicyStatement.Builder.create()
                    .actions(List.of("execute-api:Invoke"))
                    .effect(Effect.ALLOW)
                    .resources(List.of(getBooks.getMethodArn()))
                    .build()))
        .build());
csharp
// Install: dotnet add package Amazon.CDK.Lib
Resource books;
User iamUser;


var getBooks = books.AddMethod("GET", new HttpIntegration("http://amazon.com"), new MethodOptions {
    AuthorizationType = AuthorizationType.IAM
});

iamUser.AttachInlinePolicy(new Policy(this, "AllowBooks", new PolicyProps {
    Statements = new [] {
        new PolicyStatement(new PolicyStatementProps {
            Actions = new [] { "execute-api:Invoke" },
            Effect = Effect.ALLOW,
            Resources = new [] { getBooks.MethodArn }
        }) }
}));
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
var books Resource
var iamUser User


getBooks := books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{
	AuthorizationType: apigateway.AuthorizationType_IAM,
})

iamUser.AttachInlinePolicy(iam.NewPolicy(this, jsii.String("AllowBooks"), &PolicyProps{
	Statements: []PolicyStatement{
		iam.NewPolicyStatement(&PolicyStatementProps{
			Actions: []*string{
				jsii.String("execute-api:Invoke"),
			},
			Effect: iam.Effect_ALLOW,
			Resources: []*string{
				getBooks.methodArn,
			},
		}),
	},
}))

Initializer ​

ts
new Integration(props: IntegrationProps)
python
Integration(props: IntegrationProps)
java
new Integration(IntegrationProps props)
csharp
new Integration(IntegrationProps props)
go
NewIntegration(Props IntegrationProps)

Methods ​

bind(method: Method): IntegrationConfigdef bind(self, method: Method) -> IntegrationConfigpublic IntegrationConfig bind(Method method)public IntegrationConfig Bind(Method method)func Bind(Method Method) IntegrationConfig#
Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc.