Class Integration


  • public class Integration
    extends com.pulumi.resources.CustomResource
    Manages 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
     
     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 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());
     
         }
     }
     
     
    ### Lambda Integration
     
     package 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());
     
         }
     }
     
     
    ### AWS Service Integration
     
     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 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());
     
         }
     }
     
     
    ### Private Integration
     
     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());
     
         }
     }
     
     
    ## 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.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • 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 Integration get​(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()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.