github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/apigateway/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 apigateway 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 // Provides an HTTP Method Integration for an API Gateway Integration. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{ 33 // Name: pulumi.String("MyDemoAPI"), 34 // Description: pulumi.String("This is my API for demonstration purposes"), 35 // }) 36 // if err != nil { 37 // return err 38 // } 39 // myDemoResource, err := apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{ 40 // RestApi: myDemoAPI.ID(), 41 // ParentId: myDemoAPI.RootResourceId, 42 // PathPart: pulumi.String("mydemoresource"), 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // myDemoMethod, err := apigateway.NewMethod(ctx, "MyDemoMethod", &apigateway.MethodArgs{ 48 // RestApi: myDemoAPI.ID(), 49 // ResourceId: myDemoResource.ID(), 50 // HttpMethod: pulumi.String("GET"), 51 // Authorization: pulumi.String("NONE"), 52 // }) 53 // if err != nil { 54 // return err 55 // } 56 // _, err = apigateway.NewIntegration(ctx, "MyDemoIntegration", &apigateway.IntegrationArgs{ 57 // RestApi: myDemoAPI.ID(), 58 // ResourceId: myDemoResource.ID(), 59 // HttpMethod: myDemoMethod.HttpMethod, 60 // Type: pulumi.String("MOCK"), 61 // CacheKeyParameters: pulumi.StringArray{ 62 // pulumi.String("method.request.path.param"), 63 // }, 64 // CacheNamespace: pulumi.String("foobar"), 65 // TimeoutMilliseconds: pulumi.Int(29000), 66 // RequestParameters: pulumi.StringMap{ 67 // "integration.request.header.X-Authorization": pulumi.String("'static'"), 68 // }, 69 // RequestTemplates: pulumi.StringMap{ 70 // "application/xml": pulumi.String("{\n \"body\" : $input.json('$')\n}\n"), 71 // }, 72 // }) 73 // if err != nil { 74 // return err 75 // } 76 // return nil 77 // }) 78 // } 79 // 80 // ``` 81 // <!--End PulumiCodeChooser --> 82 // 83 // ## Lambda integration 84 // 85 // <!--Start PulumiCodeChooser --> 86 // ```go 87 // package main 88 // 89 // import ( 90 // 91 // "fmt" 92 // 93 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway" 94 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 95 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda" 96 // "github.com/pulumi/pulumi-std/sdk/go/std" 97 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 98 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" 99 // 100 // ) 101 // 102 // func main() { 103 // pulumi.Run(func(ctx *pulumi.Context) error { 104 // cfg := config.New(ctx, "") 105 // myregion := cfg.RequireObject("myregion") 106 // accountId := cfg.RequireObject("accountId") 107 // // API Gateway 108 // api, err := apigateway.NewRestApi(ctx, "api", &apigateway.RestApiArgs{ 109 // Name: pulumi.String("myapi"), 110 // }) 111 // if err != nil { 112 // return err 113 // } 114 // resource, err := apigateway.NewResource(ctx, "resource", &apigateway.ResourceArgs{ 115 // PathPart: pulumi.String("resource"), 116 // ParentId: api.RootResourceId, 117 // RestApi: api.ID(), 118 // }) 119 // if err != nil { 120 // return err 121 // } 122 // method, err := apigateway.NewMethod(ctx, "method", &apigateway.MethodArgs{ 123 // RestApi: api.ID(), 124 // ResourceId: resource.ID(), 125 // HttpMethod: pulumi.String("GET"), 126 // Authorization: pulumi.String("NONE"), 127 // }) 128 // if err != nil { 129 // return err 130 // } 131 // // IAM 132 // assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 133 // Statements: []iam.GetPolicyDocumentStatement{ 134 // { 135 // Effect: pulumi.StringRef("Allow"), 136 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 137 // { 138 // Type: "Service", 139 // Identifiers: []string{ 140 // "lambda.amazonaws.com", 141 // }, 142 // }, 143 // }, 144 // Actions: []string{ 145 // "sts:AssumeRole", 146 // }, 147 // }, 148 // }, 149 // }, nil) 150 // if err != nil { 151 // return err 152 // } 153 // role, err := iam.NewRole(ctx, "role", &iam.RoleArgs{ 154 // Name: pulumi.String("myrole"), 155 // AssumeRolePolicy: pulumi.String(assumeRole.Json), 156 // }) 157 // if err != nil { 158 // return err 159 // } 160 // invokeFilebase64sha256, err := std.Filebase64sha256(ctx, &std.Filebase64sha256Args{ 161 // Input: "lambda.zip", 162 // }, nil) 163 // if err != nil { 164 // return err 165 // } 166 // lambda, err := lambda.NewFunction(ctx, "lambda", &lambda.FunctionArgs{ 167 // Code: pulumi.NewFileArchive("lambda.zip"), 168 // Name: pulumi.String("mylambda"), 169 // Role: role.Arn, 170 // Handler: pulumi.String("lambda.lambda_handler"), 171 // Runtime: pulumi.String(lambda.RuntimePython3d7), 172 // SourceCodeHash: invokeFilebase64sha256.Result, 173 // }) 174 // if err != nil { 175 // return err 176 // } 177 // _, err = apigateway.NewIntegration(ctx, "integration", &apigateway.IntegrationArgs{ 178 // RestApi: api.ID(), 179 // ResourceId: resource.ID(), 180 // HttpMethod: method.HttpMethod, 181 // IntegrationHttpMethod: pulumi.String("POST"), 182 // Type: pulumi.String("AWS_PROXY"), 183 // Uri: lambda.InvokeArn, 184 // }) 185 // if err != nil { 186 // return err 187 // } 188 // // Lambda 189 // _, err = lambda.NewPermission(ctx, "apigw_lambda", &lambda.PermissionArgs{ 190 // StatementId: pulumi.String("AllowExecutionFromAPIGateway"), 191 // Action: pulumi.String("lambda:InvokeFunction"), 192 // Function: lambda.Name, 193 // Principal: pulumi.String("apigateway.amazonaws.com"), 194 // SourceArn: pulumi.All(api.ID(), method.HttpMethod, resource.Path).ApplyT(func(_args []interface{}) (string, error) { 195 // id := _args[0].(string) 196 // httpMethod := _args[1].(string) 197 // path := _args[2].(string) 198 // return fmt.Sprintf("arn:aws:execute-api:%v:%v:%v/*/%v%v", myregion, accountId, id, httpMethod, path), nil 199 // }).(pulumi.StringOutput), 200 // }) 201 // if err != nil { 202 // return err 203 // } 204 // return nil 205 // }) 206 // } 207 // 208 // ``` 209 // <!--End PulumiCodeChooser --> 210 // 211 // ## VPC Link 212 // 213 // <!--Start PulumiCodeChooser --> 214 // ```go 215 // package main 216 // 217 // import ( 218 // 219 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway" 220 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" 221 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 222 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" 223 // 224 // ) 225 // 226 // func main() { 227 // pulumi.Run(func(ctx *pulumi.Context) error { 228 // cfg := config.New(ctx, "") 229 // name := cfg.RequireObject("name") 230 // subnetId := cfg.RequireObject("subnetId") 231 // test, err := lb.NewLoadBalancer(ctx, "test", &lb.LoadBalancerArgs{ 232 // Name: pulumi.Any(name), 233 // Internal: pulumi.Bool(true), 234 // LoadBalancerType: pulumi.String("network"), 235 // Subnets: pulumi.StringArray{ 236 // subnetId, 237 // }, 238 // }) 239 // if err != nil { 240 // return err 241 // } 242 // testVpcLink, err := apigateway.NewVpcLink(ctx, "test", &apigateway.VpcLinkArgs{ 243 // Name: pulumi.Any(name), 244 // TargetArn: test.Arn, 245 // }) 246 // if err != nil { 247 // return err 248 // } 249 // testRestApi, err := apigateway.NewRestApi(ctx, "test", &apigateway.RestApiArgs{ 250 // Name: pulumi.Any(name), 251 // }) 252 // if err != nil { 253 // return err 254 // } 255 // testResource, err := apigateway.NewResource(ctx, "test", &apigateway.ResourceArgs{ 256 // RestApi: testRestApi.ID(), 257 // ParentId: testRestApi.RootResourceId, 258 // PathPart: pulumi.String("test"), 259 // }) 260 // if err != nil { 261 // return err 262 // } 263 // testMethod, err := apigateway.NewMethod(ctx, "test", &apigateway.MethodArgs{ 264 // RestApi: testRestApi.ID(), 265 // ResourceId: testResource.ID(), 266 // HttpMethod: pulumi.String("GET"), 267 // Authorization: pulumi.String("NONE"), 268 // RequestModels: pulumi.StringMap{ 269 // "application/json": pulumi.String("Error"), 270 // }, 271 // }) 272 // if err != nil { 273 // return err 274 // } 275 // _, err = apigateway.NewIntegration(ctx, "test", &apigateway.IntegrationArgs{ 276 // RestApi: testRestApi.ID(), 277 // ResourceId: testResource.ID(), 278 // HttpMethod: testMethod.HttpMethod, 279 // RequestTemplates: pulumi.StringMap{ 280 // "application/json": pulumi.String(""), 281 // "application/xml": pulumi.String("#set($inputRoot = $input.path('$'))\n{ }"), 282 // }, 283 // RequestParameters: pulumi.StringMap{ 284 // "integration.request.header.X-Authorization": pulumi.String("'static'"), 285 // "integration.request.header.X-Foo": pulumi.String("'Bar'"), 286 // }, 287 // Type: pulumi.String("HTTP"), 288 // Uri: pulumi.String("https://www.google.de"), 289 // IntegrationHttpMethod: pulumi.String("GET"), 290 // PassthroughBehavior: pulumi.String("WHEN_NO_MATCH"), 291 // ContentHandling: pulumi.String("CONVERT_TO_TEXT"), 292 // ConnectionType: pulumi.String("VPC_LINK"), 293 // ConnectionId: testVpcLink.ID(), 294 // }) 295 // if err != nil { 296 // return err 297 // } 298 // return nil 299 // }) 300 // } 301 // 302 // ``` 303 // <!--End PulumiCodeChooser --> 304 // 305 // ## Import 306 // 307 // Using `pulumi import`, import `aws_api_gateway_integration` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD`. For example: 308 // 309 // ```sh 310 // $ pulumi import aws:apigateway/integration:Integration example 12345abcde/67890fghij/GET 311 // ``` 312 type Integration struct { 313 pulumi.CustomResourceState 314 315 // List of cache key parameters for the integration. 316 CacheKeyParameters pulumi.StringArrayOutput `pulumi:"cacheKeyParameters"` 317 // Integration's cache namespace. 318 CacheNamespace pulumi.StringOutput `pulumi:"cacheNamespace"` 319 // ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK` 320 ConnectionId pulumi.StringPtrOutput `pulumi:"connectionId"` 321 // Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC). 322 ConnectionType pulumi.StringPtrOutput `pulumi:"connectionType"` 323 // How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. 324 ContentHandling pulumi.StringPtrOutput `pulumi:"contentHandling"` 325 // Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`. 326 Credentials pulumi.StringPtrOutput `pulumi:"credentials"` 327 // HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) 328 // when calling the associated resource. 329 HttpMethod pulumi.StringOutput `pulumi:"httpMethod"` 330 // Integration HTTP method 331 // (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. 332 // **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 333 // Not all methods are compatible with all `AWS` integrations. 334 // e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`. 335 IntegrationHttpMethod pulumi.StringPtrOutput `pulumi:"integrationHttpMethod"` 336 // Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used. 337 PassthroughBehavior pulumi.StringOutput `pulumi:"passthroughBehavior"` 338 // Map of request query string parameters and headers that should be passed to the backend responder. 339 // For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }` 340 RequestParameters pulumi.StringMapOutput `pulumi:"requestParameters"` 341 // Map of the integration's request templates. 342 RequestTemplates pulumi.StringMapOutput `pulumi:"requestTemplates"` 343 // API resource ID. 344 ResourceId pulumi.StringOutput `pulumi:"resourceId"` 345 // ID of the associated REST API. 346 RestApi pulumi.StringOutput `pulumi:"restApi"` 347 // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. 348 TimeoutMilliseconds pulumi.IntPtrOutput `pulumi:"timeoutMilliseconds"` 349 // TLS configuration. See below. 350 TlsConfig IntegrationTlsConfigPtrOutput `pulumi:"tlsConfig"` 351 // Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. 352 Type pulumi.StringOutput `pulumi:"type"` 353 // Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 354 // For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. 355 // e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. 356 Uri pulumi.StringPtrOutput `pulumi:"uri"` 357 } 358 359 // NewIntegration registers a new resource with the given unique name, arguments, and options. 360 func NewIntegration(ctx *pulumi.Context, 361 name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error) { 362 if args == nil { 363 return nil, errors.New("missing one or more required arguments") 364 } 365 366 if args.HttpMethod == nil { 367 return nil, errors.New("invalid value for required argument 'HttpMethod'") 368 } 369 if args.ResourceId == nil { 370 return nil, errors.New("invalid value for required argument 'ResourceId'") 371 } 372 if args.RestApi == nil { 373 return nil, errors.New("invalid value for required argument 'RestApi'") 374 } 375 if args.Type == nil { 376 return nil, errors.New("invalid value for required argument 'Type'") 377 } 378 opts = internal.PkgResourceDefaultOpts(opts) 379 var resource Integration 380 err := ctx.RegisterResource("aws:apigateway/integration:Integration", name, args, &resource, opts...) 381 if err != nil { 382 return nil, err 383 } 384 return &resource, nil 385 } 386 387 // GetIntegration gets an existing Integration resource's state with the given name, ID, and optional 388 // state properties that are used to uniquely qualify the lookup (nil if not required). 389 func GetIntegration(ctx *pulumi.Context, 390 name string, id pulumi.IDInput, state *IntegrationState, opts ...pulumi.ResourceOption) (*Integration, error) { 391 var resource Integration 392 err := ctx.ReadResource("aws:apigateway/integration:Integration", name, id, state, &resource, opts...) 393 if err != nil { 394 return nil, err 395 } 396 return &resource, nil 397 } 398 399 // Input properties used for looking up and filtering Integration resources. 400 type integrationState struct { 401 // List of cache key parameters for the integration. 402 CacheKeyParameters []string `pulumi:"cacheKeyParameters"` 403 // Integration's cache namespace. 404 CacheNamespace *string `pulumi:"cacheNamespace"` 405 // ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK` 406 ConnectionId *string `pulumi:"connectionId"` 407 // Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC). 408 ConnectionType *string `pulumi:"connectionType"` 409 // How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. 410 ContentHandling *string `pulumi:"contentHandling"` 411 // Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`. 412 Credentials *string `pulumi:"credentials"` 413 // HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) 414 // when calling the associated resource. 415 HttpMethod *string `pulumi:"httpMethod"` 416 // Integration HTTP method 417 // (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. 418 // **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 419 // Not all methods are compatible with all `AWS` integrations. 420 // e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`. 421 IntegrationHttpMethod *string `pulumi:"integrationHttpMethod"` 422 // Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used. 423 PassthroughBehavior *string `pulumi:"passthroughBehavior"` 424 // Map of request query string parameters and headers that should be passed to the backend responder. 425 // For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }` 426 RequestParameters map[string]string `pulumi:"requestParameters"` 427 // Map of the integration's request templates. 428 RequestTemplates map[string]string `pulumi:"requestTemplates"` 429 // API resource ID. 430 ResourceId *string `pulumi:"resourceId"` 431 // ID of the associated REST API. 432 RestApi interface{} `pulumi:"restApi"` 433 // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. 434 TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"` 435 // TLS configuration. See below. 436 TlsConfig *IntegrationTlsConfig `pulumi:"tlsConfig"` 437 // Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. 438 Type *string `pulumi:"type"` 439 // Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 440 // For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. 441 // e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. 442 Uri *string `pulumi:"uri"` 443 } 444 445 type IntegrationState struct { 446 // List of cache key parameters for the integration. 447 CacheKeyParameters pulumi.StringArrayInput 448 // Integration's cache namespace. 449 CacheNamespace pulumi.StringPtrInput 450 // ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK` 451 ConnectionId pulumi.StringPtrInput 452 // Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC). 453 ConnectionType pulumi.StringPtrInput 454 // How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. 455 ContentHandling pulumi.StringPtrInput 456 // Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`. 457 Credentials pulumi.StringPtrInput 458 // HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) 459 // when calling the associated resource. 460 HttpMethod pulumi.StringPtrInput 461 // Integration HTTP method 462 // (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. 463 // **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 464 // Not all methods are compatible with all `AWS` integrations. 465 // e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`. 466 IntegrationHttpMethod pulumi.StringPtrInput 467 // Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used. 468 PassthroughBehavior pulumi.StringPtrInput 469 // Map of request query string parameters and headers that should be passed to the backend responder. 470 // For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }` 471 RequestParameters pulumi.StringMapInput 472 // Map of the integration's request templates. 473 RequestTemplates pulumi.StringMapInput 474 // API resource ID. 475 ResourceId pulumi.StringPtrInput 476 // ID of the associated REST API. 477 RestApi pulumi.Input 478 // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. 479 TimeoutMilliseconds pulumi.IntPtrInput 480 // TLS configuration. See below. 481 TlsConfig IntegrationTlsConfigPtrInput 482 // Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. 483 Type pulumi.StringPtrInput 484 // Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 485 // For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. 486 // e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. 487 Uri pulumi.StringPtrInput 488 } 489 490 func (IntegrationState) ElementType() reflect.Type { 491 return reflect.TypeOf((*integrationState)(nil)).Elem() 492 } 493 494 type integrationArgs struct { 495 // List of cache key parameters for the integration. 496 CacheKeyParameters []string `pulumi:"cacheKeyParameters"` 497 // Integration's cache namespace. 498 CacheNamespace *string `pulumi:"cacheNamespace"` 499 // ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK` 500 ConnectionId *string `pulumi:"connectionId"` 501 // Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC). 502 ConnectionType *string `pulumi:"connectionType"` 503 // How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. 504 ContentHandling *string `pulumi:"contentHandling"` 505 // Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`. 506 Credentials *string `pulumi:"credentials"` 507 // HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) 508 // when calling the associated resource. 509 HttpMethod string `pulumi:"httpMethod"` 510 // Integration HTTP method 511 // (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. 512 // **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 513 // Not all methods are compatible with all `AWS` integrations. 514 // e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`. 515 IntegrationHttpMethod *string `pulumi:"integrationHttpMethod"` 516 // Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used. 517 PassthroughBehavior *string `pulumi:"passthroughBehavior"` 518 // Map of request query string parameters and headers that should be passed to the backend responder. 519 // For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }` 520 RequestParameters map[string]string `pulumi:"requestParameters"` 521 // Map of the integration's request templates. 522 RequestTemplates map[string]string `pulumi:"requestTemplates"` 523 // API resource ID. 524 ResourceId string `pulumi:"resourceId"` 525 // ID of the associated REST API. 526 RestApi interface{} `pulumi:"restApi"` 527 // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. 528 TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"` 529 // TLS configuration. See below. 530 TlsConfig *IntegrationTlsConfig `pulumi:"tlsConfig"` 531 // Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. 532 Type string `pulumi:"type"` 533 // Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 534 // For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. 535 // e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. 536 Uri *string `pulumi:"uri"` 537 } 538 539 // The set of arguments for constructing a Integration resource. 540 type IntegrationArgs struct { 541 // List of cache key parameters for the integration. 542 CacheKeyParameters pulumi.StringArrayInput 543 // Integration's cache namespace. 544 CacheNamespace pulumi.StringPtrInput 545 // ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK` 546 ConnectionId pulumi.StringPtrInput 547 // Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC). 548 ConnectionType pulumi.StringPtrInput 549 // How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. 550 ContentHandling pulumi.StringPtrInput 551 // Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`. 552 Credentials pulumi.StringPtrInput 553 // HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) 554 // when calling the associated resource. 555 HttpMethod pulumi.StringInput 556 // Integration HTTP method 557 // (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. 558 // **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 559 // Not all methods are compatible with all `AWS` integrations. 560 // e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`. 561 IntegrationHttpMethod pulumi.StringPtrInput 562 // Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used. 563 PassthroughBehavior pulumi.StringPtrInput 564 // Map of request query string parameters and headers that should be passed to the backend responder. 565 // For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }` 566 RequestParameters pulumi.StringMapInput 567 // Map of the integration's request templates. 568 RequestTemplates pulumi.StringMapInput 569 // API resource ID. 570 ResourceId pulumi.StringInput 571 // ID of the associated REST API. 572 RestApi pulumi.Input 573 // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. 574 TimeoutMilliseconds pulumi.IntPtrInput 575 // TLS configuration. See below. 576 TlsConfig IntegrationTlsConfigPtrInput 577 // Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. 578 Type pulumi.StringInput 579 // Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 580 // For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. 581 // e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. 582 Uri pulumi.StringPtrInput 583 } 584 585 func (IntegrationArgs) ElementType() reflect.Type { 586 return reflect.TypeOf((*integrationArgs)(nil)).Elem() 587 } 588 589 type IntegrationInput interface { 590 pulumi.Input 591 592 ToIntegrationOutput() IntegrationOutput 593 ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput 594 } 595 596 func (*Integration) ElementType() reflect.Type { 597 return reflect.TypeOf((**Integration)(nil)).Elem() 598 } 599 600 func (i *Integration) ToIntegrationOutput() IntegrationOutput { 601 return i.ToIntegrationOutputWithContext(context.Background()) 602 } 603 604 func (i *Integration) ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput { 605 return pulumi.ToOutputWithContext(ctx, i).(IntegrationOutput) 606 } 607 608 // IntegrationArrayInput is an input type that accepts IntegrationArray and IntegrationArrayOutput values. 609 // You can construct a concrete instance of `IntegrationArrayInput` via: 610 // 611 // IntegrationArray{ IntegrationArgs{...} } 612 type IntegrationArrayInput interface { 613 pulumi.Input 614 615 ToIntegrationArrayOutput() IntegrationArrayOutput 616 ToIntegrationArrayOutputWithContext(context.Context) IntegrationArrayOutput 617 } 618 619 type IntegrationArray []IntegrationInput 620 621 func (IntegrationArray) ElementType() reflect.Type { 622 return reflect.TypeOf((*[]*Integration)(nil)).Elem() 623 } 624 625 func (i IntegrationArray) ToIntegrationArrayOutput() IntegrationArrayOutput { 626 return i.ToIntegrationArrayOutputWithContext(context.Background()) 627 } 628 629 func (i IntegrationArray) ToIntegrationArrayOutputWithContext(ctx context.Context) IntegrationArrayOutput { 630 return pulumi.ToOutputWithContext(ctx, i).(IntegrationArrayOutput) 631 } 632 633 // IntegrationMapInput is an input type that accepts IntegrationMap and IntegrationMapOutput values. 634 // You can construct a concrete instance of `IntegrationMapInput` via: 635 // 636 // IntegrationMap{ "key": IntegrationArgs{...} } 637 type IntegrationMapInput interface { 638 pulumi.Input 639 640 ToIntegrationMapOutput() IntegrationMapOutput 641 ToIntegrationMapOutputWithContext(context.Context) IntegrationMapOutput 642 } 643 644 type IntegrationMap map[string]IntegrationInput 645 646 func (IntegrationMap) ElementType() reflect.Type { 647 return reflect.TypeOf((*map[string]*Integration)(nil)).Elem() 648 } 649 650 func (i IntegrationMap) ToIntegrationMapOutput() IntegrationMapOutput { 651 return i.ToIntegrationMapOutputWithContext(context.Background()) 652 } 653 654 func (i IntegrationMap) ToIntegrationMapOutputWithContext(ctx context.Context) IntegrationMapOutput { 655 return pulumi.ToOutputWithContext(ctx, i).(IntegrationMapOutput) 656 } 657 658 type IntegrationOutput struct{ *pulumi.OutputState } 659 660 func (IntegrationOutput) ElementType() reflect.Type { 661 return reflect.TypeOf((**Integration)(nil)).Elem() 662 } 663 664 func (o IntegrationOutput) ToIntegrationOutput() IntegrationOutput { 665 return o 666 } 667 668 func (o IntegrationOutput) ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput { 669 return o 670 } 671 672 // List of cache key parameters for the integration. 673 func (o IntegrationOutput) CacheKeyParameters() pulumi.StringArrayOutput { 674 return o.ApplyT(func(v *Integration) pulumi.StringArrayOutput { return v.CacheKeyParameters }).(pulumi.StringArrayOutput) 675 } 676 677 // Integration's cache namespace. 678 func (o IntegrationOutput) CacheNamespace() pulumi.StringOutput { 679 return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.CacheNamespace }).(pulumi.StringOutput) 680 } 681 682 // ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK` 683 func (o IntegrationOutput) ConnectionId() pulumi.StringPtrOutput { 684 return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.ConnectionId }).(pulumi.StringPtrOutput) 685 } 686 687 // Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC). 688 func (o IntegrationOutput) ConnectionType() pulumi.StringPtrOutput { 689 return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.ConnectionType }).(pulumi.StringPtrOutput) 690 } 691 692 // How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through. 693 func (o IntegrationOutput) ContentHandling() pulumi.StringPtrOutput { 694 return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.ContentHandling }).(pulumi.StringPtrOutput) 695 } 696 697 // Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*`. 698 func (o IntegrationOutput) Credentials() pulumi.StringPtrOutput { 699 return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.Credentials }).(pulumi.StringPtrOutput) 700 } 701 702 // HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) 703 // when calling the associated resource. 704 func (o IntegrationOutput) HttpMethod() pulumi.StringOutput { 705 return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.HttpMethod }).(pulumi.StringOutput) 706 } 707 708 // Integration HTTP method 709 // (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end. 710 // **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 711 // Not all methods are compatible with all `AWS` integrations. 712 // e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`. 713 func (o IntegrationOutput) IntegrationHttpMethod() pulumi.StringPtrOutput { 714 return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.IntegrationHttpMethod }).(pulumi.StringPtrOutput) 715 } 716 717 // Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used. 718 func (o IntegrationOutput) PassthroughBehavior() pulumi.StringOutput { 719 return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.PassthroughBehavior }).(pulumi.StringOutput) 720 } 721 722 // Map of request query string parameters and headers that should be passed to the backend responder. 723 // For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }` 724 func (o IntegrationOutput) RequestParameters() pulumi.StringMapOutput { 725 return o.ApplyT(func(v *Integration) pulumi.StringMapOutput { return v.RequestParameters }).(pulumi.StringMapOutput) 726 } 727 728 // Map of the integration's request templates. 729 func (o IntegrationOutput) RequestTemplates() pulumi.StringMapOutput { 730 return o.ApplyT(func(v *Integration) pulumi.StringMapOutput { return v.RequestTemplates }).(pulumi.StringMapOutput) 731 } 732 733 // API resource ID. 734 func (o IntegrationOutput) ResourceId() pulumi.StringOutput { 735 return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) 736 } 737 738 // ID of the associated REST API. 739 func (o IntegrationOutput) RestApi() pulumi.StringOutput { 740 return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.RestApi }).(pulumi.StringOutput) 741 } 742 743 // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. 744 func (o IntegrationOutput) TimeoutMilliseconds() pulumi.IntPtrOutput { 745 return o.ApplyT(func(v *Integration) pulumi.IntPtrOutput { return v.TimeoutMilliseconds }).(pulumi.IntPtrOutput) 746 } 747 748 // TLS configuration. See below. 749 func (o IntegrationOutput) TlsConfig() IntegrationTlsConfigPtrOutput { 750 return o.ApplyT(func(v *Integration) IntegrationTlsConfigPtrOutput { return v.TlsConfig }).(IntegrationTlsConfigPtrOutput) 751 } 752 753 // Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. 754 func (o IntegrationOutput) Type() pulumi.StringOutput { 755 return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 756 } 757 758 // Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. 759 // For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. 760 // e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:012345678901:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation. 761 func (o IntegrationOutput) Uri() pulumi.StringPtrOutput { 762 return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.Uri }).(pulumi.StringPtrOutput) 763 } 764 765 type IntegrationArrayOutput struct{ *pulumi.OutputState } 766 767 func (IntegrationArrayOutput) ElementType() reflect.Type { 768 return reflect.TypeOf((*[]*Integration)(nil)).Elem() 769 } 770 771 func (o IntegrationArrayOutput) ToIntegrationArrayOutput() IntegrationArrayOutput { 772 return o 773 } 774 775 func (o IntegrationArrayOutput) ToIntegrationArrayOutputWithContext(ctx context.Context) IntegrationArrayOutput { 776 return o 777 } 778 779 func (o IntegrationArrayOutput) Index(i pulumi.IntInput) IntegrationOutput { 780 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Integration { 781 return vs[0].([]*Integration)[vs[1].(int)] 782 }).(IntegrationOutput) 783 } 784 785 type IntegrationMapOutput struct{ *pulumi.OutputState } 786 787 func (IntegrationMapOutput) ElementType() reflect.Type { 788 return reflect.TypeOf((*map[string]*Integration)(nil)).Elem() 789 } 790 791 func (o IntegrationMapOutput) ToIntegrationMapOutput() IntegrationMapOutput { 792 return o 793 } 794 795 func (o IntegrationMapOutput) ToIntegrationMapOutputWithContext(ctx context.Context) IntegrationMapOutput { 796 return o 797 } 798 799 func (o IntegrationMapOutput) MapIndex(k pulumi.StringInput) IntegrationOutput { 800 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Integration { 801 return vs[0].(map[string]*Integration)[vs[1].(string)] 802 }).(IntegrationOutput) 803 } 804 805 func init() { 806 pulumi.RegisterInputType(reflect.TypeOf((*IntegrationInput)(nil)).Elem(), &Integration{}) 807 pulumi.RegisterInputType(reflect.TypeOf((*IntegrationArrayInput)(nil)).Elem(), IntegrationArray{}) 808 pulumi.RegisterInputType(reflect.TypeOf((*IntegrationMapInput)(nil)).Elem(), IntegrationMap{}) 809 pulumi.RegisterOutputType(IntegrationOutput{}) 810 pulumi.RegisterOutputType(IntegrationArrayOutput{}) 811 pulumi.RegisterOutputType(IntegrationMapOutput{}) 812 }