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 }