github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/apigatewayv2/integration.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package apigatewayv2
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Manages an Amazon API Gateway Version 2 integration.
    16  // More information can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html).
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Basic
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := apigatewayv2.NewIntegration(ctx, "example", &apigatewayv2.IntegrationArgs{
    36  //				ApiId:           pulumi.Any(exampleAwsApigatewayv2Api.Id),
    37  //				IntegrationType: pulumi.String("MOCK"),
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // <!--End PulumiCodeChooser -->
    48  //
    49  // ### Lambda Integration
    50  //
    51  // <!--Start PulumiCodeChooser -->
    52  // ```go
    53  // package main
    54  //
    55  // import (
    56  //
    57  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
    58  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2"
    59  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda"
    60  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    61  //
    62  // )
    63  //
    64  //	func main() {
    65  //		pulumi.Run(func(ctx *pulumi.Context) error {
    66  //			example, err := lambda.NewFunction(ctx, "example", &lambda.FunctionArgs{
    67  //				Code:    pulumi.NewFileArchive("example.zip"),
    68  //				Name:    pulumi.String("Example"),
    69  //				Role:    pulumi.Any(exampleAwsIamRole.Arn),
    70  //				Handler: pulumi.String("index.handler"),
    71  //				Runtime: pulumi.String(lambda.RuntimeNodeJS16dX),
    72  //			})
    73  //			if err != nil {
    74  //				return err
    75  //			}
    76  //			_, err = apigatewayv2.NewIntegration(ctx, "example", &apigatewayv2.IntegrationArgs{
    77  //				ApiId:                   pulumi.Any(exampleAwsApigatewayv2Api.Id),
    78  //				IntegrationType:         pulumi.String("AWS_PROXY"),
    79  //				ConnectionType:          pulumi.String("INTERNET"),
    80  //				ContentHandlingStrategy: pulumi.String("CONVERT_TO_TEXT"),
    81  //				Description:             pulumi.String("Lambda example"),
    82  //				IntegrationMethod:       pulumi.String("POST"),
    83  //				IntegrationUri:          example.InvokeArn,
    84  //				PassthroughBehavior:     pulumi.String("WHEN_NO_MATCH"),
    85  //			})
    86  //			if err != nil {
    87  //				return err
    88  //			}
    89  //			return nil
    90  //		})
    91  //	}
    92  //
    93  // ```
    94  // <!--End PulumiCodeChooser -->
    95  //
    96  // ### AWS Service Integration
    97  //
    98  // <!--Start PulumiCodeChooser -->
    99  // ```go
   100  // package main
   101  //
   102  // import (
   103  //
   104  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2"
   105  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   106  //
   107  // )
   108  //
   109  //	func main() {
   110  //		pulumi.Run(func(ctx *pulumi.Context) error {
   111  //			_, err := apigatewayv2.NewIntegration(ctx, "example", &apigatewayv2.IntegrationArgs{
   112  //				ApiId:              pulumi.Any(exampleAwsApigatewayv2Api.Id),
   113  //				CredentialsArn:     pulumi.Any(exampleAwsIamRole.Arn),
   114  //				Description:        pulumi.String("SQS example"),
   115  //				IntegrationType:    pulumi.String("AWS_PROXY"),
   116  //				IntegrationSubtype: pulumi.String("SQS-SendMessage"),
   117  //				RequestParameters: pulumi.StringMap{
   118  //					"QueueUrl":    pulumi.String("$request.header.queueUrl"),
   119  //					"MessageBody": pulumi.String("$request.body.message"),
   120  //				},
   121  //			})
   122  //			if err != nil {
   123  //				return err
   124  //			}
   125  //			return nil
   126  //		})
   127  //	}
   128  //
   129  // ```
   130  // <!--End PulumiCodeChooser -->
   131  //
   132  // ### Private Integration
   133  //
   134  // <!--Start PulumiCodeChooser -->
   135  // ```go
   136  // package main
   137  //
   138  // import (
   139  //
   140  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2"
   141  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   142  //
   143  // )
   144  //
   145  //	func main() {
   146  //		pulumi.Run(func(ctx *pulumi.Context) error {
   147  //			_, err := apigatewayv2.NewIntegration(ctx, "example", &apigatewayv2.IntegrationArgs{
   148  //				ApiId:             pulumi.Any(exampleAwsApigatewayv2Api.Id),
   149  //				CredentialsArn:    pulumi.Any(exampleAwsIamRole.Arn),
   150  //				Description:       pulumi.String("Example with a load balancer"),
   151  //				IntegrationType:   pulumi.String("HTTP_PROXY"),
   152  //				IntegrationUri:    pulumi.Any(exampleAwsLbListener.Arn),
   153  //				IntegrationMethod: pulumi.String("ANY"),
   154  //				ConnectionType:    pulumi.String("VPC_LINK"),
   155  //				ConnectionId:      pulumi.Any(exampleAwsApigatewayv2VpcLink.Id),
   156  //				TlsConfig: &apigatewayv2.IntegrationTlsConfigArgs{
   157  //					ServerNameToVerify: pulumi.String("example.com"),
   158  //				},
   159  //				RequestParameters: pulumi.StringMap{
   160  //					"append:header.authforintegration": pulumi.String("$context.authorizer.authorizerResponse"),
   161  //					"overwrite:path":                   pulumi.String("staticValueForIntegration"),
   162  //				},
   163  //				ResponseParameters: apigatewayv2.IntegrationResponseParameterArray{
   164  //					&apigatewayv2.IntegrationResponseParameterArgs{
   165  //						StatusCode: pulumi.String("403"),
   166  //						Mappings: pulumi.StringMap{
   167  //							"append:header.auth": pulumi.String("$context.authorizer.authorizerResponse"),
   168  //						},
   169  //					},
   170  //					&apigatewayv2.IntegrationResponseParameterArgs{
   171  //						StatusCode: pulumi.String("200"),
   172  //						Mappings: pulumi.StringMap{
   173  //							"overwrite:statuscode": pulumi.String("204"),
   174  //						},
   175  //					},
   176  //				},
   177  //			})
   178  //			if err != nil {
   179  //				return err
   180  //			}
   181  //			return nil
   182  //		})
   183  //	}
   184  //
   185  // ```
   186  // <!--End PulumiCodeChooser -->
   187  //
   188  // ## Import
   189  //
   190  // Using `pulumi import`, import `aws_apigatewayv2_integration` using the API identifier and integration identifier. For example:
   191  //
   192  // ```sh
   193  // $ pulumi import aws:apigatewayv2/integration:Integration example aabbccddee/1122334
   194  // ```
   195  // -> __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.
   196  type Integration struct {
   197  	pulumi.CustomResourceState
   198  
   199  	// API identifier.
   200  	ApiId pulumi.StringOutput `pulumi:"apiId"`
   201  	// ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
   202  	ConnectionId pulumi.StringPtrOutput `pulumi:"connectionId"`
   203  	// Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
   204  	ConnectionType pulumi.StringPtrOutput `pulumi:"connectionType"`
   205  	// How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
   206  	ContentHandlingStrategy pulumi.StringPtrOutput `pulumi:"contentHandlingStrategy"`
   207  	// Credentials required for the integration, if any.
   208  	CredentialsArn pulumi.StringPtrOutput `pulumi:"credentialsArn"`
   209  	// Description of the integration.
   210  	Description pulumi.StringPtrOutput `pulumi:"description"`
   211  	// Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
   212  	IntegrationMethod pulumi.StringPtrOutput `pulumi:"integrationMethod"`
   213  	// The [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.
   214  	IntegrationResponseSelectionExpression pulumi.StringOutput `pulumi:"integrationResponseSelectionExpression"`
   215  	// 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.
   216  	IntegrationSubtype pulumi.StringPtrOutput `pulumi:"integrationSubtype"`
   217  	// Integration type of an integration.
   218  	// 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`.
   219  	IntegrationType pulumi.StringOutput `pulumi:"integrationType"`
   220  	// URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`.
   221  	// 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.
   222  	IntegrationUri pulumi.StringPtrOutput `pulumi:"integrationUri"`
   223  	// 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.
   224  	// Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
   225  	PassthroughBehavior pulumi.StringPtrOutput `pulumi:"passthroughBehavior"`
   226  	// The [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`.
   227  	PayloadFormatVersion pulumi.StringPtrOutput `pulumi:"payloadFormatVersion"`
   228  	// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
   229  	// For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
   230  	// For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
   231  	// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
   232  	RequestParameters pulumi.StringMapOutput `pulumi:"requestParameters"`
   233  	// 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.
   234  	RequestTemplates pulumi.StringMapOutput `pulumi:"requestTemplates"`
   235  	// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
   236  	ResponseParameters IntegrationResponseParameterArrayOutput `pulumi:"responseParameters"`
   237  	// The [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.
   238  	TemplateSelectionExpression pulumi.StringPtrOutput `pulumi:"templateSelectionExpression"`
   239  	// Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
   240  	// The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
   241  	// this provider will only perform drift detection of its value when present in a configuration.
   242  	TimeoutMilliseconds pulumi.IntOutput `pulumi:"timeoutMilliseconds"`
   243  	// TLS configuration for a private integration. Supported only for HTTP APIs.
   244  	TlsConfig IntegrationTlsConfigPtrOutput `pulumi:"tlsConfig"`
   245  }
   246  
   247  // NewIntegration registers a new resource with the given unique name, arguments, and options.
   248  func NewIntegration(ctx *pulumi.Context,
   249  	name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error) {
   250  	if args == nil {
   251  		return nil, errors.New("missing one or more required arguments")
   252  	}
   253  
   254  	if args.ApiId == nil {
   255  		return nil, errors.New("invalid value for required argument 'ApiId'")
   256  	}
   257  	if args.IntegrationType == nil {
   258  		return nil, errors.New("invalid value for required argument 'IntegrationType'")
   259  	}
   260  	opts = internal.PkgResourceDefaultOpts(opts)
   261  	var resource Integration
   262  	err := ctx.RegisterResource("aws:apigatewayv2/integration:Integration", name, args, &resource, opts...)
   263  	if err != nil {
   264  		return nil, err
   265  	}
   266  	return &resource, nil
   267  }
   268  
   269  // GetIntegration gets an existing Integration resource's state with the given name, ID, and optional
   270  // state properties that are used to uniquely qualify the lookup (nil if not required).
   271  func GetIntegration(ctx *pulumi.Context,
   272  	name string, id pulumi.IDInput, state *IntegrationState, opts ...pulumi.ResourceOption) (*Integration, error) {
   273  	var resource Integration
   274  	err := ctx.ReadResource("aws:apigatewayv2/integration:Integration", name, id, state, &resource, opts...)
   275  	if err != nil {
   276  		return nil, err
   277  	}
   278  	return &resource, nil
   279  }
   280  
   281  // Input properties used for looking up and filtering Integration resources.
   282  type integrationState struct {
   283  	// API identifier.
   284  	ApiId *string `pulumi:"apiId"`
   285  	// ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
   286  	ConnectionId *string `pulumi:"connectionId"`
   287  	// Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
   288  	ConnectionType *string `pulumi:"connectionType"`
   289  	// How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
   290  	ContentHandlingStrategy *string `pulumi:"contentHandlingStrategy"`
   291  	// Credentials required for the integration, if any.
   292  	CredentialsArn *string `pulumi:"credentialsArn"`
   293  	// Description of the integration.
   294  	Description *string `pulumi:"description"`
   295  	// Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
   296  	IntegrationMethod *string `pulumi:"integrationMethod"`
   297  	// The [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.
   298  	IntegrationResponseSelectionExpression *string `pulumi:"integrationResponseSelectionExpression"`
   299  	// 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.
   300  	IntegrationSubtype *string `pulumi:"integrationSubtype"`
   301  	// Integration type of an integration.
   302  	// 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`.
   303  	IntegrationType *string `pulumi:"integrationType"`
   304  	// URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`.
   305  	// 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.
   306  	IntegrationUri *string `pulumi:"integrationUri"`
   307  	// 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.
   308  	// Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
   309  	PassthroughBehavior *string `pulumi:"passthroughBehavior"`
   310  	// The [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`.
   311  	PayloadFormatVersion *string `pulumi:"payloadFormatVersion"`
   312  	// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
   313  	// For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
   314  	// For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
   315  	// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
   316  	RequestParameters map[string]string `pulumi:"requestParameters"`
   317  	// 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.
   318  	RequestTemplates map[string]string `pulumi:"requestTemplates"`
   319  	// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
   320  	ResponseParameters []IntegrationResponseParameter `pulumi:"responseParameters"`
   321  	// The [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.
   322  	TemplateSelectionExpression *string `pulumi:"templateSelectionExpression"`
   323  	// Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
   324  	// The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
   325  	// this provider will only perform drift detection of its value when present in a configuration.
   326  	TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"`
   327  	// TLS configuration for a private integration. Supported only for HTTP APIs.
   328  	TlsConfig *IntegrationTlsConfig `pulumi:"tlsConfig"`
   329  }
   330  
   331  type IntegrationState struct {
   332  	// API identifier.
   333  	ApiId pulumi.StringPtrInput
   334  	// ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
   335  	ConnectionId pulumi.StringPtrInput
   336  	// Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
   337  	ConnectionType pulumi.StringPtrInput
   338  	// How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
   339  	ContentHandlingStrategy pulumi.StringPtrInput
   340  	// Credentials required for the integration, if any.
   341  	CredentialsArn pulumi.StringPtrInput
   342  	// Description of the integration.
   343  	Description pulumi.StringPtrInput
   344  	// Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
   345  	IntegrationMethod pulumi.StringPtrInput
   346  	// The [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.
   347  	IntegrationResponseSelectionExpression pulumi.StringPtrInput
   348  	// 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.
   349  	IntegrationSubtype pulumi.StringPtrInput
   350  	// Integration type of an integration.
   351  	// 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`.
   352  	IntegrationType pulumi.StringPtrInput
   353  	// URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`.
   354  	// 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.
   355  	IntegrationUri pulumi.StringPtrInput
   356  	// 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.
   357  	// Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
   358  	PassthroughBehavior pulumi.StringPtrInput
   359  	// The [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`.
   360  	PayloadFormatVersion pulumi.StringPtrInput
   361  	// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
   362  	// For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
   363  	// For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
   364  	// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
   365  	RequestParameters pulumi.StringMapInput
   366  	// 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.
   367  	RequestTemplates pulumi.StringMapInput
   368  	// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
   369  	ResponseParameters IntegrationResponseParameterArrayInput
   370  	// The [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.
   371  	TemplateSelectionExpression pulumi.StringPtrInput
   372  	// Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
   373  	// The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
   374  	// this provider will only perform drift detection of its value when present in a configuration.
   375  	TimeoutMilliseconds pulumi.IntPtrInput
   376  	// TLS configuration for a private integration. Supported only for HTTP APIs.
   377  	TlsConfig IntegrationTlsConfigPtrInput
   378  }
   379  
   380  func (IntegrationState) ElementType() reflect.Type {
   381  	return reflect.TypeOf((*integrationState)(nil)).Elem()
   382  }
   383  
   384  type integrationArgs struct {
   385  	// API identifier.
   386  	ApiId string `pulumi:"apiId"`
   387  	// ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
   388  	ConnectionId *string `pulumi:"connectionId"`
   389  	// Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
   390  	ConnectionType *string `pulumi:"connectionType"`
   391  	// How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
   392  	ContentHandlingStrategy *string `pulumi:"contentHandlingStrategy"`
   393  	// Credentials required for the integration, if any.
   394  	CredentialsArn *string `pulumi:"credentialsArn"`
   395  	// Description of the integration.
   396  	Description *string `pulumi:"description"`
   397  	// Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
   398  	IntegrationMethod *string `pulumi:"integrationMethod"`
   399  	// 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.
   400  	IntegrationSubtype *string `pulumi:"integrationSubtype"`
   401  	// Integration type of an integration.
   402  	// 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`.
   403  	IntegrationType string `pulumi:"integrationType"`
   404  	// URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`.
   405  	// 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.
   406  	IntegrationUri *string `pulumi:"integrationUri"`
   407  	// 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.
   408  	// Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
   409  	PassthroughBehavior *string `pulumi:"passthroughBehavior"`
   410  	// The [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`.
   411  	PayloadFormatVersion *string `pulumi:"payloadFormatVersion"`
   412  	// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
   413  	// For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
   414  	// For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
   415  	// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
   416  	RequestParameters map[string]string `pulumi:"requestParameters"`
   417  	// 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.
   418  	RequestTemplates map[string]string `pulumi:"requestTemplates"`
   419  	// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
   420  	ResponseParameters []IntegrationResponseParameter `pulumi:"responseParameters"`
   421  	// The [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.
   422  	TemplateSelectionExpression *string `pulumi:"templateSelectionExpression"`
   423  	// Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
   424  	// The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
   425  	// this provider will only perform drift detection of its value when present in a configuration.
   426  	TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"`
   427  	// TLS configuration for a private integration. Supported only for HTTP APIs.
   428  	TlsConfig *IntegrationTlsConfig `pulumi:"tlsConfig"`
   429  }
   430  
   431  // The set of arguments for constructing a Integration resource.
   432  type IntegrationArgs struct {
   433  	// API identifier.
   434  	ApiId pulumi.StringInput
   435  	// ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
   436  	ConnectionId pulumi.StringPtrInput
   437  	// Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
   438  	ConnectionType pulumi.StringPtrInput
   439  	// How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
   440  	ContentHandlingStrategy pulumi.StringPtrInput
   441  	// Credentials required for the integration, if any.
   442  	CredentialsArn pulumi.StringPtrInput
   443  	// Description of the integration.
   444  	Description pulumi.StringPtrInput
   445  	// Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
   446  	IntegrationMethod pulumi.StringPtrInput
   447  	// 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.
   448  	IntegrationSubtype pulumi.StringPtrInput
   449  	// Integration type of an integration.
   450  	// 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`.
   451  	IntegrationType pulumi.StringInput
   452  	// URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`.
   453  	// 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.
   454  	IntegrationUri pulumi.StringPtrInput
   455  	// 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.
   456  	// Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
   457  	PassthroughBehavior pulumi.StringPtrInput
   458  	// The [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`.
   459  	PayloadFormatVersion pulumi.StringPtrInput
   460  	// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
   461  	// For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
   462  	// For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
   463  	// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
   464  	RequestParameters pulumi.StringMapInput
   465  	// 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.
   466  	RequestTemplates pulumi.StringMapInput
   467  	// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
   468  	ResponseParameters IntegrationResponseParameterArrayInput
   469  	// The [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.
   470  	TemplateSelectionExpression pulumi.StringPtrInput
   471  	// Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
   472  	// The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
   473  	// this provider will only perform drift detection of its value when present in a configuration.
   474  	TimeoutMilliseconds pulumi.IntPtrInput
   475  	// TLS configuration for a private integration. Supported only for HTTP APIs.
   476  	TlsConfig IntegrationTlsConfigPtrInput
   477  }
   478  
   479  func (IntegrationArgs) ElementType() reflect.Type {
   480  	return reflect.TypeOf((*integrationArgs)(nil)).Elem()
   481  }
   482  
   483  type IntegrationInput interface {
   484  	pulumi.Input
   485  
   486  	ToIntegrationOutput() IntegrationOutput
   487  	ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput
   488  }
   489  
   490  func (*Integration) ElementType() reflect.Type {
   491  	return reflect.TypeOf((**Integration)(nil)).Elem()
   492  }
   493  
   494  func (i *Integration) ToIntegrationOutput() IntegrationOutput {
   495  	return i.ToIntegrationOutputWithContext(context.Background())
   496  }
   497  
   498  func (i *Integration) ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput {
   499  	return pulumi.ToOutputWithContext(ctx, i).(IntegrationOutput)
   500  }
   501  
   502  // IntegrationArrayInput is an input type that accepts IntegrationArray and IntegrationArrayOutput values.
   503  // You can construct a concrete instance of `IntegrationArrayInput` via:
   504  //
   505  //	IntegrationArray{ IntegrationArgs{...} }
   506  type IntegrationArrayInput interface {
   507  	pulumi.Input
   508  
   509  	ToIntegrationArrayOutput() IntegrationArrayOutput
   510  	ToIntegrationArrayOutputWithContext(context.Context) IntegrationArrayOutput
   511  }
   512  
   513  type IntegrationArray []IntegrationInput
   514  
   515  func (IntegrationArray) ElementType() reflect.Type {
   516  	return reflect.TypeOf((*[]*Integration)(nil)).Elem()
   517  }
   518  
   519  func (i IntegrationArray) ToIntegrationArrayOutput() IntegrationArrayOutput {
   520  	return i.ToIntegrationArrayOutputWithContext(context.Background())
   521  }
   522  
   523  func (i IntegrationArray) ToIntegrationArrayOutputWithContext(ctx context.Context) IntegrationArrayOutput {
   524  	return pulumi.ToOutputWithContext(ctx, i).(IntegrationArrayOutput)
   525  }
   526  
   527  // IntegrationMapInput is an input type that accepts IntegrationMap and IntegrationMapOutput values.
   528  // You can construct a concrete instance of `IntegrationMapInput` via:
   529  //
   530  //	IntegrationMap{ "key": IntegrationArgs{...} }
   531  type IntegrationMapInput interface {
   532  	pulumi.Input
   533  
   534  	ToIntegrationMapOutput() IntegrationMapOutput
   535  	ToIntegrationMapOutputWithContext(context.Context) IntegrationMapOutput
   536  }
   537  
   538  type IntegrationMap map[string]IntegrationInput
   539  
   540  func (IntegrationMap) ElementType() reflect.Type {
   541  	return reflect.TypeOf((*map[string]*Integration)(nil)).Elem()
   542  }
   543  
   544  func (i IntegrationMap) ToIntegrationMapOutput() IntegrationMapOutput {
   545  	return i.ToIntegrationMapOutputWithContext(context.Background())
   546  }
   547  
   548  func (i IntegrationMap) ToIntegrationMapOutputWithContext(ctx context.Context) IntegrationMapOutput {
   549  	return pulumi.ToOutputWithContext(ctx, i).(IntegrationMapOutput)
   550  }
   551  
   552  type IntegrationOutput struct{ *pulumi.OutputState }
   553  
   554  func (IntegrationOutput) ElementType() reflect.Type {
   555  	return reflect.TypeOf((**Integration)(nil)).Elem()
   556  }
   557  
   558  func (o IntegrationOutput) ToIntegrationOutput() IntegrationOutput {
   559  	return o
   560  }
   561  
   562  func (o IntegrationOutput) ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput {
   563  	return o
   564  }
   565  
   566  // API identifier.
   567  func (o IntegrationOutput) ApiId() pulumi.StringOutput {
   568  	return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.ApiId }).(pulumi.StringOutput)
   569  }
   570  
   571  // ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
   572  func (o IntegrationOutput) ConnectionId() pulumi.StringPtrOutput {
   573  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.ConnectionId }).(pulumi.StringPtrOutput)
   574  }
   575  
   576  // Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
   577  func (o IntegrationOutput) ConnectionType() pulumi.StringPtrOutput {
   578  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.ConnectionType }).(pulumi.StringPtrOutput)
   579  }
   580  
   581  // How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
   582  func (o IntegrationOutput) ContentHandlingStrategy() pulumi.StringPtrOutput {
   583  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.ContentHandlingStrategy }).(pulumi.StringPtrOutput)
   584  }
   585  
   586  // Credentials required for the integration, if any.
   587  func (o IntegrationOutput) CredentialsArn() pulumi.StringPtrOutput {
   588  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.CredentialsArn }).(pulumi.StringPtrOutput)
   589  }
   590  
   591  // Description of the integration.
   592  func (o IntegrationOutput) Description() pulumi.StringPtrOutput {
   593  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   594  }
   595  
   596  // Integration's HTTP method. Must be specified if `integrationType` is not `MOCK`.
   597  func (o IntegrationOutput) IntegrationMethod() pulumi.StringPtrOutput {
   598  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.IntegrationMethod }).(pulumi.StringPtrOutput)
   599  }
   600  
   601  // The [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.
   602  func (o IntegrationOutput) IntegrationResponseSelectionExpression() pulumi.StringOutput {
   603  	return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.IntegrationResponseSelectionExpression }).(pulumi.StringOutput)
   604  }
   605  
   606  // 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.
   607  func (o IntegrationOutput) IntegrationSubtype() pulumi.StringPtrOutput {
   608  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.IntegrationSubtype }).(pulumi.StringPtrOutput)
   609  }
   610  
   611  // Integration type of an integration.
   612  // 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`.
   613  func (o IntegrationOutput) IntegrationType() pulumi.StringOutput {
   614  	return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.IntegrationType }).(pulumi.StringOutput)
   615  }
   616  
   617  // URI of the Lambda function for a Lambda proxy integration, when `integrationType` is `AWS_PROXY`.
   618  // 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.
   619  func (o IntegrationOutput) IntegrationUri() pulumi.StringPtrOutput {
   620  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.IntegrationUri }).(pulumi.StringPtrOutput)
   621  }
   622  
   623  // 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.
   624  // Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
   625  func (o IntegrationOutput) PassthroughBehavior() pulumi.StringPtrOutput {
   626  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.PassthroughBehavior }).(pulumi.StringPtrOutput)
   627  }
   628  
   629  // The [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`.
   630  func (o IntegrationOutput) PayloadFormatVersion() pulumi.StringPtrOutput {
   631  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.PayloadFormatVersion }).(pulumi.StringPtrOutput)
   632  }
   633  
   634  // For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
   635  // For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
   636  // For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
   637  // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
   638  func (o IntegrationOutput) RequestParameters() pulumi.StringMapOutput {
   639  	return o.ApplyT(func(v *Integration) pulumi.StringMapOutput { return v.RequestParameters }).(pulumi.StringMapOutput)
   640  }
   641  
   642  // 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.
   643  func (o IntegrationOutput) RequestTemplates() pulumi.StringMapOutput {
   644  	return o.ApplyT(func(v *Integration) pulumi.StringMapOutput { return v.RequestTemplates }).(pulumi.StringMapOutput)
   645  }
   646  
   647  // Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
   648  func (o IntegrationOutput) ResponseParameters() IntegrationResponseParameterArrayOutput {
   649  	return o.ApplyT(func(v *Integration) IntegrationResponseParameterArrayOutput { return v.ResponseParameters }).(IntegrationResponseParameterArrayOutput)
   650  }
   651  
   652  // The [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.
   653  func (o IntegrationOutput) TemplateSelectionExpression() pulumi.StringPtrOutput {
   654  	return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.TemplateSelectionExpression }).(pulumi.StringPtrOutput)
   655  }
   656  
   657  // Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
   658  // The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
   659  // this provider will only perform drift detection of its value when present in a configuration.
   660  func (o IntegrationOutput) TimeoutMilliseconds() pulumi.IntOutput {
   661  	return o.ApplyT(func(v *Integration) pulumi.IntOutput { return v.TimeoutMilliseconds }).(pulumi.IntOutput)
   662  }
   663  
   664  // TLS configuration for a private integration. Supported only for HTTP APIs.
   665  func (o IntegrationOutput) TlsConfig() IntegrationTlsConfigPtrOutput {
   666  	return o.ApplyT(func(v *Integration) IntegrationTlsConfigPtrOutput { return v.TlsConfig }).(IntegrationTlsConfigPtrOutput)
   667  }
   668  
   669  type IntegrationArrayOutput struct{ *pulumi.OutputState }
   670  
   671  func (IntegrationArrayOutput) ElementType() reflect.Type {
   672  	return reflect.TypeOf((*[]*Integration)(nil)).Elem()
   673  }
   674  
   675  func (o IntegrationArrayOutput) ToIntegrationArrayOutput() IntegrationArrayOutput {
   676  	return o
   677  }
   678  
   679  func (o IntegrationArrayOutput) ToIntegrationArrayOutputWithContext(ctx context.Context) IntegrationArrayOutput {
   680  	return o
   681  }
   682  
   683  func (o IntegrationArrayOutput) Index(i pulumi.IntInput) IntegrationOutput {
   684  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Integration {
   685  		return vs[0].([]*Integration)[vs[1].(int)]
   686  	}).(IntegrationOutput)
   687  }
   688  
   689  type IntegrationMapOutput struct{ *pulumi.OutputState }
   690  
   691  func (IntegrationMapOutput) ElementType() reflect.Type {
   692  	return reflect.TypeOf((*map[string]*Integration)(nil)).Elem()
   693  }
   694  
   695  func (o IntegrationMapOutput) ToIntegrationMapOutput() IntegrationMapOutput {
   696  	return o
   697  }
   698  
   699  func (o IntegrationMapOutput) ToIntegrationMapOutputWithContext(ctx context.Context) IntegrationMapOutput {
   700  	return o
   701  }
   702  
   703  func (o IntegrationMapOutput) MapIndex(k pulumi.StringInput) IntegrationOutput {
   704  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Integration {
   705  		return vs[0].(map[string]*Integration)[vs[1].(string)]
   706  	}).(IntegrationOutput)
   707  }
   708  
   709  func init() {
   710  	pulumi.RegisterInputType(reflect.TypeOf((*IntegrationInput)(nil)).Elem(), &Integration{})
   711  	pulumi.RegisterInputType(reflect.TypeOf((*IntegrationArrayInput)(nil)).Elem(), IntegrationArray{})
   712  	pulumi.RegisterInputType(reflect.TypeOf((*IntegrationMapInput)(nil)).Elem(), IntegrationMap{})
   713  	pulumi.RegisterOutputType(IntegrationOutput{})
   714  	pulumi.RegisterOutputType(IntegrationArrayOutput{})
   715  	pulumi.RegisterOutputType(IntegrationMapOutput{})
   716  }