Package com.pulumi.aws.apigatewayv2
Class Integration
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.apigatewayv2.Integration
-
public class Integration extends com.pulumi.resources.CustomResourceManages an Amazon API Gateway Version 2 integration. More information can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html). ## Example Usage ### Basic
### Lambda Integrationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.apigatewayv2.Integration; import com.pulumi.aws.apigatewayv2.IntegrationArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Integration("example", IntegrationArgs.builder() .apiId(exampleAwsApigatewayv2Api.id()) .integrationType("MOCK") .build()); } }
### AWS Service Integrationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lambda.Function; import com.pulumi.aws.lambda.FunctionArgs; import com.pulumi.aws.apigatewayv2.Integration; import com.pulumi.aws.apigatewayv2.IntegrationArgs; import com.pulumi.asset.FileArchive; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Function("example", FunctionArgs.builder() .code(new FileArchive("example.zip")) .name("Example") .role(exampleAwsIamRole.arn()) .handler("index.handler") .runtime("nodejs24.x") .build()); var exampleIntegration = new Integration("exampleIntegration", IntegrationArgs.builder() .apiId(exampleAwsApigatewayv2Api.id()) .integrationType("AWS_PROXY") .connectionType("INTERNET") .contentHandlingStrategy("CONVERT_TO_TEXT") .description("Lambda example") .integrationMethod("POST") .integrationUri(example.invokeArn()) .passthroughBehavior("WHEN_NO_MATCH") .build()); } }
### Private Integrationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.apigatewayv2.Integration; import com.pulumi.aws.apigatewayv2.IntegrationArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Integration("example", IntegrationArgs.builder() .apiId(exampleAwsApigatewayv2Api.id()) .credentialsArn(exampleAwsIamRole.arn()) .description("SQS example") .integrationType("AWS_PROXY") .integrationSubtype("SQS-SendMessage") .requestParameters(Map.ofEntries( Map.entry("QueueUrl", "$request.header.queueUrl"), Map.entry("MessageBody", "$request.body.message") )) .build()); } }
## Import ### Identity Schema #### Required * `apiId` (String) API identifier. * `id` (String) Integration identifier. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import `aws.apigatewayv2.Integration` using the API identifier and integration identifier. For example: ```sh $ pulumi import aws:apigatewayv2/integration:Integration example aabbccddee/1122334 ``` > **Note:** The API Gateway managed integration created as part of [*quick_create*](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-basic-concept.html#apigateway-definition-quick-create) cannot be imported.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.apigatewayv2.Integration; import com.pulumi.aws.apigatewayv2.IntegrationArgs; import com.pulumi.aws.apigatewayv2.inputs.IntegrationTlsConfigArgs; import com.pulumi.aws.apigatewayv2.inputs.IntegrationResponseParameterArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Integration("example", IntegrationArgs.builder() .tlsConfig(IntegrationTlsConfigArgs.builder() .serverNameToVerify("example.com") .build()) .responseParameters( IntegrationResponseParameterArgs.builder() .statusCode("403") .mappings(Map.of("append:header.auth", "$context.authorizer.authorizerResponse")) .build(), IntegrationResponseParameterArgs.builder() .statusCode("200") .mappings(Map.of("overwrite:statuscode", "204")) .build()) .apiId(exampleAwsApigatewayv2Api.id()) .credentialsArn(exampleAwsIamRole.arn()) .description("Example with a load balancer") .integrationType("HTTP_PROXY") .integrationUri(exampleAwsLbListener.arn()) .integrationMethod("ANY") .connectionType("VPC_LINK") .connectionId(exampleAwsApigatewayv2VpcLink.id()) .requestParameters(Map.ofEntries( Map.entry("append:header.authforintegration", "$context.authorizer.authorizerResponse"), Map.entry("overwrite:path", "staticValueForIntegration") )) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Integration(java.lang.String name)Integration(java.lang.String name, IntegrationArgs args)Integration(java.lang.String name, IntegrationArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>apiId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>connectionId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>connectionType()com.pulumi.core.Output<java.util.Optional<java.lang.String>>contentHandlingStrategy()com.pulumi.core.Output<java.util.Optional<java.lang.String>>credentialsArn()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()static Integrationget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, IntegrationState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<java.lang.String>>integrationMethod()com.pulumi.core.Output<java.lang.String>integrationResponseSelectionExpression()com.pulumi.core.Output<java.util.Optional<java.lang.String>>integrationSubtype()com.pulumi.core.Output<java.lang.String>integrationType()com.pulumi.core.Output<java.util.Optional<java.lang.String>>integrationUri()com.pulumi.core.Output<java.util.Optional<java.lang.String>>passthroughBehavior()com.pulumi.core.Output<java.util.Optional<java.lang.String>>payloadFormatVersion()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>requestParameters()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>requestTemplates()com.pulumi.core.Output<java.util.Optional<java.util.List<IntegrationResponseParameter>>>responseParameters()com.pulumi.core.Output<java.util.Optional<java.lang.String>>templateSelectionExpression()com.pulumi.core.Output<java.lang.Integer>timeoutMilliseconds()com.pulumi.core.Output<java.util.Optional<IntegrationTlsConfig>>tlsConfig()
-
-
-
Constructor Detail
-
Integration
public Integration(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Integration
public Integration(java.lang.String name, IntegrationArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Integration
public Integration(java.lang.String name, IntegrationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
apiId
public com.pulumi.core.Output<java.lang.String> apiId()
- Returns:
- API identifier.
-
connectionId
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> connectionId()
- Returns:
- ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
-
connectionType
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> connectionType()
- Returns:
- Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
-
contentHandlingStrategy
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> contentHandlingStrategy()
- Returns:
- How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
-
credentialsArn
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> credentialsArn()
- Returns:
- Credentials required for the integration, if any.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- Description of the integration.
-
integrationMethod
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationMethod()
- Returns:
- Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
-
integrationResponseSelectionExpression
public com.pulumi.core.Output<java.lang.String> integrationResponseSelectionExpression()
- Returns:
- [Integration response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions) for the integration.
-
integrationSubtype
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationSubtype()
- Returns:
- AWS service action to invoke. Supported only for HTTP APIs when `integrationType` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.
-
integrationType
public com.pulumi.core.Output<java.lang.String> integrationType()
- Returns:
- Integration type of an integration. Valid values: `AWS` (supported only for WebSocket APIs), `AWS_PROXY`, `HTTP` (supported only for WebSocket APIs), `HTTP_PROXY`, `MOCK` (supported only for WebSocket APIs). For an HTTP API private integration, use `HTTP_PROXY`.
-
integrationUri
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationUri()
- Returns:
- URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`. For an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.
-
passthroughBehavior
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> passthroughBehavior()
- Returns:
- Pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `requestTemplates` attribute. Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
-
payloadFormatVersion
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> payloadFormatVersion()
- Returns:
- [Format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
requestParameters
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> requestParameters()
- Returns:
- For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
-
requestTemplates
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> requestTemplates()
- Returns:
- Map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.
-
responseParameters
public com.pulumi.core.Output<java.util.Optional<java.util.List<IntegrationResponseParameter>>> responseParameters()
- Returns:
- Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
-
templateSelectionExpression
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> templateSelectionExpression()
- Returns:
- [Template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.
-
timeoutMilliseconds
public com.pulumi.core.Output<java.lang.Integer> timeoutMilliseconds()
- Returns:
- Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. this provider will only perform drift detection of its value when present in a configuration.
-
tlsConfig
public com.pulumi.core.Output<java.util.Optional<IntegrationTlsConfig>> tlsConfig()
- Returns:
- TLS configuration for a private integration. Supported only for HTTP APIs.
-
get
public static Integration get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable IntegrationState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-