Class Integration


  • public class Integration
    extends com.pulumi.resources.CustomResource
    Provides an HTTP Method Integration for an API Gateway Integration. ## Example Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.apigateway.RestApi;
     import com.pulumi.aws.apigateway.RestApiArgs;
     import com.pulumi.aws.apigateway.Resource;
     import com.pulumi.aws.apigateway.ResourceArgs;
     import com.pulumi.aws.apigateway.Method;
     import com.pulumi.aws.apigateway.MethodArgs;
     import com.pulumi.aws.apigateway.Integration;
     import com.pulumi.aws.apigateway.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 myDemoAPI = new RestApi("myDemoAPI", RestApiArgs.builder()
                 .name("MyDemoAPI")
                 .description("This is my API for demonstration purposes")
                 .build());
     
             var myDemoResource = new Resource("myDemoResource", ResourceArgs.builder()
                 .restApi(myDemoAPI.id())
                 .parentId(myDemoAPI.rootResourceId())
                 .pathPart("mydemoresource")
                 .build());
     
             var myDemoMethod = new Method("myDemoMethod", MethodArgs.builder()
                 .restApi(myDemoAPI.id())
                 .resourceId(myDemoResource.id())
                 .httpMethod("GET")
                 .authorization("NONE")
                 .build());
     
             var myDemoIntegration = new Integration("myDemoIntegration", IntegrationArgs.builder()
                 .restApi(myDemoAPI.id())
                 .resourceId(myDemoResource.id())
                 .httpMethod(myDemoMethod.httpMethod())
                 .type("MOCK")
                 .cacheKeyParameters("method.request.path.param")
                 .cacheNamespace("foobar")
                 .timeoutMilliseconds(29000)
                 .requestParameters(Map.of("integration.request.header.X-Authorization", "'static'"))
                 .requestTemplates(Map.of("application/xml", """
     {
        \"body\" : $input.json('$')
     }
                 """))
                 .build());
     
         }
     }
     
     
    ### Lambda integration
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.AwsFunctions;
     import com.pulumi.aws.inputs.GetCallerIdentityArgs;
     import com.pulumi.aws.inputs.GetRegionArgs;
     import com.pulumi.aws.inputs.GetPartitionArgs;
     import com.pulumi.aws.apigateway.RestApi;
     import com.pulumi.aws.apigateway.RestApiArgs;
     import com.pulumi.aws.apigateway.Resource;
     import com.pulumi.aws.apigateway.ResourceArgs;
     import com.pulumi.aws.apigateway.Method;
     import com.pulumi.aws.apigateway.MethodArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.lambda.Function;
     import com.pulumi.aws.lambda.FunctionArgs;
     import com.pulumi.std.StdFunctions;
     import com.pulumi.std.inputs.Filebase64sha256Args;
     import com.pulumi.aws.apigateway.Integration;
     import com.pulumi.aws.apigateway.IntegrationArgs;
     import com.pulumi.aws.lambda.Permission;
     import com.pulumi.aws.lambda.PermissionArgs;
     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) {
             final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                 .build());
     
             final var currentGetRegion = AwsFunctions.getRegion(GetRegionArgs.builder()
                 .build());
     
             final var currentGetPartition = AwsFunctions.getPartition(GetPartitionArgs.builder()
                 .build());
     
             // API Gateway
             var api = new RestApi("api", RestApiArgs.builder()
                 .name("myapi")
                 .build());
     
             var resource = new Resource("resource", ResourceArgs.builder()
                 .pathPart("resource")
                 .parentId(api.rootResourceId())
                 .restApi(api.id())
                 .build());
     
             var method = new Method("method", MethodArgs.builder()
                 .restApi(api.id())
                 .resourceId(resource.id())
                 .httpMethod("GET")
                 .authorization("NONE")
                 .build());
     
             // IAM
             final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("lambda.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions("sts:AssumeRole")
                     .build())
                 .build());
     
             var role = new Role("role", RoleArgs.builder()
                 .name("myrole")
                 .assumeRolePolicy(assumeRole.json())
                 .build());
     
             var lambda = new Function("lambda", FunctionArgs.builder()
                 .code(new FileArchive("lambda.zip"))
                 .name("mylambda")
                 .role(role.arn())
                 .handler("lambda.lambda_handler")
                 .runtime("python3.12")
                 .sourceCodeHash(StdFunctions.filebase64sha256(Filebase64sha256Args.builder()
                     .input("lambda.zip")
                     .build()).result())
                 .build());
     
             var integration = new Integration("integration", IntegrationArgs.builder()
                 .restApi(api.id())
                 .resourceId(resource.id())
                 .httpMethod(method.httpMethod())
                 .integrationHttpMethod("POST")
                 .type("AWS_PROXY")
                 .uri(lambda.invokeArn())
                 .build());
     
             // Lambda
             var apigwLambda = new Permission("apigwLambda", PermissionArgs.builder()
                 .statementId("AllowExecutionFromAPIGateway")
                 .action("lambda:InvokeFunction")
                 .function(lambda.name())
                 .principal("apigateway.amazonaws.com")
                 .sourceArn(Output.tuple(api.id(), method.httpMethod(), resource.path()).applyValue(values -> {
                     var id = values.t1;
                     var httpMethod = values.t2;
                     var path = values.t3;
                     return String.format("arn:%s:execute-api:%s:%s:%s/*/%s%s", currentGetPartition.partition(),currentGetRegion.region(),current.accountId(),id,httpMethod,path);
                 }))
                 .build());
     
         }
     }
     
     
    ### Lambda integration with response streaming All other resources and data sources are the same as in the previous example; only the integration configuration differs. Note that the `timeout` of the `aws.lambda.Function` may need to be adjusted.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.apigateway.Integration;
     import com.pulumi.aws.apigateway.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 integration = new Integration("integration", IntegrationArgs.builder()
                 .restApi(api.id())
                 .resourceId(resource.id())
                 .httpMethod(method.httpMethod())
                 .integrationHttpMethod("POST")
                 .type("AWS_PROXY")
                 .uri(lambda.responseStreamingInvokeArn())
                 .responseTransferMode("STREAM")
                 .timeoutMilliseconds(900000)
                 .build());
     
         }
     }
     
     
    ### VPC Link
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lb.LoadBalancer;
     import com.pulumi.aws.lb.LoadBalancerArgs;
     import com.pulumi.aws.apigateway.VpcLink;
     import com.pulumi.aws.apigateway.VpcLinkArgs;
     import com.pulumi.aws.apigateway.RestApi;
     import com.pulumi.aws.apigateway.RestApiArgs;
     import com.pulumi.aws.apigateway.Resource;
     import com.pulumi.aws.apigateway.ResourceArgs;
     import com.pulumi.aws.apigateway.Method;
     import com.pulumi.aws.apigateway.MethodArgs;
     import com.pulumi.aws.apigateway.Integration;
     import com.pulumi.aws.apigateway.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) {
             final var config = ctx.config();
             final var name = config.require("name");
             final var subnetId = config.require("subnetId");
             var test = new LoadBalancer("test", LoadBalancerArgs.builder()
                 .name(name)
                 .internal(true)
                 .loadBalancerType("network")
                 .subnets(subnetId)
                 .build());
     
             var testVpcLink = new VpcLink("testVpcLink", VpcLinkArgs.builder()
                 .name(name)
                 .targetArn(test.arn())
                 .build());
     
             var testRestApi = new RestApi("testRestApi", RestApiArgs.builder()
                 .name(name)
                 .build());
     
             var testResource = new Resource("testResource", ResourceArgs.builder()
                 .restApi(testRestApi.id())
                 .parentId(testRestApi.rootResourceId())
                 .pathPart("test")
                 .build());
     
             var testMethod = new Method("testMethod", MethodArgs.builder()
                 .restApi(testRestApi.id())
                 .resourceId(testResource.id())
                 .httpMethod("GET")
                 .authorization("NONE")
                 .requestModels(Map.of("application/json", "Error"))
                 .build());
     
             var testIntegration = new Integration("testIntegration", IntegrationArgs.builder()
                 .restApi(testRestApi.id())
                 .resourceId(testResource.id())
                 .httpMethod(testMethod.httpMethod())
                 .requestTemplates(Map.ofEntries(
                     Map.entry("application/json", ""),
                     Map.entry("application/xml", """
     #set($inputRoot = $input.path('$'))
     { }                """)
                 ))
                 .requestParameters(Map.ofEntries(
                     Map.entry("integration.request.header.X-Authorization", "'static'"),
                     Map.entry("integration.request.header.X-Foo", "'Bar'")
                 ))
                 .type("HTTP")
                 .uri("https://www.google.de")
                 .integrationHttpMethod("GET")
                 .passthroughBehavior("WHEN_NO_MATCH")
                 .contentHandling("CONVERT_TO_TEXT")
                 .connectionType("VPC_LINK")
                 .connectionId(testVpcLink.id())
                 .build());
     
         }
     }
     
     
    ### VPC Link V2 with Application Load Balancer
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.apigatewayv2.VpcLink;
     import com.pulumi.aws.apigatewayv2.VpcLinkArgs;
     import com.pulumi.aws.lb.LoadBalancer;
     import com.pulumi.aws.lb.LoadBalancerArgs;
     import com.pulumi.aws.lb.Listener;
     import com.pulumi.aws.lb.ListenerArgs;
     import com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;
     import com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;
     import com.pulumi.aws.apigateway.RestApi;
     import com.pulumi.aws.apigateway.RestApiArgs;
     import com.pulumi.aws.apigateway.Resource;
     import com.pulumi.aws.apigateway.ResourceArgs;
     import com.pulumi.aws.apigateway.Method;
     import com.pulumi.aws.apigateway.MethodArgs;
     import com.pulumi.aws.apigateway.Integration;
     import com.pulumi.aws.apigateway.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 VpcLink("example", VpcLinkArgs.builder()
                 .name("example")
                 .securityGroupIds(exampleAwsSecurityGroup.id())
                 .subnetIds(exampleAwsSubnet.stream().map(element -> element.id()).collect(toList()))
                 .build());
     
             var exampleLoadBalancer = new LoadBalancer("exampleLoadBalancer", LoadBalancerArgs.builder()
                 .name("example-alb")
                 .internal(true)
                 .loadBalancerType("application")
                 .securityGroups(exampleAwsSecurityGroup.id())
                 .subnets(exampleAwsSubnet.stream().map(element -> element.id()).collect(toList()))
                 .build());
     
             var exampleListener = new Listener("exampleListener", ListenerArgs.builder()
                 .defaultActions(ListenerDefaultActionArgs.builder()
                     .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()
                         .contentType("text/plain")
                         .messageBody("OK")
                         .statusCode("200")
                         .build())
                     .type("fixed-response")
                     .build())
                 .loadBalancerArn(exampleLoadBalancer.arn())
                 .port(80)
                 .protocol("HTTP")
                 .build());
     
             var exampleRestApi = new RestApi("exampleRestApi", RestApiArgs.builder()
                 .name("example")
                 .build());
     
             var exampleResource = new Resource("exampleResource", ResourceArgs.builder()
                 .restApi(exampleRestApi.id())
                 .parentId(exampleRestApi.rootResourceId())
                 .pathPart("example")
                 .build());
     
             var exampleMethod = new Method("exampleMethod", MethodArgs.builder()
                 .restApi(exampleRestApi.id())
                 .resourceId(exampleResource.id())
                 .httpMethod("GET")
                 .authorization("NONE")
                 .build());
     
             var exampleIntegration = new Integration("exampleIntegration", IntegrationArgs.builder()
                 .restApi(exampleRestApi.id())
                 .resourceId(exampleResource.id())
                 .httpMethod(exampleMethod.httpMethod())
                 .integrationHttpMethod("GET")
                 .type("HTTP_PROXY")
                 .connectionType("VPC_LINK")
                 .connectionId(example.id())
                 .integrationTarget(exampleLoadBalancer.arn())
                 .uri("http://example.com")
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required * `restApiId` (String) - ID of the associated REST API. * `resourceId` (String) - API resource ID. * `httpMethod` (String) - HTTP Method. #### Optional * `accountId` (String) - AWS Account where this resource is managed. * `region` (String) - Region where this resource is managed. Using `pulumi import`, import `aws.apigateway.Integration` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD`. For example: ```sh $ pulumi import aws:apigateway/integration:Integration example 12345abcde/67890fghij/GET ```
    • 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.util.Optional<java.util.List<java.lang.String>>> cacheKeyParameters()  
      com.pulumi.core.Output<java.lang.String> cacheNamespace()  
      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>> contentHandling()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> credentials()  
      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.lang.String> httpMethod()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationHttpMethod()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationTarget()  
      com.pulumi.core.Output<java.lang.String> passthroughBehavior()  
      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.lang.String> resourceId()  
      com.pulumi.core.Output<java.lang.String> responseTransferMode()  
      com.pulumi.core.Output<java.lang.String> restApi()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> timeoutMilliseconds()  
      com.pulumi.core.Output<java.util.Optional<IntegrationTlsConfig>> tlsConfig()  
      com.pulumi.core.Output<java.lang.String> type()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> uri()  
      • 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

      • cacheKeyParameters

        public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> cacheKeyParameters()
        Returns:
        List of cache key parameters for the integration.
      • cacheNamespace

        public com.pulumi.core.Output<java.lang.String> cacheNamespace()
        Returns:
        Integration's cache namespace.
      • connectionId

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> connectionId()
        Returns:
        ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK`
      • connectionType

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> connectionType()
        Returns:
        Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC).
      • contentHandling

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> contentHandling()
        Returns:
        How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through.
      • credentials

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> credentials()
        Returns:
        Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`.
      • httpMethod

        public com.pulumi.core.Output<java.lang.String> httpMethod()
        Returns:
        HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) when calling the associated resource.
      • integrationHttpMethod

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationHttpMethod()
        Returns:
        Integration HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. Not all methods are compatible with all `AWS` integrations. e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`.
      • integrationTarget

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> integrationTarget()
        Returns:
        ALB or NLB ARN to send the request to. Used for private integrations with VPC Link V2. When using VPC Link V2, this parameter specifies the load balancer ARN, while `uri` is used to set the Host header.
      • passthroughBehavior

        public com.pulumi.core.Output<java.lang.String> passthroughBehavior()
        Returns:
        Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used.
      • 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:
        Map of request query string parameters and headers that should be passed to the backend responder. For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }`
      • requestTemplates

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> requestTemplates()
        Returns:
        Map of the integration's request templates.
      • resourceId

        public com.pulumi.core.Output<java.lang.String> resourceId()
        Returns:
        API resource ID.
      • responseTransferMode

        public com.pulumi.core.Output<java.lang.String> responseTransferMode()
        Returns:
        Response transfer mode of the integration. Valid values are `BUFFERED` and `STREAM`. Default to `BUFFERED`. Once set, setting the value to `BUFFERED` requires explicitly specifying `BUFFERED`, rather than removing this argument.
      • restApi

        public com.pulumi.core.Output<java.lang.String> restApi()
        Returns:
        ID of the associated REST API.
      • timeoutMilliseconds

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> timeoutMilliseconds()
        Returns:
        Custom timeout in milliseconds. The minimum value is 50. The maximum value is 300,000 when `responseTransferMode` is `BUFFERED`, and 900,000 when `responseTransferMode` is `STREAM`. The default value is 29,000 milliseconds. You need to raise a [Service Quota Ticket](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) to increase time beyond 29,000 milliseconds for `BUFFERED` mode.
      • tlsConfig

        public com.pulumi.core.Output<java.util.Optional<IntegrationTlsConfig>> tlsConfig()
        Returns:
        TLS configuration. See below.
      • type

        public com.pulumi.core.Output<java.lang.String> type()
        Returns:
        Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.
      • uri

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> uri()
        Returns:
        Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:123456789012:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation.
      • 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.