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.