apigateway

package
v6.32.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2024 License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	pulumi.CustomResourceState

	// The version of the API keys used for the account.
	ApiKeyVersion pulumi.StringOutput `pulumi:"apiKeyVersion"`
	// ARN of an IAM role for CloudWatch (to allow logging & monitoring). See more [in AWS Docs](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-stage-settings.html#how-to-stage-settings-console). Logging & monitoring can be enabled/disabled and otherwise tuned on the API Gateway Stage level.
	CloudwatchRoleArn pulumi.StringPtrOutput `pulumi:"cloudwatchRoleArn"`
	// A list of features supported for the account.
	Features pulumi.StringArrayOutput `pulumi:"features"`
	// Account-Level throttle settings. See exported fields below.
	ThrottleSettings AccountThrottleSettingArrayOutput `pulumi:"throttleSettings"`
}

Provides a settings of an API Gateway Account. Settings is applied region-wide per `provider` block.

> **Note:** As there is no API method for deleting account settings or resetting it to defaults, destroying this resource will keep your account settings intact

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						{
							Type: "Service",
							Identifiers: []string{
								"apigateway.amazonaws.com",
							},
						},
					},
					Actions: []string{
						"sts:AssumeRole",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		cloudwatchRole, err := iam.NewRole(ctx, "cloudwatch", &iam.RoleArgs{
			Name:             pulumi.String("api_gateway_cloudwatch_global"),
			AssumeRolePolicy: pulumi.String(assumeRole.Json),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewAccount(ctx, "demo", &apigateway.AccountArgs{
			CloudwatchRoleArn: cloudwatchRole.Arn,
		})
		if err != nil {
			return err
		}
		cloudwatch, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Actions: []string{
						"logs:CreateLogGroup",
						"logs:CreateLogStream",
						"logs:DescribeLogGroups",
						"logs:DescribeLogStreams",
						"logs:PutLogEvents",
						"logs:GetLogEvents",
						"logs:FilterLogEvents",
					},
					Resources: []string{
						"*",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "cloudwatch", &iam.RolePolicyArgs{
			Name:   pulumi.String("default"),
			Role:   cloudwatchRole.ID(),
			Policy: pulumi.String(cloudwatch.Json),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway Accounts using the word `api-gateway-account`. For example:

```sh $ pulumi import aws:apigateway/account:Account demo api-gateway-account ```

func GetAccount

func GetAccount(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccountState, opts ...pulumi.ResourceOption) (*Account, error)

GetAccount gets an existing Account resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAccount

func NewAccount(ctx *pulumi.Context,
	name string, args *AccountArgs, opts ...pulumi.ResourceOption) (*Account, error)

NewAccount registers a new resource with the given unique name, arguments, and options.

func (*Account) ElementType

func (*Account) ElementType() reflect.Type

func (*Account) ToAccountOutput

func (i *Account) ToAccountOutput() AccountOutput

func (*Account) ToAccountOutputWithContext

func (i *Account) ToAccountOutputWithContext(ctx context.Context) AccountOutput

type AccountArgs

type AccountArgs struct {
	// ARN of an IAM role for CloudWatch (to allow logging & monitoring). See more [in AWS Docs](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-stage-settings.html#how-to-stage-settings-console). Logging & monitoring can be enabled/disabled and otherwise tuned on the API Gateway Stage level.
	CloudwatchRoleArn pulumi.StringPtrInput
}

The set of arguments for constructing a Account resource.

func (AccountArgs) ElementType

func (AccountArgs) ElementType() reflect.Type

type AccountArray

type AccountArray []AccountInput

func (AccountArray) ElementType

func (AccountArray) ElementType() reflect.Type

func (AccountArray) ToAccountArrayOutput

func (i AccountArray) ToAccountArrayOutput() AccountArrayOutput

func (AccountArray) ToAccountArrayOutputWithContext

func (i AccountArray) ToAccountArrayOutputWithContext(ctx context.Context) AccountArrayOutput

type AccountArrayInput

type AccountArrayInput interface {
	pulumi.Input

	ToAccountArrayOutput() AccountArrayOutput
	ToAccountArrayOutputWithContext(context.Context) AccountArrayOutput
}

AccountArrayInput is an input type that accepts AccountArray and AccountArrayOutput values. You can construct a concrete instance of `AccountArrayInput` via:

AccountArray{ AccountArgs{...} }

type AccountArrayOutput

type AccountArrayOutput struct{ *pulumi.OutputState }

func (AccountArrayOutput) ElementType

func (AccountArrayOutput) ElementType() reflect.Type

func (AccountArrayOutput) Index

func (AccountArrayOutput) ToAccountArrayOutput

func (o AccountArrayOutput) ToAccountArrayOutput() AccountArrayOutput

func (AccountArrayOutput) ToAccountArrayOutputWithContext

func (o AccountArrayOutput) ToAccountArrayOutputWithContext(ctx context.Context) AccountArrayOutput

type AccountInput

type AccountInput interface {
	pulumi.Input

	ToAccountOutput() AccountOutput
	ToAccountOutputWithContext(ctx context.Context) AccountOutput
}

type AccountMap

type AccountMap map[string]AccountInput

func (AccountMap) ElementType

func (AccountMap) ElementType() reflect.Type

func (AccountMap) ToAccountMapOutput

func (i AccountMap) ToAccountMapOutput() AccountMapOutput

func (AccountMap) ToAccountMapOutputWithContext

func (i AccountMap) ToAccountMapOutputWithContext(ctx context.Context) AccountMapOutput

type AccountMapInput

type AccountMapInput interface {
	pulumi.Input

	ToAccountMapOutput() AccountMapOutput
	ToAccountMapOutputWithContext(context.Context) AccountMapOutput
}

AccountMapInput is an input type that accepts AccountMap and AccountMapOutput values. You can construct a concrete instance of `AccountMapInput` via:

AccountMap{ "key": AccountArgs{...} }

type AccountMapOutput

type AccountMapOutput struct{ *pulumi.OutputState }

func (AccountMapOutput) ElementType

func (AccountMapOutput) ElementType() reflect.Type

func (AccountMapOutput) MapIndex

func (AccountMapOutput) ToAccountMapOutput

func (o AccountMapOutput) ToAccountMapOutput() AccountMapOutput

func (AccountMapOutput) ToAccountMapOutputWithContext

func (o AccountMapOutput) ToAccountMapOutputWithContext(ctx context.Context) AccountMapOutput

type AccountOutput

type AccountOutput struct{ *pulumi.OutputState }

func (AccountOutput) ApiKeyVersion added in v6.1.0

func (o AccountOutput) ApiKeyVersion() pulumi.StringOutput

The version of the API keys used for the account.

func (AccountOutput) CloudwatchRoleArn

func (o AccountOutput) CloudwatchRoleArn() pulumi.StringPtrOutput

ARN of an IAM role for CloudWatch (to allow logging & monitoring). See more [in AWS Docs](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-stage-settings.html#how-to-stage-settings-console). Logging & monitoring can be enabled/disabled and otherwise tuned on the API Gateway Stage level.

func (AccountOutput) ElementType

func (AccountOutput) ElementType() reflect.Type

func (AccountOutput) Features added in v6.1.0

func (o AccountOutput) Features() pulumi.StringArrayOutput

A list of features supported for the account.

func (AccountOutput) ThrottleSettings

func (o AccountOutput) ThrottleSettings() AccountThrottleSettingArrayOutput

Account-Level throttle settings. See exported fields below.

func (AccountOutput) ToAccountOutput

func (o AccountOutput) ToAccountOutput() AccountOutput

func (AccountOutput) ToAccountOutputWithContext

func (o AccountOutput) ToAccountOutputWithContext(ctx context.Context) AccountOutput

type AccountState

type AccountState struct {
	// The version of the API keys used for the account.
	ApiKeyVersion pulumi.StringPtrInput
	// ARN of an IAM role for CloudWatch (to allow logging & monitoring). See more [in AWS Docs](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-stage-settings.html#how-to-stage-settings-console). Logging & monitoring can be enabled/disabled and otherwise tuned on the API Gateway Stage level.
	CloudwatchRoleArn pulumi.StringPtrInput
	// A list of features supported for the account.
	Features pulumi.StringArrayInput
	// Account-Level throttle settings. See exported fields below.
	ThrottleSettings AccountThrottleSettingArrayInput
}

func (AccountState) ElementType

func (AccountState) ElementType() reflect.Type

type AccountThrottleSetting

type AccountThrottleSetting struct {
	// Absolute maximum number of times API Gateway allows the API to be called per second (RPS).
	BurstLimit *int `pulumi:"burstLimit"`
	// Number of times API Gateway allows the API to be called per second on average (RPS).
	RateLimit *float64 `pulumi:"rateLimit"`
}

type AccountThrottleSettingArgs

type AccountThrottleSettingArgs struct {
	// Absolute maximum number of times API Gateway allows the API to be called per second (RPS).
	BurstLimit pulumi.IntPtrInput `pulumi:"burstLimit"`
	// Number of times API Gateway allows the API to be called per second on average (RPS).
	RateLimit pulumi.Float64PtrInput `pulumi:"rateLimit"`
}

func (AccountThrottleSettingArgs) ElementType

func (AccountThrottleSettingArgs) ElementType() reflect.Type

func (AccountThrottleSettingArgs) ToAccountThrottleSettingOutput

func (i AccountThrottleSettingArgs) ToAccountThrottleSettingOutput() AccountThrottleSettingOutput

func (AccountThrottleSettingArgs) ToAccountThrottleSettingOutputWithContext

func (i AccountThrottleSettingArgs) ToAccountThrottleSettingOutputWithContext(ctx context.Context) AccountThrottleSettingOutput

type AccountThrottleSettingArray

type AccountThrottleSettingArray []AccountThrottleSettingInput

func (AccountThrottleSettingArray) ElementType

func (AccountThrottleSettingArray) ToAccountThrottleSettingArrayOutput

func (i AccountThrottleSettingArray) ToAccountThrottleSettingArrayOutput() AccountThrottleSettingArrayOutput

func (AccountThrottleSettingArray) ToAccountThrottleSettingArrayOutputWithContext

func (i AccountThrottleSettingArray) ToAccountThrottleSettingArrayOutputWithContext(ctx context.Context) AccountThrottleSettingArrayOutput

type AccountThrottleSettingArrayInput

type AccountThrottleSettingArrayInput interface {
	pulumi.Input

	ToAccountThrottleSettingArrayOutput() AccountThrottleSettingArrayOutput
	ToAccountThrottleSettingArrayOutputWithContext(context.Context) AccountThrottleSettingArrayOutput
}

AccountThrottleSettingArrayInput is an input type that accepts AccountThrottleSettingArray and AccountThrottleSettingArrayOutput values. You can construct a concrete instance of `AccountThrottleSettingArrayInput` via:

AccountThrottleSettingArray{ AccountThrottleSettingArgs{...} }

type AccountThrottleSettingArrayOutput

type AccountThrottleSettingArrayOutput struct{ *pulumi.OutputState }

func (AccountThrottleSettingArrayOutput) ElementType

func (AccountThrottleSettingArrayOutput) Index

func (AccountThrottleSettingArrayOutput) ToAccountThrottleSettingArrayOutput

func (o AccountThrottleSettingArrayOutput) ToAccountThrottleSettingArrayOutput() AccountThrottleSettingArrayOutput

func (AccountThrottleSettingArrayOutput) ToAccountThrottleSettingArrayOutputWithContext

func (o AccountThrottleSettingArrayOutput) ToAccountThrottleSettingArrayOutputWithContext(ctx context.Context) AccountThrottleSettingArrayOutput

type AccountThrottleSettingInput

type AccountThrottleSettingInput interface {
	pulumi.Input

	ToAccountThrottleSettingOutput() AccountThrottleSettingOutput
	ToAccountThrottleSettingOutputWithContext(context.Context) AccountThrottleSettingOutput
}

AccountThrottleSettingInput is an input type that accepts AccountThrottleSettingArgs and AccountThrottleSettingOutput values. You can construct a concrete instance of `AccountThrottleSettingInput` via:

AccountThrottleSettingArgs{...}

type AccountThrottleSettingOutput

type AccountThrottleSettingOutput struct{ *pulumi.OutputState }

func (AccountThrottleSettingOutput) BurstLimit

Absolute maximum number of times API Gateway allows the API to be called per second (RPS).

func (AccountThrottleSettingOutput) ElementType

func (AccountThrottleSettingOutput) RateLimit

Number of times API Gateway allows the API to be called per second on average (RPS).

func (AccountThrottleSettingOutput) ToAccountThrottleSettingOutput

func (o AccountThrottleSettingOutput) ToAccountThrottleSettingOutput() AccountThrottleSettingOutput

func (AccountThrottleSettingOutput) ToAccountThrottleSettingOutputWithContext

func (o AccountThrottleSettingOutput) ToAccountThrottleSettingOutputWithContext(ctx context.Context) AccountThrottleSettingOutput

type ApiKey

type ApiKey struct {
	pulumi.CustomResourceState

	// ARN
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Creation date of the API key
	CreatedDate pulumi.StringOutput `pulumi:"createdDate"`
	// An Amazon Web Services Marketplace customer identifier, when integrating with the Amazon Web Services SaaS Marketplace.
	CustomerId pulumi.StringPtrOutput `pulumi:"customerId"`
	// API key description. Defaults to "Managed by Pulumi".
	Description pulumi.StringOutput `pulumi:"description"`
	// Whether the API key can be used by callers. Defaults to `true`.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// Last update date of the API key
	LastUpdatedDate pulumi.StringOutput `pulumi:"lastUpdatedDate"`
	// Name of the API key.
	Name pulumi.StringOutput `pulumi:"name"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// Value of the API key. If specified, the value must be an alphanumeric string between 20 and 128 characters. If not specified, it will be automatically generated by AWS on creation.
	Value pulumi.StringOutput `pulumi:"value"`
}

Provides an API Gateway API Key.

> **NOTE:** Since the API Gateway usage plans feature was launched on August 11, 2016, usage plans are now **required** to associate an API key with an API stage.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewApiKey(ctx, "example", &apigateway.ApiKeyArgs{
			Name: pulumi.String("example"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway Keys using the `id`. For example:

```sh $ pulumi import aws:apigateway/apiKey:ApiKey example 8bklk8bl1k3sB38D9B3l0enyWT8c09B30lkq0blk ```

func GetApiKey

func GetApiKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApiKeyState, opts ...pulumi.ResourceOption) (*ApiKey, error)

GetApiKey gets an existing ApiKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewApiKey

func NewApiKey(ctx *pulumi.Context,
	name string, args *ApiKeyArgs, opts ...pulumi.ResourceOption) (*ApiKey, error)

NewApiKey registers a new resource with the given unique name, arguments, and options.

func (*ApiKey) ElementType

func (*ApiKey) ElementType() reflect.Type

func (*ApiKey) ToApiKeyOutput

func (i *ApiKey) ToApiKeyOutput() ApiKeyOutput

func (*ApiKey) ToApiKeyOutputWithContext

func (i *ApiKey) ToApiKeyOutputWithContext(ctx context.Context) ApiKeyOutput

type ApiKeyArgs

type ApiKeyArgs struct {
	// An Amazon Web Services Marketplace customer identifier, when integrating with the Amazon Web Services SaaS Marketplace.
	CustomerId pulumi.StringPtrInput
	// API key description. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// Whether the API key can be used by callers. Defaults to `true`.
	Enabled pulumi.BoolPtrInput
	// Name of the API key.
	Name pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Value of the API key. If specified, the value must be an alphanumeric string between 20 and 128 characters. If not specified, it will be automatically generated by AWS on creation.
	Value pulumi.StringPtrInput
}

The set of arguments for constructing a ApiKey resource.

func (ApiKeyArgs) ElementType

func (ApiKeyArgs) ElementType() reflect.Type

type ApiKeyArray

type ApiKeyArray []ApiKeyInput

func (ApiKeyArray) ElementType

func (ApiKeyArray) ElementType() reflect.Type

func (ApiKeyArray) ToApiKeyArrayOutput

func (i ApiKeyArray) ToApiKeyArrayOutput() ApiKeyArrayOutput

func (ApiKeyArray) ToApiKeyArrayOutputWithContext

func (i ApiKeyArray) ToApiKeyArrayOutputWithContext(ctx context.Context) ApiKeyArrayOutput

type ApiKeyArrayInput

type ApiKeyArrayInput interface {
	pulumi.Input

	ToApiKeyArrayOutput() ApiKeyArrayOutput
	ToApiKeyArrayOutputWithContext(context.Context) ApiKeyArrayOutput
}

ApiKeyArrayInput is an input type that accepts ApiKeyArray and ApiKeyArrayOutput values. You can construct a concrete instance of `ApiKeyArrayInput` via:

ApiKeyArray{ ApiKeyArgs{...} }

type ApiKeyArrayOutput

type ApiKeyArrayOutput struct{ *pulumi.OutputState }

func (ApiKeyArrayOutput) ElementType

func (ApiKeyArrayOutput) ElementType() reflect.Type

func (ApiKeyArrayOutput) Index

func (ApiKeyArrayOutput) ToApiKeyArrayOutput

func (o ApiKeyArrayOutput) ToApiKeyArrayOutput() ApiKeyArrayOutput

func (ApiKeyArrayOutput) ToApiKeyArrayOutputWithContext

func (o ApiKeyArrayOutput) ToApiKeyArrayOutputWithContext(ctx context.Context) ApiKeyArrayOutput

type ApiKeyInput

type ApiKeyInput interface {
	pulumi.Input

	ToApiKeyOutput() ApiKeyOutput
	ToApiKeyOutputWithContext(ctx context.Context) ApiKeyOutput
}

type ApiKeyMap

type ApiKeyMap map[string]ApiKeyInput

func (ApiKeyMap) ElementType

func (ApiKeyMap) ElementType() reflect.Type

func (ApiKeyMap) ToApiKeyMapOutput

func (i ApiKeyMap) ToApiKeyMapOutput() ApiKeyMapOutput

func (ApiKeyMap) ToApiKeyMapOutputWithContext

func (i ApiKeyMap) ToApiKeyMapOutputWithContext(ctx context.Context) ApiKeyMapOutput

type ApiKeyMapInput

type ApiKeyMapInput interface {
	pulumi.Input

	ToApiKeyMapOutput() ApiKeyMapOutput
	ToApiKeyMapOutputWithContext(context.Context) ApiKeyMapOutput
}

ApiKeyMapInput is an input type that accepts ApiKeyMap and ApiKeyMapOutput values. You can construct a concrete instance of `ApiKeyMapInput` via:

ApiKeyMap{ "key": ApiKeyArgs{...} }

type ApiKeyMapOutput

type ApiKeyMapOutput struct{ *pulumi.OutputState }

func (ApiKeyMapOutput) ElementType

func (ApiKeyMapOutput) ElementType() reflect.Type

func (ApiKeyMapOutput) MapIndex

func (ApiKeyMapOutput) ToApiKeyMapOutput

func (o ApiKeyMapOutput) ToApiKeyMapOutput() ApiKeyMapOutput

func (ApiKeyMapOutput) ToApiKeyMapOutputWithContext

func (o ApiKeyMapOutput) ToApiKeyMapOutputWithContext(ctx context.Context) ApiKeyMapOutput

type ApiKeyOutput

type ApiKeyOutput struct{ *pulumi.OutputState }

func (ApiKeyOutput) Arn

ARN

func (ApiKeyOutput) CreatedDate

func (o ApiKeyOutput) CreatedDate() pulumi.StringOutput

Creation date of the API key

func (ApiKeyOutput) CustomerId added in v6.1.0

func (o ApiKeyOutput) CustomerId() pulumi.StringPtrOutput

An Amazon Web Services Marketplace customer identifier, when integrating with the Amazon Web Services SaaS Marketplace.

func (ApiKeyOutput) Description

func (o ApiKeyOutput) Description() pulumi.StringOutput

API key description. Defaults to "Managed by Pulumi".

func (ApiKeyOutput) ElementType

func (ApiKeyOutput) ElementType() reflect.Type

func (ApiKeyOutput) Enabled

func (o ApiKeyOutput) Enabled() pulumi.BoolPtrOutput

Whether the API key can be used by callers. Defaults to `true`.

func (ApiKeyOutput) LastUpdatedDate

func (o ApiKeyOutput) LastUpdatedDate() pulumi.StringOutput

Last update date of the API key

func (ApiKeyOutput) Name

func (o ApiKeyOutput) Name() pulumi.StringOutput

Name of the API key.

func (ApiKeyOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (ApiKeyOutput) TagsAll deprecated

func (o ApiKeyOutput) TagsAll() pulumi.StringMapOutput

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (ApiKeyOutput) ToApiKeyOutput

func (o ApiKeyOutput) ToApiKeyOutput() ApiKeyOutput

func (ApiKeyOutput) ToApiKeyOutputWithContext

func (o ApiKeyOutput) ToApiKeyOutputWithContext(ctx context.Context) ApiKeyOutput

func (ApiKeyOutput) Value

func (o ApiKeyOutput) Value() pulumi.StringOutput

Value of the API key. If specified, the value must be an alphanumeric string between 20 and 128 characters. If not specified, it will be automatically generated by AWS on creation.

type ApiKeyState

type ApiKeyState struct {
	// ARN
	Arn pulumi.StringPtrInput
	// Creation date of the API key
	CreatedDate pulumi.StringPtrInput
	// An Amazon Web Services Marketplace customer identifier, when integrating with the Amazon Web Services SaaS Marketplace.
	CustomerId pulumi.StringPtrInput
	// API key description. Defaults to "Managed by Pulumi".
	Description pulumi.StringPtrInput
	// Whether the API key can be used by callers. Defaults to `true`.
	Enabled pulumi.BoolPtrInput
	// Last update date of the API key
	LastUpdatedDate pulumi.StringPtrInput
	// Name of the API key.
	Name pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
	// Value of the API key. If specified, the value must be an alphanumeric string between 20 and 128 characters. If not specified, it will be automatically generated by AWS on creation.
	Value pulumi.StringPtrInput
}

func (ApiKeyState) ElementType

func (ApiKeyState) ElementType() reflect.Type

type Authorizer

type Authorizer struct {
	pulumi.CustomResourceState

	// ARN of the API Gateway Authorizer
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Credentials required for the authorizer. To specify an IAM Role for API Gateway to assume, use the IAM Role ARN.
	AuthorizerCredentials pulumi.StringPtrOutput `pulumi:"authorizerCredentials"`
	// TTL of cached authorizer results in seconds. Defaults to `300`.
	AuthorizerResultTtlInSeconds pulumi.IntPtrOutput `pulumi:"authorizerResultTtlInSeconds"`
	// Authorizer's Uniform Resource Identifier (URI). This must be a well-formed Lambda function URI in the form of `arn:aws:apigateway:{region}:lambda:path/{service_api}`,
	// e.g., `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:012345678912:function:my-function/invocations`
	AuthorizerUri pulumi.StringPtrOutput `pulumi:"authorizerUri"`
	// Source of the identity in an incoming request. Defaults to `method.request.header.Authorization`. For `REQUEST` type, this may be a comma-separated list of values, including headers, query string parameters and stage variables - e.g., `"method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"`
	IdentitySource pulumi.StringPtrOutput `pulumi:"identitySource"`
	// Validation expression for the incoming identity. For `TOKEN` type, this value should be a regular expression. The incoming token from the client is matched against this expression, and will proceed if the token matches. If the token doesn't match, the client receives a 401 Unauthorized response.
	IdentityValidationExpression pulumi.StringPtrOutput `pulumi:"identityValidationExpression"`
	// Name of the authorizer
	Name pulumi.StringOutput `pulumi:"name"`
	// List of the Amazon Cognito user pool ARNs. Each element is of this format: `arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}`.
	ProviderArns pulumi.StringArrayOutput `pulumi:"providerArns"`
	// ID of the associated REST API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Type of the authorizer. Possible values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, or `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. Defaults to `TOKEN`.
	Type pulumi.StringPtrOutput `pulumi:"type"`
}

Provides an API Gateway Authorizer.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		demoRestApi, err := apigateway.NewRestApi(ctx, "demo", &apigateway.RestApiArgs{
			Name: pulumi.String("auth-demo"),
		})
		if err != nil {
			return err
		}
		invocationAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						{
							Type: "Service",
							Identifiers: []string{
								"apigateway.amazonaws.com",
							},
						},
					},
					Actions: []string{
						"sts:AssumeRole",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		invocationRole, err := iam.NewRole(ctx, "invocation_role", &iam.RoleArgs{
			Name:             pulumi.String("api_gateway_auth_invocation"),
			Path:             pulumi.String("/"),
			AssumeRolePolicy: pulumi.String(invocationAssumeRole.Json),
		})
		if err != nil {
			return err
		}
		lambdaAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Actions: []string{
						"sts:AssumeRole",
					},
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						{
							Type: "Service",
							Identifiers: []string{
								"lambda.amazonaws.com",
							},
						},
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		lambda, err := iam.NewRole(ctx, "lambda", &iam.RoleArgs{
			Name:             pulumi.String("demo-lambda"),
			AssumeRolePolicy: pulumi.String(lambdaAssumeRole.Json),
		})
		if err != nil {
			return err
		}
		invokeFilebase64sha256, err := std.Filebase64sha256(ctx, &std.Filebase64sha256Args{
			Input: "lambda-function.zip",
		}, nil)
		if err != nil {
			return err
		}
		authorizer, err := lambda.NewFunction(ctx, "authorizer", &lambda.FunctionArgs{
			Code:           pulumi.NewFileArchive("lambda-function.zip"),
			Name:           pulumi.String("api_gateway_authorizer"),
			Role:           lambda.Arn,
			Handler:        pulumi.String("exports.example"),
			SourceCodeHash: invokeFilebase64sha256.Result,
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewAuthorizer(ctx, "demo", &apigateway.AuthorizerArgs{
			Name:                  pulumi.String("demo"),
			RestApi:               demoRestApi.ID(),
			AuthorizerUri:         authorizer.InvokeArn,
			AuthorizerCredentials: invocationRole.Arn,
		})
		if err != nil {
			return err
		}
		invocationPolicy := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
			Statements: iam.GetPolicyDocumentStatementArray{
				&iam.GetPolicyDocumentStatementArgs{
					Effect: pulumi.String("Allow"),
					Actions: pulumi.StringArray{
						pulumi.String("lambda:InvokeFunction"),
					},
					Resources: pulumi.StringArray{
						authorizer.Arn,
					},
				},
			},
		}, nil)
		_, err = iam.NewRolePolicy(ctx, "invocation_policy", &iam.RolePolicyArgs{
			Name: pulumi.String("default"),
			Role: invocationRole.ID(),
			Policy: invocationPolicy.ApplyT(func(invocationPolicy iam.GetPolicyDocumentResult) (*string, error) {
				return &invocationPolicy.Json, nil
			}).(pulumi.StringPtrOutput),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import AWS API Gateway Authorizer using the `REST-API-ID/AUTHORIZER-ID`. For example:

```sh $ pulumi import aws:apigateway/authorizer:Authorizer authorizer 12345abcde/example ```

func GetAuthorizer

func GetAuthorizer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AuthorizerState, opts ...pulumi.ResourceOption) (*Authorizer, error)

GetAuthorizer gets an existing Authorizer resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAuthorizer

func NewAuthorizer(ctx *pulumi.Context,
	name string, args *AuthorizerArgs, opts ...pulumi.ResourceOption) (*Authorizer, error)

NewAuthorizer registers a new resource with the given unique name, arguments, and options.

func (*Authorizer) ElementType

func (*Authorizer) ElementType() reflect.Type

func (*Authorizer) ToAuthorizerOutput

func (i *Authorizer) ToAuthorizerOutput() AuthorizerOutput

func (*Authorizer) ToAuthorizerOutputWithContext

func (i *Authorizer) ToAuthorizerOutputWithContext(ctx context.Context) AuthorizerOutput

type AuthorizerArgs

type AuthorizerArgs struct {
	// Credentials required for the authorizer. To specify an IAM Role for API Gateway to assume, use the IAM Role ARN.
	AuthorizerCredentials pulumi.StringPtrInput
	// TTL of cached authorizer results in seconds. Defaults to `300`.
	AuthorizerResultTtlInSeconds pulumi.IntPtrInput
	// Authorizer's Uniform Resource Identifier (URI). This must be a well-formed Lambda function URI in the form of `arn:aws:apigateway:{region}:lambda:path/{service_api}`,
	// e.g., `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:012345678912:function:my-function/invocations`
	AuthorizerUri pulumi.StringPtrInput
	// Source of the identity in an incoming request. Defaults to `method.request.header.Authorization`. For `REQUEST` type, this may be a comma-separated list of values, including headers, query string parameters and stage variables - e.g., `"method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"`
	IdentitySource pulumi.StringPtrInput
	// Validation expression for the incoming identity. For `TOKEN` type, this value should be a regular expression. The incoming token from the client is matched against this expression, and will proceed if the token matches. If the token doesn't match, the client receives a 401 Unauthorized response.
	IdentityValidationExpression pulumi.StringPtrInput
	// Name of the authorizer
	Name pulumi.StringPtrInput
	// List of the Amazon Cognito user pool ARNs. Each element is of this format: `arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}`.
	ProviderArns pulumi.StringArrayInput
	// ID of the associated REST API
	RestApi pulumi.Input
	// Type of the authorizer. Possible values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, or `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. Defaults to `TOKEN`.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a Authorizer resource.

func (AuthorizerArgs) ElementType

func (AuthorizerArgs) ElementType() reflect.Type

type AuthorizerArray

type AuthorizerArray []AuthorizerInput

func (AuthorizerArray) ElementType

func (AuthorizerArray) ElementType() reflect.Type

func (AuthorizerArray) ToAuthorizerArrayOutput

func (i AuthorizerArray) ToAuthorizerArrayOutput() AuthorizerArrayOutput

func (AuthorizerArray) ToAuthorizerArrayOutputWithContext

func (i AuthorizerArray) ToAuthorizerArrayOutputWithContext(ctx context.Context) AuthorizerArrayOutput

type AuthorizerArrayInput

type AuthorizerArrayInput interface {
	pulumi.Input

	ToAuthorizerArrayOutput() AuthorizerArrayOutput
	ToAuthorizerArrayOutputWithContext(context.Context) AuthorizerArrayOutput
}

AuthorizerArrayInput is an input type that accepts AuthorizerArray and AuthorizerArrayOutput values. You can construct a concrete instance of `AuthorizerArrayInput` via:

AuthorizerArray{ AuthorizerArgs{...} }

type AuthorizerArrayOutput

type AuthorizerArrayOutput struct{ *pulumi.OutputState }

func (AuthorizerArrayOutput) ElementType

func (AuthorizerArrayOutput) ElementType() reflect.Type

func (AuthorizerArrayOutput) Index

func (AuthorizerArrayOutput) ToAuthorizerArrayOutput

func (o AuthorizerArrayOutput) ToAuthorizerArrayOutput() AuthorizerArrayOutput

func (AuthorizerArrayOutput) ToAuthorizerArrayOutputWithContext

func (o AuthorizerArrayOutput) ToAuthorizerArrayOutputWithContext(ctx context.Context) AuthorizerArrayOutput

type AuthorizerInput

type AuthorizerInput interface {
	pulumi.Input

	ToAuthorizerOutput() AuthorizerOutput
	ToAuthorizerOutputWithContext(ctx context.Context) AuthorizerOutput
}

type AuthorizerMap

type AuthorizerMap map[string]AuthorizerInput

func (AuthorizerMap) ElementType

func (AuthorizerMap) ElementType() reflect.Type

func (AuthorizerMap) ToAuthorizerMapOutput

func (i AuthorizerMap) ToAuthorizerMapOutput() AuthorizerMapOutput

func (AuthorizerMap) ToAuthorizerMapOutputWithContext

func (i AuthorizerMap) ToAuthorizerMapOutputWithContext(ctx context.Context) AuthorizerMapOutput

type AuthorizerMapInput

type AuthorizerMapInput interface {
	pulumi.Input

	ToAuthorizerMapOutput() AuthorizerMapOutput
	ToAuthorizerMapOutputWithContext(context.Context) AuthorizerMapOutput
}

AuthorizerMapInput is an input type that accepts AuthorizerMap and AuthorizerMapOutput values. You can construct a concrete instance of `AuthorizerMapInput` via:

AuthorizerMap{ "key": AuthorizerArgs{...} }

type AuthorizerMapOutput

type AuthorizerMapOutput struct{ *pulumi.OutputState }

func (AuthorizerMapOutput) ElementType

func (AuthorizerMapOutput) ElementType() reflect.Type

func (AuthorizerMapOutput) MapIndex

func (AuthorizerMapOutput) ToAuthorizerMapOutput

func (o AuthorizerMapOutput) ToAuthorizerMapOutput() AuthorizerMapOutput

func (AuthorizerMapOutput) ToAuthorizerMapOutputWithContext

func (o AuthorizerMapOutput) ToAuthorizerMapOutputWithContext(ctx context.Context) AuthorizerMapOutput

type AuthorizerOutput

type AuthorizerOutput struct{ *pulumi.OutputState }

func (AuthorizerOutput) Arn

ARN of the API Gateway Authorizer

func (AuthorizerOutput) AuthorizerCredentials

func (o AuthorizerOutput) AuthorizerCredentials() pulumi.StringPtrOutput

Credentials required for the authorizer. To specify an IAM Role for API Gateway to assume, use the IAM Role ARN.

func (AuthorizerOutput) AuthorizerResultTtlInSeconds

func (o AuthorizerOutput) AuthorizerResultTtlInSeconds() pulumi.IntPtrOutput

TTL of cached authorizer results in seconds. Defaults to `300`.

func (AuthorizerOutput) AuthorizerUri

func (o AuthorizerOutput) AuthorizerUri() pulumi.StringPtrOutput

Authorizer's Uniform Resource Identifier (URI). This must be a well-formed Lambda function URI in the form of `arn:aws:apigateway:{region}:lambda:path/{service_api}`, e.g., `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:012345678912:function:my-function/invocations`

func (AuthorizerOutput) ElementType

func (AuthorizerOutput) ElementType() reflect.Type

func (AuthorizerOutput) IdentitySource

func (o AuthorizerOutput) IdentitySource() pulumi.StringPtrOutput

Source of the identity in an incoming request. Defaults to `method.request.header.Authorization`. For `REQUEST` type, this may be a comma-separated list of values, including headers, query string parameters and stage variables - e.g., `"method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"`

func (AuthorizerOutput) IdentityValidationExpression

func (o AuthorizerOutput) IdentityValidationExpression() pulumi.StringPtrOutput

Validation expression for the incoming identity. For `TOKEN` type, this value should be a regular expression. The incoming token from the client is matched against this expression, and will proceed if the token matches. If the token doesn't match, the client receives a 401 Unauthorized response.

func (AuthorizerOutput) Name

Name of the authorizer

func (AuthorizerOutput) ProviderArns

func (o AuthorizerOutput) ProviderArns() pulumi.StringArrayOutput

List of the Amazon Cognito user pool ARNs. Each element is of this format: `arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}`.

func (AuthorizerOutput) RestApi

func (o AuthorizerOutput) RestApi() pulumi.StringOutput

ID of the associated REST API

func (AuthorizerOutput) ToAuthorizerOutput

func (o AuthorizerOutput) ToAuthorizerOutput() AuthorizerOutput

func (AuthorizerOutput) ToAuthorizerOutputWithContext

func (o AuthorizerOutput) ToAuthorizerOutputWithContext(ctx context.Context) AuthorizerOutput

func (AuthorizerOutput) Type

Type of the authorizer. Possible values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, or `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. Defaults to `TOKEN`.

type AuthorizerState

type AuthorizerState struct {
	// ARN of the API Gateway Authorizer
	Arn pulumi.StringPtrInput
	// Credentials required for the authorizer. To specify an IAM Role for API Gateway to assume, use the IAM Role ARN.
	AuthorizerCredentials pulumi.StringPtrInput
	// TTL of cached authorizer results in seconds. Defaults to `300`.
	AuthorizerResultTtlInSeconds pulumi.IntPtrInput
	// Authorizer's Uniform Resource Identifier (URI). This must be a well-formed Lambda function URI in the form of `arn:aws:apigateway:{region}:lambda:path/{service_api}`,
	// e.g., `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:012345678912:function:my-function/invocations`
	AuthorizerUri pulumi.StringPtrInput
	// Source of the identity in an incoming request. Defaults to `method.request.header.Authorization`. For `REQUEST` type, this may be a comma-separated list of values, including headers, query string parameters and stage variables - e.g., `"method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"`
	IdentitySource pulumi.StringPtrInput
	// Validation expression for the incoming identity. For `TOKEN` type, this value should be a regular expression. The incoming token from the client is matched against this expression, and will proceed if the token matches. If the token doesn't match, the client receives a 401 Unauthorized response.
	IdentityValidationExpression pulumi.StringPtrInput
	// Name of the authorizer
	Name pulumi.StringPtrInput
	// List of the Amazon Cognito user pool ARNs. Each element is of this format: `arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}`.
	ProviderArns pulumi.StringArrayInput
	// ID of the associated REST API
	RestApi pulumi.Input
	// Type of the authorizer. Possible values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, or `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. Defaults to `TOKEN`.
	Type pulumi.StringPtrInput
}

func (AuthorizerState) ElementType

func (AuthorizerState) ElementType() reflect.Type

type BasePathMapping

type BasePathMapping struct {
	pulumi.CustomResourceState

	// Path segment that must be prepended to the path when accessing the API via this mapping. If omitted, the API is exposed at the root of the given domain.
	BasePath pulumi.StringPtrOutput `pulumi:"basePath"`
	// Already-registered domain name to connect the API to.
	DomainName pulumi.StringOutput `pulumi:"domainName"`
	// ID of the API to connect.
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Name of a specific deployment stage to expose at the given path. If omitted, callers may select any stage by including its name as a path element after the base path.
	StageName pulumi.StringPtrOutput `pulumi:"stageName"`
}

Connects a custom domain name registered via `apigateway.DomainName` with a deployed API so that its methods can be called via the custom domain name.

## Import

For a non-root `base_path`:

Using `pulumi import`, import `aws_api_gateway_base_path_mapping` using the domain name and base path. For example:

For an empty `base_path` or, in other words, a root path (`/`):

```sh $ pulumi import aws:apigateway/basePathMapping:BasePathMapping example example.com/ ``` For a non-root `base_path`:

```sh $ pulumi import aws:apigateway/basePathMapping:BasePathMapping example example.com/base-path ```

func GetBasePathMapping

func GetBasePathMapping(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BasePathMappingState, opts ...pulumi.ResourceOption) (*BasePathMapping, error)

GetBasePathMapping gets an existing BasePathMapping resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewBasePathMapping

func NewBasePathMapping(ctx *pulumi.Context,
	name string, args *BasePathMappingArgs, opts ...pulumi.ResourceOption) (*BasePathMapping, error)

NewBasePathMapping registers a new resource with the given unique name, arguments, and options.

func (*BasePathMapping) ElementType

func (*BasePathMapping) ElementType() reflect.Type

func (*BasePathMapping) ToBasePathMappingOutput

func (i *BasePathMapping) ToBasePathMappingOutput() BasePathMappingOutput

func (*BasePathMapping) ToBasePathMappingOutputWithContext

func (i *BasePathMapping) ToBasePathMappingOutputWithContext(ctx context.Context) BasePathMappingOutput

type BasePathMappingArgs

type BasePathMappingArgs struct {
	// Path segment that must be prepended to the path when accessing the API via this mapping. If omitted, the API is exposed at the root of the given domain.
	BasePath pulumi.StringPtrInput
	// Already-registered domain name to connect the API to.
	DomainName pulumi.StringInput
	// ID of the API to connect.
	RestApi pulumi.Input
	// Name of a specific deployment stage to expose at the given path. If omitted, callers may select any stage by including its name as a path element after the base path.
	StageName pulumi.StringPtrInput
}

The set of arguments for constructing a BasePathMapping resource.

func (BasePathMappingArgs) ElementType

func (BasePathMappingArgs) ElementType() reflect.Type

type BasePathMappingArray

type BasePathMappingArray []BasePathMappingInput

func (BasePathMappingArray) ElementType

func (BasePathMappingArray) ElementType() reflect.Type

func (BasePathMappingArray) ToBasePathMappingArrayOutput

func (i BasePathMappingArray) ToBasePathMappingArrayOutput() BasePathMappingArrayOutput

func (BasePathMappingArray) ToBasePathMappingArrayOutputWithContext

func (i BasePathMappingArray) ToBasePathMappingArrayOutputWithContext(ctx context.Context) BasePathMappingArrayOutput

type BasePathMappingArrayInput

type BasePathMappingArrayInput interface {
	pulumi.Input

	ToBasePathMappingArrayOutput() BasePathMappingArrayOutput
	ToBasePathMappingArrayOutputWithContext(context.Context) BasePathMappingArrayOutput
}

BasePathMappingArrayInput is an input type that accepts BasePathMappingArray and BasePathMappingArrayOutput values. You can construct a concrete instance of `BasePathMappingArrayInput` via:

BasePathMappingArray{ BasePathMappingArgs{...} }

type BasePathMappingArrayOutput

type BasePathMappingArrayOutput struct{ *pulumi.OutputState }

func (BasePathMappingArrayOutput) ElementType

func (BasePathMappingArrayOutput) ElementType() reflect.Type

func (BasePathMappingArrayOutput) Index

func (BasePathMappingArrayOutput) ToBasePathMappingArrayOutput

func (o BasePathMappingArrayOutput) ToBasePathMappingArrayOutput() BasePathMappingArrayOutput

func (BasePathMappingArrayOutput) ToBasePathMappingArrayOutputWithContext

func (o BasePathMappingArrayOutput) ToBasePathMappingArrayOutputWithContext(ctx context.Context) BasePathMappingArrayOutput

type BasePathMappingInput

type BasePathMappingInput interface {
	pulumi.Input

	ToBasePathMappingOutput() BasePathMappingOutput
	ToBasePathMappingOutputWithContext(ctx context.Context) BasePathMappingOutput
}

type BasePathMappingMap

type BasePathMappingMap map[string]BasePathMappingInput

func (BasePathMappingMap) ElementType

func (BasePathMappingMap) ElementType() reflect.Type

func (BasePathMappingMap) ToBasePathMappingMapOutput

func (i BasePathMappingMap) ToBasePathMappingMapOutput() BasePathMappingMapOutput

func (BasePathMappingMap) ToBasePathMappingMapOutputWithContext

func (i BasePathMappingMap) ToBasePathMappingMapOutputWithContext(ctx context.Context) BasePathMappingMapOutput

type BasePathMappingMapInput

type BasePathMappingMapInput interface {
	pulumi.Input

	ToBasePathMappingMapOutput() BasePathMappingMapOutput
	ToBasePathMappingMapOutputWithContext(context.Context) BasePathMappingMapOutput
}

BasePathMappingMapInput is an input type that accepts BasePathMappingMap and BasePathMappingMapOutput values. You can construct a concrete instance of `BasePathMappingMapInput` via:

BasePathMappingMap{ "key": BasePathMappingArgs{...} }

type BasePathMappingMapOutput

type BasePathMappingMapOutput struct{ *pulumi.OutputState }

func (BasePathMappingMapOutput) ElementType

func (BasePathMappingMapOutput) ElementType() reflect.Type

func (BasePathMappingMapOutput) MapIndex

func (BasePathMappingMapOutput) ToBasePathMappingMapOutput

func (o BasePathMappingMapOutput) ToBasePathMappingMapOutput() BasePathMappingMapOutput

func (BasePathMappingMapOutput) ToBasePathMappingMapOutputWithContext

func (o BasePathMappingMapOutput) ToBasePathMappingMapOutputWithContext(ctx context.Context) BasePathMappingMapOutput

type BasePathMappingOutput

type BasePathMappingOutput struct{ *pulumi.OutputState }

func (BasePathMappingOutput) BasePath

Path segment that must be prepended to the path when accessing the API via this mapping. If omitted, the API is exposed at the root of the given domain.

func (BasePathMappingOutput) DomainName

func (o BasePathMappingOutput) DomainName() pulumi.StringOutput

Already-registered domain name to connect the API to.

func (BasePathMappingOutput) ElementType

func (BasePathMappingOutput) ElementType() reflect.Type

func (BasePathMappingOutput) RestApi

ID of the API to connect.

func (BasePathMappingOutput) StageName

Name of a specific deployment stage to expose at the given path. If omitted, callers may select any stage by including its name as a path element after the base path.

func (BasePathMappingOutput) ToBasePathMappingOutput

func (o BasePathMappingOutput) ToBasePathMappingOutput() BasePathMappingOutput

func (BasePathMappingOutput) ToBasePathMappingOutputWithContext

func (o BasePathMappingOutput) ToBasePathMappingOutputWithContext(ctx context.Context) BasePathMappingOutput

type BasePathMappingState

type BasePathMappingState struct {
	// Path segment that must be prepended to the path when accessing the API via this mapping. If omitted, the API is exposed at the root of the given domain.
	BasePath pulumi.StringPtrInput
	// Already-registered domain name to connect the API to.
	DomainName pulumi.StringPtrInput
	// ID of the API to connect.
	RestApi pulumi.Input
	// Name of a specific deployment stage to expose at the given path. If omitted, callers may select any stage by including its name as a path element after the base path.
	StageName pulumi.StringPtrInput
}

func (BasePathMappingState) ElementType

func (BasePathMappingState) ElementType() reflect.Type

type ClientCertificate

type ClientCertificate struct {
	pulumi.CustomResourceState

	// ARN
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Date when the client certificate was created.
	CreatedDate pulumi.StringOutput `pulumi:"createdDate"`
	// Description of the client certificate.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Date when the client certificate will expire.
	ExpirationDate pulumi.StringOutput `pulumi:"expirationDate"`
	// The PEM-encoded public key of the client certificate.
	PemEncodedCertificate pulumi.StringOutput `pulumi:"pemEncodedCertificate"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}

Provides an API Gateway Client Certificate.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewClientCertificate(ctx, "demo", &apigateway.ClientCertificateArgs{
			Description: pulumi.String("My client certificate"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway Client Certificates using the id. For example:

```sh $ pulumi import aws:apigateway/clientCertificate:ClientCertificate demo ab1cqe ```

func GetClientCertificate

func GetClientCertificate(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ClientCertificateState, opts ...pulumi.ResourceOption) (*ClientCertificate, error)

GetClientCertificate gets an existing ClientCertificate resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewClientCertificate

func NewClientCertificate(ctx *pulumi.Context,
	name string, args *ClientCertificateArgs, opts ...pulumi.ResourceOption) (*ClientCertificate, error)

NewClientCertificate registers a new resource with the given unique name, arguments, and options.

func (*ClientCertificate) ElementType

func (*ClientCertificate) ElementType() reflect.Type

func (*ClientCertificate) ToClientCertificateOutput

func (i *ClientCertificate) ToClientCertificateOutput() ClientCertificateOutput

func (*ClientCertificate) ToClientCertificateOutputWithContext

func (i *ClientCertificate) ToClientCertificateOutputWithContext(ctx context.Context) ClientCertificateOutput

type ClientCertificateArgs

type ClientCertificateArgs struct {
	// Description of the client certificate.
	Description pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
}

The set of arguments for constructing a ClientCertificate resource.

func (ClientCertificateArgs) ElementType

func (ClientCertificateArgs) ElementType() reflect.Type

type ClientCertificateArray

type ClientCertificateArray []ClientCertificateInput

func (ClientCertificateArray) ElementType

func (ClientCertificateArray) ElementType() reflect.Type

func (ClientCertificateArray) ToClientCertificateArrayOutput

func (i ClientCertificateArray) ToClientCertificateArrayOutput() ClientCertificateArrayOutput

func (ClientCertificateArray) ToClientCertificateArrayOutputWithContext

func (i ClientCertificateArray) ToClientCertificateArrayOutputWithContext(ctx context.Context) ClientCertificateArrayOutput

type ClientCertificateArrayInput

type ClientCertificateArrayInput interface {
	pulumi.Input

	ToClientCertificateArrayOutput() ClientCertificateArrayOutput
	ToClientCertificateArrayOutputWithContext(context.Context) ClientCertificateArrayOutput
}

ClientCertificateArrayInput is an input type that accepts ClientCertificateArray and ClientCertificateArrayOutput values. You can construct a concrete instance of `ClientCertificateArrayInput` via:

ClientCertificateArray{ ClientCertificateArgs{...} }

type ClientCertificateArrayOutput

type ClientCertificateArrayOutput struct{ *pulumi.OutputState }

func (ClientCertificateArrayOutput) ElementType

func (ClientCertificateArrayOutput) Index

func (ClientCertificateArrayOutput) ToClientCertificateArrayOutput

func (o ClientCertificateArrayOutput) ToClientCertificateArrayOutput() ClientCertificateArrayOutput

func (ClientCertificateArrayOutput) ToClientCertificateArrayOutputWithContext

func (o ClientCertificateArrayOutput) ToClientCertificateArrayOutputWithContext(ctx context.Context) ClientCertificateArrayOutput

type ClientCertificateInput

type ClientCertificateInput interface {
	pulumi.Input

	ToClientCertificateOutput() ClientCertificateOutput
	ToClientCertificateOutputWithContext(ctx context.Context) ClientCertificateOutput
}

type ClientCertificateMap

type ClientCertificateMap map[string]ClientCertificateInput

func (ClientCertificateMap) ElementType

func (ClientCertificateMap) ElementType() reflect.Type

func (ClientCertificateMap) ToClientCertificateMapOutput

func (i ClientCertificateMap) ToClientCertificateMapOutput() ClientCertificateMapOutput

func (ClientCertificateMap) ToClientCertificateMapOutputWithContext

func (i ClientCertificateMap) ToClientCertificateMapOutputWithContext(ctx context.Context) ClientCertificateMapOutput

type ClientCertificateMapInput

type ClientCertificateMapInput interface {
	pulumi.Input

	ToClientCertificateMapOutput() ClientCertificateMapOutput
	ToClientCertificateMapOutputWithContext(context.Context) ClientCertificateMapOutput
}

ClientCertificateMapInput is an input type that accepts ClientCertificateMap and ClientCertificateMapOutput values. You can construct a concrete instance of `ClientCertificateMapInput` via:

ClientCertificateMap{ "key": ClientCertificateArgs{...} }

type ClientCertificateMapOutput

type ClientCertificateMapOutput struct{ *pulumi.OutputState }

func (ClientCertificateMapOutput) ElementType

func (ClientCertificateMapOutput) ElementType() reflect.Type

func (ClientCertificateMapOutput) MapIndex

func (ClientCertificateMapOutput) ToClientCertificateMapOutput

func (o ClientCertificateMapOutput) ToClientCertificateMapOutput() ClientCertificateMapOutput

func (ClientCertificateMapOutput) ToClientCertificateMapOutputWithContext

func (o ClientCertificateMapOutput) ToClientCertificateMapOutputWithContext(ctx context.Context) ClientCertificateMapOutput

type ClientCertificateOutput

type ClientCertificateOutput struct{ *pulumi.OutputState }

func (ClientCertificateOutput) Arn

ARN

func (ClientCertificateOutput) CreatedDate

Date when the client certificate was created.

func (ClientCertificateOutput) Description

Description of the client certificate.

func (ClientCertificateOutput) ElementType

func (ClientCertificateOutput) ElementType() reflect.Type

func (ClientCertificateOutput) ExpirationDate

func (o ClientCertificateOutput) ExpirationDate() pulumi.StringOutput

Date when the client certificate will expire.

func (ClientCertificateOutput) PemEncodedCertificate

func (o ClientCertificateOutput) PemEncodedCertificate() pulumi.StringOutput

The PEM-encoded public key of the client certificate.

func (ClientCertificateOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (ClientCertificateOutput) TagsAll deprecated

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (ClientCertificateOutput) ToClientCertificateOutput

func (o ClientCertificateOutput) ToClientCertificateOutput() ClientCertificateOutput

func (ClientCertificateOutput) ToClientCertificateOutputWithContext

func (o ClientCertificateOutput) ToClientCertificateOutputWithContext(ctx context.Context) ClientCertificateOutput

type ClientCertificateState

type ClientCertificateState struct {
	// ARN
	Arn pulumi.StringPtrInput
	// Date when the client certificate was created.
	CreatedDate pulumi.StringPtrInput
	// Description of the client certificate.
	Description pulumi.StringPtrInput
	// Date when the client certificate will expire.
	ExpirationDate pulumi.StringPtrInput
	// The PEM-encoded public key of the client certificate.
	PemEncodedCertificate pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
}

func (ClientCertificateState) ElementType

func (ClientCertificateState) ElementType() reflect.Type

type Deployment

type Deployment struct {
	pulumi.CustomResourceState

	// Creation date of the deployment
	CreatedDate pulumi.StringOutput `pulumi:"createdDate"`
	// Description of the deployment
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Execution ARN to be used in `lambdaPermission`'s `sourceArn`
	// when allowing API Gateway to invoke a Lambda function,
	// e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`
	ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
	// URL to invoke the API pointing to the stage,
	// e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`
	InvokeUrl pulumi.StringOutput `pulumi:"invokeUrl"`
	// REST API identifier.
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Description to set on the stage managed by the `stageName` argument.
	StageDescription pulumi.StringPtrOutput `pulumi:"stageDescription"`
	// Name of the stage to create with this deployment. If the specified stage already exists, it will be updated to point to the new deployment. We recommend using the `apigateway.Stage` resource instead to manage stages.
	StageName pulumi.StringPtrOutput `pulumi:"stageName"`
	// Map of arbitrary keys and values that, when changed, will trigger a redeployment.
	Triggers pulumi.StringMapOutput `pulumi:"triggers"`
	// Map to set on the stage managed by the `stageName` argument.
	Variables pulumi.StringMapOutput `pulumi:"variables"`
}

Manages an API Gateway REST Deployment. A deployment is a snapshot of the REST API configuration. The deployment can then be published to callable endpoints via the `apigateway.Stage` resource and optionally managed further with the `apigateway.BasePathMapping` resource, `apigateway.DomainName` resource, and `awsApiMethodSettings` resource. For more information, see the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html).

To properly capture all REST API configuration in a deployment, this resource must have dependencies on all prior resources that manage resources/paths, methods, integrations, etc.

* For REST APIs that are configured via OpenAPI specification (`apigateway.RestApi` resource `body` argument), no special dependency setup is needed beyond referencing the `id` attribute of that resource unless additional resources have further customized the REST API. * When the REST API configuration involves other resources (`apigateway.Integration` resource), the dependency setup can be done with implicit resource references in the `triggers` argument or explicit resource references using the [resource `dependsOn` custom option](https://www.pulumi.com/docs/intro/concepts/resources/#dependson). The `triggers` argument should be preferred over `dependsOn`, since `dependsOn` can only capture dependency ordering and will not cause the resource to recreate (redeploy the REST API) with upstream configuration changes.

!> **WARNING:** It is recommended to use the `apigateway.Stage` resource instead of managing an API Gateway Stage via the `stageName` argument of this resource. When this resource is recreated (REST API redeployment) with the `stageName` configured, the stage is deleted and recreated. This will cause a temporary service interruption, increase provide plan differences, and can require a second apply to recreate any downstream stage configuration such as associated `awsApiMethodSettings` resources.

## Example Usage

## Import

Using `pulumi import`, import `aws_api_gateway_deployment` using `REST-API-ID/DEPLOYMENT-ID`. For example:

```sh $ pulumi import aws:apigateway/deployment:Deployment example aabbccddee/1122334 ``` The `stage_name`, `stage_description`, and `variables` arguments cannot be imported. Use the `aws_api_gateway_stage` resource to import and manage stages.

The `triggers` argument cannot be imported.

func GetDeployment

func GetDeployment(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DeploymentState, opts ...pulumi.ResourceOption) (*Deployment, error)

GetDeployment gets an existing Deployment resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDeployment

func NewDeployment(ctx *pulumi.Context,
	name string, args *DeploymentArgs, opts ...pulumi.ResourceOption) (*Deployment, error)

NewDeployment registers a new resource with the given unique name, arguments, and options.

func (*Deployment) ElementType

func (*Deployment) ElementType() reflect.Type

func (*Deployment) ToDeploymentOutput

func (i *Deployment) ToDeploymentOutput() DeploymentOutput

func (*Deployment) ToDeploymentOutputWithContext

func (i *Deployment) ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput

type DeploymentArgs

type DeploymentArgs struct {
	// Description of the deployment
	Description pulumi.StringPtrInput
	// REST API identifier.
	RestApi pulumi.Input
	// Description to set on the stage managed by the `stageName` argument.
	StageDescription pulumi.StringPtrInput
	// Name of the stage to create with this deployment. If the specified stage already exists, it will be updated to point to the new deployment. We recommend using the `apigateway.Stage` resource instead to manage stages.
	StageName pulumi.StringPtrInput
	// Map of arbitrary keys and values that, when changed, will trigger a redeployment.
	Triggers pulumi.StringMapInput
	// Map to set on the stage managed by the `stageName` argument.
	Variables pulumi.StringMapInput
}

The set of arguments for constructing a Deployment resource.

func (DeploymentArgs) ElementType

func (DeploymentArgs) ElementType() reflect.Type

type DeploymentArray

type DeploymentArray []DeploymentInput

func (DeploymentArray) ElementType

func (DeploymentArray) ElementType() reflect.Type

func (DeploymentArray) ToDeploymentArrayOutput

func (i DeploymentArray) ToDeploymentArrayOutput() DeploymentArrayOutput

func (DeploymentArray) ToDeploymentArrayOutputWithContext

func (i DeploymentArray) ToDeploymentArrayOutputWithContext(ctx context.Context) DeploymentArrayOutput

type DeploymentArrayInput

type DeploymentArrayInput interface {
	pulumi.Input

	ToDeploymentArrayOutput() DeploymentArrayOutput
	ToDeploymentArrayOutputWithContext(context.Context) DeploymentArrayOutput
}

DeploymentArrayInput is an input type that accepts DeploymentArray and DeploymentArrayOutput values. You can construct a concrete instance of `DeploymentArrayInput` via:

DeploymentArray{ DeploymentArgs{...} }

type DeploymentArrayOutput

type DeploymentArrayOutput struct{ *pulumi.OutputState }

func (DeploymentArrayOutput) ElementType

func (DeploymentArrayOutput) ElementType() reflect.Type

func (DeploymentArrayOutput) Index

func (DeploymentArrayOutput) ToDeploymentArrayOutput

func (o DeploymentArrayOutput) ToDeploymentArrayOutput() DeploymentArrayOutput

func (DeploymentArrayOutput) ToDeploymentArrayOutputWithContext

func (o DeploymentArrayOutput) ToDeploymentArrayOutputWithContext(ctx context.Context) DeploymentArrayOutput

type DeploymentInput

type DeploymentInput interface {
	pulumi.Input

	ToDeploymentOutput() DeploymentOutput
	ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput
}

type DeploymentMap

type DeploymentMap map[string]DeploymentInput

func (DeploymentMap) ElementType

func (DeploymentMap) ElementType() reflect.Type

func (DeploymentMap) ToDeploymentMapOutput

func (i DeploymentMap) ToDeploymentMapOutput() DeploymentMapOutput

func (DeploymentMap) ToDeploymentMapOutputWithContext

func (i DeploymentMap) ToDeploymentMapOutputWithContext(ctx context.Context) DeploymentMapOutput

type DeploymentMapInput

type DeploymentMapInput interface {
	pulumi.Input

	ToDeploymentMapOutput() DeploymentMapOutput
	ToDeploymentMapOutputWithContext(context.Context) DeploymentMapOutput
}

DeploymentMapInput is an input type that accepts DeploymentMap and DeploymentMapOutput values. You can construct a concrete instance of `DeploymentMapInput` via:

DeploymentMap{ "key": DeploymentArgs{...} }

type DeploymentMapOutput

type DeploymentMapOutput struct{ *pulumi.OutputState }

func (DeploymentMapOutput) ElementType

func (DeploymentMapOutput) ElementType() reflect.Type

func (DeploymentMapOutput) MapIndex

func (DeploymentMapOutput) ToDeploymentMapOutput

func (o DeploymentMapOutput) ToDeploymentMapOutput() DeploymentMapOutput

func (DeploymentMapOutput) ToDeploymentMapOutputWithContext

func (o DeploymentMapOutput) ToDeploymentMapOutputWithContext(ctx context.Context) DeploymentMapOutput

type DeploymentOutput

type DeploymentOutput struct{ *pulumi.OutputState }

func (DeploymentOutput) CreatedDate

func (o DeploymentOutput) CreatedDate() pulumi.StringOutput

Creation date of the deployment

func (DeploymentOutput) Description

func (o DeploymentOutput) Description() pulumi.StringPtrOutput

Description of the deployment

func (DeploymentOutput) ElementType

func (DeploymentOutput) ElementType() reflect.Type

func (DeploymentOutput) ExecutionArn

func (o DeploymentOutput) ExecutionArn() pulumi.StringOutput

Execution ARN to be used in `lambdaPermission`'s `sourceArn` when allowing API Gateway to invoke a Lambda function, e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`

func (DeploymentOutput) InvokeUrl

func (o DeploymentOutput) InvokeUrl() pulumi.StringOutput

URL to invoke the API pointing to the stage, e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`

func (DeploymentOutput) RestApi

func (o DeploymentOutput) RestApi() pulumi.StringOutput

REST API identifier.

func (DeploymentOutput) StageDescription

func (o DeploymentOutput) StageDescription() pulumi.StringPtrOutput

Description to set on the stage managed by the `stageName` argument.

func (DeploymentOutput) StageName

func (o DeploymentOutput) StageName() pulumi.StringPtrOutput

Name of the stage to create with this deployment. If the specified stage already exists, it will be updated to point to the new deployment. We recommend using the `apigateway.Stage` resource instead to manage stages.

func (DeploymentOutput) ToDeploymentOutput

func (o DeploymentOutput) ToDeploymentOutput() DeploymentOutput

func (DeploymentOutput) ToDeploymentOutputWithContext

func (o DeploymentOutput) ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput

func (DeploymentOutput) Triggers

Map of arbitrary keys and values that, when changed, will trigger a redeployment.

func (DeploymentOutput) Variables

func (o DeploymentOutput) Variables() pulumi.StringMapOutput

Map to set on the stage managed by the `stageName` argument.

type DeploymentState

type DeploymentState struct {
	// Creation date of the deployment
	CreatedDate pulumi.StringPtrInput
	// Description of the deployment
	Description pulumi.StringPtrInput
	// Execution ARN to be used in `lambdaPermission`'s `sourceArn`
	// when allowing API Gateway to invoke a Lambda function,
	// e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`
	ExecutionArn pulumi.StringPtrInput
	// URL to invoke the API pointing to the stage,
	// e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`
	InvokeUrl pulumi.StringPtrInput
	// REST API identifier.
	RestApi pulumi.Input
	// Description to set on the stage managed by the `stageName` argument.
	StageDescription pulumi.StringPtrInput
	// Name of the stage to create with this deployment. If the specified stage already exists, it will be updated to point to the new deployment. We recommend using the `apigateway.Stage` resource instead to manage stages.
	StageName pulumi.StringPtrInput
	// Map of arbitrary keys and values that, when changed, will trigger a redeployment.
	Triggers pulumi.StringMapInput
	// Map to set on the stage managed by the `stageName` argument.
	Variables pulumi.StringMapInput
}

func (DeploymentState) ElementType

func (DeploymentState) ElementType() reflect.Type

type DocumentationPart

type DocumentationPart struct {
	pulumi.CustomResourceState

	// The DocumentationPart identifier, generated by API Gateway when the documentation part is created.
	DocumentationPartId pulumi.StringOutput `pulumi:"documentationPartId"`
	// Location of the targeted API entity of the to-be-created documentation part. See below.
	Location DocumentationPartLocationOutput `pulumi:"location"`
	// Content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \"description\": \"The API does ...\" }". Only Swagger-compliant key-value pairs can be exported and, hence, published.
	Properties pulumi.StringOutput `pulumi:"properties"`
	// ID of the associated Rest API
	RestApiId pulumi.StringOutput `pulumi:"restApiId"`
}

Provides a settings of an API Gateway Documentation Part.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleRestApi, err := apigateway.NewRestApi(ctx, "example", &apigateway.RestApiArgs{
			Name: pulumi.String("example_api"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewDocumentationPart(ctx, "example", &apigateway.DocumentationPartArgs{
			Location: &apigateway.DocumentationPartLocationArgs{
				Type:   pulumi.String("METHOD"),
				Method: pulumi.String("GET"),
				Path:   pulumi.String("/example"),
			},
			Properties: pulumi.String("{\"description\":\"Example description\"}"),
			RestApiId:  exampleRestApi.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway documentation_parts using `REST-API-ID/DOC-PART-ID`. For example:

```sh $ pulumi import aws:apigateway/documentationPart:DocumentationPart example 5i4e1ko720/3oyy3t ```

func GetDocumentationPart

func GetDocumentationPart(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DocumentationPartState, opts ...pulumi.ResourceOption) (*DocumentationPart, error)

GetDocumentationPart gets an existing DocumentationPart resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDocumentationPart

func NewDocumentationPart(ctx *pulumi.Context,
	name string, args *DocumentationPartArgs, opts ...pulumi.ResourceOption) (*DocumentationPart, error)

NewDocumentationPart registers a new resource with the given unique name, arguments, and options.

func (*DocumentationPart) ElementType

func (*DocumentationPart) ElementType() reflect.Type

func (*DocumentationPart) ToDocumentationPartOutput

func (i *DocumentationPart) ToDocumentationPartOutput() DocumentationPartOutput

func (*DocumentationPart) ToDocumentationPartOutputWithContext

func (i *DocumentationPart) ToDocumentationPartOutputWithContext(ctx context.Context) DocumentationPartOutput

type DocumentationPartArgs

type DocumentationPartArgs struct {
	// Location of the targeted API entity of the to-be-created documentation part. See below.
	Location DocumentationPartLocationInput
	// Content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \"description\": \"The API does ...\" }". Only Swagger-compliant key-value pairs can be exported and, hence, published.
	Properties pulumi.StringInput
	// ID of the associated Rest API
	RestApiId pulumi.StringInput
}

The set of arguments for constructing a DocumentationPart resource.

func (DocumentationPartArgs) ElementType

func (DocumentationPartArgs) ElementType() reflect.Type

type DocumentationPartArray

type DocumentationPartArray []DocumentationPartInput

func (DocumentationPartArray) ElementType

func (DocumentationPartArray) ElementType() reflect.Type

func (DocumentationPartArray) ToDocumentationPartArrayOutput

func (i DocumentationPartArray) ToDocumentationPartArrayOutput() DocumentationPartArrayOutput

func (DocumentationPartArray) ToDocumentationPartArrayOutputWithContext

func (i DocumentationPartArray) ToDocumentationPartArrayOutputWithContext(ctx context.Context) DocumentationPartArrayOutput

type DocumentationPartArrayInput

type DocumentationPartArrayInput interface {
	pulumi.Input

	ToDocumentationPartArrayOutput() DocumentationPartArrayOutput
	ToDocumentationPartArrayOutputWithContext(context.Context) DocumentationPartArrayOutput
}

DocumentationPartArrayInput is an input type that accepts DocumentationPartArray and DocumentationPartArrayOutput values. You can construct a concrete instance of `DocumentationPartArrayInput` via:

DocumentationPartArray{ DocumentationPartArgs{...} }

type DocumentationPartArrayOutput

type DocumentationPartArrayOutput struct{ *pulumi.OutputState }

func (DocumentationPartArrayOutput) ElementType

func (DocumentationPartArrayOutput) Index

func (DocumentationPartArrayOutput) ToDocumentationPartArrayOutput

func (o DocumentationPartArrayOutput) ToDocumentationPartArrayOutput() DocumentationPartArrayOutput

func (DocumentationPartArrayOutput) ToDocumentationPartArrayOutputWithContext

func (o DocumentationPartArrayOutput) ToDocumentationPartArrayOutputWithContext(ctx context.Context) DocumentationPartArrayOutput

type DocumentationPartInput

type DocumentationPartInput interface {
	pulumi.Input

	ToDocumentationPartOutput() DocumentationPartOutput
	ToDocumentationPartOutputWithContext(ctx context.Context) DocumentationPartOutput
}

type DocumentationPartLocation

type DocumentationPartLocation struct {
	// HTTP verb of a method. The default value is `*` for any method.
	Method *string `pulumi:"method"`
	// Name of the targeted API entity.
	Name *string `pulumi:"name"`
	// URL path of the target. The default value is `/` for the root resource.
	Path *string `pulumi:"path"`
	// HTTP status code of a response. The default value is `*` for any status code.
	StatusCode *string `pulumi:"statusCode"`
	// Type of API entity to which the documentation content appliesE.g., `API`, `METHOD` or `REQUEST_BODY`
	Type string `pulumi:"type"`
}

type DocumentationPartLocationArgs

type DocumentationPartLocationArgs struct {
	// HTTP verb of a method. The default value is `*` for any method.
	Method pulumi.StringPtrInput `pulumi:"method"`
	// Name of the targeted API entity.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// URL path of the target. The default value is `/` for the root resource.
	Path pulumi.StringPtrInput `pulumi:"path"`
	// HTTP status code of a response. The default value is `*` for any status code.
	StatusCode pulumi.StringPtrInput `pulumi:"statusCode"`
	// Type of API entity to which the documentation content appliesE.g., `API`, `METHOD` or `REQUEST_BODY`
	Type pulumi.StringInput `pulumi:"type"`
}

func (DocumentationPartLocationArgs) ElementType

func (DocumentationPartLocationArgs) ToDocumentationPartLocationOutput

func (i DocumentationPartLocationArgs) ToDocumentationPartLocationOutput() DocumentationPartLocationOutput

func (DocumentationPartLocationArgs) ToDocumentationPartLocationOutputWithContext

func (i DocumentationPartLocationArgs) ToDocumentationPartLocationOutputWithContext(ctx context.Context) DocumentationPartLocationOutput

func (DocumentationPartLocationArgs) ToDocumentationPartLocationPtrOutput

func (i DocumentationPartLocationArgs) ToDocumentationPartLocationPtrOutput() DocumentationPartLocationPtrOutput

func (DocumentationPartLocationArgs) ToDocumentationPartLocationPtrOutputWithContext

func (i DocumentationPartLocationArgs) ToDocumentationPartLocationPtrOutputWithContext(ctx context.Context) DocumentationPartLocationPtrOutput

type DocumentationPartLocationInput

type DocumentationPartLocationInput interface {
	pulumi.Input

	ToDocumentationPartLocationOutput() DocumentationPartLocationOutput
	ToDocumentationPartLocationOutputWithContext(context.Context) DocumentationPartLocationOutput
}

DocumentationPartLocationInput is an input type that accepts DocumentationPartLocationArgs and DocumentationPartLocationOutput values. You can construct a concrete instance of `DocumentationPartLocationInput` via:

DocumentationPartLocationArgs{...}

type DocumentationPartLocationOutput

type DocumentationPartLocationOutput struct{ *pulumi.OutputState }

func (DocumentationPartLocationOutput) ElementType

func (DocumentationPartLocationOutput) Method

HTTP verb of a method. The default value is `*` for any method.

func (DocumentationPartLocationOutput) Name

Name of the targeted API entity.

func (DocumentationPartLocationOutput) Path

URL path of the target. The default value is `/` for the root resource.

func (DocumentationPartLocationOutput) StatusCode

HTTP status code of a response. The default value is `*` for any status code.

func (DocumentationPartLocationOutput) ToDocumentationPartLocationOutput

func (o DocumentationPartLocationOutput) ToDocumentationPartLocationOutput() DocumentationPartLocationOutput

func (DocumentationPartLocationOutput) ToDocumentationPartLocationOutputWithContext

func (o DocumentationPartLocationOutput) ToDocumentationPartLocationOutputWithContext(ctx context.Context) DocumentationPartLocationOutput

func (DocumentationPartLocationOutput) ToDocumentationPartLocationPtrOutput

func (o DocumentationPartLocationOutput) ToDocumentationPartLocationPtrOutput() DocumentationPartLocationPtrOutput

func (DocumentationPartLocationOutput) ToDocumentationPartLocationPtrOutputWithContext

func (o DocumentationPartLocationOutput) ToDocumentationPartLocationPtrOutputWithContext(ctx context.Context) DocumentationPartLocationPtrOutput

func (DocumentationPartLocationOutput) Type

Type of API entity to which the documentation content appliesE.g., `API`, `METHOD` or `REQUEST_BODY`

type DocumentationPartLocationPtrInput

type DocumentationPartLocationPtrInput interface {
	pulumi.Input

	ToDocumentationPartLocationPtrOutput() DocumentationPartLocationPtrOutput
	ToDocumentationPartLocationPtrOutputWithContext(context.Context) DocumentationPartLocationPtrOutput
}

DocumentationPartLocationPtrInput is an input type that accepts DocumentationPartLocationArgs, DocumentationPartLocationPtr and DocumentationPartLocationPtrOutput values. You can construct a concrete instance of `DocumentationPartLocationPtrInput` via:

        DocumentationPartLocationArgs{...}

or:

        nil

type DocumentationPartLocationPtrOutput

type DocumentationPartLocationPtrOutput struct{ *pulumi.OutputState }

func (DocumentationPartLocationPtrOutput) Elem

func (DocumentationPartLocationPtrOutput) ElementType

func (DocumentationPartLocationPtrOutput) Method

HTTP verb of a method. The default value is `*` for any method.

func (DocumentationPartLocationPtrOutput) Name

Name of the targeted API entity.

func (DocumentationPartLocationPtrOutput) Path

URL path of the target. The default value is `/` for the root resource.

func (DocumentationPartLocationPtrOutput) StatusCode

HTTP status code of a response. The default value is `*` for any status code.

func (DocumentationPartLocationPtrOutput) ToDocumentationPartLocationPtrOutput

func (o DocumentationPartLocationPtrOutput) ToDocumentationPartLocationPtrOutput() DocumentationPartLocationPtrOutput

func (DocumentationPartLocationPtrOutput) ToDocumentationPartLocationPtrOutputWithContext

func (o DocumentationPartLocationPtrOutput) ToDocumentationPartLocationPtrOutputWithContext(ctx context.Context) DocumentationPartLocationPtrOutput

func (DocumentationPartLocationPtrOutput) Type

Type of API entity to which the documentation content appliesE.g., `API`, `METHOD` or `REQUEST_BODY`

type DocumentationPartMap

type DocumentationPartMap map[string]DocumentationPartInput

func (DocumentationPartMap) ElementType

func (DocumentationPartMap) ElementType() reflect.Type

func (DocumentationPartMap) ToDocumentationPartMapOutput

func (i DocumentationPartMap) ToDocumentationPartMapOutput() DocumentationPartMapOutput

func (DocumentationPartMap) ToDocumentationPartMapOutputWithContext

func (i DocumentationPartMap) ToDocumentationPartMapOutputWithContext(ctx context.Context) DocumentationPartMapOutput

type DocumentationPartMapInput

type DocumentationPartMapInput interface {
	pulumi.Input

	ToDocumentationPartMapOutput() DocumentationPartMapOutput
	ToDocumentationPartMapOutputWithContext(context.Context) DocumentationPartMapOutput
}

DocumentationPartMapInput is an input type that accepts DocumentationPartMap and DocumentationPartMapOutput values. You can construct a concrete instance of `DocumentationPartMapInput` via:

DocumentationPartMap{ "key": DocumentationPartArgs{...} }

type DocumentationPartMapOutput

type DocumentationPartMapOutput struct{ *pulumi.OutputState }

func (DocumentationPartMapOutput) ElementType

func (DocumentationPartMapOutput) ElementType() reflect.Type

func (DocumentationPartMapOutput) MapIndex

func (DocumentationPartMapOutput) ToDocumentationPartMapOutput

func (o DocumentationPartMapOutput) ToDocumentationPartMapOutput() DocumentationPartMapOutput

func (DocumentationPartMapOutput) ToDocumentationPartMapOutputWithContext

func (o DocumentationPartMapOutput) ToDocumentationPartMapOutputWithContext(ctx context.Context) DocumentationPartMapOutput

type DocumentationPartOutput

type DocumentationPartOutput struct{ *pulumi.OutputState }

func (DocumentationPartOutput) DocumentationPartId added in v6.31.0

func (o DocumentationPartOutput) DocumentationPartId() pulumi.StringOutput

The DocumentationPart identifier, generated by API Gateway when the documentation part is created.

func (DocumentationPartOutput) ElementType

func (DocumentationPartOutput) ElementType() reflect.Type

func (DocumentationPartOutput) Location

Location of the targeted API entity of the to-be-created documentation part. See below.

func (DocumentationPartOutput) Properties

Content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \"description\": \"The API does ...\" }". Only Swagger-compliant key-value pairs can be exported and, hence, published.

func (DocumentationPartOutput) RestApiId

ID of the associated Rest API

func (DocumentationPartOutput) ToDocumentationPartOutput

func (o DocumentationPartOutput) ToDocumentationPartOutput() DocumentationPartOutput

func (DocumentationPartOutput) ToDocumentationPartOutputWithContext

func (o DocumentationPartOutput) ToDocumentationPartOutputWithContext(ctx context.Context) DocumentationPartOutput

type DocumentationPartState

type DocumentationPartState struct {
	// The DocumentationPart identifier, generated by API Gateway when the documentation part is created.
	DocumentationPartId pulumi.StringPtrInput
	// Location of the targeted API entity of the to-be-created documentation part. See below.
	Location DocumentationPartLocationPtrInput
	// Content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \"description\": \"The API does ...\" }". Only Swagger-compliant key-value pairs can be exported and, hence, published.
	Properties pulumi.StringPtrInput
	// ID of the associated Rest API
	RestApiId pulumi.StringPtrInput
}

func (DocumentationPartState) ElementType

func (DocumentationPartState) ElementType() reflect.Type

type DocumentationVersion

type DocumentationVersion struct {
	pulumi.CustomResourceState

	// Description of the API documentation version.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// ID of the associated Rest API
	RestApiId pulumi.StringOutput `pulumi:"restApiId"`
	// Version identifier of the API documentation snapshot.
	Version pulumi.StringOutput `pulumi:"version"`
}

Provides a resource to manage an API Gateway Documentation Version.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleRestApi, err := apigateway.NewRestApi(ctx, "example", &apigateway.RestApiArgs{
			Name: pulumi.String("example_api"),
		})
		if err != nil {
			return err
		}
		exampleDocumentationPart, err := apigateway.NewDocumentationPart(ctx, "example", &apigateway.DocumentationPartArgs{
			Location: &apigateway.DocumentationPartLocationArgs{
				Type: pulumi.String("API"),
			},
			Properties: pulumi.String("{\"description\":\"Example\"}"),
			RestApiId:  exampleRestApi.ID(),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewDocumentationVersion(ctx, "example", &apigateway.DocumentationVersionArgs{
			Version:     pulumi.String("example_version"),
			RestApiId:   exampleRestApi.ID(),
			Description: pulumi.String("Example description"),
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleDocumentationPart,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway documentation versions using `REST-API-ID/VERSION`. For example:

```sh $ pulumi import aws:apigateway/documentationVersion:DocumentationVersion example 5i4e1ko720/example-version ```

func GetDocumentationVersion

func GetDocumentationVersion(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DocumentationVersionState, opts ...pulumi.ResourceOption) (*DocumentationVersion, error)

GetDocumentationVersion gets an existing DocumentationVersion resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDocumentationVersion

func NewDocumentationVersion(ctx *pulumi.Context,
	name string, args *DocumentationVersionArgs, opts ...pulumi.ResourceOption) (*DocumentationVersion, error)

NewDocumentationVersion registers a new resource with the given unique name, arguments, and options.

func (*DocumentationVersion) ElementType

func (*DocumentationVersion) ElementType() reflect.Type

func (*DocumentationVersion) ToDocumentationVersionOutput

func (i *DocumentationVersion) ToDocumentationVersionOutput() DocumentationVersionOutput

func (*DocumentationVersion) ToDocumentationVersionOutputWithContext

func (i *DocumentationVersion) ToDocumentationVersionOutputWithContext(ctx context.Context) DocumentationVersionOutput

type DocumentationVersionArgs

type DocumentationVersionArgs struct {
	// Description of the API documentation version.
	Description pulumi.StringPtrInput
	// ID of the associated Rest API
	RestApiId pulumi.StringInput
	// Version identifier of the API documentation snapshot.
	Version pulumi.StringInput
}

The set of arguments for constructing a DocumentationVersion resource.

func (DocumentationVersionArgs) ElementType

func (DocumentationVersionArgs) ElementType() reflect.Type

type DocumentationVersionArray

type DocumentationVersionArray []DocumentationVersionInput

func (DocumentationVersionArray) ElementType

func (DocumentationVersionArray) ElementType() reflect.Type

func (DocumentationVersionArray) ToDocumentationVersionArrayOutput

func (i DocumentationVersionArray) ToDocumentationVersionArrayOutput() DocumentationVersionArrayOutput

func (DocumentationVersionArray) ToDocumentationVersionArrayOutputWithContext

func (i DocumentationVersionArray) ToDocumentationVersionArrayOutputWithContext(ctx context.Context) DocumentationVersionArrayOutput

type DocumentationVersionArrayInput

type DocumentationVersionArrayInput interface {
	pulumi.Input

	ToDocumentationVersionArrayOutput() DocumentationVersionArrayOutput
	ToDocumentationVersionArrayOutputWithContext(context.Context) DocumentationVersionArrayOutput
}

DocumentationVersionArrayInput is an input type that accepts DocumentationVersionArray and DocumentationVersionArrayOutput values. You can construct a concrete instance of `DocumentationVersionArrayInput` via:

DocumentationVersionArray{ DocumentationVersionArgs{...} }

type DocumentationVersionArrayOutput

type DocumentationVersionArrayOutput struct{ *pulumi.OutputState }

func (DocumentationVersionArrayOutput) ElementType

func (DocumentationVersionArrayOutput) Index

func (DocumentationVersionArrayOutput) ToDocumentationVersionArrayOutput

func (o DocumentationVersionArrayOutput) ToDocumentationVersionArrayOutput() DocumentationVersionArrayOutput

func (DocumentationVersionArrayOutput) ToDocumentationVersionArrayOutputWithContext

func (o DocumentationVersionArrayOutput) ToDocumentationVersionArrayOutputWithContext(ctx context.Context) DocumentationVersionArrayOutput

type DocumentationVersionInput

type DocumentationVersionInput interface {
	pulumi.Input

	ToDocumentationVersionOutput() DocumentationVersionOutput
	ToDocumentationVersionOutputWithContext(ctx context.Context) DocumentationVersionOutput
}

type DocumentationVersionMap

type DocumentationVersionMap map[string]DocumentationVersionInput

func (DocumentationVersionMap) ElementType

func (DocumentationVersionMap) ElementType() reflect.Type

func (DocumentationVersionMap) ToDocumentationVersionMapOutput

func (i DocumentationVersionMap) ToDocumentationVersionMapOutput() DocumentationVersionMapOutput

func (DocumentationVersionMap) ToDocumentationVersionMapOutputWithContext

func (i DocumentationVersionMap) ToDocumentationVersionMapOutputWithContext(ctx context.Context) DocumentationVersionMapOutput

type DocumentationVersionMapInput

type DocumentationVersionMapInput interface {
	pulumi.Input

	ToDocumentationVersionMapOutput() DocumentationVersionMapOutput
	ToDocumentationVersionMapOutputWithContext(context.Context) DocumentationVersionMapOutput
}

DocumentationVersionMapInput is an input type that accepts DocumentationVersionMap and DocumentationVersionMapOutput values. You can construct a concrete instance of `DocumentationVersionMapInput` via:

DocumentationVersionMap{ "key": DocumentationVersionArgs{...} }

type DocumentationVersionMapOutput

type DocumentationVersionMapOutput struct{ *pulumi.OutputState }

func (DocumentationVersionMapOutput) ElementType

func (DocumentationVersionMapOutput) MapIndex

func (DocumentationVersionMapOutput) ToDocumentationVersionMapOutput

func (o DocumentationVersionMapOutput) ToDocumentationVersionMapOutput() DocumentationVersionMapOutput

func (DocumentationVersionMapOutput) ToDocumentationVersionMapOutputWithContext

func (o DocumentationVersionMapOutput) ToDocumentationVersionMapOutputWithContext(ctx context.Context) DocumentationVersionMapOutput

type DocumentationVersionOutput

type DocumentationVersionOutput struct{ *pulumi.OutputState }

func (DocumentationVersionOutput) Description

Description of the API documentation version.

func (DocumentationVersionOutput) ElementType

func (DocumentationVersionOutput) ElementType() reflect.Type

func (DocumentationVersionOutput) RestApiId

ID of the associated Rest API

func (DocumentationVersionOutput) ToDocumentationVersionOutput

func (o DocumentationVersionOutput) ToDocumentationVersionOutput() DocumentationVersionOutput

func (DocumentationVersionOutput) ToDocumentationVersionOutputWithContext

func (o DocumentationVersionOutput) ToDocumentationVersionOutputWithContext(ctx context.Context) DocumentationVersionOutput

func (DocumentationVersionOutput) Version

Version identifier of the API documentation snapshot.

type DocumentationVersionState

type DocumentationVersionState struct {
	// Description of the API documentation version.
	Description pulumi.StringPtrInput
	// ID of the associated Rest API
	RestApiId pulumi.StringPtrInput
	// Version identifier of the API documentation snapshot.
	Version pulumi.StringPtrInput
}

func (DocumentationVersionState) ElementType

func (DocumentationVersionState) ElementType() reflect.Type

type DomainName

type DomainName struct {
	pulumi.CustomResourceState

	// ARN of domain name.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when an edge-optimized domain name is desired. Conflicts with `certificateName`, `certificateBody`, `certificateChain`, `certificatePrivateKey`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateArn pulumi.StringPtrOutput `pulumi:"certificateArn"`
	// Certificate issued for the domain name being registered, in PEM format. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateBody pulumi.StringPtrOutput `pulumi:"certificateBody"`
	// Certificate for the CA that issued the certificate, along with any intermediate CA certificates required to create an unbroken chain to a certificate trusted by the intended API clients. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateChain pulumi.StringPtrOutput `pulumi:"certificateChain"`
	// Unique name to use when registering this certificate as an IAM server certificate. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`. Required if `certificateArn` is not set.
	CertificateName pulumi.StringPtrOutput `pulumi:"certificateName"`
	// Private key associated with the domain certificate given in `certificateBody`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificatePrivateKey pulumi.StringPtrOutput `pulumi:"certificatePrivateKey"`
	// Upload date associated with the domain certificate.
	CertificateUploadDate pulumi.StringOutput `pulumi:"certificateUploadDate"`
	// Hostname created by Cloudfront to represent the distribution that implements this domain name mapping.
	CloudfrontDomainName pulumi.StringOutput `pulumi:"cloudfrontDomainName"`
	// For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.
	CloudfrontZoneId pulumi.StringOutput `pulumi:"cloudfrontZoneId"`
	// Fully-qualified domain name to register.
	DomainName pulumi.StringOutput `pulumi:"domainName"`
	// Configuration block defining API endpoint information including type. See below.
	EndpointConfiguration DomainNameEndpointConfigurationOutput `pulumi:"endpointConfiguration"`
	// Mutual TLS authentication configuration for the domain name. See below.
	MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrOutput `pulumi:"mutualTlsAuthentication"`
	// ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificateArn` is issued via an ACM Private CA or `mutualTlsAuthentication` is configured with an ACM-imported certificate.)
	OwnershipVerificationCertificateArn pulumi.StringOutput `pulumi:"ownershipVerificationCertificateArn"`
	// ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.
	//
	// When uploading a certificate, the following arguments are supported:
	RegionalCertificateArn pulumi.StringPtrOutput `pulumi:"regionalCertificateArn"`
	// User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.
	RegionalCertificateName pulumi.StringPtrOutput `pulumi:"regionalCertificateName"`
	// Hostname for the custom domain's regional endpoint.
	RegionalDomainName pulumi.StringOutput `pulumi:"regionalDomainName"`
	// Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.
	RegionalZoneId pulumi.StringOutput `pulumi:"regionalZoneId"`
	// Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
	SecurityPolicy pulumi.StringOutput `pulumi:"securityPolicy"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	//
	// When referencing an AWS-managed certificate, the following arguments are supported:
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}

Registers a custom domain name for use with AWS API Gateway. Additional information about this functionality can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html).

This resource just establishes ownership of and the TLS settings for a particular domain name. An API can be attached to a particular path under the registered domain name using the `apigateway.BasePathMapping` resource.

API Gateway domains can be defined as either 'edge-optimized' or 'regional'. In an edge-optimized configuration, API Gateway internally creates and manages a CloudFront distribution to route requests on the given hostname. In addition to this resource it's necessary to create a DNS record corresponding to the given domain name which is an alias (either Route53 alias or traditional CNAME) to the Cloudfront domain name exported in the `cloudfrontDomainName` attribute.

In a regional configuration, API Gateway does not create a CloudFront distribution to route requests to the API, though a distribution can be created if needed. In either case, it is necessary to create a DNS record corresponding to the given domain name which is an alias (either Route53 alias or traditional CNAME) to the regional domain name exported in the `regionalDomainName` attribute.

> **Note:** API Gateway requires the use of AWS Certificate Manager (ACM) certificates instead of Identity and Access Management (IAM) certificates in regions that support ACM. Regions that support ACM can be found in the [Regions and Endpoints Documentation](https://docs.aws.amazon.com/general/latest/gr/rande.html#acm_region). To import an existing private key and certificate into ACM or request an ACM certificate, see the `acm.Certificate` resource.

> **Note:** The `apigateway.DomainName` resource expects dependency on the `acm.CertificateValidation` as only verified certificates can be used. This can be made either explicitly by adding the `dependsOn = [aws_acm_certificate_validation.cert]` attribute. Or implicitly by referring certificate ARN from the validation resource where it will be available after the resource creation: `regionalCertificateArn = aws_acm_certificate_validation.cert.certificate_arn`.

## Example Usage

### Edge Optimized (ACM Certificate)

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := apigateway.NewDomainName(ctx, "example", &apigateway.DomainNameArgs{
			CertificateArn: pulumi.Any(exampleAwsAcmCertificateValidation.CertificateArn),
			DomainName:     pulumi.String("api.example.com"),
		})
		if err != nil {
			return err
		}
		// Example DNS record using Route53.
		// Route53 is not specifically required; any DNS host can be used.
		_, err = route53.NewRecord(ctx, "example", &route53.RecordArgs{
			Name:   example.DomainName,
			Type:   pulumi.String(route53.RecordTypeA),
			ZoneId: pulumi.Any(exampleAwsRoute53Zone.Id),
			Aliases: route53.RecordAliasArray{
				&route53.RecordAliasArgs{
					EvaluateTargetHealth: pulumi.Bool(true),
					Name:                 example.CloudfrontDomainName,
					ZoneId:               example.CloudfrontZoneId,
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Regional (ACM Certificate)

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := apigateway.NewDomainName(ctx, "example", &apigateway.DomainNameArgs{
			DomainName:             pulumi.String("api.example.com"),
			RegionalCertificateArn: pulumi.Any(exampleAwsAcmCertificateValidation.CertificateArn),
			EndpointConfiguration: &apigateway.DomainNameEndpointConfigurationArgs{
				Types: pulumi.String("REGIONAL"),
			},
		})
		if err != nil {
			return err
		}
		// Example DNS record using Route53.
		// Route53 is not specifically required; any DNS host can be used.
		_, err = route53.NewRecord(ctx, "example", &route53.RecordArgs{
			Name:   example.DomainName,
			Type:   pulumi.String(route53.RecordTypeA),
			ZoneId: pulumi.Any(exampleAwsRoute53Zone.Id),
			Aliases: route53.RecordAliasArray{
				&route53.RecordAliasArgs{
					EvaluateTargetHealth: pulumi.Bool(true),
					Name:                 example.RegionalDomainName,
					ZoneId:               example.RegionalZoneId,
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway domain names using their `name`. For example:

```sh $ pulumi import aws:apigateway/domainName:DomainName example dev.example.com ```

func GetDomainName

func GetDomainName(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DomainNameState, opts ...pulumi.ResourceOption) (*DomainName, error)

GetDomainName gets an existing DomainName resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDomainName

func NewDomainName(ctx *pulumi.Context,
	name string, args *DomainNameArgs, opts ...pulumi.ResourceOption) (*DomainName, error)

NewDomainName registers a new resource with the given unique name, arguments, and options.

func (*DomainName) ElementType

func (*DomainName) ElementType() reflect.Type

func (*DomainName) ToDomainNameOutput

func (i *DomainName) ToDomainNameOutput() DomainNameOutput

func (*DomainName) ToDomainNameOutputWithContext

func (i *DomainName) ToDomainNameOutputWithContext(ctx context.Context) DomainNameOutput

type DomainNameArgs

type DomainNameArgs struct {
	// ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when an edge-optimized domain name is desired. Conflicts with `certificateName`, `certificateBody`, `certificateChain`, `certificatePrivateKey`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateArn pulumi.StringPtrInput
	// Certificate issued for the domain name being registered, in PEM format. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateBody pulumi.StringPtrInput
	// Certificate for the CA that issued the certificate, along with any intermediate CA certificates required to create an unbroken chain to a certificate trusted by the intended API clients. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateChain pulumi.StringPtrInput
	// Unique name to use when registering this certificate as an IAM server certificate. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`. Required if `certificateArn` is not set.
	CertificateName pulumi.StringPtrInput
	// Private key associated with the domain certificate given in `certificateBody`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificatePrivateKey pulumi.StringPtrInput
	// Fully-qualified domain name to register.
	DomainName pulumi.StringInput
	// Configuration block defining API endpoint information including type. See below.
	EndpointConfiguration DomainNameEndpointConfigurationPtrInput
	// Mutual TLS authentication configuration for the domain name. See below.
	MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrInput
	// ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificateArn` is issued via an ACM Private CA or `mutualTlsAuthentication` is configured with an ACM-imported certificate.)
	OwnershipVerificationCertificateArn pulumi.StringPtrInput
	// ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.
	//
	// When uploading a certificate, the following arguments are supported:
	RegionalCertificateArn pulumi.StringPtrInput
	// User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.
	RegionalCertificateName pulumi.StringPtrInput
	// Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
	SecurityPolicy pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	//
	// When referencing an AWS-managed certificate, the following arguments are supported:
	Tags pulumi.StringMapInput
}

The set of arguments for constructing a DomainName resource.

func (DomainNameArgs) ElementType

func (DomainNameArgs) ElementType() reflect.Type

type DomainNameArray

type DomainNameArray []DomainNameInput

func (DomainNameArray) ElementType

func (DomainNameArray) ElementType() reflect.Type

func (DomainNameArray) ToDomainNameArrayOutput

func (i DomainNameArray) ToDomainNameArrayOutput() DomainNameArrayOutput

func (DomainNameArray) ToDomainNameArrayOutputWithContext

func (i DomainNameArray) ToDomainNameArrayOutputWithContext(ctx context.Context) DomainNameArrayOutput

type DomainNameArrayInput

type DomainNameArrayInput interface {
	pulumi.Input

	ToDomainNameArrayOutput() DomainNameArrayOutput
	ToDomainNameArrayOutputWithContext(context.Context) DomainNameArrayOutput
}

DomainNameArrayInput is an input type that accepts DomainNameArray and DomainNameArrayOutput values. You can construct a concrete instance of `DomainNameArrayInput` via:

DomainNameArray{ DomainNameArgs{...} }

type DomainNameArrayOutput

type DomainNameArrayOutput struct{ *pulumi.OutputState }

func (DomainNameArrayOutput) ElementType

func (DomainNameArrayOutput) ElementType() reflect.Type

func (DomainNameArrayOutput) Index

func (DomainNameArrayOutput) ToDomainNameArrayOutput

func (o DomainNameArrayOutput) ToDomainNameArrayOutput() DomainNameArrayOutput

func (DomainNameArrayOutput) ToDomainNameArrayOutputWithContext

func (o DomainNameArrayOutput) ToDomainNameArrayOutputWithContext(ctx context.Context) DomainNameArrayOutput

type DomainNameEndpointConfiguration

type DomainNameEndpointConfiguration struct {
	// List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE` or `REGIONAL`. If unspecified, defaults to `EDGE`. Must be declared as `REGIONAL` in non-Commercial partitions. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.
	Types string `pulumi:"types"`
}

type DomainNameEndpointConfigurationArgs

type DomainNameEndpointConfigurationArgs struct {
	// List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE` or `REGIONAL`. If unspecified, defaults to `EDGE`. Must be declared as `REGIONAL` in non-Commercial partitions. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.
	Types pulumi.StringInput `pulumi:"types"`
}

func (DomainNameEndpointConfigurationArgs) ElementType

func (DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationOutput

func (i DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationOutput() DomainNameEndpointConfigurationOutput

func (DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationOutputWithContext

func (i DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationOutputWithContext(ctx context.Context) DomainNameEndpointConfigurationOutput

func (DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationPtrOutput

func (i DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationPtrOutput() DomainNameEndpointConfigurationPtrOutput

func (DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationPtrOutputWithContext

func (i DomainNameEndpointConfigurationArgs) ToDomainNameEndpointConfigurationPtrOutputWithContext(ctx context.Context) DomainNameEndpointConfigurationPtrOutput

type DomainNameEndpointConfigurationInput

type DomainNameEndpointConfigurationInput interface {
	pulumi.Input

	ToDomainNameEndpointConfigurationOutput() DomainNameEndpointConfigurationOutput
	ToDomainNameEndpointConfigurationOutputWithContext(context.Context) DomainNameEndpointConfigurationOutput
}

DomainNameEndpointConfigurationInput is an input type that accepts DomainNameEndpointConfigurationArgs and DomainNameEndpointConfigurationOutput values. You can construct a concrete instance of `DomainNameEndpointConfigurationInput` via:

DomainNameEndpointConfigurationArgs{...}

type DomainNameEndpointConfigurationOutput

type DomainNameEndpointConfigurationOutput struct{ *pulumi.OutputState }

func (DomainNameEndpointConfigurationOutput) ElementType

func (DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationOutput

func (o DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationOutput() DomainNameEndpointConfigurationOutput

func (DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationOutputWithContext

func (o DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationOutputWithContext(ctx context.Context) DomainNameEndpointConfigurationOutput

func (DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationPtrOutput

func (o DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationPtrOutput() DomainNameEndpointConfigurationPtrOutput

func (DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationPtrOutputWithContext

func (o DomainNameEndpointConfigurationOutput) ToDomainNameEndpointConfigurationPtrOutputWithContext(ctx context.Context) DomainNameEndpointConfigurationPtrOutput

func (DomainNameEndpointConfigurationOutput) Types

List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE` or `REGIONAL`. If unspecified, defaults to `EDGE`. Must be declared as `REGIONAL` in non-Commercial partitions. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.

type DomainNameEndpointConfigurationPtrInput

type DomainNameEndpointConfigurationPtrInput interface {
	pulumi.Input

	ToDomainNameEndpointConfigurationPtrOutput() DomainNameEndpointConfigurationPtrOutput
	ToDomainNameEndpointConfigurationPtrOutputWithContext(context.Context) DomainNameEndpointConfigurationPtrOutput
}

DomainNameEndpointConfigurationPtrInput is an input type that accepts DomainNameEndpointConfigurationArgs, DomainNameEndpointConfigurationPtr and DomainNameEndpointConfigurationPtrOutput values. You can construct a concrete instance of `DomainNameEndpointConfigurationPtrInput` via:

        DomainNameEndpointConfigurationArgs{...}

or:

        nil

type DomainNameEndpointConfigurationPtrOutput

type DomainNameEndpointConfigurationPtrOutput struct{ *pulumi.OutputState }

func (DomainNameEndpointConfigurationPtrOutput) Elem

func (DomainNameEndpointConfigurationPtrOutput) ElementType

func (DomainNameEndpointConfigurationPtrOutput) ToDomainNameEndpointConfigurationPtrOutput

func (o DomainNameEndpointConfigurationPtrOutput) ToDomainNameEndpointConfigurationPtrOutput() DomainNameEndpointConfigurationPtrOutput

func (DomainNameEndpointConfigurationPtrOutput) ToDomainNameEndpointConfigurationPtrOutputWithContext

func (o DomainNameEndpointConfigurationPtrOutput) ToDomainNameEndpointConfigurationPtrOutputWithContext(ctx context.Context) DomainNameEndpointConfigurationPtrOutput

func (DomainNameEndpointConfigurationPtrOutput) Types

List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE` or `REGIONAL`. If unspecified, defaults to `EDGE`. Must be declared as `REGIONAL` in non-Commercial partitions. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.

type DomainNameInput

type DomainNameInput interface {
	pulumi.Input

	ToDomainNameOutput() DomainNameOutput
	ToDomainNameOutputWithContext(ctx context.Context) DomainNameOutput
}

type DomainNameMap

type DomainNameMap map[string]DomainNameInput

func (DomainNameMap) ElementType

func (DomainNameMap) ElementType() reflect.Type

func (DomainNameMap) ToDomainNameMapOutput

func (i DomainNameMap) ToDomainNameMapOutput() DomainNameMapOutput

func (DomainNameMap) ToDomainNameMapOutputWithContext

func (i DomainNameMap) ToDomainNameMapOutputWithContext(ctx context.Context) DomainNameMapOutput

type DomainNameMapInput

type DomainNameMapInput interface {
	pulumi.Input

	ToDomainNameMapOutput() DomainNameMapOutput
	ToDomainNameMapOutputWithContext(context.Context) DomainNameMapOutput
}

DomainNameMapInput is an input type that accepts DomainNameMap and DomainNameMapOutput values. You can construct a concrete instance of `DomainNameMapInput` via:

DomainNameMap{ "key": DomainNameArgs{...} }

type DomainNameMapOutput

type DomainNameMapOutput struct{ *pulumi.OutputState }

func (DomainNameMapOutput) ElementType

func (DomainNameMapOutput) ElementType() reflect.Type

func (DomainNameMapOutput) MapIndex

func (DomainNameMapOutput) ToDomainNameMapOutput

func (o DomainNameMapOutput) ToDomainNameMapOutput() DomainNameMapOutput

func (DomainNameMapOutput) ToDomainNameMapOutputWithContext

func (o DomainNameMapOutput) ToDomainNameMapOutputWithContext(ctx context.Context) DomainNameMapOutput

type DomainNameMutualTlsAuthentication

type DomainNameMutualTlsAuthentication struct {
	// Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version.
	TruststoreUri string `pulumi:"truststoreUri"`
	// Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket.
	TruststoreVersion *string `pulumi:"truststoreVersion"`
}

type DomainNameMutualTlsAuthenticationArgs

type DomainNameMutualTlsAuthenticationArgs struct {
	// Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version.
	TruststoreUri pulumi.StringInput `pulumi:"truststoreUri"`
	// Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket.
	TruststoreVersion pulumi.StringPtrInput `pulumi:"truststoreVersion"`
}

func (DomainNameMutualTlsAuthenticationArgs) ElementType

func (DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationOutput

func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationOutput() DomainNameMutualTlsAuthenticationOutput

func (DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationOutputWithContext

func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationOutput

func (DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationPtrOutput

func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput

func (DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext

func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput

type DomainNameMutualTlsAuthenticationInput

type DomainNameMutualTlsAuthenticationInput interface {
	pulumi.Input

	ToDomainNameMutualTlsAuthenticationOutput() DomainNameMutualTlsAuthenticationOutput
	ToDomainNameMutualTlsAuthenticationOutputWithContext(context.Context) DomainNameMutualTlsAuthenticationOutput
}

DomainNameMutualTlsAuthenticationInput is an input type that accepts DomainNameMutualTlsAuthenticationArgs and DomainNameMutualTlsAuthenticationOutput values. You can construct a concrete instance of `DomainNameMutualTlsAuthenticationInput` via:

DomainNameMutualTlsAuthenticationArgs{...}

type DomainNameMutualTlsAuthenticationOutput

type DomainNameMutualTlsAuthenticationOutput struct{ *pulumi.OutputState }

func (DomainNameMutualTlsAuthenticationOutput) ElementType

func (DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationOutput

func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationOutput() DomainNameMutualTlsAuthenticationOutput

func (DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationOutputWithContext

func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationOutput

func (DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationPtrOutput

func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput

func (DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext

func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput

func (DomainNameMutualTlsAuthenticationOutput) TruststoreUri

Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version.

func (DomainNameMutualTlsAuthenticationOutput) TruststoreVersion

Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket.

type DomainNameMutualTlsAuthenticationPtrInput

type DomainNameMutualTlsAuthenticationPtrInput interface {
	pulumi.Input

	ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput
	ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(context.Context) DomainNameMutualTlsAuthenticationPtrOutput
}

DomainNameMutualTlsAuthenticationPtrInput is an input type that accepts DomainNameMutualTlsAuthenticationArgs, DomainNameMutualTlsAuthenticationPtr and DomainNameMutualTlsAuthenticationPtrOutput values. You can construct a concrete instance of `DomainNameMutualTlsAuthenticationPtrInput` via:

        DomainNameMutualTlsAuthenticationArgs{...}

or:

        nil

type DomainNameMutualTlsAuthenticationPtrOutput

type DomainNameMutualTlsAuthenticationPtrOutput struct{ *pulumi.OutputState }

func (DomainNameMutualTlsAuthenticationPtrOutput) Elem

func (DomainNameMutualTlsAuthenticationPtrOutput) ElementType

func (DomainNameMutualTlsAuthenticationPtrOutput) ToDomainNameMutualTlsAuthenticationPtrOutput

func (o DomainNameMutualTlsAuthenticationPtrOutput) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput

func (DomainNameMutualTlsAuthenticationPtrOutput) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext

func (o DomainNameMutualTlsAuthenticationPtrOutput) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput

func (DomainNameMutualTlsAuthenticationPtrOutput) TruststoreUri

Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version.

func (DomainNameMutualTlsAuthenticationPtrOutput) TruststoreVersion

Version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket.

type DomainNameOutput

type DomainNameOutput struct{ *pulumi.OutputState }

func (DomainNameOutput) Arn

ARN of domain name.

func (DomainNameOutput) CertificateArn

func (o DomainNameOutput) CertificateArn() pulumi.StringPtrOutput

ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when an edge-optimized domain name is desired. Conflicts with `certificateName`, `certificateBody`, `certificateChain`, `certificatePrivateKey`, `regionalCertificateArn`, and `regionalCertificateName`.

func (DomainNameOutput) CertificateBody

func (o DomainNameOutput) CertificateBody() pulumi.StringPtrOutput

Certificate issued for the domain name being registered, in PEM format. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.

func (DomainNameOutput) CertificateChain

func (o DomainNameOutput) CertificateChain() pulumi.StringPtrOutput

Certificate for the CA that issued the certificate, along with any intermediate CA certificates required to create an unbroken chain to a certificate trusted by the intended API clients. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.

func (DomainNameOutput) CertificateName

func (o DomainNameOutput) CertificateName() pulumi.StringPtrOutput

Unique name to use when registering this certificate as an IAM server certificate. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`. Required if `certificateArn` is not set.

func (DomainNameOutput) CertificatePrivateKey

func (o DomainNameOutput) CertificatePrivateKey() pulumi.StringPtrOutput

Private key associated with the domain certificate given in `certificateBody`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.

func (DomainNameOutput) CertificateUploadDate

func (o DomainNameOutput) CertificateUploadDate() pulumi.StringOutput

Upload date associated with the domain certificate.

func (DomainNameOutput) CloudfrontDomainName

func (o DomainNameOutput) CloudfrontDomainName() pulumi.StringOutput

Hostname created by Cloudfront to represent the distribution that implements this domain name mapping.

func (DomainNameOutput) CloudfrontZoneId

func (o DomainNameOutput) CloudfrontZoneId() pulumi.StringOutput

For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.

func (DomainNameOutput) DomainName

func (o DomainNameOutput) DomainName() pulumi.StringOutput

Fully-qualified domain name to register.

func (DomainNameOutput) ElementType

func (DomainNameOutput) ElementType() reflect.Type

func (DomainNameOutput) EndpointConfiguration

func (o DomainNameOutput) EndpointConfiguration() DomainNameEndpointConfigurationOutput

Configuration block defining API endpoint information including type. See below.

func (DomainNameOutput) MutualTlsAuthentication

Mutual TLS authentication configuration for the domain name. See below.

func (DomainNameOutput) OwnershipVerificationCertificateArn

func (o DomainNameOutput) OwnershipVerificationCertificateArn() pulumi.StringOutput

ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificateArn` is issued via an ACM Private CA or `mutualTlsAuthentication` is configured with an ACM-imported certificate.)

func (DomainNameOutput) RegionalCertificateArn

func (o DomainNameOutput) RegionalCertificateArn() pulumi.StringPtrOutput

ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.

When uploading a certificate, the following arguments are supported:

func (DomainNameOutput) RegionalCertificateName

func (o DomainNameOutput) RegionalCertificateName() pulumi.StringPtrOutput

User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.

func (DomainNameOutput) RegionalDomainName

func (o DomainNameOutput) RegionalDomainName() pulumi.StringOutput

Hostname for the custom domain's regional endpoint.

func (DomainNameOutput) RegionalZoneId

func (o DomainNameOutput) RegionalZoneId() pulumi.StringOutput

Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.

func (DomainNameOutput) SecurityPolicy

func (o DomainNameOutput) SecurityPolicy() pulumi.StringOutput

Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.

func (DomainNameOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

When referencing an AWS-managed certificate, the following arguments are supported:

func (DomainNameOutput) TagsAll deprecated

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (DomainNameOutput) ToDomainNameOutput

func (o DomainNameOutput) ToDomainNameOutput() DomainNameOutput

func (DomainNameOutput) ToDomainNameOutputWithContext

func (o DomainNameOutput) ToDomainNameOutputWithContext(ctx context.Context) DomainNameOutput

type DomainNameState

type DomainNameState struct {
	// ARN of domain name.
	Arn pulumi.StringPtrInput
	// ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when an edge-optimized domain name is desired. Conflicts with `certificateName`, `certificateBody`, `certificateChain`, `certificatePrivateKey`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateArn pulumi.StringPtrInput
	// Certificate issued for the domain name being registered, in PEM format. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateBody pulumi.StringPtrInput
	// Certificate for the CA that issued the certificate, along with any intermediate CA certificates required to create an unbroken chain to a certificate trusted by the intended API clients. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificateChain pulumi.StringPtrInput
	// Unique name to use when registering this certificate as an IAM server certificate. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`. Required if `certificateArn` is not set.
	CertificateName pulumi.StringPtrInput
	// Private key associated with the domain certificate given in `certificateBody`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificateArn`, `regionalCertificateArn`, and `regionalCertificateName`.
	CertificatePrivateKey pulumi.StringPtrInput
	// Upload date associated with the domain certificate.
	CertificateUploadDate pulumi.StringPtrInput
	// Hostname created by Cloudfront to represent the distribution that implements this domain name mapping.
	CloudfrontDomainName pulumi.StringPtrInput
	// For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.
	CloudfrontZoneId pulumi.StringPtrInput
	// Fully-qualified domain name to register.
	DomainName pulumi.StringPtrInput
	// Configuration block defining API endpoint information including type. See below.
	EndpointConfiguration DomainNameEndpointConfigurationPtrInput
	// Mutual TLS authentication configuration for the domain name. See below.
	MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrInput
	// ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificateArn` is issued via an ACM Private CA or `mutualTlsAuthentication` is configured with an ACM-imported certificate.)
	OwnershipVerificationCertificateArn pulumi.StringPtrInput
	// ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.
	//
	// When uploading a certificate, the following arguments are supported:
	RegionalCertificateArn pulumi.StringPtrInput
	// User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`.
	RegionalCertificateName pulumi.StringPtrInput
	// Hostname for the custom domain's regional endpoint.
	RegionalDomainName pulumi.StringPtrInput
	// Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.
	RegionalZoneId pulumi.StringPtrInput
	// Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
	SecurityPolicy pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	//
	// When referencing an AWS-managed certificate, the following arguments are supported:
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
}

func (DomainNameState) ElementType

func (DomainNameState) ElementType() reflect.Type

type GetAuthorizersArgs

type GetAuthorizersArgs struct {
	// ID of the associated REST API.
	RestApiId string `pulumi:"restApiId"`
}

A collection of arguments for invoking getAuthorizers.

type GetAuthorizersOutputArgs

type GetAuthorizersOutputArgs struct {
	// ID of the associated REST API.
	RestApiId pulumi.StringInput `pulumi:"restApiId"`
}

A collection of arguments for invoking getAuthorizers.

func (GetAuthorizersOutputArgs) ElementType

func (GetAuthorizersOutputArgs) ElementType() reflect.Type

type GetAuthorizersResult

type GetAuthorizersResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// List of Authorizer identifiers.
	Ids       []string `pulumi:"ids"`
	RestApiId string   `pulumi:"restApiId"`
}

A collection of values returned by getAuthorizers.

func GetAuthorizers

func GetAuthorizers(ctx *pulumi.Context, args *GetAuthorizersArgs, opts ...pulumi.InvokeOption) (*GetAuthorizersResult, error)

Provides details about multiple API Gateway Authorizers.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.GetAuthorizers(ctx, &apigateway.GetAuthorizersArgs{
			RestApiId: exampleAwsApiGatewayRestApi.Id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetAuthorizersResultOutput

type GetAuthorizersResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAuthorizers.

func (GetAuthorizersResultOutput) ElementType

func (GetAuthorizersResultOutput) ElementType() reflect.Type

func (GetAuthorizersResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetAuthorizersResultOutput) Ids

List of Authorizer identifiers.

func (GetAuthorizersResultOutput) RestApiId

func (GetAuthorizersResultOutput) ToGetAuthorizersResultOutput

func (o GetAuthorizersResultOutput) ToGetAuthorizersResultOutput() GetAuthorizersResultOutput

func (GetAuthorizersResultOutput) ToGetAuthorizersResultOutputWithContext

func (o GetAuthorizersResultOutput) ToGetAuthorizersResultOutputWithContext(ctx context.Context) GetAuthorizersResultOutput

type GetDomainNameEndpointConfiguration

type GetDomainNameEndpointConfiguration struct {
	// List of endpoint types.
	Types []string `pulumi:"types"`
}

type GetDomainNameEndpointConfigurationArgs

type GetDomainNameEndpointConfigurationArgs struct {
	// List of endpoint types.
	Types pulumi.StringArrayInput `pulumi:"types"`
}

func (GetDomainNameEndpointConfigurationArgs) ElementType

func (GetDomainNameEndpointConfigurationArgs) ToGetDomainNameEndpointConfigurationOutput

func (i GetDomainNameEndpointConfigurationArgs) ToGetDomainNameEndpointConfigurationOutput() GetDomainNameEndpointConfigurationOutput

func (GetDomainNameEndpointConfigurationArgs) ToGetDomainNameEndpointConfigurationOutputWithContext

func (i GetDomainNameEndpointConfigurationArgs) ToGetDomainNameEndpointConfigurationOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationOutput

type GetDomainNameEndpointConfigurationArray

type GetDomainNameEndpointConfigurationArray []GetDomainNameEndpointConfigurationInput

func (GetDomainNameEndpointConfigurationArray) ElementType

func (GetDomainNameEndpointConfigurationArray) ToGetDomainNameEndpointConfigurationArrayOutput

func (i GetDomainNameEndpointConfigurationArray) ToGetDomainNameEndpointConfigurationArrayOutput() GetDomainNameEndpointConfigurationArrayOutput

func (GetDomainNameEndpointConfigurationArray) ToGetDomainNameEndpointConfigurationArrayOutputWithContext

func (i GetDomainNameEndpointConfigurationArray) ToGetDomainNameEndpointConfigurationArrayOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationArrayOutput

type GetDomainNameEndpointConfigurationArrayInput

type GetDomainNameEndpointConfigurationArrayInput interface {
	pulumi.Input

	ToGetDomainNameEndpointConfigurationArrayOutput() GetDomainNameEndpointConfigurationArrayOutput
	ToGetDomainNameEndpointConfigurationArrayOutputWithContext(context.Context) GetDomainNameEndpointConfigurationArrayOutput
}

GetDomainNameEndpointConfigurationArrayInput is an input type that accepts GetDomainNameEndpointConfigurationArray and GetDomainNameEndpointConfigurationArrayOutput values. You can construct a concrete instance of `GetDomainNameEndpointConfigurationArrayInput` via:

GetDomainNameEndpointConfigurationArray{ GetDomainNameEndpointConfigurationArgs{...} }

type GetDomainNameEndpointConfigurationArrayOutput

type GetDomainNameEndpointConfigurationArrayOutput struct{ *pulumi.OutputState }

func (GetDomainNameEndpointConfigurationArrayOutput) ElementType

func (GetDomainNameEndpointConfigurationArrayOutput) Index

func (GetDomainNameEndpointConfigurationArrayOutput) ToGetDomainNameEndpointConfigurationArrayOutput

func (o GetDomainNameEndpointConfigurationArrayOutput) ToGetDomainNameEndpointConfigurationArrayOutput() GetDomainNameEndpointConfigurationArrayOutput

func (GetDomainNameEndpointConfigurationArrayOutput) ToGetDomainNameEndpointConfigurationArrayOutputWithContext

func (o GetDomainNameEndpointConfigurationArrayOutput) ToGetDomainNameEndpointConfigurationArrayOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationArrayOutput

type GetDomainNameEndpointConfigurationInput

type GetDomainNameEndpointConfigurationInput interface {
	pulumi.Input

	ToGetDomainNameEndpointConfigurationOutput() GetDomainNameEndpointConfigurationOutput
	ToGetDomainNameEndpointConfigurationOutputWithContext(context.Context) GetDomainNameEndpointConfigurationOutput
}

GetDomainNameEndpointConfigurationInput is an input type that accepts GetDomainNameEndpointConfigurationArgs and GetDomainNameEndpointConfigurationOutput values. You can construct a concrete instance of `GetDomainNameEndpointConfigurationInput` via:

GetDomainNameEndpointConfigurationArgs{...}

type GetDomainNameEndpointConfigurationOutput

type GetDomainNameEndpointConfigurationOutput struct{ *pulumi.OutputState }

func (GetDomainNameEndpointConfigurationOutput) ElementType

func (GetDomainNameEndpointConfigurationOutput) ToGetDomainNameEndpointConfigurationOutput

func (o GetDomainNameEndpointConfigurationOutput) ToGetDomainNameEndpointConfigurationOutput() GetDomainNameEndpointConfigurationOutput

func (GetDomainNameEndpointConfigurationOutput) ToGetDomainNameEndpointConfigurationOutputWithContext

func (o GetDomainNameEndpointConfigurationOutput) ToGetDomainNameEndpointConfigurationOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationOutput

func (GetDomainNameEndpointConfigurationOutput) Types

List of endpoint types.

type GetExportArgs

type GetExportArgs struct {
	// Content-type of the export. Valid values are `application/json` and `application/yaml` are supported for `exportType` `ofoas30` and `swagger`.
	Accepts *string `pulumi:"accepts"`
	// Type of export. Acceptable values are `oas30` for OpenAPI 3.0.x and `swagger` for Swagger/OpenAPI 2.0.
	ExportType string `pulumi:"exportType"`
	// Key-value map of query string parameters that specify properties of the export. the following parameters are supported: `extensions='integrations'` or `extensions='apigateway'` will export the API with x-amazon-apigateway-integration extensions. `extensions='authorizers'` will export the API with x-amazon-apigateway-authorizer extensions.
	Parameters map[string]string `pulumi:"parameters"`
	// Identifier of the associated REST API.
	RestApiId string `pulumi:"restApiId"`
	// Name of the Stage that will be exported.
	StageName string `pulumi:"stageName"`
}

A collection of arguments for invoking getExport.

type GetExportOutputArgs

type GetExportOutputArgs struct {
	// Content-type of the export. Valid values are `application/json` and `application/yaml` are supported for `exportType` `ofoas30` and `swagger`.
	Accepts pulumi.StringPtrInput `pulumi:"accepts"`
	// Type of export. Acceptable values are `oas30` for OpenAPI 3.0.x and `swagger` for Swagger/OpenAPI 2.0.
	ExportType pulumi.StringInput `pulumi:"exportType"`
	// Key-value map of query string parameters that specify properties of the export. the following parameters are supported: `extensions='integrations'` or `extensions='apigateway'` will export the API with x-amazon-apigateway-integration extensions. `extensions='authorizers'` will export the API with x-amazon-apigateway-authorizer extensions.
	Parameters pulumi.StringMapInput `pulumi:"parameters"`
	// Identifier of the associated REST API.
	RestApiId pulumi.StringInput `pulumi:"restApiId"`
	// Name of the Stage that will be exported.
	StageName pulumi.StringInput `pulumi:"stageName"`
}

A collection of arguments for invoking getExport.

func (GetExportOutputArgs) ElementType

func (GetExportOutputArgs) ElementType() reflect.Type

type GetExportResult

type GetExportResult struct {
	Accepts *string `pulumi:"accepts"`
	// API Spec.
	Body string `pulumi:"body"`
	// Content-disposition header value in the HTTP response.
	ContentDisposition string `pulumi:"contentDisposition"`
	// Content-type header value in the HTTP response.
	ContentType string `pulumi:"contentType"`
	ExportType  string `pulumi:"exportType"`
	// The provider-assigned unique ID for this managed resource.
	Id         string            `pulumi:"id"`
	Parameters map[string]string `pulumi:"parameters"`
	RestApiId  string            `pulumi:"restApiId"`
	StageName  string            `pulumi:"stageName"`
}

A collection of values returned by getExport.

func GetExport

func GetExport(ctx *pulumi.Context, args *GetExportArgs, opts ...pulumi.InvokeOption) (*GetExportResult, error)

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.GetExport(ctx, &apigateway.GetExportArgs{
			RestApiId:  exampleAwsApiGatewayStage.RestApiId,
			StageName:  exampleAwsApiGatewayStage.StageName,
			ExportType: "oas30",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetExportResultOutput

type GetExportResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getExport.

func (GetExportResultOutput) Accepts

func (GetExportResultOutput) Body

API Spec.

func (GetExportResultOutput) ContentDisposition

func (o GetExportResultOutput) ContentDisposition() pulumi.StringOutput

Content-disposition header value in the HTTP response.

func (GetExportResultOutput) ContentType

func (o GetExportResultOutput) ContentType() pulumi.StringOutput

Content-type header value in the HTTP response.

func (GetExportResultOutput) ElementType

func (GetExportResultOutput) ElementType() reflect.Type

func (GetExportResultOutput) ExportType

func (o GetExportResultOutput) ExportType() pulumi.StringOutput

func (GetExportResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetExportResultOutput) Parameters

func (GetExportResultOutput) RestApiId

func (GetExportResultOutput) StageName

func (GetExportResultOutput) ToGetExportResultOutput

func (o GetExportResultOutput) ToGetExportResultOutput() GetExportResultOutput

func (GetExportResultOutput) ToGetExportResultOutputWithContext

func (o GetExportResultOutput) ToGetExportResultOutputWithContext(ctx context.Context) GetExportResultOutput

type GetKeyArgs

type GetKeyArgs struct {
	// ID of the API Key to look up.
	Id string `pulumi:"id"`
	// Map of tags for the resource.
	Tags map[string]string `pulumi:"tags"`
}

A collection of arguments for invoking getKey.

type GetKeyOutputArgs

type GetKeyOutputArgs struct {
	// ID of the API Key to look up.
	Id pulumi.StringInput `pulumi:"id"`
	// Map of tags for the resource.
	Tags pulumi.StringMapInput `pulumi:"tags"`
}

A collection of arguments for invoking getKey.

func (GetKeyOutputArgs) ElementType

func (GetKeyOutputArgs) ElementType() reflect.Type

type GetKeyResult

type GetKeyResult struct {
	// Date and time when the API Key was created.
	CreatedDate string `pulumi:"createdDate"`
	// Amazon Web Services Marketplace customer identifier, when integrating with the Amazon Web Services SaaS Marketplace.
	CustomerId string `pulumi:"customerId"`
	// Description of the API Key.
	Description string `pulumi:"description"`
	// Whether the API Key is enabled.
	Enabled bool `pulumi:"enabled"`
	// Set to the ID of the API Key.
	Id string `pulumi:"id"`
	// Date and time when the API Key was last updated.
	LastUpdatedDate string `pulumi:"lastUpdatedDate"`
	// Set to the name of the API Key.
	Name string `pulumi:"name"`
	// Map of tags for the resource.
	Tags map[string]string `pulumi:"tags"`
	// Set to the value of the API Key.
	Value string `pulumi:"value"`
}

A collection of values returned by getKey.

func GetKey

func GetKey(ctx *pulumi.Context, args *GetKeyArgs, opts ...pulumi.InvokeOption) (*GetKeyResult, error)

Use this data source to get the name and value of a pre-existing API Key, for example to supply credentials for a dependency microservice.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.GetKey(ctx, &apigateway.GetKeyArgs{
			Id: "ru3mpjgse6",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetKeyResultOutput

type GetKeyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKey.

func GetKeyOutput

func GetKeyOutput(ctx *pulumi.Context, args GetKeyOutputArgs, opts ...pulumi.InvokeOption) GetKeyResultOutput

func (GetKeyResultOutput) CreatedDate

func (o GetKeyResultOutput) CreatedDate() pulumi.StringOutput

Date and time when the API Key was created.

func (GetKeyResultOutput) CustomerId added in v6.1.0

func (o GetKeyResultOutput) CustomerId() pulumi.StringOutput

Amazon Web Services Marketplace customer identifier, when integrating with the Amazon Web Services SaaS Marketplace.

func (GetKeyResultOutput) Description

func (o GetKeyResultOutput) Description() pulumi.StringOutput

Description of the API Key.

func (GetKeyResultOutput) ElementType

func (GetKeyResultOutput) ElementType() reflect.Type

func (GetKeyResultOutput) Enabled

func (o GetKeyResultOutput) Enabled() pulumi.BoolOutput

Whether the API Key is enabled.

func (GetKeyResultOutput) Id

Set to the ID of the API Key.

func (GetKeyResultOutput) LastUpdatedDate

func (o GetKeyResultOutput) LastUpdatedDate() pulumi.StringOutput

Date and time when the API Key was last updated.

func (GetKeyResultOutput) Name

Set to the name of the API Key.

func (GetKeyResultOutput) Tags

Map of tags for the resource.

func (GetKeyResultOutput) ToGetKeyResultOutput

func (o GetKeyResultOutput) ToGetKeyResultOutput() GetKeyResultOutput

func (GetKeyResultOutput) ToGetKeyResultOutputWithContext

func (o GetKeyResultOutput) ToGetKeyResultOutputWithContext(ctx context.Context) GetKeyResultOutput

func (GetKeyResultOutput) Value

Set to the value of the API Key.

type GetRestApiEndpointConfiguration

type GetRestApiEndpointConfiguration struct {
	Types          []string `pulumi:"types"`
	VpcEndpointIds []string `pulumi:"vpcEndpointIds"`
}

type GetRestApiEndpointConfigurationArgs

type GetRestApiEndpointConfigurationArgs struct {
	Types          pulumi.StringArrayInput `pulumi:"types"`
	VpcEndpointIds pulumi.StringArrayInput `pulumi:"vpcEndpointIds"`
}

func (GetRestApiEndpointConfigurationArgs) ElementType

func (GetRestApiEndpointConfigurationArgs) ToGetRestApiEndpointConfigurationOutput

func (i GetRestApiEndpointConfigurationArgs) ToGetRestApiEndpointConfigurationOutput() GetRestApiEndpointConfigurationOutput

func (GetRestApiEndpointConfigurationArgs) ToGetRestApiEndpointConfigurationOutputWithContext

func (i GetRestApiEndpointConfigurationArgs) ToGetRestApiEndpointConfigurationOutputWithContext(ctx context.Context) GetRestApiEndpointConfigurationOutput

type GetRestApiEndpointConfigurationArray

type GetRestApiEndpointConfigurationArray []GetRestApiEndpointConfigurationInput

func (GetRestApiEndpointConfigurationArray) ElementType

func (GetRestApiEndpointConfigurationArray) ToGetRestApiEndpointConfigurationArrayOutput

func (i GetRestApiEndpointConfigurationArray) ToGetRestApiEndpointConfigurationArrayOutput() GetRestApiEndpointConfigurationArrayOutput

func (GetRestApiEndpointConfigurationArray) ToGetRestApiEndpointConfigurationArrayOutputWithContext

func (i GetRestApiEndpointConfigurationArray) ToGetRestApiEndpointConfigurationArrayOutputWithContext(ctx context.Context) GetRestApiEndpointConfigurationArrayOutput

type GetRestApiEndpointConfigurationArrayInput

type GetRestApiEndpointConfigurationArrayInput interface {
	pulumi.Input

	ToGetRestApiEndpointConfigurationArrayOutput() GetRestApiEndpointConfigurationArrayOutput
	ToGetRestApiEndpointConfigurationArrayOutputWithContext(context.Context) GetRestApiEndpointConfigurationArrayOutput
}

GetRestApiEndpointConfigurationArrayInput is an input type that accepts GetRestApiEndpointConfigurationArray and GetRestApiEndpointConfigurationArrayOutput values. You can construct a concrete instance of `GetRestApiEndpointConfigurationArrayInput` via:

GetRestApiEndpointConfigurationArray{ GetRestApiEndpointConfigurationArgs{...} }

type GetRestApiEndpointConfigurationArrayOutput

type GetRestApiEndpointConfigurationArrayOutput struct{ *pulumi.OutputState }

func (GetRestApiEndpointConfigurationArrayOutput) ElementType

func (GetRestApiEndpointConfigurationArrayOutput) Index

func (GetRestApiEndpointConfigurationArrayOutput) ToGetRestApiEndpointConfigurationArrayOutput

func (o GetRestApiEndpointConfigurationArrayOutput) ToGetRestApiEndpointConfigurationArrayOutput() GetRestApiEndpointConfigurationArrayOutput

func (GetRestApiEndpointConfigurationArrayOutput) ToGetRestApiEndpointConfigurationArrayOutputWithContext

func (o GetRestApiEndpointConfigurationArrayOutput) ToGetRestApiEndpointConfigurationArrayOutputWithContext(ctx context.Context) GetRestApiEndpointConfigurationArrayOutput

type GetRestApiEndpointConfigurationInput

type GetRestApiEndpointConfigurationInput interface {
	pulumi.Input

	ToGetRestApiEndpointConfigurationOutput() GetRestApiEndpointConfigurationOutput
	ToGetRestApiEndpointConfigurationOutputWithContext(context.Context) GetRestApiEndpointConfigurationOutput
}

GetRestApiEndpointConfigurationInput is an input type that accepts GetRestApiEndpointConfigurationArgs and GetRestApiEndpointConfigurationOutput values. You can construct a concrete instance of `GetRestApiEndpointConfigurationInput` via:

GetRestApiEndpointConfigurationArgs{...}

type GetRestApiEndpointConfigurationOutput

type GetRestApiEndpointConfigurationOutput struct{ *pulumi.OutputState }

func (GetRestApiEndpointConfigurationOutput) ElementType

func (GetRestApiEndpointConfigurationOutput) ToGetRestApiEndpointConfigurationOutput

func (o GetRestApiEndpointConfigurationOutput) ToGetRestApiEndpointConfigurationOutput() GetRestApiEndpointConfigurationOutput

func (GetRestApiEndpointConfigurationOutput) ToGetRestApiEndpointConfigurationOutputWithContext

func (o GetRestApiEndpointConfigurationOutput) ToGetRestApiEndpointConfigurationOutputWithContext(ctx context.Context) GetRestApiEndpointConfigurationOutput

func (GetRestApiEndpointConfigurationOutput) Types

func (GetRestApiEndpointConfigurationOutput) VpcEndpointIds

type GetSdkArgs

type GetSdkArgs struct {
	// Key-value map of query string parameters `sdkType` properties of the SDK. For SDK Type of `objectivec` or `swift`, a parameter named `classPrefix` is required. For SDK Type of `android`, parameters named `groupId`, `artifactId`, `artifactVersion`, and `invokerPackage` are required. For SDK Type of `java`, parameters named `serviceName` and `javaPackageName` are required.
	Parameters map[string]string `pulumi:"parameters"`
	// Identifier of the associated REST API.
	RestApiId string `pulumi:"restApiId"`
	// Language for the generated SDK. Currently `java`, `javascript`, `android`, `objectivec` (for iOS), `swift` (for iOS), and `ruby` are supported.
	SdkType string `pulumi:"sdkType"`
	// Name of the Stage that will be exported.
	StageName string `pulumi:"stageName"`
}

A collection of arguments for invoking getSdk.

type GetSdkOutputArgs

type GetSdkOutputArgs struct {
	// Key-value map of query string parameters `sdkType` properties of the SDK. For SDK Type of `objectivec` or `swift`, a parameter named `classPrefix` is required. For SDK Type of `android`, parameters named `groupId`, `artifactId`, `artifactVersion`, and `invokerPackage` are required. For SDK Type of `java`, parameters named `serviceName` and `javaPackageName` are required.
	Parameters pulumi.StringMapInput `pulumi:"parameters"`
	// Identifier of the associated REST API.
	RestApiId pulumi.StringInput `pulumi:"restApiId"`
	// Language for the generated SDK. Currently `java`, `javascript`, `android`, `objectivec` (for iOS), `swift` (for iOS), and `ruby` are supported.
	SdkType pulumi.StringInput `pulumi:"sdkType"`
	// Name of the Stage that will be exported.
	StageName pulumi.StringInput `pulumi:"stageName"`
}

A collection of arguments for invoking getSdk.

func (GetSdkOutputArgs) ElementType

func (GetSdkOutputArgs) ElementType() reflect.Type

type GetSdkResult

type GetSdkResult struct {
	// SDK as a string.
	Body string `pulumi:"body"`
	// Content-disposition header value in the HTTP response.
	ContentDisposition string `pulumi:"contentDisposition"`
	// Content-type header value in the HTTP response.
	ContentType string `pulumi:"contentType"`
	// The provider-assigned unique ID for this managed resource.
	Id         string            `pulumi:"id"`
	Parameters map[string]string `pulumi:"parameters"`
	RestApiId  string            `pulumi:"restApiId"`
	SdkType    string            `pulumi:"sdkType"`
	StageName  string            `pulumi:"stageName"`
}

A collection of values returned by getSdk.

func GetSdk

func GetSdk(ctx *pulumi.Context, args *GetSdkArgs, opts ...pulumi.InvokeOption) (*GetSdkResult, error)

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.GetSdk(ctx, &apigateway.GetSdkArgs{
			RestApiId: exampleAwsApiGatewayStage.RestApiId,
			StageName: exampleAwsApiGatewayStage.StageName,
			SdkType:   "android",
			Parameters: map[string]interface{}{
				"groupId":         "example",
				"artifactId":      "example",
				"artifactVersion": "example",
				"invokerPackage":  "example",
			},
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type GetSdkResultOutput

type GetSdkResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSdk.

func GetSdkOutput

func GetSdkOutput(ctx *pulumi.Context, args GetSdkOutputArgs, opts ...pulumi.InvokeOption) GetSdkResultOutput

func (GetSdkResultOutput) Body

SDK as a string.

func (GetSdkResultOutput) ContentDisposition

func (o GetSdkResultOutput) ContentDisposition() pulumi.StringOutput

Content-disposition header value in the HTTP response.

func (GetSdkResultOutput) ContentType

func (o GetSdkResultOutput) ContentType() pulumi.StringOutput

Content-type header value in the HTTP response.

func (GetSdkResultOutput) ElementType

func (GetSdkResultOutput) ElementType() reflect.Type

func (GetSdkResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetSdkResultOutput) Parameters

func (o GetSdkResultOutput) Parameters() pulumi.StringMapOutput

func (GetSdkResultOutput) RestApiId

func (o GetSdkResultOutput) RestApiId() pulumi.StringOutput

func (GetSdkResultOutput) SdkType

func (GetSdkResultOutput) StageName

func (o GetSdkResultOutput) StageName() pulumi.StringOutput

func (GetSdkResultOutput) ToGetSdkResultOutput

func (o GetSdkResultOutput) ToGetSdkResultOutput() GetSdkResultOutput

func (GetSdkResultOutput) ToGetSdkResultOutputWithContext

func (o GetSdkResultOutput) ToGetSdkResultOutputWithContext(ctx context.Context) GetSdkResultOutput

type Integration

type Integration struct {
	pulumi.CustomResourceState

	// List of cache key parameters for the integration.
	CacheKeyParameters pulumi.StringArrayOutput `pulumi:"cacheKeyParameters"`
	// Integration's cache namespace.
	CacheNamespace pulumi.StringOutput `pulumi:"cacheNamespace"`
	// ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK`
	ConnectionId pulumi.StringPtrOutput `pulumi:"connectionId"`
	// 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).
	ConnectionType pulumi.StringPtrOutput `pulumi:"connectionType"`
	// 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.
	ContentHandling pulumi.StringPtrOutput `pulumi:"contentHandling"`
	// 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/\*`.
	Credentials pulumi.StringPtrOutput `pulumi:"credentials"`
	// HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`)
	// when calling the associated resource.
	HttpMethod pulumi.StringOutput `pulumi:"httpMethod"`
	// Integration HTTP method
	// (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end.
	// **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.
	// Not all methods are compatible with all `AWS` integrations.
	// e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`.
	IntegrationHttpMethod pulumi.StringPtrOutput `pulumi:"integrationHttpMethod"`
	// Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`).  **Required** if `requestTemplates` is used.
	PassthroughBehavior pulumi.StringOutput `pulumi:"passthroughBehavior"`
	// Map of request query string parameters and headers that should be passed to the backend responder.
	// For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }`
	RequestParameters pulumi.StringMapOutput `pulumi:"requestParameters"`
	// Map of the integration's request templates.
	RequestTemplates pulumi.StringMapOutput `pulumi:"requestTemplates"`
	// API resource ID.
	ResourceId pulumi.StringOutput `pulumi:"resourceId"`
	// ID of the associated REST API.
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.
	TimeoutMilliseconds pulumi.IntPtrOutput `pulumi:"timeoutMilliseconds"`
	// TLS configuration. See below.
	TlsConfig IntegrationTlsConfigPtrOutput `pulumi:"tlsConfig"`
	// 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.
	Type pulumi.StringOutput `pulumi:"type"`
	// Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.
	// For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint.
	// e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1: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.
	Uri pulumi.StringPtrOutput `pulumi:"uri"`
}

Provides an HTTP Method Integration for an API Gateway Integration.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		myDemoResource, err := apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{
			RestApi:  myDemoAPI.ID(),
			ParentId: myDemoAPI.RootResourceId,
			PathPart: pulumi.String("mydemoresource"),
		})
		if err != nil {
			return err
		}
		myDemoMethod, err := apigateway.NewMethod(ctx, "MyDemoMethod", &apigateway.MethodArgs{
			RestApi:       myDemoAPI.ID(),
			ResourceId:    myDemoResource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegration(ctx, "MyDemoIntegration", &apigateway.IntegrationArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			Type:       pulumi.String("MOCK"),
			CacheKeyParameters: pulumi.StringArray{
				pulumi.String("method.request.path.param"),
			},
			CacheNamespace:      pulumi.String("foobar"),
			TimeoutMilliseconds: pulumi.Int(29000),
			RequestParameters: pulumi.StringMap{
				"integration.request.header.X-Authorization": pulumi.String("'static'"),
			},
			RequestTemplates: pulumi.StringMap{
				"application/xml": pulumi.String("{\n   \"body\" : $input.json('$')\n}\n"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Lambda integration

<!--Start PulumiCodeChooser --> ```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		myregion := cfg.RequireObject("myregion")
		accountId := cfg.RequireObject("accountId")
		// API Gateway
		api, err := apigateway.NewRestApi(ctx, "api", &apigateway.RestApiArgs{
			Name: pulumi.String("myapi"),
		})
		if err != nil {
			return err
		}
		resource, err := apigateway.NewResource(ctx, "resource", &apigateway.ResourceArgs{
			PathPart: pulumi.String("resource"),
			ParentId: api.RootResourceId,
			RestApi:  api.ID(),
		})
		if err != nil {
			return err
		}
		method, err := apigateway.NewMethod(ctx, "method", &apigateway.MethodArgs{
			RestApi:       api.ID(),
			ResourceId:    resource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
		})
		if err != nil {
			return err
		}
		// IAM
		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						{
							Type: "Service",
							Identifiers: []string{
								"lambda.amazonaws.com",
							},
						},
					},
					Actions: []string{
						"sts:AssumeRole",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		role, err := iam.NewRole(ctx, "role", &iam.RoleArgs{
			Name:             pulumi.String("myrole"),
			AssumeRolePolicy: pulumi.String(assumeRole.Json),
		})
		if err != nil {
			return err
		}
		invokeFilebase64sha256, err := std.Filebase64sha256(ctx, &std.Filebase64sha256Args{
			Input: "lambda.zip",
		}, nil)
		if err != nil {
			return err
		}
		lambda, err := lambda.NewFunction(ctx, "lambda", &lambda.FunctionArgs{
			Code:           pulumi.NewFileArchive("lambda.zip"),
			Name:           pulumi.String("mylambda"),
			Role:           role.Arn,
			Handler:        pulumi.String("lambda.lambda_handler"),
			Runtime:        pulumi.String(lambda.RuntimePython3d7),
			SourceCodeHash: invokeFilebase64sha256.Result,
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegration(ctx, "integration", &apigateway.IntegrationArgs{
			RestApi:               api.ID(),
			ResourceId:            resource.ID(),
			HttpMethod:            method.HttpMethod,
			IntegrationHttpMethod: pulumi.String("POST"),
			Type:                  pulumi.String("AWS_PROXY"),
			Uri:                   lambda.InvokeArn,
		})
		if err != nil {
			return err
		}
		// Lambda
		_, err = lambda.NewPermission(ctx, "apigw_lambda", &lambda.PermissionArgs{
			StatementId: pulumi.String("AllowExecutionFromAPIGateway"),
			Action:      pulumi.String("lambda:InvokeFunction"),
			Function:    lambda.Name,
			Principal:   pulumi.String("apigateway.amazonaws.com"),
			SourceArn: pulumi.All(api.ID(), method.HttpMethod, resource.Path).ApplyT(func(_args []interface{}) (string, error) {
				id := _args[0].(string)
				httpMethod := _args[1].(string)
				path := _args[2].(string)
				return fmt.Sprintf("arn:aws:execute-api:%v:%v:%v/*/%v%v", myregion, accountId, id, httpMethod, path), nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## VPC Link

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		name := cfg.RequireObject("name")
		subnetId := cfg.RequireObject("subnetId")
		test, err := lb.NewLoadBalancer(ctx, "test", &lb.LoadBalancerArgs{
			Name:             pulumi.Any(name),
			Internal:         pulumi.Bool(true),
			LoadBalancerType: pulumi.String("network"),
			Subnets: pulumi.StringArray{
				subnetId,
			},
		})
		if err != nil {
			return err
		}
		testVpcLink, err := apigateway.NewVpcLink(ctx, "test", &apigateway.VpcLinkArgs{
			Name:      pulumi.Any(name),
			TargetArn: test.Arn,
		})
		if err != nil {
			return err
		}
		testRestApi, err := apigateway.NewRestApi(ctx, "test", &apigateway.RestApiArgs{
			Name: pulumi.Any(name),
		})
		if err != nil {
			return err
		}
		testResource, err := apigateway.NewResource(ctx, "test", &apigateway.ResourceArgs{
			RestApi:  testRestApi.ID(),
			ParentId: testRestApi.RootResourceId,
			PathPart: pulumi.String("test"),
		})
		if err != nil {
			return err
		}
		testMethod, err := apigateway.NewMethod(ctx, "test", &apigateway.MethodArgs{
			RestApi:       testRestApi.ID(),
			ResourceId:    testResource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
			RequestModels: pulumi.StringMap{
				"application/json": pulumi.String("Error"),
			},
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegration(ctx, "test", &apigateway.IntegrationArgs{
			RestApi:    testRestApi.ID(),
			ResourceId: testResource.ID(),
			HttpMethod: testMethod.HttpMethod,
			RequestTemplates: pulumi.StringMap{
				"application/json": pulumi.String(""),
				"application/xml":  pulumi.String("#set($inputRoot = $input.path('$'))\n{ }"),
			},
			RequestParameters: pulumi.StringMap{
				"integration.request.header.X-Authorization": pulumi.String("'static'"),
				"integration.request.header.X-Foo":           pulumi.String("'Bar'"),
			},
			Type:                  pulumi.String("HTTP"),
			Uri:                   pulumi.String("https://www.google.de"),
			IntegrationHttpMethod: pulumi.String("GET"),
			PassthroughBehavior:   pulumi.String("WHEN_NO_MATCH"),
			ContentHandling:       pulumi.String("CONVERT_TO_TEXT"),
			ConnectionType:        pulumi.String("VPC_LINK"),
			ConnectionId:          testVpcLink.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_integration` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD`. For example:

```sh $ pulumi import aws:apigateway/integration:Integration example 12345abcde/67890fghij/GET ```

func GetIntegration

func GetIntegration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IntegrationState, opts ...pulumi.ResourceOption) (*Integration, error)

GetIntegration gets an existing Integration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewIntegration

func NewIntegration(ctx *pulumi.Context,
	name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error)

NewIntegration registers a new resource with the given unique name, arguments, and options.

func (*Integration) ElementType

func (*Integration) ElementType() reflect.Type

func (*Integration) ToIntegrationOutput

func (i *Integration) ToIntegrationOutput() IntegrationOutput

func (*Integration) ToIntegrationOutputWithContext

func (i *Integration) ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput

type IntegrationArgs

type IntegrationArgs struct {
	// List of cache key parameters for the integration.
	CacheKeyParameters pulumi.StringArrayInput
	// Integration's cache namespace.
	CacheNamespace pulumi.StringPtrInput
	// ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK`
	ConnectionId pulumi.StringPtrInput
	// 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).
	ConnectionType pulumi.StringPtrInput
	// 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.
	ContentHandling pulumi.StringPtrInput
	// 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/\*`.
	Credentials pulumi.StringPtrInput
	// HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`)
	// when calling the associated resource.
	HttpMethod pulumi.StringInput
	// Integration HTTP method
	// (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end.
	// **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.
	// Not all methods are compatible with all `AWS` integrations.
	// e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`.
	IntegrationHttpMethod pulumi.StringPtrInput
	// Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`).  **Required** if `requestTemplates` is used.
	PassthroughBehavior pulumi.StringPtrInput
	// Map of request query string parameters and headers that should be passed to the backend responder.
	// For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }`
	RequestParameters pulumi.StringMapInput
	// Map of the integration's request templates.
	RequestTemplates pulumi.StringMapInput
	// API resource ID.
	ResourceId pulumi.StringInput
	// ID of the associated REST API.
	RestApi pulumi.Input
	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.
	TimeoutMilliseconds pulumi.IntPtrInput
	// TLS configuration. See below.
	TlsConfig IntegrationTlsConfigPtrInput
	// 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.
	Type pulumi.StringInput
	// Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.
	// For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint.
	// e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1: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.
	Uri pulumi.StringPtrInput
}

The set of arguments for constructing a Integration resource.

func (IntegrationArgs) ElementType

func (IntegrationArgs) ElementType() reflect.Type

type IntegrationArray

type IntegrationArray []IntegrationInput

func (IntegrationArray) ElementType

func (IntegrationArray) ElementType() reflect.Type

func (IntegrationArray) ToIntegrationArrayOutput

func (i IntegrationArray) ToIntegrationArrayOutput() IntegrationArrayOutput

func (IntegrationArray) ToIntegrationArrayOutputWithContext

func (i IntegrationArray) ToIntegrationArrayOutputWithContext(ctx context.Context) IntegrationArrayOutput

type IntegrationArrayInput

type IntegrationArrayInput interface {
	pulumi.Input

	ToIntegrationArrayOutput() IntegrationArrayOutput
	ToIntegrationArrayOutputWithContext(context.Context) IntegrationArrayOutput
}

IntegrationArrayInput is an input type that accepts IntegrationArray and IntegrationArrayOutput values. You can construct a concrete instance of `IntegrationArrayInput` via:

IntegrationArray{ IntegrationArgs{...} }

type IntegrationArrayOutput

type IntegrationArrayOutput struct{ *pulumi.OutputState }

func (IntegrationArrayOutput) ElementType

func (IntegrationArrayOutput) ElementType() reflect.Type

func (IntegrationArrayOutput) Index

func (IntegrationArrayOutput) ToIntegrationArrayOutput

func (o IntegrationArrayOutput) ToIntegrationArrayOutput() IntegrationArrayOutput

func (IntegrationArrayOutput) ToIntegrationArrayOutputWithContext

func (o IntegrationArrayOutput) ToIntegrationArrayOutputWithContext(ctx context.Context) IntegrationArrayOutput

type IntegrationInput

type IntegrationInput interface {
	pulumi.Input

	ToIntegrationOutput() IntegrationOutput
	ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput
}

type IntegrationMap

type IntegrationMap map[string]IntegrationInput

func (IntegrationMap) ElementType

func (IntegrationMap) ElementType() reflect.Type

func (IntegrationMap) ToIntegrationMapOutput

func (i IntegrationMap) ToIntegrationMapOutput() IntegrationMapOutput

func (IntegrationMap) ToIntegrationMapOutputWithContext

func (i IntegrationMap) ToIntegrationMapOutputWithContext(ctx context.Context) IntegrationMapOutput

type IntegrationMapInput

type IntegrationMapInput interface {
	pulumi.Input

	ToIntegrationMapOutput() IntegrationMapOutput
	ToIntegrationMapOutputWithContext(context.Context) IntegrationMapOutput
}

IntegrationMapInput is an input type that accepts IntegrationMap and IntegrationMapOutput values. You can construct a concrete instance of `IntegrationMapInput` via:

IntegrationMap{ "key": IntegrationArgs{...} }

type IntegrationMapOutput

type IntegrationMapOutput struct{ *pulumi.OutputState }

func (IntegrationMapOutput) ElementType

func (IntegrationMapOutput) ElementType() reflect.Type

func (IntegrationMapOutput) MapIndex

func (IntegrationMapOutput) ToIntegrationMapOutput

func (o IntegrationMapOutput) ToIntegrationMapOutput() IntegrationMapOutput

func (IntegrationMapOutput) ToIntegrationMapOutputWithContext

func (o IntegrationMapOutput) ToIntegrationMapOutputWithContext(ctx context.Context) IntegrationMapOutput

type IntegrationOutput

type IntegrationOutput struct{ *pulumi.OutputState }

func (IntegrationOutput) CacheKeyParameters

func (o IntegrationOutput) CacheKeyParameters() pulumi.StringArrayOutput

List of cache key parameters for the integration.

func (IntegrationOutput) CacheNamespace

func (o IntegrationOutput) CacheNamespace() pulumi.StringOutput

Integration's cache namespace.

func (IntegrationOutput) ConnectionId

func (o IntegrationOutput) ConnectionId() pulumi.StringPtrOutput

ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK`

func (IntegrationOutput) ConnectionType

func (o IntegrationOutput) ConnectionType() pulumi.StringPtrOutput

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).

func (IntegrationOutput) ContentHandling

func (o IntegrationOutput) ContentHandling() pulumi.StringPtrOutput

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.

func (IntegrationOutput) Credentials

func (o IntegrationOutput) Credentials() pulumi.StringPtrOutput

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/\*`.

func (IntegrationOutput) ElementType

func (IntegrationOutput) ElementType() reflect.Type

func (IntegrationOutput) HttpMethod

func (o IntegrationOutput) HttpMethod() pulumi.StringOutput

HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`) when calling the associated resource.

func (IntegrationOutput) IntegrationHttpMethod

func (o IntegrationOutput) IntegrationHttpMethod() pulumi.StringPtrOutput

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

func (IntegrationOutput) PassthroughBehavior

func (o IntegrationOutput) PassthroughBehavior() pulumi.StringOutput

Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `requestTemplates` is used.

func (IntegrationOutput) RequestParameters

func (o IntegrationOutput) RequestParameters() pulumi.StringMapOutput

Map of request query string parameters and headers that should be passed to the backend responder. For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }`

func (IntegrationOutput) RequestTemplates

func (o IntegrationOutput) RequestTemplates() pulumi.StringMapOutput

Map of the integration's request templates.

func (IntegrationOutput) ResourceId

func (o IntegrationOutput) ResourceId() pulumi.StringOutput

API resource ID.

func (IntegrationOutput) RestApi

ID of the associated REST API.

func (IntegrationOutput) TimeoutMilliseconds

func (o IntegrationOutput) TimeoutMilliseconds() pulumi.IntPtrOutput

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.

func (IntegrationOutput) TlsConfig

TLS configuration. See below.

func (IntegrationOutput) ToIntegrationOutput

func (o IntegrationOutput) ToIntegrationOutput() IntegrationOutput

func (IntegrationOutput) ToIntegrationOutputWithContext

func (o IntegrationOutput) ToIntegrationOutputWithContext(ctx context.Context) IntegrationOutput

func (IntegrationOutput) Type

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.

func (IntegrationOutput) Uri

Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1: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.

type IntegrationResponse

type IntegrationResponse struct {
	pulumi.CustomResourceState

	// 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 response payload will be passed through from the integration response to the method response without modification.
	ContentHandling pulumi.StringPtrOutput `pulumi:"contentHandling"`
	// HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).
	HttpMethod pulumi.StringOutput `pulumi:"httpMethod"`
	// API resource ID.
	ResourceId pulumi.StringOutput `pulumi:"resourceId"`
	// Map of response parameters that can be read from the backend response. For example: `responseParameters = { "method.response.header.X-Some-Header" = "integration.response.header.X-Some-Other-Header" }`.
	ResponseParameters pulumi.StringMapOutput `pulumi:"responseParameters"`
	// Map of templates used to transform the integration response body.
	ResponseTemplates pulumi.StringMapOutput `pulumi:"responseTemplates"`
	// ID of the associated REST API.
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Regular expression pattern used to choose an integration response based on the response from the backend. Omit configuring this to make the integration the default one. If the backend is an `AWS` Lambda function, the AWS Lambda function error header is matched. For all other `HTTP` and `AWS` backends, the HTTP status code is matched.
	SelectionPattern pulumi.StringPtrOutput `pulumi:"selectionPattern"`
	// HTTP status code.
	//
	// The following arguments are optional:
	StatusCode pulumi.StringOutput `pulumi:"statusCode"`
}

Provides an HTTP Method Integration Response for an API Gateway Resource.

> **Note:** Depends on having `apigateway.Integration` inside your rest api. To ensure this you might need to add an explicit `dependsOn` for clean runs.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		myDemoResource, err := apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{
			RestApi:  myDemoAPI.ID(),
			ParentId: myDemoAPI.RootResourceId,
			PathPart: pulumi.String("mydemoresource"),
		})
		if err != nil {
			return err
		}
		myDemoMethod, err := apigateway.NewMethod(ctx, "MyDemoMethod", &apigateway.MethodArgs{
			RestApi:       myDemoAPI.ID(),
			ResourceId:    myDemoResource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegration(ctx, "MyDemoIntegration", &apigateway.IntegrationArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			Type:       pulumi.String("MOCK"),
		})
		if err != nil {
			return err
		}
		response200, err := apigateway.NewMethodResponse(ctx, "response_200", &apigateway.MethodResponseArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			StatusCode: pulumi.String("200"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegrationResponse(ctx, "MyDemoIntegrationResponse", &apigateway.IntegrationResponseArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			StatusCode: response200.StatusCode,
			ResponseTemplates: pulumi.StringMap{
				"application/xml": pulumi.String(`#set($inputRoot = $input.path('$'))

<?xml version="1.0" encoding="UTF-8"?> <message>

$inputRoot.body

</message> `),

			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_integration_response` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD/STATUS-CODE`. For example:

```sh $ pulumi import aws:apigateway/integrationResponse:IntegrationResponse example 12345abcde/67890fghij/GET/200 ```

func GetIntegrationResponse

func GetIntegrationResponse(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IntegrationResponseState, opts ...pulumi.ResourceOption) (*IntegrationResponse, error)

GetIntegrationResponse gets an existing IntegrationResponse resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewIntegrationResponse

func NewIntegrationResponse(ctx *pulumi.Context,
	name string, args *IntegrationResponseArgs, opts ...pulumi.ResourceOption) (*IntegrationResponse, error)

NewIntegrationResponse registers a new resource with the given unique name, arguments, and options.

func (*IntegrationResponse) ElementType

func (*IntegrationResponse) ElementType() reflect.Type

func (*IntegrationResponse) ToIntegrationResponseOutput

func (i *IntegrationResponse) ToIntegrationResponseOutput() IntegrationResponseOutput

func (*IntegrationResponse) ToIntegrationResponseOutputWithContext

func (i *IntegrationResponse) ToIntegrationResponseOutputWithContext(ctx context.Context) IntegrationResponseOutput

type IntegrationResponseArgs

type IntegrationResponseArgs struct {
	// 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 response payload will be passed through from the integration response to the method response without modification.
	ContentHandling pulumi.StringPtrInput
	// HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).
	HttpMethod pulumi.StringInput
	// API resource ID.
	ResourceId pulumi.StringInput
	// Map of response parameters that can be read from the backend response. For example: `responseParameters = { "method.response.header.X-Some-Header" = "integration.response.header.X-Some-Other-Header" }`.
	ResponseParameters pulumi.StringMapInput
	// Map of templates used to transform the integration response body.
	ResponseTemplates pulumi.StringMapInput
	// ID of the associated REST API.
	RestApi pulumi.Input
	// Regular expression pattern used to choose an integration response based on the response from the backend. Omit configuring this to make the integration the default one. If the backend is an `AWS` Lambda function, the AWS Lambda function error header is matched. For all other `HTTP` and `AWS` backends, the HTTP status code is matched.
	SelectionPattern pulumi.StringPtrInput
	// HTTP status code.
	//
	// The following arguments are optional:
	StatusCode pulumi.StringInput
}

The set of arguments for constructing a IntegrationResponse resource.

func (IntegrationResponseArgs) ElementType

func (IntegrationResponseArgs) ElementType() reflect.Type

type IntegrationResponseArray

type IntegrationResponseArray []IntegrationResponseInput

func (IntegrationResponseArray) ElementType

func (IntegrationResponseArray) ElementType() reflect.Type

func (IntegrationResponseArray) ToIntegrationResponseArrayOutput

func (i IntegrationResponseArray) ToIntegrationResponseArrayOutput() IntegrationResponseArrayOutput

func (IntegrationResponseArray) ToIntegrationResponseArrayOutputWithContext

func (i IntegrationResponseArray) ToIntegrationResponseArrayOutputWithContext(ctx context.Context) IntegrationResponseArrayOutput

type IntegrationResponseArrayInput

type IntegrationResponseArrayInput interface {
	pulumi.Input

	ToIntegrationResponseArrayOutput() IntegrationResponseArrayOutput
	ToIntegrationResponseArrayOutputWithContext(context.Context) IntegrationResponseArrayOutput
}

IntegrationResponseArrayInput is an input type that accepts IntegrationResponseArray and IntegrationResponseArrayOutput values. You can construct a concrete instance of `IntegrationResponseArrayInput` via:

IntegrationResponseArray{ IntegrationResponseArgs{...} }

type IntegrationResponseArrayOutput

type IntegrationResponseArrayOutput struct{ *pulumi.OutputState }

func (IntegrationResponseArrayOutput) ElementType

func (IntegrationResponseArrayOutput) Index

func (IntegrationResponseArrayOutput) ToIntegrationResponseArrayOutput

func (o IntegrationResponseArrayOutput) ToIntegrationResponseArrayOutput() IntegrationResponseArrayOutput

func (IntegrationResponseArrayOutput) ToIntegrationResponseArrayOutputWithContext

func (o IntegrationResponseArrayOutput) ToIntegrationResponseArrayOutputWithContext(ctx context.Context) IntegrationResponseArrayOutput

type IntegrationResponseInput

type IntegrationResponseInput interface {
	pulumi.Input

	ToIntegrationResponseOutput() IntegrationResponseOutput
	ToIntegrationResponseOutputWithContext(ctx context.Context) IntegrationResponseOutput
}

type IntegrationResponseMap

type IntegrationResponseMap map[string]IntegrationResponseInput

func (IntegrationResponseMap) ElementType

func (IntegrationResponseMap) ElementType() reflect.Type

func (IntegrationResponseMap) ToIntegrationResponseMapOutput

func (i IntegrationResponseMap) ToIntegrationResponseMapOutput() IntegrationResponseMapOutput

func (IntegrationResponseMap) ToIntegrationResponseMapOutputWithContext

func (i IntegrationResponseMap) ToIntegrationResponseMapOutputWithContext(ctx context.Context) IntegrationResponseMapOutput

type IntegrationResponseMapInput

type IntegrationResponseMapInput interface {
	pulumi.Input

	ToIntegrationResponseMapOutput() IntegrationResponseMapOutput
	ToIntegrationResponseMapOutputWithContext(context.Context) IntegrationResponseMapOutput
}

IntegrationResponseMapInput is an input type that accepts IntegrationResponseMap and IntegrationResponseMapOutput values. You can construct a concrete instance of `IntegrationResponseMapInput` via:

IntegrationResponseMap{ "key": IntegrationResponseArgs{...} }

type IntegrationResponseMapOutput

type IntegrationResponseMapOutput struct{ *pulumi.OutputState }

func (IntegrationResponseMapOutput) ElementType

func (IntegrationResponseMapOutput) MapIndex

func (IntegrationResponseMapOutput) ToIntegrationResponseMapOutput

func (o IntegrationResponseMapOutput) ToIntegrationResponseMapOutput() IntegrationResponseMapOutput

func (IntegrationResponseMapOutput) ToIntegrationResponseMapOutputWithContext

func (o IntegrationResponseMapOutput) ToIntegrationResponseMapOutputWithContext(ctx context.Context) IntegrationResponseMapOutput

type IntegrationResponseOutput

type IntegrationResponseOutput struct{ *pulumi.OutputState }

func (IntegrationResponseOutput) ContentHandling

func (o IntegrationResponseOutput) ContentHandling() pulumi.StringPtrOutput

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 response payload will be passed through from the integration response to the method response without modification.

func (IntegrationResponseOutput) ElementType

func (IntegrationResponseOutput) ElementType() reflect.Type

func (IntegrationResponseOutput) HttpMethod

HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).

func (IntegrationResponseOutput) ResourceId

API resource ID.

func (IntegrationResponseOutput) ResponseParameters

func (o IntegrationResponseOutput) ResponseParameters() pulumi.StringMapOutput

Map of response parameters that can be read from the backend response. For example: `responseParameters = { "method.response.header.X-Some-Header" = "integration.response.header.X-Some-Other-Header" }`.

func (IntegrationResponseOutput) ResponseTemplates

func (o IntegrationResponseOutput) ResponseTemplates() pulumi.StringMapOutput

Map of templates used to transform the integration response body.

func (IntegrationResponseOutput) RestApi

ID of the associated REST API.

func (IntegrationResponseOutput) SelectionPattern

func (o IntegrationResponseOutput) SelectionPattern() pulumi.StringPtrOutput

Regular expression pattern used to choose an integration response based on the response from the backend. Omit configuring this to make the integration the default one. If the backend is an `AWS` Lambda function, the AWS Lambda function error header is matched. For all other `HTTP` and `AWS` backends, the HTTP status code is matched.

func (IntegrationResponseOutput) StatusCode

HTTP status code.

The following arguments are optional:

func (IntegrationResponseOutput) ToIntegrationResponseOutput

func (o IntegrationResponseOutput) ToIntegrationResponseOutput() IntegrationResponseOutput

func (IntegrationResponseOutput) ToIntegrationResponseOutputWithContext

func (o IntegrationResponseOutput) ToIntegrationResponseOutputWithContext(ctx context.Context) IntegrationResponseOutput

type IntegrationResponseState

type IntegrationResponseState struct {
	// 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 response payload will be passed through from the integration response to the method response without modification.
	ContentHandling pulumi.StringPtrInput
	// HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).
	HttpMethod pulumi.StringPtrInput
	// API resource ID.
	ResourceId pulumi.StringPtrInput
	// Map of response parameters that can be read from the backend response. For example: `responseParameters = { "method.response.header.X-Some-Header" = "integration.response.header.X-Some-Other-Header" }`.
	ResponseParameters pulumi.StringMapInput
	// Map of templates used to transform the integration response body.
	ResponseTemplates pulumi.StringMapInput
	// ID of the associated REST API.
	RestApi pulumi.Input
	// Regular expression pattern used to choose an integration response based on the response from the backend. Omit configuring this to make the integration the default one. If the backend is an `AWS` Lambda function, the AWS Lambda function error header is matched. For all other `HTTP` and `AWS` backends, the HTTP status code is matched.
	SelectionPattern pulumi.StringPtrInput
	// HTTP status code.
	//
	// The following arguments are optional:
	StatusCode pulumi.StringPtrInput
}

func (IntegrationResponseState) ElementType

func (IntegrationResponseState) ElementType() reflect.Type

type IntegrationState

type IntegrationState struct {
	// List of cache key parameters for the integration.
	CacheKeyParameters pulumi.StringArrayInput
	// Integration's cache namespace.
	CacheNamespace pulumi.StringPtrInput
	// ID of the VpcLink used for the integration. **Required** if `connectionType` is `VPC_LINK`
	ConnectionId pulumi.StringPtrInput
	// 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).
	ConnectionType pulumi.StringPtrInput
	// 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.
	ContentHandling pulumi.StringPtrInput
	// 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/\*`.
	Credentials pulumi.StringPtrInput
	// HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`)
	// when calling the associated resource.
	HttpMethod pulumi.StringPtrInput
	// Integration HTTP method
	// (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end.
	// **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.
	// Not all methods are compatible with all `AWS` integrations.
	// e.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`.
	IntegrationHttpMethod pulumi.StringPtrInput
	// Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`).  **Required** if `requestTemplates` is used.
	PassthroughBehavior pulumi.StringPtrInput
	// Map of request query string parameters and headers that should be passed to the backend responder.
	// For example: `requestParameters = { "integration.request.header.X-Some-Other-Header" = "method.request.header.X-Some-Header" }`
	RequestParameters pulumi.StringMapInput
	// Map of the integration's request templates.
	RequestTemplates pulumi.StringMapInput
	// API resource ID.
	ResourceId pulumi.StringPtrInput
	// ID of the associated REST API.
	RestApi pulumi.Input
	// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.
	TimeoutMilliseconds pulumi.IntPtrInput
	// TLS configuration. See below.
	TlsConfig IntegrationTlsConfigPtrInput
	// 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.
	Type pulumi.StringPtrInput
	// Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.
	// For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint.
	// e.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1: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.
	Uri pulumi.StringPtrInput
}

func (IntegrationState) ElementType

func (IntegrationState) ElementType() reflect.Type

type IntegrationTlsConfig

type IntegrationTlsConfig struct {
	// Whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations.
	InsecureSkipVerification *bool `pulumi:"insecureSkipVerification"`
}

type IntegrationTlsConfigArgs

type IntegrationTlsConfigArgs struct {
	// Whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations.
	InsecureSkipVerification pulumi.BoolPtrInput `pulumi:"insecureSkipVerification"`
}

func (IntegrationTlsConfigArgs) ElementType

func (IntegrationTlsConfigArgs) ElementType() reflect.Type

func (IntegrationTlsConfigArgs) ToIntegrationTlsConfigOutput

func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigOutput() IntegrationTlsConfigOutput

func (IntegrationTlsConfigArgs) ToIntegrationTlsConfigOutputWithContext

func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigOutputWithContext(ctx context.Context) IntegrationTlsConfigOutput

func (IntegrationTlsConfigArgs) ToIntegrationTlsConfigPtrOutput

func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput

func (IntegrationTlsConfigArgs) ToIntegrationTlsConfigPtrOutputWithContext

func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput

type IntegrationTlsConfigInput

type IntegrationTlsConfigInput interface {
	pulumi.Input

	ToIntegrationTlsConfigOutput() IntegrationTlsConfigOutput
	ToIntegrationTlsConfigOutputWithContext(context.Context) IntegrationTlsConfigOutput
}

IntegrationTlsConfigInput is an input type that accepts IntegrationTlsConfigArgs and IntegrationTlsConfigOutput values. You can construct a concrete instance of `IntegrationTlsConfigInput` via:

IntegrationTlsConfigArgs{...}

type IntegrationTlsConfigOutput

type IntegrationTlsConfigOutput struct{ *pulumi.OutputState }

func (IntegrationTlsConfigOutput) ElementType

func (IntegrationTlsConfigOutput) ElementType() reflect.Type

func (IntegrationTlsConfigOutput) InsecureSkipVerification

func (o IntegrationTlsConfigOutput) InsecureSkipVerification() pulumi.BoolPtrOutput

Whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations.

func (IntegrationTlsConfigOutput) ToIntegrationTlsConfigOutput

func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigOutput() IntegrationTlsConfigOutput

func (IntegrationTlsConfigOutput) ToIntegrationTlsConfigOutputWithContext

func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigOutputWithContext(ctx context.Context) IntegrationTlsConfigOutput

func (IntegrationTlsConfigOutput) ToIntegrationTlsConfigPtrOutput

func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput

func (IntegrationTlsConfigOutput) ToIntegrationTlsConfigPtrOutputWithContext

func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput

type IntegrationTlsConfigPtrInput

type IntegrationTlsConfigPtrInput interface {
	pulumi.Input

	ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput
	ToIntegrationTlsConfigPtrOutputWithContext(context.Context) IntegrationTlsConfigPtrOutput
}

IntegrationTlsConfigPtrInput is an input type that accepts IntegrationTlsConfigArgs, IntegrationTlsConfigPtr and IntegrationTlsConfigPtrOutput values. You can construct a concrete instance of `IntegrationTlsConfigPtrInput` via:

        IntegrationTlsConfigArgs{...}

or:

        nil

type IntegrationTlsConfigPtrOutput

type IntegrationTlsConfigPtrOutput struct{ *pulumi.OutputState }

func (IntegrationTlsConfigPtrOutput) Elem

func (IntegrationTlsConfigPtrOutput) ElementType

func (IntegrationTlsConfigPtrOutput) InsecureSkipVerification

func (o IntegrationTlsConfigPtrOutput) InsecureSkipVerification() pulumi.BoolPtrOutput

Whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations.

func (IntegrationTlsConfigPtrOutput) ToIntegrationTlsConfigPtrOutput

func (o IntegrationTlsConfigPtrOutput) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput

func (IntegrationTlsConfigPtrOutput) ToIntegrationTlsConfigPtrOutputWithContext

func (o IntegrationTlsConfigPtrOutput) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput

type LookupAuthorizerArgs

type LookupAuthorizerArgs struct {
	// Authorizer identifier.
	AuthorizerId string `pulumi:"authorizerId"`
	// ID of the associated REST API.
	RestApiId string `pulumi:"restApiId"`
}

A collection of arguments for invoking getAuthorizer.

type LookupAuthorizerOutputArgs

type LookupAuthorizerOutputArgs struct {
	// Authorizer identifier.
	AuthorizerId pulumi.StringInput `pulumi:"authorizerId"`
	// ID of the associated REST API.
	RestApiId pulumi.StringInput `pulumi:"restApiId"`
}

A collection of arguments for invoking getAuthorizer.

func (LookupAuthorizerOutputArgs) ElementType

func (LookupAuthorizerOutputArgs) ElementType() reflect.Type

type LookupAuthorizerResult

type LookupAuthorizerResult struct {
	// ARN of the API Gateway Authorizer.
	Arn string `pulumi:"arn"`
	// Credentials required for the authorizer.
	AuthorizerCredentials string `pulumi:"authorizerCredentials"`
	AuthorizerId          string `pulumi:"authorizerId"`
	// TTL of cached authorizer results in seconds.
	AuthorizerResultTtlInSeconds int `pulumi:"authorizerResultTtlInSeconds"`
	// Authorizer's Uniform Resource Identifier (URI).
	AuthorizerUri string `pulumi:"authorizerUri"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Source of the identity in an incoming request.
	IdentitySource string `pulumi:"identitySource"`
	// Validation expression for the incoming identity.
	IdentityValidationExpression string `pulumi:"identityValidationExpression"`
	// Name of the authorizer.
	Name string `pulumi:"name"`
	// List of the Amazon Cognito user pool ARNs.
	ProviderArns []string `pulumi:"providerArns"`
	RestApiId    string   `pulumi:"restApiId"`
	// Type of the authorizer.
	Type string `pulumi:"type"`
}

A collection of values returned by getAuthorizer.

func LookupAuthorizer

func LookupAuthorizer(ctx *pulumi.Context, args *LookupAuthorizerArgs, opts ...pulumi.InvokeOption) (*LookupAuthorizerResult, error)

Provides details about a specific API Gateway Authorizer.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.LookupAuthorizer(ctx, &apigateway.LookupAuthorizerArgs{
			RestApiId:    exampleAwsApiGatewayRestApi.Id,
			AuthorizerId: exampleAwsApiGatewayAuthorizers.Ids[0],
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupAuthorizerResultOutput

type LookupAuthorizerResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAuthorizer.

func (LookupAuthorizerResultOutput) Arn

ARN of the API Gateway Authorizer.

func (LookupAuthorizerResultOutput) AuthorizerCredentials

func (o LookupAuthorizerResultOutput) AuthorizerCredentials() pulumi.StringOutput

Credentials required for the authorizer.

func (LookupAuthorizerResultOutput) AuthorizerId

func (LookupAuthorizerResultOutput) AuthorizerResultTtlInSeconds

func (o LookupAuthorizerResultOutput) AuthorizerResultTtlInSeconds() pulumi.IntOutput

TTL of cached authorizer results in seconds.

func (LookupAuthorizerResultOutput) AuthorizerUri

Authorizer's Uniform Resource Identifier (URI).

func (LookupAuthorizerResultOutput) ElementType

func (LookupAuthorizerResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupAuthorizerResultOutput) IdentitySource

Source of the identity in an incoming request.

func (LookupAuthorizerResultOutput) IdentityValidationExpression

func (o LookupAuthorizerResultOutput) IdentityValidationExpression() pulumi.StringOutput

Validation expression for the incoming identity.

func (LookupAuthorizerResultOutput) Name

Name of the authorizer.

func (LookupAuthorizerResultOutput) ProviderArns

List of the Amazon Cognito user pool ARNs.

func (LookupAuthorizerResultOutput) RestApiId

func (LookupAuthorizerResultOutput) ToLookupAuthorizerResultOutput

func (o LookupAuthorizerResultOutput) ToLookupAuthorizerResultOutput() LookupAuthorizerResultOutput

func (LookupAuthorizerResultOutput) ToLookupAuthorizerResultOutputWithContext

func (o LookupAuthorizerResultOutput) ToLookupAuthorizerResultOutputWithContext(ctx context.Context) LookupAuthorizerResultOutput

func (LookupAuthorizerResultOutput) Type

Type of the authorizer.

type LookupDomainNameArgs

type LookupDomainNameArgs struct {
	// Fully-qualified domain name to look up. If no domain name is found, an error will be returned.
	DomainName string `pulumi:"domainName"`
	// Key-value map of tags for the resource.
	Tags map[string]string `pulumi:"tags"`
}

A collection of arguments for invoking getDomainName.

type LookupDomainNameOutputArgs

type LookupDomainNameOutputArgs struct {
	// Fully-qualified domain name to look up. If no domain name is found, an error will be returned.
	DomainName pulumi.StringInput `pulumi:"domainName"`
	// Key-value map of tags for the resource.
	Tags pulumi.StringMapInput `pulumi:"tags"`
}

A collection of arguments for invoking getDomainName.

func (LookupDomainNameOutputArgs) ElementType

func (LookupDomainNameOutputArgs) ElementType() reflect.Type

type LookupDomainNameResult

type LookupDomainNameResult struct {
	// ARN of the found custom domain name.
	Arn string `pulumi:"arn"`
	// ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name.
	CertificateArn string `pulumi:"certificateArn"`
	// Name of the certificate that is used by edge-optimized endpoint for this domain name.
	CertificateName string `pulumi:"certificateName"`
	// Upload date associated with the domain certificate.
	CertificateUploadDate string `pulumi:"certificateUploadDate"`
	// Hostname created by Cloudfront to represent the distribution that implements this domain name mapping.
	CloudfrontDomainName string `pulumi:"cloudfrontDomainName"`
	// For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.
	CloudfrontZoneId string `pulumi:"cloudfrontZoneId"`
	DomainName       string `pulumi:"domainName"`
	// List of objects with the endpoint configuration of this domain name.
	EndpointConfigurations []GetDomainNameEndpointConfiguration `pulumi:"endpointConfigurations"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// ARN for an AWS-managed certificate that is used for validating the regional domain name.
	RegionalCertificateArn string `pulumi:"regionalCertificateArn"`
	// User-friendly name of the certificate that is used by regional endpoint for this domain name.
	RegionalCertificateName string `pulumi:"regionalCertificateName"`
	// Hostname for the custom domain's regional endpoint.
	RegionalDomainName string `pulumi:"regionalDomainName"`
	// Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.
	RegionalZoneId string `pulumi:"regionalZoneId"`
	// Security policy for the domain name.
	SecurityPolicy string `pulumi:"securityPolicy"`
	// Key-value map of tags for the resource.
	Tags map[string]string `pulumi:"tags"`
}

A collection of values returned by getDomainName.

func LookupDomainName

func LookupDomainName(ctx *pulumi.Context, args *LookupDomainNameArgs, opts ...pulumi.InvokeOption) (*LookupDomainNameResult, error)

Use this data source to get the custom domain name for use with AWS API Gateway.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.LookupDomainName(ctx, &apigateway.LookupDomainNameArgs{
			DomainName: "api.example.com",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupDomainNameResultOutput

type LookupDomainNameResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDomainName.

func (LookupDomainNameResultOutput) Arn

ARN of the found custom domain name.

func (LookupDomainNameResultOutput) CertificateArn

ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name.

func (LookupDomainNameResultOutput) CertificateName

func (o LookupDomainNameResultOutput) CertificateName() pulumi.StringOutput

Name of the certificate that is used by edge-optimized endpoint for this domain name.

func (LookupDomainNameResultOutput) CertificateUploadDate

func (o LookupDomainNameResultOutput) CertificateUploadDate() pulumi.StringOutput

Upload date associated with the domain certificate.

func (LookupDomainNameResultOutput) CloudfrontDomainName

func (o LookupDomainNameResultOutput) CloudfrontDomainName() pulumi.StringOutput

Hostname created by Cloudfront to represent the distribution that implements this domain name mapping.

func (LookupDomainNameResultOutput) CloudfrontZoneId

func (o LookupDomainNameResultOutput) CloudfrontZoneId() pulumi.StringOutput

For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.

func (LookupDomainNameResultOutput) DomainName

func (LookupDomainNameResultOutput) ElementType

func (LookupDomainNameResultOutput) EndpointConfigurations

List of objects with the endpoint configuration of this domain name.

func (LookupDomainNameResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupDomainNameResultOutput) RegionalCertificateArn

func (o LookupDomainNameResultOutput) RegionalCertificateArn() pulumi.StringOutput

ARN for an AWS-managed certificate that is used for validating the regional domain name.

func (LookupDomainNameResultOutput) RegionalCertificateName

func (o LookupDomainNameResultOutput) RegionalCertificateName() pulumi.StringOutput

User-friendly name of the certificate that is used by regional endpoint for this domain name.

func (LookupDomainNameResultOutput) RegionalDomainName

func (o LookupDomainNameResultOutput) RegionalDomainName() pulumi.StringOutput

Hostname for the custom domain's regional endpoint.

func (LookupDomainNameResultOutput) RegionalZoneId

Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.

func (LookupDomainNameResultOutput) SecurityPolicy

Security policy for the domain name.

func (LookupDomainNameResultOutput) Tags

Key-value map of tags for the resource.

func (LookupDomainNameResultOutput) ToLookupDomainNameResultOutput

func (o LookupDomainNameResultOutput) ToLookupDomainNameResultOutput() LookupDomainNameResultOutput

func (LookupDomainNameResultOutput) ToLookupDomainNameResultOutputWithContext

func (o LookupDomainNameResultOutput) ToLookupDomainNameResultOutputWithContext(ctx context.Context) LookupDomainNameResultOutput

type LookupResourceArgs

type LookupResourceArgs struct {
	// Full path of the resource.  If no path is found, an error will be returned.
	Path string `pulumi:"path"`
	// REST API id that owns the resource. If no REST API is found, an error will be returned.
	RestApiId string `pulumi:"restApiId"`
}

A collection of arguments for invoking getResource.

type LookupResourceOutputArgs

type LookupResourceOutputArgs struct {
	// Full path of the resource.  If no path is found, an error will be returned.
	Path pulumi.StringInput `pulumi:"path"`
	// REST API id that owns the resource. If no REST API is found, an error will be returned.
	RestApiId pulumi.StringInput `pulumi:"restApiId"`
}

A collection of arguments for invoking getResource.

func (LookupResourceOutputArgs) ElementType

func (LookupResourceOutputArgs) ElementType() reflect.Type

type LookupResourceResult

type LookupResourceResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Set to the ID of the parent Resource.
	ParentId string `pulumi:"parentId"`
	Path     string `pulumi:"path"`
	// Set to the path relative to the parent Resource.
	PathPart  string `pulumi:"pathPart"`
	RestApiId string `pulumi:"restApiId"`
}

A collection of values returned by getResource.

func LookupResource

func LookupResource(ctx *pulumi.Context, args *LookupResourceArgs, opts ...pulumi.InvokeOption) (*LookupResourceResult, error)

Use this data source to get the id of a Resource in API Gateway. To fetch the Resource, you must provide the REST API id as well as the full path.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myRestApi, err := apigateway.LookupRestApi(ctx, &apigateway.LookupRestApiArgs{
			Name: "my-rest-api",
		}, nil)
		if err != nil {
			return err
		}
		_, err = apigateway.LookupResource(ctx, &apigateway.LookupResourceArgs{
			RestApiId: myRestApi.Id,
			Path:      "/endpoint/path",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupResourceResultOutput

type LookupResourceResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getResource.

func (LookupResourceResultOutput) ElementType

func (LookupResourceResultOutput) ElementType() reflect.Type

func (LookupResourceResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupResourceResultOutput) ParentId

Set to the ID of the parent Resource.

func (LookupResourceResultOutput) Path

func (LookupResourceResultOutput) PathPart

Set to the path relative to the parent Resource.

func (LookupResourceResultOutput) RestApiId

func (LookupResourceResultOutput) ToLookupResourceResultOutput

func (o LookupResourceResultOutput) ToLookupResourceResultOutput() LookupResourceResultOutput

func (LookupResourceResultOutput) ToLookupResourceResultOutputWithContext

func (o LookupResourceResultOutput) ToLookupResourceResultOutputWithContext(ctx context.Context) LookupResourceResultOutput

type LookupRestApiArgs

type LookupRestApiArgs struct {
	// Name of the REST API to look up. If no REST API is found with this name, an error will be returned. If multiple REST APIs are found with this name, an error will be returned.
	Name string `pulumi:"name"`
	// Key-value map of resource tags.
	Tags map[string]string `pulumi:"tags"`
}

A collection of arguments for invoking getRestApi.

type LookupRestApiOutputArgs

type LookupRestApiOutputArgs struct {
	// Name of the REST API to look up. If no REST API is found with this name, an error will be returned. If multiple REST APIs are found with this name, an error will be returned.
	Name pulumi.StringInput `pulumi:"name"`
	// Key-value map of resource tags.
	Tags pulumi.StringMapInput `pulumi:"tags"`
}

A collection of arguments for invoking getRestApi.

func (LookupRestApiOutputArgs) ElementType

func (LookupRestApiOutputArgs) ElementType() reflect.Type

type LookupRestApiResult

type LookupRestApiResult struct {
	// Source of the API key for requests.
	ApiKeySource string `pulumi:"apiKeySource"`
	// ARN of the REST API.
	Arn string `pulumi:"arn"`
	// List of binary media types supported by the REST API.
	BinaryMediaTypes []string `pulumi:"binaryMediaTypes"`
	// Description of the REST API.
	Description string `pulumi:"description"`
	// The endpoint configuration of this RestApi showing the endpoint types of the API.
	EndpointConfigurations []GetRestApiEndpointConfiguration `pulumi:"endpointConfigurations"`
	// Execution ARN part to be used in `lambdaPermission`'s `sourceArn` when allowing API Gateway to invoke a Lambda function, e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j`, which can be concatenated with allowed stage, method and resource path.
	ExecutionArn string `pulumi:"executionArn"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Minimum response size to compress for the REST API.
	MinimumCompressionSize string `pulumi:"minimumCompressionSize"`
	Name                   string `pulumi:"name"`
	// JSON formatted policy document that controls access to the API Gateway.
	Policy string `pulumi:"policy"`
	// Set to the ID of the API Gateway Resource on the found REST API where the route matches '/'.
	RootResourceId string `pulumi:"rootResourceId"`
	// Key-value map of resource tags.
	Tags map[string]string `pulumi:"tags"`
}

A collection of values returned by getRestApi.

func LookupRestApi

func LookupRestApi(ctx *pulumi.Context, args *LookupRestApiArgs, opts ...pulumi.InvokeOption) (*LookupRestApiResult, error)

Use this data source to get the id and rootResourceId of a REST API in API Gateway. To fetch the REST API you must provide a name to match against. As there is no unique name constraint on REST APIs this data source will error if there is more than one match.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.LookupRestApi(ctx, &apigateway.LookupRestApiArgs{
			Name: "my-rest-api",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupRestApiResultOutput

type LookupRestApiResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getRestApi.

func (LookupRestApiResultOutput) ApiKeySource

Source of the API key for requests.

func (LookupRestApiResultOutput) Arn

ARN of the REST API.

func (LookupRestApiResultOutput) BinaryMediaTypes

func (o LookupRestApiResultOutput) BinaryMediaTypes() pulumi.StringArrayOutput

List of binary media types supported by the REST API.

func (LookupRestApiResultOutput) Description

Description of the REST API.

func (LookupRestApiResultOutput) ElementType

func (LookupRestApiResultOutput) ElementType() reflect.Type

func (LookupRestApiResultOutput) EndpointConfigurations

The endpoint configuration of this RestApi showing the endpoint types of the API.

func (LookupRestApiResultOutput) ExecutionArn

Execution ARN part to be used in `lambdaPermission`'s `sourceArn` when allowing API Gateway to invoke a Lambda function, e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j`, which can be concatenated with allowed stage, method and resource path.

func (LookupRestApiResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupRestApiResultOutput) MinimumCompressionSize

func (o LookupRestApiResultOutput) MinimumCompressionSize() pulumi.StringOutput

Minimum response size to compress for the REST API.

func (LookupRestApiResultOutput) Name

func (LookupRestApiResultOutput) Policy

JSON formatted policy document that controls access to the API Gateway.

func (LookupRestApiResultOutput) RootResourceId

func (o LookupRestApiResultOutput) RootResourceId() pulumi.StringOutput

Set to the ID of the API Gateway Resource on the found REST API where the route matches '/'.

func (LookupRestApiResultOutput) Tags

Key-value map of resource tags.

func (LookupRestApiResultOutput) ToLookupRestApiResultOutput

func (o LookupRestApiResultOutput) ToLookupRestApiResultOutput() LookupRestApiResultOutput

func (LookupRestApiResultOutput) ToLookupRestApiResultOutputWithContext

func (o LookupRestApiResultOutput) ToLookupRestApiResultOutputWithContext(ctx context.Context) LookupRestApiResultOutput

type LookupVpcLinkArgs

type LookupVpcLinkArgs struct {
	// Name of the API Gateway VPC Link to look up. If no API Gateway VPC Link is found with this name, an error will be returned.
	// If multiple API Gateway VPC Links are found with this name, an error will be returned.
	Name string `pulumi:"name"`
	// Key-value map of resource tags
	Tags map[string]string `pulumi:"tags"`
}

A collection of arguments for invoking getVpcLink.

type LookupVpcLinkOutputArgs

type LookupVpcLinkOutputArgs struct {
	// Name of the API Gateway VPC Link to look up. If no API Gateway VPC Link is found with this name, an error will be returned.
	// If multiple API Gateway VPC Links are found with this name, an error will be returned.
	Name pulumi.StringInput `pulumi:"name"`
	// Key-value map of resource tags
	Tags pulumi.StringMapInput `pulumi:"tags"`
}

A collection of arguments for invoking getVpcLink.

func (LookupVpcLinkOutputArgs) ElementType

func (LookupVpcLinkOutputArgs) ElementType() reflect.Type

type LookupVpcLinkResult

type LookupVpcLinkResult struct {
	// Description of the VPC link.
	Description string `pulumi:"description"`
	// Set to the ID of the found API Gateway VPC Link.
	Id   string `pulumi:"id"`
	Name string `pulumi:"name"`
	// Status of the VPC link.
	Status string `pulumi:"status"`
	// Status message of the VPC link.
	StatusMessage string `pulumi:"statusMessage"`
	// Key-value map of resource tags
	Tags map[string]string `pulumi:"tags"`
	// List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target.
	TargetArns []string `pulumi:"targetArns"`
}

A collection of values returned by getVpcLink.

func LookupVpcLink(ctx *pulumi.Context, args *LookupVpcLinkArgs, opts ...pulumi.InvokeOption) (*LookupVpcLinkResult, error)

Use this data source to get the id of a VPC Link in API Gateway. To fetch the VPC Link you must provide a name to match against. As there is no unique name constraint on API Gateway VPC Links this data source will error if there is more than one match.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.LookupVpcLink(ctx, &apigateway.LookupVpcLinkArgs{
			Name: "my-vpc-link",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

type LookupVpcLinkResultOutput

type LookupVpcLinkResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getVpcLink.

func (LookupVpcLinkResultOutput) Description

Description of the VPC link.

func (LookupVpcLinkResultOutput) ElementType

func (LookupVpcLinkResultOutput) ElementType() reflect.Type

func (LookupVpcLinkResultOutput) Id

Set to the ID of the found API Gateway VPC Link.

func (LookupVpcLinkResultOutput) Name

func (LookupVpcLinkResultOutput) Status

Status of the VPC link.

func (LookupVpcLinkResultOutput) StatusMessage

func (o LookupVpcLinkResultOutput) StatusMessage() pulumi.StringOutput

Status message of the VPC link.

func (LookupVpcLinkResultOutput) Tags

Key-value map of resource tags

func (LookupVpcLinkResultOutput) TargetArns

List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target.

func (LookupVpcLinkResultOutput) ToLookupVpcLinkResultOutput

func (o LookupVpcLinkResultOutput) ToLookupVpcLinkResultOutput() LookupVpcLinkResultOutput

func (LookupVpcLinkResultOutput) ToLookupVpcLinkResultOutputWithContext

func (o LookupVpcLinkResultOutput) ToLookupVpcLinkResultOutputWithContext(ctx context.Context) LookupVpcLinkResultOutput

type Method

type Method struct {
	pulumi.CustomResourceState

	// Specify if the method requires an API key
	ApiKeyRequired pulumi.BoolPtrOutput `pulumi:"apiKeyRequired"`
	// Type of authorization used for the method (`NONE`, `CUSTOM`, `AWS_IAM`, `COGNITO_USER_POOLS`)
	Authorization pulumi.StringOutput `pulumi:"authorization"`
	// Authorization scopes used when the authorization is `COGNITO_USER_POOLS`
	AuthorizationScopes pulumi.StringArrayOutput `pulumi:"authorizationScopes"`
	// Authorizer id to be used when the authorization is `CUSTOM` or `COGNITO_USER_POOLS`
	AuthorizerId pulumi.StringPtrOutput `pulumi:"authorizerId"`
	// HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)
	HttpMethod pulumi.StringOutput `pulumi:"httpMethod"`
	// Function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.
	OperationName pulumi.StringPtrOutput `pulumi:"operationName"`
	// Map of the API models used for the request's content type
	// where key is the content type (e.g., `application/json`)
	// and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`.
	RequestModels pulumi.StringMapOutput `pulumi:"requestModels"`
	// Map of request parameters (from the path, query string and headers) that should be passed to the integration. The boolean value indicates whether the parameter is required (`true`) or optional (`false`).
	// For example: `requestParameters = {"method.request.header.X-Some-Header" = true "method.request.querystring.some-query-param" = true}` would define that the header `X-Some-Header` and the query string `some-query-param` must be provided in the request.
	RequestParameters pulumi.BoolMapOutput `pulumi:"requestParameters"`
	// ID of a `apigateway.RequestValidator`
	RequestValidatorId pulumi.StringPtrOutput `pulumi:"requestValidatorId"`
	// API resource ID
	ResourceId pulumi.StringOutput `pulumi:"resourceId"`
	// ID of the associated REST API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
}

Provides a HTTP Method for an API Gateway Resource.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		myDemoResource, err := apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{
			RestApi:  myDemoAPI.ID(),
			ParentId: myDemoAPI.RootResourceId,
			PathPart: pulumi.String("mydemoresource"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewMethod(ctx, "MyDemoMethod", &apigateway.MethodArgs{
			RestApi:       myDemoAPI.ID(),
			ResourceId:    myDemoResource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Usage with Cognito User Pool Authorizer

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		cognitoUserPoolName := cfg.RequireObject("cognitoUserPoolName")
		this, err := cognito.GetUserPools(ctx, &cognito.GetUserPoolsArgs{
			Name: cognitoUserPoolName,
		}, nil)
		if err != nil {
			return err
		}
		thisRestApi, err := apigateway.NewRestApi(ctx, "this", &apigateway.RestApiArgs{
			Name: pulumi.String("with-authorizer"),
		})
		if err != nil {
			return err
		}
		thisResource, err := apigateway.NewResource(ctx, "this", &apigateway.ResourceArgs{
			RestApi:  thisRestApi.ID(),
			ParentId: thisRestApi.RootResourceId,
			PathPart: pulumi.String("{proxy+}"),
		})
		if err != nil {
			return err
		}
		thisAuthorizer, err := apigateway.NewAuthorizer(ctx, "this", &apigateway.AuthorizerArgs{
			Name:         pulumi.String("CognitoUserPoolAuthorizer"),
			Type:         pulumi.String("COGNITO_USER_POOLS"),
			RestApi:      thisRestApi.ID(),
			ProviderArns: interface{}(this.Arns),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewMethod(ctx, "any", &apigateway.MethodArgs{
			RestApi:       thisRestApi.ID(),
			ResourceId:    thisResource.ID(),
			HttpMethod:    pulumi.String("ANY"),
			Authorization: pulumi.String("COGNITO_USER_POOLS"),
			AuthorizerId:  thisAuthorizer.ID(),
			RequestParameters: pulumi.BoolMap{
				"method.request.path.proxy": pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_method` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD`. For example:

```sh $ pulumi import aws:apigateway/method:Method example 12345abcde/67890fghij/GET ```

func GetMethod

func GetMethod(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *MethodState, opts ...pulumi.ResourceOption) (*Method, error)

GetMethod gets an existing Method resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewMethod

func NewMethod(ctx *pulumi.Context,
	name string, args *MethodArgs, opts ...pulumi.ResourceOption) (*Method, error)

NewMethod registers a new resource with the given unique name, arguments, and options.

func (*Method) ElementType

func (*Method) ElementType() reflect.Type

func (*Method) ToMethodOutput

func (i *Method) ToMethodOutput() MethodOutput

func (*Method) ToMethodOutputWithContext

func (i *Method) ToMethodOutputWithContext(ctx context.Context) MethodOutput

type MethodArgs

type MethodArgs struct {
	// Specify if the method requires an API key
	ApiKeyRequired pulumi.BoolPtrInput
	// Type of authorization used for the method (`NONE`, `CUSTOM`, `AWS_IAM`, `COGNITO_USER_POOLS`)
	Authorization pulumi.StringInput
	// Authorization scopes used when the authorization is `COGNITO_USER_POOLS`
	AuthorizationScopes pulumi.StringArrayInput
	// Authorizer id to be used when the authorization is `CUSTOM` or `COGNITO_USER_POOLS`
	AuthorizerId pulumi.StringPtrInput
	// HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)
	HttpMethod pulumi.StringInput
	// Function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.
	OperationName pulumi.StringPtrInput
	// Map of the API models used for the request's content type
	// where key is the content type (e.g., `application/json`)
	// and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`.
	RequestModels pulumi.StringMapInput
	// Map of request parameters (from the path, query string and headers) that should be passed to the integration. The boolean value indicates whether the parameter is required (`true`) or optional (`false`).
	// For example: `requestParameters = {"method.request.header.X-Some-Header" = true "method.request.querystring.some-query-param" = true}` would define that the header `X-Some-Header` and the query string `some-query-param` must be provided in the request.
	RequestParameters pulumi.BoolMapInput
	// ID of a `apigateway.RequestValidator`
	RequestValidatorId pulumi.StringPtrInput
	// API resource ID
	ResourceId pulumi.StringInput
	// ID of the associated REST API
	RestApi pulumi.Input
}

The set of arguments for constructing a Method resource.

func (MethodArgs) ElementType

func (MethodArgs) ElementType() reflect.Type

type MethodArray

type MethodArray []MethodInput

func (MethodArray) ElementType

func (MethodArray) ElementType() reflect.Type

func (MethodArray) ToMethodArrayOutput

func (i MethodArray) ToMethodArrayOutput() MethodArrayOutput

func (MethodArray) ToMethodArrayOutputWithContext

func (i MethodArray) ToMethodArrayOutputWithContext(ctx context.Context) MethodArrayOutput

type MethodArrayInput

type MethodArrayInput interface {
	pulumi.Input

	ToMethodArrayOutput() MethodArrayOutput
	ToMethodArrayOutputWithContext(context.Context) MethodArrayOutput
}

MethodArrayInput is an input type that accepts MethodArray and MethodArrayOutput values. You can construct a concrete instance of `MethodArrayInput` via:

MethodArray{ MethodArgs{...} }

type MethodArrayOutput

type MethodArrayOutput struct{ *pulumi.OutputState }

func (MethodArrayOutput) ElementType

func (MethodArrayOutput) ElementType() reflect.Type

func (MethodArrayOutput) Index

func (MethodArrayOutput) ToMethodArrayOutput

func (o MethodArrayOutput) ToMethodArrayOutput() MethodArrayOutput

func (MethodArrayOutput) ToMethodArrayOutputWithContext

func (o MethodArrayOutput) ToMethodArrayOutputWithContext(ctx context.Context) MethodArrayOutput

type MethodInput

type MethodInput interface {
	pulumi.Input

	ToMethodOutput() MethodOutput
	ToMethodOutputWithContext(ctx context.Context) MethodOutput
}

type MethodMap

type MethodMap map[string]MethodInput

func (MethodMap) ElementType

func (MethodMap) ElementType() reflect.Type

func (MethodMap) ToMethodMapOutput

func (i MethodMap) ToMethodMapOutput() MethodMapOutput

func (MethodMap) ToMethodMapOutputWithContext

func (i MethodMap) ToMethodMapOutputWithContext(ctx context.Context) MethodMapOutput

type MethodMapInput

type MethodMapInput interface {
	pulumi.Input

	ToMethodMapOutput() MethodMapOutput
	ToMethodMapOutputWithContext(context.Context) MethodMapOutput
}

MethodMapInput is an input type that accepts MethodMap and MethodMapOutput values. You can construct a concrete instance of `MethodMapInput` via:

MethodMap{ "key": MethodArgs{...} }

type MethodMapOutput

type MethodMapOutput struct{ *pulumi.OutputState }

func (MethodMapOutput) ElementType

func (MethodMapOutput) ElementType() reflect.Type

func (MethodMapOutput) MapIndex

func (MethodMapOutput) ToMethodMapOutput

func (o MethodMapOutput) ToMethodMapOutput() MethodMapOutput

func (MethodMapOutput) ToMethodMapOutputWithContext

func (o MethodMapOutput) ToMethodMapOutputWithContext(ctx context.Context) MethodMapOutput

type MethodOutput

type MethodOutput struct{ *pulumi.OutputState }

func (MethodOutput) ApiKeyRequired

func (o MethodOutput) ApiKeyRequired() pulumi.BoolPtrOutput

Specify if the method requires an API key

func (MethodOutput) Authorization

func (o MethodOutput) Authorization() pulumi.StringOutput

Type of authorization used for the method (`NONE`, `CUSTOM`, `AWS_IAM`, `COGNITO_USER_POOLS`)

func (MethodOutput) AuthorizationScopes

func (o MethodOutput) AuthorizationScopes() pulumi.StringArrayOutput

Authorization scopes used when the authorization is `COGNITO_USER_POOLS`

func (MethodOutput) AuthorizerId

func (o MethodOutput) AuthorizerId() pulumi.StringPtrOutput

Authorizer id to be used when the authorization is `CUSTOM` or `COGNITO_USER_POOLS`

func (MethodOutput) ElementType

func (MethodOutput) ElementType() reflect.Type

func (MethodOutput) HttpMethod

func (o MethodOutput) HttpMethod() pulumi.StringOutput

HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)

func (MethodOutput) OperationName

func (o MethodOutput) OperationName() pulumi.StringPtrOutput

Function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.

func (MethodOutput) RequestModels

func (o MethodOutput) RequestModels() pulumi.StringMapOutput

Map of the API models used for the request's content type where key is the content type (e.g., `application/json`) and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`.

func (MethodOutput) RequestParameters

func (o MethodOutput) RequestParameters() pulumi.BoolMapOutput

Map of request parameters (from the path, query string and headers) that should be passed to the integration. The boolean value indicates whether the parameter is required (`true`) or optional (`false`). For example: `requestParameters = {"method.request.header.X-Some-Header" = true "method.request.querystring.some-query-param" = true}` would define that the header `X-Some-Header` and the query string `some-query-param` must be provided in the request.

func (MethodOutput) RequestValidatorId

func (o MethodOutput) RequestValidatorId() pulumi.StringPtrOutput

ID of a `apigateway.RequestValidator`

func (MethodOutput) ResourceId

func (o MethodOutput) ResourceId() pulumi.StringOutput

API resource ID

func (MethodOutput) RestApi

func (o MethodOutput) RestApi() pulumi.StringOutput

ID of the associated REST API

func (MethodOutput) ToMethodOutput

func (o MethodOutput) ToMethodOutput() MethodOutput

func (MethodOutput) ToMethodOutputWithContext

func (o MethodOutput) ToMethodOutputWithContext(ctx context.Context) MethodOutput

type MethodResponse

type MethodResponse struct {
	pulumi.CustomResourceState

	// The HTTP verb of the method resource (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).
	HttpMethod pulumi.StringOutput `pulumi:"httpMethod"`
	// The Resource identifier for the method resource.
	ResourceId pulumi.StringOutput `pulumi:"resourceId"`
	// A map specifying the model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.
	ResponseModels pulumi.StringMapOutput `pulumi:"responseModels"`
	// A map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a boolean flag indicating whether the method response parameter is required. The method response header names must match the pattern of `method.response.header.{name}`, where `name` is a valid and unique header name.
	//
	// The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in `integration.response.header.{name}`, a static value enclosed within a pair of single quotes (e.g., '`application/json'`), or a JSON expression from the back-end response payload in the form of `integration.response.body.{JSON-expression}`, where `JSON-expression` is a valid JSON expression without the `$` prefix.)
	ResponseParameters pulumi.BoolMapOutput `pulumi:"responseParameters"`
	// The string identifier of the associated REST API.
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// The method response's status code.
	StatusCode pulumi.StringOutput `pulumi:"statusCode"`
}

Provides an HTTP Method Response for an API Gateway Resource. More information about API Gateway method responses can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-response.html).

## Example Usage

### Basic Response

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		myDemoResource, err := apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{
			RestApi:  myDemoAPI.ID(),
			ParentId: myDemoAPI.RootResourceId,
			PathPart: pulumi.String("mydemoresource"),
		})
		if err != nil {
			return err
		}
		myDemoMethod, err := apigateway.NewMethod(ctx, "MyDemoMethod", &apigateway.MethodArgs{
			RestApi:       myDemoAPI.ID(),
			ResourceId:    myDemoResource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegration(ctx, "MyDemoIntegration", &apigateway.IntegrationArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			Type:       pulumi.String("MOCK"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewMethodResponse(ctx, "response_200", &apigateway.MethodResponseArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			StatusCode: pulumi.String("200"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Response with Custom Header and Model

<!--Start PulumiCodeChooser --> ```go package main

import (

"encoding/json"

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		myDemoResource, err := apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{
			RestApi:  myDemoAPI.ID(),
			ParentId: myDemoAPI.RootResourceId,
			PathPart: pulumi.String("mydemoresource"),
		})
		if err != nil {
			return err
		}
		myDemoMethod, err := apigateway.NewMethod(ctx, "MyDemoMethod", &apigateway.MethodArgs{
			RestApi:       myDemoAPI.ID(),
			ResourceId:    myDemoResource.ID(),
			HttpMethod:    pulumi.String("GET"),
			Authorization: pulumi.String("NONE"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewIntegration(ctx, "MyDemoIntegration", &apigateway.IntegrationArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			Type:       pulumi.String("MOCK"),
		})
		if err != nil {
			return err
		}
		tmpJSON0, err := json.Marshal(map[string]interface{}{
			"$schema": "http://json-schema.org/draft-04/schema#",
			"title":   "MyDemoResponse",
			"type":    "object",
			"properties": map[string]interface{}{
				"Message": map[string]interface{}{
					"type": "string",
				},
			},
		})
		if err != nil {
			return err
		}
		json0 := string(tmpJSON0)
		_, err = apigateway.NewModel(ctx, "MyDemoResponseModel", &apigateway.ModelArgs{
			RestApi:     myDemoAPI.ID(),
			Name:        pulumi.String("MyDemoResponseModel"),
			Description: pulumi.String("API response for MyDemoMethod"),
			ContentType: pulumi.String("application/json"),
			Schema:      pulumi.String(json0),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewMethodResponse(ctx, "response_200", &apigateway.MethodResponseArgs{
			RestApi:    myDemoAPI.ID(),
			ResourceId: myDemoResource.ID(),
			HttpMethod: myDemoMethod.HttpMethod,
			StatusCode: pulumi.String("200"),
			ResponseModels: pulumi.StringMap{
				"application/json": pulumi.String("MyDemoResponseModel"),
			},
			ResponseParameters: pulumi.BoolMap{
				"method.response.header.Content-Type":     pulumi.Bool(false),
				"method-response-header.X-My-Demo-Header": pulumi.Bool(false),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_method_response` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD/STATUS-CODE`. For example:

```sh $ pulumi import aws:apigateway/methodResponse:MethodResponse example 12345abcde/67890fghij/GET/200 ```

func GetMethodResponse

func GetMethodResponse(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *MethodResponseState, opts ...pulumi.ResourceOption) (*MethodResponse, error)

GetMethodResponse gets an existing MethodResponse resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewMethodResponse

func NewMethodResponse(ctx *pulumi.Context,
	name string, args *MethodResponseArgs, opts ...pulumi.ResourceOption) (*MethodResponse, error)

NewMethodResponse registers a new resource with the given unique name, arguments, and options.

func (*MethodResponse) ElementType

func (*MethodResponse) ElementType() reflect.Type

func (*MethodResponse) ToMethodResponseOutput

func (i *MethodResponse) ToMethodResponseOutput() MethodResponseOutput

func (*MethodResponse) ToMethodResponseOutputWithContext

func (i *MethodResponse) ToMethodResponseOutputWithContext(ctx context.Context) MethodResponseOutput

type MethodResponseArgs

type MethodResponseArgs struct {
	// The HTTP verb of the method resource (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).
	HttpMethod pulumi.StringInput
	// The Resource identifier for the method resource.
	ResourceId pulumi.StringInput
	// A map specifying the model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.
	ResponseModels pulumi.StringMapInput
	// A map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a boolean flag indicating whether the method response parameter is required. The method response header names must match the pattern of `method.response.header.{name}`, where `name` is a valid and unique header name.
	//
	// The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in `integration.response.header.{name}`, a static value enclosed within a pair of single quotes (e.g., '`application/json'`), or a JSON expression from the back-end response payload in the form of `integration.response.body.{JSON-expression}`, where `JSON-expression` is a valid JSON expression without the `$` prefix.)
	ResponseParameters pulumi.BoolMapInput
	// The string identifier of the associated REST API.
	RestApi pulumi.Input
	// The method response's status code.
	StatusCode pulumi.StringInput
}

The set of arguments for constructing a MethodResponse resource.

func (MethodResponseArgs) ElementType

func (MethodResponseArgs) ElementType() reflect.Type

type MethodResponseArray

type MethodResponseArray []MethodResponseInput

func (MethodResponseArray) ElementType

func (MethodResponseArray) ElementType() reflect.Type

func (MethodResponseArray) ToMethodResponseArrayOutput

func (i MethodResponseArray) ToMethodResponseArrayOutput() MethodResponseArrayOutput

func (MethodResponseArray) ToMethodResponseArrayOutputWithContext

func (i MethodResponseArray) ToMethodResponseArrayOutputWithContext(ctx context.Context) MethodResponseArrayOutput

type MethodResponseArrayInput

type MethodResponseArrayInput interface {
	pulumi.Input

	ToMethodResponseArrayOutput() MethodResponseArrayOutput
	ToMethodResponseArrayOutputWithContext(context.Context) MethodResponseArrayOutput
}

MethodResponseArrayInput is an input type that accepts MethodResponseArray and MethodResponseArrayOutput values. You can construct a concrete instance of `MethodResponseArrayInput` via:

MethodResponseArray{ MethodResponseArgs{...} }

type MethodResponseArrayOutput

type MethodResponseArrayOutput struct{ *pulumi.OutputState }

func (MethodResponseArrayOutput) ElementType

func (MethodResponseArrayOutput) ElementType() reflect.Type

func (MethodResponseArrayOutput) Index

func (MethodResponseArrayOutput) ToMethodResponseArrayOutput

func (o MethodResponseArrayOutput) ToMethodResponseArrayOutput() MethodResponseArrayOutput

func (MethodResponseArrayOutput) ToMethodResponseArrayOutputWithContext

func (o MethodResponseArrayOutput) ToMethodResponseArrayOutputWithContext(ctx context.Context) MethodResponseArrayOutput

type MethodResponseInput

type MethodResponseInput interface {
	pulumi.Input

	ToMethodResponseOutput() MethodResponseOutput
	ToMethodResponseOutputWithContext(ctx context.Context) MethodResponseOutput
}

type MethodResponseMap

type MethodResponseMap map[string]MethodResponseInput

func (MethodResponseMap) ElementType

func (MethodResponseMap) ElementType() reflect.Type

func (MethodResponseMap) ToMethodResponseMapOutput

func (i MethodResponseMap) ToMethodResponseMapOutput() MethodResponseMapOutput

func (MethodResponseMap) ToMethodResponseMapOutputWithContext

func (i MethodResponseMap) ToMethodResponseMapOutputWithContext(ctx context.Context) MethodResponseMapOutput

type MethodResponseMapInput

type MethodResponseMapInput interface {
	pulumi.Input

	ToMethodResponseMapOutput() MethodResponseMapOutput
	ToMethodResponseMapOutputWithContext(context.Context) MethodResponseMapOutput
}

MethodResponseMapInput is an input type that accepts MethodResponseMap and MethodResponseMapOutput values. You can construct a concrete instance of `MethodResponseMapInput` via:

MethodResponseMap{ "key": MethodResponseArgs{...} }

type MethodResponseMapOutput

type MethodResponseMapOutput struct{ *pulumi.OutputState }

func (MethodResponseMapOutput) ElementType

func (MethodResponseMapOutput) ElementType() reflect.Type

func (MethodResponseMapOutput) MapIndex

func (MethodResponseMapOutput) ToMethodResponseMapOutput

func (o MethodResponseMapOutput) ToMethodResponseMapOutput() MethodResponseMapOutput

func (MethodResponseMapOutput) ToMethodResponseMapOutputWithContext

func (o MethodResponseMapOutput) ToMethodResponseMapOutputWithContext(ctx context.Context) MethodResponseMapOutput

type MethodResponseOutput

type MethodResponseOutput struct{ *pulumi.OutputState }

func (MethodResponseOutput) ElementType

func (MethodResponseOutput) ElementType() reflect.Type

func (MethodResponseOutput) HttpMethod

func (o MethodResponseOutput) HttpMethod() pulumi.StringOutput

The HTTP verb of the method resource (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).

func (MethodResponseOutput) ResourceId

func (o MethodResponseOutput) ResourceId() pulumi.StringOutput

The Resource identifier for the method resource.

func (MethodResponseOutput) ResponseModels

func (o MethodResponseOutput) ResponseModels() pulumi.StringMapOutput

A map specifying the model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.

func (MethodResponseOutput) ResponseParameters

func (o MethodResponseOutput) ResponseParameters() pulumi.BoolMapOutput

A map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a boolean flag indicating whether the method response parameter is required. The method response header names must match the pattern of `method.response.header.{name}`, where `name` is a valid and unique header name.

The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in `integration.response.header.{name}`, a static value enclosed within a pair of single quotes (e.g., '`application/json'`), or a JSON expression from the back-end response payload in the form of `integration.response.body.{JSON-expression}`, where `JSON-expression` is a valid JSON expression without the `$` prefix.)

func (MethodResponseOutput) RestApi

The string identifier of the associated REST API.

func (MethodResponseOutput) StatusCode

func (o MethodResponseOutput) StatusCode() pulumi.StringOutput

The method response's status code.

func (MethodResponseOutput) ToMethodResponseOutput

func (o MethodResponseOutput) ToMethodResponseOutput() MethodResponseOutput

func (MethodResponseOutput) ToMethodResponseOutputWithContext

func (o MethodResponseOutput) ToMethodResponseOutputWithContext(ctx context.Context) MethodResponseOutput

type MethodResponseState

type MethodResponseState struct {
	// The HTTP verb of the method resource (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`).
	HttpMethod pulumi.StringPtrInput
	// The Resource identifier for the method resource.
	ResourceId pulumi.StringPtrInput
	// A map specifying the model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.
	ResponseModels pulumi.StringMapInput
	// A map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a boolean flag indicating whether the method response parameter is required. The method response header names must match the pattern of `method.response.header.{name}`, where `name` is a valid and unique header name.
	//
	// The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in `integration.response.header.{name}`, a static value enclosed within a pair of single quotes (e.g., '`application/json'`), or a JSON expression from the back-end response payload in the form of `integration.response.body.{JSON-expression}`, where `JSON-expression` is a valid JSON expression without the `$` prefix.)
	ResponseParameters pulumi.BoolMapInput
	// The string identifier of the associated REST API.
	RestApi pulumi.Input
	// The method response's status code.
	StatusCode pulumi.StringPtrInput
}

func (MethodResponseState) ElementType

func (MethodResponseState) ElementType() reflect.Type

type MethodSettings

type MethodSettings struct {
	pulumi.CustomResourceState

	// Method path defined as `{resource_path}/{http_method}` for an individual method override, or `*/*` for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g., `trimprefix(aws_api_gateway_resource.example.path, "/")`).
	MethodPath pulumi.StringOutput `pulumi:"methodPath"`
	// ID of the REST API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Settings block, see below.
	Settings MethodSettingsSettingsOutput `pulumi:"settings"`
	// Name of the stage
	StageName pulumi.StringOutput `pulumi:"stageName"`
}

Manages API Gateway Stage Method Settings. For example, CloudWatch logging and metrics.

> **NOTE:** We recommend using this resource in conjunction with the `apigateway.Stage` resource instead of a stage managed by the `apigateway.Deployment` resource optional `stageName` argument. Stages managed by the `apigateway.Deployment` resource are recreated on redeployment and this resource will require a second apply to recreate the method settings.

## Example Usage

### End-to-end

### Off

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewMethodSettings(ctx, "path_specific", &apigateway.MethodSettingsArgs{
			RestApi:    pulumi.Any(example.Id),
			StageName:  pulumi.Any(exampleAwsApiGatewayStage.StageName),
			MethodPath: pulumi.String("path1/GET"),
			Settings: &apigateway.MethodSettingsSettingsArgs{
				LoggingLevel: pulumi.String("OFF"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Errors Only

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewMethodSettings(ctx, "path_specific", &apigateway.MethodSettingsArgs{
			RestApi:    pulumi.Any(example.Id),
			StageName:  pulumi.Any(exampleAwsApiGatewayStage.StageName),
			MethodPath: pulumi.String("path1/GET"),
			Settings: &apigateway.MethodSettingsSettingsArgs{
				LoggingLevel:     pulumi.String("ERROR"),
				MetricsEnabled:   pulumi.Bool(true),
				DataTraceEnabled: pulumi.Bool(false),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Errors and Info Logs

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewMethodSettings(ctx, "path_specific", &apigateway.MethodSettingsArgs{
			RestApi:    pulumi.Any(example.Id),
			StageName:  pulumi.Any(exampleAwsApiGatewayStage.StageName),
			MethodPath: pulumi.String("path1/GET"),
			Settings: &apigateway.MethodSettingsSettingsArgs{
				LoggingLevel:     pulumi.String("INFO"),
				MetricsEnabled:   pulumi.Bool(true),
				DataTraceEnabled: pulumi.Bool(false),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

### Full Request and Response Logs

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewMethodSettings(ctx, "path_specific", &apigateway.MethodSettingsArgs{
			RestApi:    pulumi.Any(example.Id),
			StageName:  pulumi.Any(exampleAwsApiGatewayStage.StageName),
			MethodPath: pulumi.String("path1/GET"),
			Settings: &apigateway.MethodSettingsSettingsArgs{
				LoggingLevel:     pulumi.String("INFO"),
				MetricsEnabled:   pulumi.Bool(true),
				DataTraceEnabled: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_method_settings` using `REST-API-ID/STAGE-NAME/METHOD-PATH`. For example:

```sh $ pulumi import aws:apigateway/methodSettings:MethodSettings example 12345abcde/example/test/GET ```

func GetMethodSettings

func GetMethodSettings(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *MethodSettingsState, opts ...pulumi.ResourceOption) (*MethodSettings, error)

GetMethodSettings gets an existing MethodSettings resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewMethodSettings

func NewMethodSettings(ctx *pulumi.Context,
	name string, args *MethodSettingsArgs, opts ...pulumi.ResourceOption) (*MethodSettings, error)

NewMethodSettings registers a new resource with the given unique name, arguments, and options.

func (*MethodSettings) ElementType

func (*MethodSettings) ElementType() reflect.Type

func (*MethodSettings) ToMethodSettingsOutput

func (i *MethodSettings) ToMethodSettingsOutput() MethodSettingsOutput

func (*MethodSettings) ToMethodSettingsOutputWithContext

func (i *MethodSettings) ToMethodSettingsOutputWithContext(ctx context.Context) MethodSettingsOutput

type MethodSettingsArgs

type MethodSettingsArgs struct {
	// Method path defined as `{resource_path}/{http_method}` for an individual method override, or `*/*` for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g., `trimprefix(aws_api_gateway_resource.example.path, "/")`).
	MethodPath pulumi.StringInput
	// ID of the REST API
	RestApi pulumi.Input
	// Settings block, see below.
	Settings MethodSettingsSettingsInput
	// Name of the stage
	StageName pulumi.StringInput
}

The set of arguments for constructing a MethodSettings resource.

func (MethodSettingsArgs) ElementType

func (MethodSettingsArgs) ElementType() reflect.Type

type MethodSettingsArray

type MethodSettingsArray []MethodSettingsInput

func (MethodSettingsArray) ElementType

func (MethodSettingsArray) ElementType() reflect.Type

func (MethodSettingsArray) ToMethodSettingsArrayOutput

func (i MethodSettingsArray) ToMethodSettingsArrayOutput() MethodSettingsArrayOutput

func (MethodSettingsArray) ToMethodSettingsArrayOutputWithContext

func (i MethodSettingsArray) ToMethodSettingsArrayOutputWithContext(ctx context.Context) MethodSettingsArrayOutput

type MethodSettingsArrayInput

type MethodSettingsArrayInput interface {
	pulumi.Input

	ToMethodSettingsArrayOutput() MethodSettingsArrayOutput
	ToMethodSettingsArrayOutputWithContext(context.Context) MethodSettingsArrayOutput
}

MethodSettingsArrayInput is an input type that accepts MethodSettingsArray and MethodSettingsArrayOutput values. You can construct a concrete instance of `MethodSettingsArrayInput` via:

MethodSettingsArray{ MethodSettingsArgs{...} }

type MethodSettingsArrayOutput

type MethodSettingsArrayOutput struct{ *pulumi.OutputState }

func (MethodSettingsArrayOutput) ElementType

func (MethodSettingsArrayOutput) ElementType() reflect.Type

func (MethodSettingsArrayOutput) Index

func (MethodSettingsArrayOutput) ToMethodSettingsArrayOutput

func (o MethodSettingsArrayOutput) ToMethodSettingsArrayOutput() MethodSettingsArrayOutput

func (MethodSettingsArrayOutput) ToMethodSettingsArrayOutputWithContext

func (o MethodSettingsArrayOutput) ToMethodSettingsArrayOutputWithContext(ctx context.Context) MethodSettingsArrayOutput

type MethodSettingsInput

type MethodSettingsInput interface {
	pulumi.Input

	ToMethodSettingsOutput() MethodSettingsOutput
	ToMethodSettingsOutputWithContext(ctx context.Context) MethodSettingsOutput
}

type MethodSettingsMap

type MethodSettingsMap map[string]MethodSettingsInput

func (MethodSettingsMap) ElementType

func (MethodSettingsMap) ElementType() reflect.Type

func (MethodSettingsMap) ToMethodSettingsMapOutput

func (i MethodSettingsMap) ToMethodSettingsMapOutput() MethodSettingsMapOutput

func (MethodSettingsMap) ToMethodSettingsMapOutputWithContext

func (i MethodSettingsMap) ToMethodSettingsMapOutputWithContext(ctx context.Context) MethodSettingsMapOutput

type MethodSettingsMapInput

type MethodSettingsMapInput interface {
	pulumi.Input

	ToMethodSettingsMapOutput() MethodSettingsMapOutput
	ToMethodSettingsMapOutputWithContext(context.Context) MethodSettingsMapOutput
}

MethodSettingsMapInput is an input type that accepts MethodSettingsMap and MethodSettingsMapOutput values. You can construct a concrete instance of `MethodSettingsMapInput` via:

MethodSettingsMap{ "key": MethodSettingsArgs{...} }

type MethodSettingsMapOutput

type MethodSettingsMapOutput struct{ *pulumi.OutputState }

func (MethodSettingsMapOutput) ElementType

func (MethodSettingsMapOutput) ElementType() reflect.Type

func (MethodSettingsMapOutput) MapIndex

func (MethodSettingsMapOutput) ToMethodSettingsMapOutput

func (o MethodSettingsMapOutput) ToMethodSettingsMapOutput() MethodSettingsMapOutput

func (MethodSettingsMapOutput) ToMethodSettingsMapOutputWithContext

func (o MethodSettingsMapOutput) ToMethodSettingsMapOutputWithContext(ctx context.Context) MethodSettingsMapOutput

type MethodSettingsOutput

type MethodSettingsOutput struct{ *pulumi.OutputState }

func (MethodSettingsOutput) ElementType

func (MethodSettingsOutput) ElementType() reflect.Type

func (MethodSettingsOutput) MethodPath

func (o MethodSettingsOutput) MethodPath() pulumi.StringOutput

Method path defined as `{resource_path}/{http_method}` for an individual method override, or `*/*` for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g., `trimprefix(aws_api_gateway_resource.example.path, "/")`).

func (MethodSettingsOutput) RestApi

ID of the REST API

func (MethodSettingsOutput) Settings

Settings block, see below.

func (MethodSettingsOutput) StageName

Name of the stage

func (MethodSettingsOutput) ToMethodSettingsOutput

func (o MethodSettingsOutput) ToMethodSettingsOutput() MethodSettingsOutput

func (MethodSettingsOutput) ToMethodSettingsOutputWithContext

func (o MethodSettingsOutput) ToMethodSettingsOutputWithContext(ctx context.Context) MethodSettingsOutput

type MethodSettingsSettings

type MethodSettingsSettings struct {
	// Whether the cached responses are encrypted.
	CacheDataEncrypted *bool `pulumi:"cacheDataEncrypted"`
	// Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
	CacheTtlInSeconds *int `pulumi:"cacheTtlInSeconds"`
	// Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
	CachingEnabled *bool `pulumi:"cachingEnabled"`
	// Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
	DataTraceEnabled *bool `pulumi:"dataTraceEnabled"`
	// Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are `OFF`, `ERROR`, and `INFO`.
	LoggingLevel *string `pulumi:"loggingLevel"`
	// Whether Amazon CloudWatch metrics are enabled for this method.
	MetricsEnabled *bool `pulumi:"metricsEnabled"`
	// Whether authorization is required for a cache invalidation request.
	RequireAuthorizationForCacheControl *bool `pulumi:"requireAuthorizationForCacheControl"`
	// Throttling burst limit. Default: `-1` (throttling disabled).
	ThrottlingBurstLimit *int `pulumi:"throttlingBurstLimit"`
	// Throttling rate limit. Default: `-1` (throttling disabled).
	ThrottlingRateLimit *float64 `pulumi:"throttlingRateLimit"`
	// How to handle unauthorized requests for cache invalidation. The available values are `FAIL_WITH_403`, `SUCCEED_WITH_RESPONSE_HEADER`, `SUCCEED_WITHOUT_RESPONSE_HEADER`.
	UnauthorizedCacheControlHeaderStrategy *string `pulumi:"unauthorizedCacheControlHeaderStrategy"`
}

type MethodSettingsSettingsArgs

type MethodSettingsSettingsArgs struct {
	// Whether the cached responses are encrypted.
	CacheDataEncrypted pulumi.BoolPtrInput `pulumi:"cacheDataEncrypted"`
	// Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
	CacheTtlInSeconds pulumi.IntPtrInput `pulumi:"cacheTtlInSeconds"`
	// Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
	CachingEnabled pulumi.BoolPtrInput `pulumi:"cachingEnabled"`
	// Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
	DataTraceEnabled pulumi.BoolPtrInput `pulumi:"dataTraceEnabled"`
	// Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are `OFF`, `ERROR`, and `INFO`.
	LoggingLevel pulumi.StringPtrInput `pulumi:"loggingLevel"`
	// Whether Amazon CloudWatch metrics are enabled for this method.
	MetricsEnabled pulumi.BoolPtrInput `pulumi:"metricsEnabled"`
	// Whether authorization is required for a cache invalidation request.
	RequireAuthorizationForCacheControl pulumi.BoolPtrInput `pulumi:"requireAuthorizationForCacheControl"`
	// Throttling burst limit. Default: `-1` (throttling disabled).
	ThrottlingBurstLimit pulumi.IntPtrInput `pulumi:"throttlingBurstLimit"`
	// Throttling rate limit. Default: `-1` (throttling disabled).
	ThrottlingRateLimit pulumi.Float64PtrInput `pulumi:"throttlingRateLimit"`
	// How to handle unauthorized requests for cache invalidation. The available values are `FAIL_WITH_403`, `SUCCEED_WITH_RESPONSE_HEADER`, `SUCCEED_WITHOUT_RESPONSE_HEADER`.
	UnauthorizedCacheControlHeaderStrategy pulumi.StringPtrInput `pulumi:"unauthorizedCacheControlHeaderStrategy"`
}

func (MethodSettingsSettingsArgs) ElementType

func (MethodSettingsSettingsArgs) ElementType() reflect.Type

func (MethodSettingsSettingsArgs) ToMethodSettingsSettingsOutput

func (i MethodSettingsSettingsArgs) ToMethodSettingsSettingsOutput() MethodSettingsSettingsOutput

func (MethodSettingsSettingsArgs) ToMethodSettingsSettingsOutputWithContext

func (i MethodSettingsSettingsArgs) ToMethodSettingsSettingsOutputWithContext(ctx context.Context) MethodSettingsSettingsOutput

func (MethodSettingsSettingsArgs) ToMethodSettingsSettingsPtrOutput

func (i MethodSettingsSettingsArgs) ToMethodSettingsSettingsPtrOutput() MethodSettingsSettingsPtrOutput

func (MethodSettingsSettingsArgs) ToMethodSettingsSettingsPtrOutputWithContext

func (i MethodSettingsSettingsArgs) ToMethodSettingsSettingsPtrOutputWithContext(ctx context.Context) MethodSettingsSettingsPtrOutput

type MethodSettingsSettingsInput

type MethodSettingsSettingsInput interface {
	pulumi.Input

	ToMethodSettingsSettingsOutput() MethodSettingsSettingsOutput
	ToMethodSettingsSettingsOutputWithContext(context.Context) MethodSettingsSettingsOutput
}

MethodSettingsSettingsInput is an input type that accepts MethodSettingsSettingsArgs and MethodSettingsSettingsOutput values. You can construct a concrete instance of `MethodSettingsSettingsInput` via:

MethodSettingsSettingsArgs{...}

type MethodSettingsSettingsOutput

type MethodSettingsSettingsOutput struct{ *pulumi.OutputState }

func (MethodSettingsSettingsOutput) CacheDataEncrypted

func (o MethodSettingsSettingsOutput) CacheDataEncrypted() pulumi.BoolPtrOutput

Whether the cached responses are encrypted.

func (MethodSettingsSettingsOutput) CacheTtlInSeconds

func (o MethodSettingsSettingsOutput) CacheTtlInSeconds() pulumi.IntPtrOutput

Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.

func (MethodSettingsSettingsOutput) CachingEnabled

Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.

func (MethodSettingsSettingsOutput) DataTraceEnabled

func (o MethodSettingsSettingsOutput) DataTraceEnabled() pulumi.BoolPtrOutput

Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.

func (MethodSettingsSettingsOutput) ElementType

func (MethodSettingsSettingsOutput) LoggingLevel

Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are `OFF`, `ERROR`, and `INFO`.

func (MethodSettingsSettingsOutput) MetricsEnabled

Whether Amazon CloudWatch metrics are enabled for this method.

func (MethodSettingsSettingsOutput) RequireAuthorizationForCacheControl

func (o MethodSettingsSettingsOutput) RequireAuthorizationForCacheControl() pulumi.BoolPtrOutput

Whether authorization is required for a cache invalidation request.

func (MethodSettingsSettingsOutput) ThrottlingBurstLimit

func (o MethodSettingsSettingsOutput) ThrottlingBurstLimit() pulumi.IntPtrOutput

Throttling burst limit. Default: `-1` (throttling disabled).

func (MethodSettingsSettingsOutput) ThrottlingRateLimit

func (o MethodSettingsSettingsOutput) ThrottlingRateLimit() pulumi.Float64PtrOutput

Throttling rate limit. Default: `-1` (throttling disabled).

func (MethodSettingsSettingsOutput) ToMethodSettingsSettingsOutput

func (o MethodSettingsSettingsOutput) ToMethodSettingsSettingsOutput() MethodSettingsSettingsOutput

func (MethodSettingsSettingsOutput) ToMethodSettingsSettingsOutputWithContext

func (o MethodSettingsSettingsOutput) ToMethodSettingsSettingsOutputWithContext(ctx context.Context) MethodSettingsSettingsOutput

func (MethodSettingsSettingsOutput) ToMethodSettingsSettingsPtrOutput

func (o MethodSettingsSettingsOutput) ToMethodSettingsSettingsPtrOutput() MethodSettingsSettingsPtrOutput

func (MethodSettingsSettingsOutput) ToMethodSettingsSettingsPtrOutputWithContext

func (o MethodSettingsSettingsOutput) ToMethodSettingsSettingsPtrOutputWithContext(ctx context.Context) MethodSettingsSettingsPtrOutput

func (MethodSettingsSettingsOutput) UnauthorizedCacheControlHeaderStrategy

func (o MethodSettingsSettingsOutput) UnauthorizedCacheControlHeaderStrategy() pulumi.StringPtrOutput

How to handle unauthorized requests for cache invalidation. The available values are `FAIL_WITH_403`, `SUCCEED_WITH_RESPONSE_HEADER`, `SUCCEED_WITHOUT_RESPONSE_HEADER`.

type MethodSettingsSettingsPtrInput

type MethodSettingsSettingsPtrInput interface {
	pulumi.Input

	ToMethodSettingsSettingsPtrOutput() MethodSettingsSettingsPtrOutput
	ToMethodSettingsSettingsPtrOutputWithContext(context.Context) MethodSettingsSettingsPtrOutput
}

MethodSettingsSettingsPtrInput is an input type that accepts MethodSettingsSettingsArgs, MethodSettingsSettingsPtr and MethodSettingsSettingsPtrOutput values. You can construct a concrete instance of `MethodSettingsSettingsPtrInput` via:

        MethodSettingsSettingsArgs{...}

or:

        nil

type MethodSettingsSettingsPtrOutput

type MethodSettingsSettingsPtrOutput struct{ *pulumi.OutputState }

func (MethodSettingsSettingsPtrOutput) CacheDataEncrypted

func (o MethodSettingsSettingsPtrOutput) CacheDataEncrypted() pulumi.BoolPtrOutput

Whether the cached responses are encrypted.

func (MethodSettingsSettingsPtrOutput) CacheTtlInSeconds

func (o MethodSettingsSettingsPtrOutput) CacheTtlInSeconds() pulumi.IntPtrOutput

Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.

func (MethodSettingsSettingsPtrOutput) CachingEnabled

Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.

func (MethodSettingsSettingsPtrOutput) DataTraceEnabled

Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.

func (MethodSettingsSettingsPtrOutput) Elem

func (MethodSettingsSettingsPtrOutput) ElementType

func (MethodSettingsSettingsPtrOutput) LoggingLevel

Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are `OFF`, `ERROR`, and `INFO`.

func (MethodSettingsSettingsPtrOutput) MetricsEnabled

Whether Amazon CloudWatch metrics are enabled for this method.

func (MethodSettingsSettingsPtrOutput) RequireAuthorizationForCacheControl

func (o MethodSettingsSettingsPtrOutput) RequireAuthorizationForCacheControl() pulumi.BoolPtrOutput

Whether authorization is required for a cache invalidation request.

func (MethodSettingsSettingsPtrOutput) ThrottlingBurstLimit

func (o MethodSettingsSettingsPtrOutput) ThrottlingBurstLimit() pulumi.IntPtrOutput

Throttling burst limit. Default: `-1` (throttling disabled).

func (MethodSettingsSettingsPtrOutput) ThrottlingRateLimit

Throttling rate limit. Default: `-1` (throttling disabled).

func (MethodSettingsSettingsPtrOutput) ToMethodSettingsSettingsPtrOutput

func (o MethodSettingsSettingsPtrOutput) ToMethodSettingsSettingsPtrOutput() MethodSettingsSettingsPtrOutput

func (MethodSettingsSettingsPtrOutput) ToMethodSettingsSettingsPtrOutputWithContext

func (o MethodSettingsSettingsPtrOutput) ToMethodSettingsSettingsPtrOutputWithContext(ctx context.Context) MethodSettingsSettingsPtrOutput

func (MethodSettingsSettingsPtrOutput) UnauthorizedCacheControlHeaderStrategy

func (o MethodSettingsSettingsPtrOutput) UnauthorizedCacheControlHeaderStrategy() pulumi.StringPtrOutput

How to handle unauthorized requests for cache invalidation. The available values are `FAIL_WITH_403`, `SUCCEED_WITH_RESPONSE_HEADER`, `SUCCEED_WITHOUT_RESPONSE_HEADER`.

type MethodSettingsState

type MethodSettingsState struct {
	// Method path defined as `{resource_path}/{http_method}` for an individual method override, or `*/*` for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g., `trimprefix(aws_api_gateway_resource.example.path, "/")`).
	MethodPath pulumi.StringPtrInput
	// ID of the REST API
	RestApi pulumi.Input
	// Settings block, see below.
	Settings MethodSettingsSettingsPtrInput
	// Name of the stage
	StageName pulumi.StringPtrInput
}

func (MethodSettingsState) ElementType

func (MethodSettingsState) ElementType() reflect.Type

type MethodState

type MethodState struct {
	// Specify if the method requires an API key
	ApiKeyRequired pulumi.BoolPtrInput
	// Type of authorization used for the method (`NONE`, `CUSTOM`, `AWS_IAM`, `COGNITO_USER_POOLS`)
	Authorization pulumi.StringPtrInput
	// Authorization scopes used when the authorization is `COGNITO_USER_POOLS`
	AuthorizationScopes pulumi.StringArrayInput
	// Authorizer id to be used when the authorization is `CUSTOM` or `COGNITO_USER_POOLS`
	AuthorizerId pulumi.StringPtrInput
	// HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)
	HttpMethod pulumi.StringPtrInput
	// Function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.
	OperationName pulumi.StringPtrInput
	// Map of the API models used for the request's content type
	// where key is the content type (e.g., `application/json`)
	// and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`.
	RequestModels pulumi.StringMapInput
	// Map of request parameters (from the path, query string and headers) that should be passed to the integration. The boolean value indicates whether the parameter is required (`true`) or optional (`false`).
	// For example: `requestParameters = {"method.request.header.X-Some-Header" = true "method.request.querystring.some-query-param" = true}` would define that the header `X-Some-Header` and the query string `some-query-param` must be provided in the request.
	RequestParameters pulumi.BoolMapInput
	// ID of a `apigateway.RequestValidator`
	RequestValidatorId pulumi.StringPtrInput
	// API resource ID
	ResourceId pulumi.StringPtrInput
	// ID of the associated REST API
	RestApi pulumi.Input
}

func (MethodState) ElementType

func (MethodState) ElementType() reflect.Type

type Model

type Model struct {
	pulumi.CustomResourceState

	// Content type of the model
	ContentType pulumi.StringOutput `pulumi:"contentType"`
	// Description of the model
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Name of the model
	Name pulumi.StringOutput `pulumi:"name"`
	// ID of the associated REST API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Schema of the model in a JSON form
	Schema pulumi.StringPtrOutput `pulumi:"schema"`
}

Provides a Model for a REST API Gateway.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"encoding/json"

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		tmpJSON0, err := json.Marshal(map[string]interface{}{
			"type": "object",
		})
		if err != nil {
			return err
		}
		json0 := string(tmpJSON0)
		_, err = apigateway.NewModel(ctx, "MyDemoModel", &apigateway.ModelArgs{
			RestApi:     myDemoAPI.ID(),
			Name:        pulumi.String("user"),
			Description: pulumi.String("a JSON schema"),
			ContentType: pulumi.String("application/json"),
			Schema:      pulumi.String(json0),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_model` using `REST-API-ID/NAME`. For example:

```sh $ pulumi import aws:apigateway/model:Model example 12345abcde/example ```

func GetModel

func GetModel(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ModelState, opts ...pulumi.ResourceOption) (*Model, error)

GetModel gets an existing Model resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewModel

func NewModel(ctx *pulumi.Context,
	name string, args *ModelArgs, opts ...pulumi.ResourceOption) (*Model, error)

NewModel registers a new resource with the given unique name, arguments, and options.

func (*Model) ElementType

func (*Model) ElementType() reflect.Type

func (*Model) ToModelOutput

func (i *Model) ToModelOutput() ModelOutput

func (*Model) ToModelOutputWithContext

func (i *Model) ToModelOutputWithContext(ctx context.Context) ModelOutput

type ModelArgs

type ModelArgs struct {
	// Content type of the model
	ContentType pulumi.StringInput
	// Description of the model
	Description pulumi.StringPtrInput
	// Name of the model
	Name pulumi.StringPtrInput
	// ID of the associated REST API
	RestApi pulumi.Input
	// Schema of the model in a JSON form
	Schema pulumi.StringPtrInput
}

The set of arguments for constructing a Model resource.

func (ModelArgs) ElementType

func (ModelArgs) ElementType() reflect.Type

type ModelArray

type ModelArray []ModelInput

func (ModelArray) ElementType

func (ModelArray) ElementType() reflect.Type

func (ModelArray) ToModelArrayOutput

func (i ModelArray) ToModelArrayOutput() ModelArrayOutput

func (ModelArray) ToModelArrayOutputWithContext

func (i ModelArray) ToModelArrayOutputWithContext(ctx context.Context) ModelArrayOutput

type ModelArrayInput

type ModelArrayInput interface {
	pulumi.Input

	ToModelArrayOutput() ModelArrayOutput
	ToModelArrayOutputWithContext(context.Context) ModelArrayOutput
}

ModelArrayInput is an input type that accepts ModelArray and ModelArrayOutput values. You can construct a concrete instance of `ModelArrayInput` via:

ModelArray{ ModelArgs{...} }

type ModelArrayOutput

type ModelArrayOutput struct{ *pulumi.OutputState }

func (ModelArrayOutput) ElementType

func (ModelArrayOutput) ElementType() reflect.Type

func (ModelArrayOutput) Index

func (ModelArrayOutput) ToModelArrayOutput

func (o ModelArrayOutput) ToModelArrayOutput() ModelArrayOutput

func (ModelArrayOutput) ToModelArrayOutputWithContext

func (o ModelArrayOutput) ToModelArrayOutputWithContext(ctx context.Context) ModelArrayOutput

type ModelInput

type ModelInput interface {
	pulumi.Input

	ToModelOutput() ModelOutput
	ToModelOutputWithContext(ctx context.Context) ModelOutput
}

type ModelMap

type ModelMap map[string]ModelInput

func (ModelMap) ElementType

func (ModelMap) ElementType() reflect.Type

func (ModelMap) ToModelMapOutput

func (i ModelMap) ToModelMapOutput() ModelMapOutput

func (ModelMap) ToModelMapOutputWithContext

func (i ModelMap) ToModelMapOutputWithContext(ctx context.Context) ModelMapOutput

type ModelMapInput

type ModelMapInput interface {
	pulumi.Input

	ToModelMapOutput() ModelMapOutput
	ToModelMapOutputWithContext(context.Context) ModelMapOutput
}

ModelMapInput is an input type that accepts ModelMap and ModelMapOutput values. You can construct a concrete instance of `ModelMapInput` via:

ModelMap{ "key": ModelArgs{...} }

type ModelMapOutput

type ModelMapOutput struct{ *pulumi.OutputState }

func (ModelMapOutput) ElementType

func (ModelMapOutput) ElementType() reflect.Type

func (ModelMapOutput) MapIndex

func (ModelMapOutput) ToModelMapOutput

func (o ModelMapOutput) ToModelMapOutput() ModelMapOutput

func (ModelMapOutput) ToModelMapOutputWithContext

func (o ModelMapOutput) ToModelMapOutputWithContext(ctx context.Context) ModelMapOutput

type ModelOutput

type ModelOutput struct{ *pulumi.OutputState }

func (ModelOutput) ContentType

func (o ModelOutput) ContentType() pulumi.StringOutput

Content type of the model

func (ModelOutput) Description

func (o ModelOutput) Description() pulumi.StringPtrOutput

Description of the model

func (ModelOutput) ElementType

func (ModelOutput) ElementType() reflect.Type

func (ModelOutput) Name

func (o ModelOutput) Name() pulumi.StringOutput

Name of the model

func (ModelOutput) RestApi

func (o ModelOutput) RestApi() pulumi.StringOutput

ID of the associated REST API

func (ModelOutput) Schema

func (o ModelOutput) Schema() pulumi.StringPtrOutput

Schema of the model in a JSON form

func (ModelOutput) ToModelOutput

func (o ModelOutput) ToModelOutput() ModelOutput

func (ModelOutput) ToModelOutputWithContext

func (o ModelOutput) ToModelOutputWithContext(ctx context.Context) ModelOutput

type ModelState

type ModelState struct {
	// Content type of the model
	ContentType pulumi.StringPtrInput
	// Description of the model
	Description pulumi.StringPtrInput
	// Name of the model
	Name pulumi.StringPtrInput
	// ID of the associated REST API
	RestApi pulumi.Input
	// Schema of the model in a JSON form
	Schema pulumi.StringPtrInput
}

func (ModelState) ElementType

func (ModelState) ElementType() reflect.Type

type RequestValidator

type RequestValidator struct {
	pulumi.CustomResourceState

	// Name of the request validator
	Name pulumi.StringOutput `pulumi:"name"`
	// ID of the associated Rest API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Boolean whether to validate request body. Defaults to `false`.
	ValidateRequestBody pulumi.BoolPtrOutput `pulumi:"validateRequestBody"`
	// Boolean whether to validate request parameters. Defaults to `false`.
	ValidateRequestParameters pulumi.BoolPtrOutput `pulumi:"validateRequestParameters"`
}

Manages an API Gateway Request Validator.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := apigateway.NewRequestValidator(ctx, "example", &apigateway.RequestValidatorArgs{
			Name:                      pulumi.String("example"),
			RestApi:                   pulumi.Any(exampleAwsApiGatewayRestApi.Id),
			ValidateRequestBody:       pulumi.Bool(true),
			ValidateRequestParameters: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_request_validator` using `REST-API-ID/REQUEST-VALIDATOR-ID`. For example:

```sh $ pulumi import aws:apigateway/requestValidator:RequestValidator example 12345abcde/67890fghij ```

func GetRequestValidator

func GetRequestValidator(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RequestValidatorState, opts ...pulumi.ResourceOption) (*RequestValidator, error)

GetRequestValidator gets an existing RequestValidator resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewRequestValidator

func NewRequestValidator(ctx *pulumi.Context,
	name string, args *RequestValidatorArgs, opts ...pulumi.ResourceOption) (*RequestValidator, error)

NewRequestValidator registers a new resource with the given unique name, arguments, and options.

func (*RequestValidator) ElementType

func (*RequestValidator) ElementType() reflect.Type

func (*RequestValidator) ToRequestValidatorOutput

func (i *RequestValidator) ToRequestValidatorOutput() RequestValidatorOutput

func (*RequestValidator) ToRequestValidatorOutputWithContext

func (i *RequestValidator) ToRequestValidatorOutputWithContext(ctx context.Context) RequestValidatorOutput

type RequestValidatorArgs

type RequestValidatorArgs struct {
	// Name of the request validator
	Name pulumi.StringPtrInput
	// ID of the associated Rest API
	RestApi pulumi.Input
	// Boolean whether to validate request body. Defaults to `false`.
	ValidateRequestBody pulumi.BoolPtrInput
	// Boolean whether to validate request parameters. Defaults to `false`.
	ValidateRequestParameters pulumi.BoolPtrInput
}

The set of arguments for constructing a RequestValidator resource.

func (RequestValidatorArgs) ElementType

func (RequestValidatorArgs) ElementType() reflect.Type

type RequestValidatorArray

type RequestValidatorArray []RequestValidatorInput

func (RequestValidatorArray) ElementType

func (RequestValidatorArray) ElementType() reflect.Type

func (RequestValidatorArray) ToRequestValidatorArrayOutput

func (i RequestValidatorArray) ToRequestValidatorArrayOutput() RequestValidatorArrayOutput

func (RequestValidatorArray) ToRequestValidatorArrayOutputWithContext

func (i RequestValidatorArray) ToRequestValidatorArrayOutputWithContext(ctx context.Context) RequestValidatorArrayOutput

type RequestValidatorArrayInput

type RequestValidatorArrayInput interface {
	pulumi.Input

	ToRequestValidatorArrayOutput() RequestValidatorArrayOutput
	ToRequestValidatorArrayOutputWithContext(context.Context) RequestValidatorArrayOutput
}

RequestValidatorArrayInput is an input type that accepts RequestValidatorArray and RequestValidatorArrayOutput values. You can construct a concrete instance of `RequestValidatorArrayInput` via:

RequestValidatorArray{ RequestValidatorArgs{...} }

type RequestValidatorArrayOutput

type RequestValidatorArrayOutput struct{ *pulumi.OutputState }

func (RequestValidatorArrayOutput) ElementType

func (RequestValidatorArrayOutput) Index

func (RequestValidatorArrayOutput) ToRequestValidatorArrayOutput

func (o RequestValidatorArrayOutput) ToRequestValidatorArrayOutput() RequestValidatorArrayOutput

func (RequestValidatorArrayOutput) ToRequestValidatorArrayOutputWithContext

func (o RequestValidatorArrayOutput) ToRequestValidatorArrayOutputWithContext(ctx context.Context) RequestValidatorArrayOutput

type RequestValidatorInput

type RequestValidatorInput interface {
	pulumi.Input

	ToRequestValidatorOutput() RequestValidatorOutput
	ToRequestValidatorOutputWithContext(ctx context.Context) RequestValidatorOutput
}

type RequestValidatorMap

type RequestValidatorMap map[string]RequestValidatorInput

func (RequestValidatorMap) ElementType

func (RequestValidatorMap) ElementType() reflect.Type

func (RequestValidatorMap) ToRequestValidatorMapOutput

func (i RequestValidatorMap) ToRequestValidatorMapOutput() RequestValidatorMapOutput

func (RequestValidatorMap) ToRequestValidatorMapOutputWithContext

func (i RequestValidatorMap) ToRequestValidatorMapOutputWithContext(ctx context.Context) RequestValidatorMapOutput

type RequestValidatorMapInput

type RequestValidatorMapInput interface {
	pulumi.Input

	ToRequestValidatorMapOutput() RequestValidatorMapOutput
	ToRequestValidatorMapOutputWithContext(context.Context) RequestValidatorMapOutput
}

RequestValidatorMapInput is an input type that accepts RequestValidatorMap and RequestValidatorMapOutput values. You can construct a concrete instance of `RequestValidatorMapInput` via:

RequestValidatorMap{ "key": RequestValidatorArgs{...} }

type RequestValidatorMapOutput

type RequestValidatorMapOutput struct{ *pulumi.OutputState }

func (RequestValidatorMapOutput) ElementType

func (RequestValidatorMapOutput) ElementType() reflect.Type

func (RequestValidatorMapOutput) MapIndex

func (RequestValidatorMapOutput) ToRequestValidatorMapOutput

func (o RequestValidatorMapOutput) ToRequestValidatorMapOutput() RequestValidatorMapOutput

func (RequestValidatorMapOutput) ToRequestValidatorMapOutputWithContext

func (o RequestValidatorMapOutput) ToRequestValidatorMapOutputWithContext(ctx context.Context) RequestValidatorMapOutput

type RequestValidatorOutput

type RequestValidatorOutput struct{ *pulumi.OutputState }

func (RequestValidatorOutput) ElementType

func (RequestValidatorOutput) ElementType() reflect.Type

func (RequestValidatorOutput) Name

Name of the request validator

func (RequestValidatorOutput) RestApi

ID of the associated Rest API

func (RequestValidatorOutput) ToRequestValidatorOutput

func (o RequestValidatorOutput) ToRequestValidatorOutput() RequestValidatorOutput

func (RequestValidatorOutput) ToRequestValidatorOutputWithContext

func (o RequestValidatorOutput) ToRequestValidatorOutputWithContext(ctx context.Context) RequestValidatorOutput

func (RequestValidatorOutput) ValidateRequestBody

func (o RequestValidatorOutput) ValidateRequestBody() pulumi.BoolPtrOutput

Boolean whether to validate request body. Defaults to `false`.

func (RequestValidatorOutput) ValidateRequestParameters

func (o RequestValidatorOutput) ValidateRequestParameters() pulumi.BoolPtrOutput

Boolean whether to validate request parameters. Defaults to `false`.

type RequestValidatorState

type RequestValidatorState struct {
	// Name of the request validator
	Name pulumi.StringPtrInput
	// ID of the associated Rest API
	RestApi pulumi.Input
	// Boolean whether to validate request body. Defaults to `false`.
	ValidateRequestBody pulumi.BoolPtrInput
	// Boolean whether to validate request parameters. Defaults to `false`.
	ValidateRequestParameters pulumi.BoolPtrInput
}

func (RequestValidatorState) ElementType

func (RequestValidatorState) ElementType() reflect.Type

type Resource

type Resource struct {
	pulumi.CustomResourceState

	// ID of the parent API resource
	ParentId pulumi.StringOutput `pulumi:"parentId"`
	// Complete path for this API resource, including all parent paths.
	Path pulumi.StringOutput `pulumi:"path"`
	// Last path segment of this API resource.
	PathPart pulumi.StringOutput `pulumi:"pathPart"`
	// ID of the associated REST API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
}

Provides an API Gateway Resource.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDemoAPI, err := apigateway.NewRestApi(ctx, "MyDemoAPI", &apigateway.RestApiArgs{
			Name:        pulumi.String("MyDemoAPI"),
			Description: pulumi.String("This is my API for demonstration purposes"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewResource(ctx, "MyDemoResource", &apigateway.ResourceArgs{
			RestApi:  myDemoAPI.ID(),
			ParentId: myDemoAPI.RootResourceId,
			PathPart: pulumi.String("mydemoresource"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_resource` using `REST-API-ID/RESOURCE-ID`. For example:

```sh $ pulumi import aws:apigateway/resource:Resource example 12345abcde/67890fghij ```

func GetResource

func GetResource(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ResourceState, opts ...pulumi.ResourceOption) (*Resource, error)

GetResource gets an existing Resource resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewResource

func NewResource(ctx *pulumi.Context,
	name string, args *ResourceArgs, opts ...pulumi.ResourceOption) (*Resource, error)

NewResource registers a new resource with the given unique name, arguments, and options.

func (*Resource) ElementType

func (*Resource) ElementType() reflect.Type

func (*Resource) ToResourceOutput

func (i *Resource) ToResourceOutput() ResourceOutput

func (*Resource) ToResourceOutputWithContext

func (i *Resource) ToResourceOutputWithContext(ctx context.Context) ResourceOutput

type ResourceArgs

type ResourceArgs struct {
	// ID of the parent API resource
	ParentId pulumi.StringInput
	// Last path segment of this API resource.
	PathPart pulumi.StringInput
	// ID of the associated REST API
	RestApi pulumi.Input
}

The set of arguments for constructing a Resource resource.

func (ResourceArgs) ElementType

func (ResourceArgs) ElementType() reflect.Type

type ResourceArray

type ResourceArray []ResourceInput

func (ResourceArray) ElementType

func (ResourceArray) ElementType() reflect.Type

func (ResourceArray) ToResourceArrayOutput

func (i ResourceArray) ToResourceArrayOutput() ResourceArrayOutput

func (ResourceArray) ToResourceArrayOutputWithContext

func (i ResourceArray) ToResourceArrayOutputWithContext(ctx context.Context) ResourceArrayOutput

type ResourceArrayInput

type ResourceArrayInput interface {
	pulumi.Input

	ToResourceArrayOutput() ResourceArrayOutput
	ToResourceArrayOutputWithContext(context.Context) ResourceArrayOutput
}

ResourceArrayInput is an input type that accepts ResourceArray and ResourceArrayOutput values. You can construct a concrete instance of `ResourceArrayInput` via:

ResourceArray{ ResourceArgs{...} }

type ResourceArrayOutput

type ResourceArrayOutput struct{ *pulumi.OutputState }

func (ResourceArrayOutput) ElementType

func (ResourceArrayOutput) ElementType() reflect.Type

func (ResourceArrayOutput) Index

func (ResourceArrayOutput) ToResourceArrayOutput

func (o ResourceArrayOutput) ToResourceArrayOutput() ResourceArrayOutput

func (ResourceArrayOutput) ToResourceArrayOutputWithContext

func (o ResourceArrayOutput) ToResourceArrayOutputWithContext(ctx context.Context) ResourceArrayOutput

type ResourceInput

type ResourceInput interface {
	pulumi.Input

	ToResourceOutput() ResourceOutput
	ToResourceOutputWithContext(ctx context.Context) ResourceOutput
}

type ResourceMap

type ResourceMap map[string]ResourceInput

func (ResourceMap) ElementType

func (ResourceMap) ElementType() reflect.Type

func (ResourceMap) ToResourceMapOutput

func (i ResourceMap) ToResourceMapOutput() ResourceMapOutput

func (ResourceMap) ToResourceMapOutputWithContext

func (i ResourceMap) ToResourceMapOutputWithContext(ctx context.Context) ResourceMapOutput

type ResourceMapInput

type ResourceMapInput interface {
	pulumi.Input

	ToResourceMapOutput() ResourceMapOutput
	ToResourceMapOutputWithContext(context.Context) ResourceMapOutput
}

ResourceMapInput is an input type that accepts ResourceMap and ResourceMapOutput values. You can construct a concrete instance of `ResourceMapInput` via:

ResourceMap{ "key": ResourceArgs{...} }

type ResourceMapOutput

type ResourceMapOutput struct{ *pulumi.OutputState }

func (ResourceMapOutput) ElementType

func (ResourceMapOutput) ElementType() reflect.Type

func (ResourceMapOutput) MapIndex

func (ResourceMapOutput) ToResourceMapOutput

func (o ResourceMapOutput) ToResourceMapOutput() ResourceMapOutput

func (ResourceMapOutput) ToResourceMapOutputWithContext

func (o ResourceMapOutput) ToResourceMapOutputWithContext(ctx context.Context) ResourceMapOutput

type ResourceOutput

type ResourceOutput struct{ *pulumi.OutputState }

func (ResourceOutput) ElementType

func (ResourceOutput) ElementType() reflect.Type

func (ResourceOutput) ParentId

func (o ResourceOutput) ParentId() pulumi.StringOutput

ID of the parent API resource

func (ResourceOutput) Path

Complete path for this API resource, including all parent paths.

func (ResourceOutput) PathPart

func (o ResourceOutput) PathPart() pulumi.StringOutput

Last path segment of this API resource.

func (ResourceOutput) RestApi

func (o ResourceOutput) RestApi() pulumi.StringOutput

ID of the associated REST API

func (ResourceOutput) ToResourceOutput

func (o ResourceOutput) ToResourceOutput() ResourceOutput

func (ResourceOutput) ToResourceOutputWithContext

func (o ResourceOutput) ToResourceOutputWithContext(ctx context.Context) ResourceOutput

type ResourceState

type ResourceState struct {
	// ID of the parent API resource
	ParentId pulumi.StringPtrInput
	// Complete path for this API resource, including all parent paths.
	Path pulumi.StringPtrInput
	// Last path segment of this API resource.
	PathPart pulumi.StringPtrInput
	// ID of the associated REST API
	RestApi pulumi.Input
}

func (ResourceState) ElementType

func (ResourceState) ElementType() reflect.Type

type Response

type Response struct {
	pulumi.CustomResourceState

	// Map of parameters (paths, query strings and headers) of the Gateway Response.
	ResponseParameters pulumi.StringMapOutput `pulumi:"responseParameters"`
	// Map of templates used to transform the response body.
	ResponseTemplates pulumi.StringMapOutput `pulumi:"responseTemplates"`
	// Response type of the associated GatewayResponse.
	ResponseType pulumi.StringOutput `pulumi:"responseType"`
	// String identifier of the associated REST API.
	RestApiId pulumi.StringOutput `pulumi:"restApiId"`
	// HTTP status code of the Gateway Response.
	StatusCode pulumi.StringPtrOutput `pulumi:"statusCode"`
}

Provides an API Gateway Gateway Response for a REST API Gateway.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := apigateway.NewRestApi(ctx, "main", &apigateway.RestApiArgs{
			Name: pulumi.String("MyDemoAPI"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewResponse(ctx, "test", &apigateway.ResponseArgs{
			RestApiId:    main.ID(),
			StatusCode:   pulumi.String("401"),
			ResponseType: pulumi.String("UNAUTHORIZED"),
			ResponseTemplates: pulumi.StringMap{
				"application/json": pulumi.String("{\"message\":$context.error.messageString}"),
			},
			ResponseParameters: pulumi.StringMap{
				"gatewayresponse.header.Authorization": pulumi.String("'Basic'"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_gateway_response` using `REST-API-ID/RESPONSE-TYPE`. For example:

```sh $ pulumi import aws:apigateway/response:Response example 12345abcde/UNAUTHORIZED ```

func GetResponse

func GetResponse(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ResponseState, opts ...pulumi.ResourceOption) (*Response, error)

GetResponse gets an existing Response resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewResponse

func NewResponse(ctx *pulumi.Context,
	name string, args *ResponseArgs, opts ...pulumi.ResourceOption) (*Response, error)

NewResponse registers a new resource with the given unique name, arguments, and options.

func (*Response) ElementType

func (*Response) ElementType() reflect.Type

func (*Response) ToResponseOutput

func (i *Response) ToResponseOutput() ResponseOutput

func (*Response) ToResponseOutputWithContext

func (i *Response) ToResponseOutputWithContext(ctx context.Context) ResponseOutput

type ResponseArgs

type ResponseArgs struct {
	// Map of parameters (paths, query strings and headers) of the Gateway Response.
	ResponseParameters pulumi.StringMapInput
	// Map of templates used to transform the response body.
	ResponseTemplates pulumi.StringMapInput
	// Response type of the associated GatewayResponse.
	ResponseType pulumi.StringInput
	// String identifier of the associated REST API.
	RestApiId pulumi.StringInput
	// HTTP status code of the Gateway Response.
	StatusCode pulumi.StringPtrInput
}

The set of arguments for constructing a Response resource.

func (ResponseArgs) ElementType

func (ResponseArgs) ElementType() reflect.Type

type ResponseArray

type ResponseArray []ResponseInput

func (ResponseArray) ElementType

func (ResponseArray) ElementType() reflect.Type

func (ResponseArray) ToResponseArrayOutput

func (i ResponseArray) ToResponseArrayOutput() ResponseArrayOutput

func (ResponseArray) ToResponseArrayOutputWithContext

func (i ResponseArray) ToResponseArrayOutputWithContext(ctx context.Context) ResponseArrayOutput

type ResponseArrayInput

type ResponseArrayInput interface {
	pulumi.Input

	ToResponseArrayOutput() ResponseArrayOutput
	ToResponseArrayOutputWithContext(context.Context) ResponseArrayOutput
}

ResponseArrayInput is an input type that accepts ResponseArray and ResponseArrayOutput values. You can construct a concrete instance of `ResponseArrayInput` via:

ResponseArray{ ResponseArgs{...} }

type ResponseArrayOutput

type ResponseArrayOutput struct{ *pulumi.OutputState }

func (ResponseArrayOutput) ElementType

func (ResponseArrayOutput) ElementType() reflect.Type

func (ResponseArrayOutput) Index

func (ResponseArrayOutput) ToResponseArrayOutput

func (o ResponseArrayOutput) ToResponseArrayOutput() ResponseArrayOutput

func (ResponseArrayOutput) ToResponseArrayOutputWithContext

func (o ResponseArrayOutput) ToResponseArrayOutputWithContext(ctx context.Context) ResponseArrayOutput

type ResponseInput

type ResponseInput interface {
	pulumi.Input

	ToResponseOutput() ResponseOutput
	ToResponseOutputWithContext(ctx context.Context) ResponseOutput
}

type ResponseMap

type ResponseMap map[string]ResponseInput

func (ResponseMap) ElementType

func (ResponseMap) ElementType() reflect.Type

func (ResponseMap) ToResponseMapOutput

func (i ResponseMap) ToResponseMapOutput() ResponseMapOutput

func (ResponseMap) ToResponseMapOutputWithContext

func (i ResponseMap) ToResponseMapOutputWithContext(ctx context.Context) ResponseMapOutput

type ResponseMapInput

type ResponseMapInput interface {
	pulumi.Input

	ToResponseMapOutput() ResponseMapOutput
	ToResponseMapOutputWithContext(context.Context) ResponseMapOutput
}

ResponseMapInput is an input type that accepts ResponseMap and ResponseMapOutput values. You can construct a concrete instance of `ResponseMapInput` via:

ResponseMap{ "key": ResponseArgs{...} }

type ResponseMapOutput

type ResponseMapOutput struct{ *pulumi.OutputState }

func (ResponseMapOutput) ElementType

func (ResponseMapOutput) ElementType() reflect.Type

func (ResponseMapOutput) MapIndex

func (ResponseMapOutput) ToResponseMapOutput

func (o ResponseMapOutput) ToResponseMapOutput() ResponseMapOutput

func (ResponseMapOutput) ToResponseMapOutputWithContext

func (o ResponseMapOutput) ToResponseMapOutputWithContext(ctx context.Context) ResponseMapOutput

type ResponseOutput

type ResponseOutput struct{ *pulumi.OutputState }

func (ResponseOutput) ElementType

func (ResponseOutput) ElementType() reflect.Type

func (ResponseOutput) ResponseParameters

func (o ResponseOutput) ResponseParameters() pulumi.StringMapOutput

Map of parameters (paths, query strings and headers) of the Gateway Response.

func (ResponseOutput) ResponseTemplates

func (o ResponseOutput) ResponseTemplates() pulumi.StringMapOutput

Map of templates used to transform the response body.

func (ResponseOutput) ResponseType

func (o ResponseOutput) ResponseType() pulumi.StringOutput

Response type of the associated GatewayResponse.

func (ResponseOutput) RestApiId

func (o ResponseOutput) RestApiId() pulumi.StringOutput

String identifier of the associated REST API.

func (ResponseOutput) StatusCode

func (o ResponseOutput) StatusCode() pulumi.StringPtrOutput

HTTP status code of the Gateway Response.

func (ResponseOutput) ToResponseOutput

func (o ResponseOutput) ToResponseOutput() ResponseOutput

func (ResponseOutput) ToResponseOutputWithContext

func (o ResponseOutput) ToResponseOutputWithContext(ctx context.Context) ResponseOutput

type ResponseState

type ResponseState struct {
	// Map of parameters (paths, query strings and headers) of the Gateway Response.
	ResponseParameters pulumi.StringMapInput
	// Map of templates used to transform the response body.
	ResponseTemplates pulumi.StringMapInput
	// Response type of the associated GatewayResponse.
	ResponseType pulumi.StringPtrInput
	// String identifier of the associated REST API.
	RestApiId pulumi.StringPtrInput
	// HTTP status code of the Gateway Response.
	StatusCode pulumi.StringPtrInput
}

func (ResponseState) ElementType

func (ResponseState) ElementType() reflect.Type

type RestApi

type RestApi struct {
	pulumi.CustomResourceState

	// Source of the API key for requests. Valid values are `HEADER` (default) and `AUTHORIZER`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-api-key-source` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-api-key-source.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	ApiKeySource pulumi.StringOutput `pulumi:"apiKeySource"`
	// ARN
	Arn pulumi.StringOutput `pulumi:"arn"`
	// List of binary media types supported by the REST API. By default, the REST API supports only UTF-8-encoded text payloads. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-binary-media-types` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-binary-media-types.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	BinaryMediaTypes pulumi.StringArrayOutput `pulumi:"binaryMediaTypes"`
	// OpenAPI specification that defines the set of routes and integrations to create as part of the REST API. This configuration, and any updates to it, will replace all REST API configuration except values overridden in this resource configuration and other resource updates applied after this resource but before any `apigateway.Deployment` creation. More information about REST API OpenAPI support can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).
	Body pulumi.StringPtrOutput `pulumi:"body"`
	// Creation date of the REST API
	CreatedDate pulumi.StringOutput `pulumi:"createdDate"`
	// Description of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.description` field. If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Description pulumi.StringOutput `pulumi:"description"`
	// Whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `disableExecuteApiEndpoint` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is `true` and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	DisableExecuteApiEndpoint pulumi.BoolOutput `pulumi:"disableExecuteApiEndpoint"`
	// Configuration block defining API endpoint configuration including endpoint type. Defined below.
	EndpointConfiguration RestApiEndpointConfigurationOutput `pulumi:"endpointConfiguration"`
	// Execution ARN part to be used in `lambdaPermission`'s `sourceArn`
	// when allowing API Gateway to invoke a Lambda function,
	// e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j`, which can be concatenated with allowed stage, method and resource path.
	ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
	// Whether warnings while API Gateway is creating or updating the resource should return an error or not. Defaults to `false`
	FailOnWarnings pulumi.BoolPtrOutput `pulumi:"failOnWarnings"`
	// Minimum response size to compress for the REST API. String containing an integer value between `-1` and `10485760` (10MB). `-1` will disable an existing compression configuration, and all other values will enable compression with the configured size. New resources can simply omit this argument to disable compression, rather than setting the value to `-1`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-minimum-compression-size` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-openapi-minimum-compression-size.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	MinimumCompressionSize pulumi.StringOutput `pulumi:"minimumCompressionSize"`
	// Name of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.title` field. If the argument value is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Name pulumi.StringOutput `pulumi:"name"`
	// Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).
	Parameters pulumi.StringMapOutput `pulumi:"parameters"`
	// JSON formatted policy document that controls access to the API Gateway. For more information about building AWS IAM policy documents with Pulumi, see the AWS IAM Policy Document Guide. The provider will only perform drift detection of its value when present in a configuration. We recommend using the `apigateway.RestApiPolicy` resource instead. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-policy` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/openapi-extensions-policy.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Policy pulumi.StringOutput `pulumi:"policy"`
	// Mode of the PutRestApi operation when importing an OpenAPI specification via the `body` argument (create or update operation). Valid values are `merge` and `overwrite`. If unspecificed, defaults to `overwrite` (for backwards compatibility). This corresponds to the [`x-amazon-apigateway-put-integration-method` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-put-integration-method.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	PutRestApiMode pulumi.StringPtrOutput `pulumi:"putRestApiMode"`
	// Resource ID of the REST API's root
	RootResourceId pulumi.StringOutput `pulumi:"rootResourceId"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}

Manages an API Gateway REST API. The REST API can be configured via [importing an OpenAPI specification](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html) in the `body` argument (with other arguments serving as overrides) or via other provider resources to manage the resources (`apigateway.Resource` resource), methods (`apigateway.Method` resource), integrations (`apigateway.Integration` resource), etc. of the REST API. Once the REST API is configured, the `apigateway.Deployment` resource can be used along with the `apigateway.Stage` resource to publish the REST API.

> **Note:** Amazon API Gateway Version 1 resources are used for creating and deploying REST APIs. To create and deploy WebSocket and HTTP APIs, use Amazon API Gateway Version 2 resources.

!> **WARN:** When importing Open API Specifications with the `body` argument, by default the API Gateway REST API will be replaced with the Open API Specification thus removing any existing methods, resources, integrations, or endpoints. Endpoint mutations are asynchronous operations, and race conditions with DNS are possible. To overcome this limitation, use the `putRestApiMode` attribute and set it to `merge`.

## Example Usage

## Import

Using `pulumi import`, import `aws_api_gateway_rest_api` using the REST API ID. For example:

```sh $ pulumi import aws:apigateway/restApi:RestApi example 12345abcde ``` ~> __NOTE:__ Resource import does not currently support the `body` attribute.

func GetRestApi

func GetRestApi(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RestApiState, opts ...pulumi.ResourceOption) (*RestApi, error)

GetRestApi gets an existing RestApi resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewRestApi

func NewRestApi(ctx *pulumi.Context,
	name string, args *RestApiArgs, opts ...pulumi.ResourceOption) (*RestApi, error)

NewRestApi registers a new resource with the given unique name, arguments, and options.

func (*RestApi) ElementType

func (*RestApi) ElementType() reflect.Type

func (*RestApi) ToRestApiOutput

func (i *RestApi) ToRestApiOutput() RestApiOutput

func (*RestApi) ToRestApiOutputWithContext

func (i *RestApi) ToRestApiOutputWithContext(ctx context.Context) RestApiOutput

type RestApiArgs

type RestApiArgs struct {
	// Source of the API key for requests. Valid values are `HEADER` (default) and `AUTHORIZER`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-api-key-source` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-api-key-source.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	ApiKeySource pulumi.StringPtrInput
	// List of binary media types supported by the REST API. By default, the REST API supports only UTF-8-encoded text payloads. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-binary-media-types` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-binary-media-types.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	BinaryMediaTypes pulumi.StringArrayInput
	// OpenAPI specification that defines the set of routes and integrations to create as part of the REST API. This configuration, and any updates to it, will replace all REST API configuration except values overridden in this resource configuration and other resource updates applied after this resource but before any `apigateway.Deployment` creation. More information about REST API OpenAPI support can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).
	Body pulumi.StringPtrInput
	// Description of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.description` field. If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Description pulumi.StringPtrInput
	// Whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `disableExecuteApiEndpoint` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is `true` and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	DisableExecuteApiEndpoint pulumi.BoolPtrInput
	// Configuration block defining API endpoint configuration including endpoint type. Defined below.
	EndpointConfiguration RestApiEndpointConfigurationPtrInput
	// Whether warnings while API Gateway is creating or updating the resource should return an error or not. Defaults to `false`
	FailOnWarnings pulumi.BoolPtrInput
	// Minimum response size to compress for the REST API. String containing an integer value between `-1` and `10485760` (10MB). `-1` will disable an existing compression configuration, and all other values will enable compression with the configured size. New resources can simply omit this argument to disable compression, rather than setting the value to `-1`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-minimum-compression-size` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-openapi-minimum-compression-size.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	MinimumCompressionSize pulumi.StringPtrInput
	// Name of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.title` field. If the argument value is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Name pulumi.StringPtrInput
	// Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).
	Parameters pulumi.StringMapInput
	// JSON formatted policy document that controls access to the API Gateway. For more information about building AWS IAM policy documents with Pulumi, see the AWS IAM Policy Document Guide. The provider will only perform drift detection of its value when present in a configuration. We recommend using the `apigateway.RestApiPolicy` resource instead. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-policy` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/openapi-extensions-policy.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Policy pulumi.StringPtrInput
	// Mode of the PutRestApi operation when importing an OpenAPI specification via the `body` argument (create or update operation). Valid values are `merge` and `overwrite`. If unspecificed, defaults to `overwrite` (for backwards compatibility). This corresponds to the [`x-amazon-apigateway-put-integration-method` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-put-integration-method.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	PutRestApiMode pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
}

The set of arguments for constructing a RestApi resource.

func (RestApiArgs) ElementType

func (RestApiArgs) ElementType() reflect.Type

type RestApiArray

type RestApiArray []RestApiInput

func (RestApiArray) ElementType

func (RestApiArray) ElementType() reflect.Type

func (RestApiArray) ToRestApiArrayOutput

func (i RestApiArray) ToRestApiArrayOutput() RestApiArrayOutput

func (RestApiArray) ToRestApiArrayOutputWithContext

func (i RestApiArray) ToRestApiArrayOutputWithContext(ctx context.Context) RestApiArrayOutput

type RestApiArrayInput

type RestApiArrayInput interface {
	pulumi.Input

	ToRestApiArrayOutput() RestApiArrayOutput
	ToRestApiArrayOutputWithContext(context.Context) RestApiArrayOutput
}

RestApiArrayInput is an input type that accepts RestApiArray and RestApiArrayOutput values. You can construct a concrete instance of `RestApiArrayInput` via:

RestApiArray{ RestApiArgs{...} }

type RestApiArrayOutput

type RestApiArrayOutput struct{ *pulumi.OutputState }

func (RestApiArrayOutput) ElementType

func (RestApiArrayOutput) ElementType() reflect.Type

func (RestApiArrayOutput) Index

func (RestApiArrayOutput) ToRestApiArrayOutput

func (o RestApiArrayOutput) ToRestApiArrayOutput() RestApiArrayOutput

func (RestApiArrayOutput) ToRestApiArrayOutputWithContext

func (o RestApiArrayOutput) ToRestApiArrayOutputWithContext(ctx context.Context) RestApiArrayOutput

type RestApiEndpointConfiguration

type RestApiEndpointConfiguration struct {
	// List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE`, `REGIONAL` or `PRIVATE`. If unspecified, defaults to `EDGE`. If set to `PRIVATE` recommend to set `putRestApiMode` = `merge` to not cause the endpoints and associated Route53 records to be deleted. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.
	Types string `pulumi:"types"`
	// Set of VPC Endpoint identifiers. It is only supported for `PRIVATE` endpoint type. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `vpcEndpointIds` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is provided and is different than the OpenAPI value, **the argument value will override the OpenAPI value**.
	VpcEndpointIds []string `pulumi:"vpcEndpointIds"`
}

type RestApiEndpointConfigurationArgs

type RestApiEndpointConfigurationArgs struct {
	// List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE`, `REGIONAL` or `PRIVATE`. If unspecified, defaults to `EDGE`. If set to `PRIVATE` recommend to set `putRestApiMode` = `merge` to not cause the endpoints and associated Route53 records to be deleted. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.
	Types pulumi.StringInput `pulumi:"types"`
	// Set of VPC Endpoint identifiers. It is only supported for `PRIVATE` endpoint type. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `vpcEndpointIds` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is provided and is different than the OpenAPI value, **the argument value will override the OpenAPI value**.
	VpcEndpointIds pulumi.StringArrayInput `pulumi:"vpcEndpointIds"`
}

func (RestApiEndpointConfigurationArgs) ElementType

func (RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationOutput

func (i RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationOutput() RestApiEndpointConfigurationOutput

func (RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationOutputWithContext

func (i RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationOutputWithContext(ctx context.Context) RestApiEndpointConfigurationOutput

func (RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationPtrOutput

func (i RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationPtrOutput() RestApiEndpointConfigurationPtrOutput

func (RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationPtrOutputWithContext

func (i RestApiEndpointConfigurationArgs) ToRestApiEndpointConfigurationPtrOutputWithContext(ctx context.Context) RestApiEndpointConfigurationPtrOutput

type RestApiEndpointConfigurationInput

type RestApiEndpointConfigurationInput interface {
	pulumi.Input

	ToRestApiEndpointConfigurationOutput() RestApiEndpointConfigurationOutput
	ToRestApiEndpointConfigurationOutputWithContext(context.Context) RestApiEndpointConfigurationOutput
}

RestApiEndpointConfigurationInput is an input type that accepts RestApiEndpointConfigurationArgs and RestApiEndpointConfigurationOutput values. You can construct a concrete instance of `RestApiEndpointConfigurationInput` via:

RestApiEndpointConfigurationArgs{...}

type RestApiEndpointConfigurationOutput

type RestApiEndpointConfigurationOutput struct{ *pulumi.OutputState }

func (RestApiEndpointConfigurationOutput) ElementType

func (RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationOutput

func (o RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationOutput() RestApiEndpointConfigurationOutput

func (RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationOutputWithContext

func (o RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationOutputWithContext(ctx context.Context) RestApiEndpointConfigurationOutput

func (RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationPtrOutput

func (o RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationPtrOutput() RestApiEndpointConfigurationPtrOutput

func (RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationPtrOutputWithContext

func (o RestApiEndpointConfigurationOutput) ToRestApiEndpointConfigurationPtrOutputWithContext(ctx context.Context) RestApiEndpointConfigurationPtrOutput

func (RestApiEndpointConfigurationOutput) Types

List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE`, `REGIONAL` or `PRIVATE`. If unspecified, defaults to `EDGE`. If set to `PRIVATE` recommend to set `putRestApiMode` = `merge` to not cause the endpoints and associated Route53 records to be deleted. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.

func (RestApiEndpointConfigurationOutput) VpcEndpointIds

Set of VPC Endpoint identifiers. It is only supported for `PRIVATE` endpoint type. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `vpcEndpointIds` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is provided and is different than the OpenAPI value, **the argument value will override the OpenAPI value**.

type RestApiEndpointConfigurationPtrInput

type RestApiEndpointConfigurationPtrInput interface {
	pulumi.Input

	ToRestApiEndpointConfigurationPtrOutput() RestApiEndpointConfigurationPtrOutput
	ToRestApiEndpointConfigurationPtrOutputWithContext(context.Context) RestApiEndpointConfigurationPtrOutput
}

RestApiEndpointConfigurationPtrInput is an input type that accepts RestApiEndpointConfigurationArgs, RestApiEndpointConfigurationPtr and RestApiEndpointConfigurationPtrOutput values. You can construct a concrete instance of `RestApiEndpointConfigurationPtrInput` via:

        RestApiEndpointConfigurationArgs{...}

or:

        nil

type RestApiEndpointConfigurationPtrOutput

type RestApiEndpointConfigurationPtrOutput struct{ *pulumi.OutputState }

func (RestApiEndpointConfigurationPtrOutput) Elem

func (RestApiEndpointConfigurationPtrOutput) ElementType

func (RestApiEndpointConfigurationPtrOutput) ToRestApiEndpointConfigurationPtrOutput

func (o RestApiEndpointConfigurationPtrOutput) ToRestApiEndpointConfigurationPtrOutput() RestApiEndpointConfigurationPtrOutput

func (RestApiEndpointConfigurationPtrOutput) ToRestApiEndpointConfigurationPtrOutputWithContext

func (o RestApiEndpointConfigurationPtrOutput) ToRestApiEndpointConfigurationPtrOutputWithContext(ctx context.Context) RestApiEndpointConfigurationPtrOutput

func (RestApiEndpointConfigurationPtrOutput) Types

List of endpoint types. This resource currently only supports managing a single value. Valid values: `EDGE`, `REGIONAL` or `PRIVATE`. If unspecified, defaults to `EDGE`. If set to `PRIVATE` recommend to set `putRestApiMode` = `merge` to not cause the endpoints and associated Route53 records to be deleted. Refer to the [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/create-regional-api.html) for more information on the difference between edge-optimized and regional APIs.

func (RestApiEndpointConfigurationPtrOutput) VpcEndpointIds

Set of VPC Endpoint identifiers. It is only supported for `PRIVATE` endpoint type. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `vpcEndpointIds` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is provided and is different than the OpenAPI value, **the argument value will override the OpenAPI value**.

type RestApiInput

type RestApiInput interface {
	pulumi.Input

	ToRestApiOutput() RestApiOutput
	ToRestApiOutputWithContext(ctx context.Context) RestApiOutput
}

type RestApiMap

type RestApiMap map[string]RestApiInput

func (RestApiMap) ElementType

func (RestApiMap) ElementType() reflect.Type

func (RestApiMap) ToRestApiMapOutput

func (i RestApiMap) ToRestApiMapOutput() RestApiMapOutput

func (RestApiMap) ToRestApiMapOutputWithContext

func (i RestApiMap) ToRestApiMapOutputWithContext(ctx context.Context) RestApiMapOutput

type RestApiMapInput

type RestApiMapInput interface {
	pulumi.Input

	ToRestApiMapOutput() RestApiMapOutput
	ToRestApiMapOutputWithContext(context.Context) RestApiMapOutput
}

RestApiMapInput is an input type that accepts RestApiMap and RestApiMapOutput values. You can construct a concrete instance of `RestApiMapInput` via:

RestApiMap{ "key": RestApiArgs{...} }

type RestApiMapOutput

type RestApiMapOutput struct{ *pulumi.OutputState }

func (RestApiMapOutput) ElementType

func (RestApiMapOutput) ElementType() reflect.Type

func (RestApiMapOutput) MapIndex

func (RestApiMapOutput) ToRestApiMapOutput

func (o RestApiMapOutput) ToRestApiMapOutput() RestApiMapOutput

func (RestApiMapOutput) ToRestApiMapOutputWithContext

func (o RestApiMapOutput) ToRestApiMapOutputWithContext(ctx context.Context) RestApiMapOutput

type RestApiOutput

type RestApiOutput struct{ *pulumi.OutputState }

func (RestApiOutput) ApiKeySource

func (o RestApiOutput) ApiKeySource() pulumi.StringOutput

Source of the API key for requests. Valid values are `HEADER` (default) and `AUTHORIZER`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-api-key-source` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-api-key-source.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) Arn

ARN

func (RestApiOutput) BinaryMediaTypes

func (o RestApiOutput) BinaryMediaTypes() pulumi.StringArrayOutput

List of binary media types supported by the REST API. By default, the REST API supports only UTF-8-encoded text payloads. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-binary-media-types` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-binary-media-types.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) Body

OpenAPI specification that defines the set of routes and integrations to create as part of the REST API. This configuration, and any updates to it, will replace all REST API configuration except values overridden in this resource configuration and other resource updates applied after this resource but before any `apigateway.Deployment` creation. More information about REST API OpenAPI support can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).

func (RestApiOutput) CreatedDate

func (o RestApiOutput) CreatedDate() pulumi.StringOutput

Creation date of the REST API

func (RestApiOutput) Description

func (o RestApiOutput) Description() pulumi.StringOutput

Description of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.description` field. If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) DisableExecuteApiEndpoint

func (o RestApiOutput) DisableExecuteApiEndpoint() pulumi.BoolOutput

Whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `disableExecuteApiEndpoint` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is `true` and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) ElementType

func (RestApiOutput) ElementType() reflect.Type

func (RestApiOutput) EndpointConfiguration

func (o RestApiOutput) EndpointConfiguration() RestApiEndpointConfigurationOutput

Configuration block defining API endpoint configuration including endpoint type. Defined below.

func (RestApiOutput) ExecutionArn

func (o RestApiOutput) ExecutionArn() pulumi.StringOutput

Execution ARN part to be used in `lambdaPermission`'s `sourceArn` when allowing API Gateway to invoke a Lambda function, e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j`, which can be concatenated with allowed stage, method and resource path.

func (RestApiOutput) FailOnWarnings

func (o RestApiOutput) FailOnWarnings() pulumi.BoolPtrOutput

Whether warnings while API Gateway is creating or updating the resource should return an error or not. Defaults to `false`

func (RestApiOutput) MinimumCompressionSize

func (o RestApiOutput) MinimumCompressionSize() pulumi.StringOutput

Minimum response size to compress for the REST API. String containing an integer value between `-1` and `10485760` (10MB). `-1` will disable an existing compression configuration, and all other values will enable compression with the configured size. New resources can simply omit this argument to disable compression, rather than setting the value to `-1`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-minimum-compression-size` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-openapi-minimum-compression-size.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) Name

Name of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.title` field. If the argument value is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) Parameters

func (o RestApiOutput) Parameters() pulumi.StringMapOutput

Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).

func (RestApiOutput) Policy

func (o RestApiOutput) Policy() pulumi.StringOutput

JSON formatted policy document that controls access to the API Gateway. For more information about building AWS IAM policy documents with Pulumi, see the AWS IAM Policy Document Guide. The provider will only perform drift detection of its value when present in a configuration. We recommend using the `apigateway.RestApiPolicy` resource instead. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-policy` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/openapi-extensions-policy.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) PutRestApiMode

func (o RestApiOutput) PutRestApiMode() pulumi.StringPtrOutput

Mode of the PutRestApi operation when importing an OpenAPI specification via the `body` argument (create or update operation). Valid values are `merge` and `overwrite`. If unspecificed, defaults to `overwrite` (for backwards compatibility). This corresponds to the [`x-amazon-apigateway-put-integration-method` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-put-integration-method.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.

func (RestApiOutput) RootResourceId

func (o RestApiOutput) RootResourceId() pulumi.StringOutput

Resource ID of the REST API's root

func (RestApiOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (RestApiOutput) TagsAll deprecated

func (o RestApiOutput) TagsAll() pulumi.StringMapOutput

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (RestApiOutput) ToRestApiOutput

func (o RestApiOutput) ToRestApiOutput() RestApiOutput

func (RestApiOutput) ToRestApiOutputWithContext

func (o RestApiOutput) ToRestApiOutputWithContext(ctx context.Context) RestApiOutput

type RestApiPolicy

type RestApiPolicy struct {
	pulumi.CustomResourceState

	// JSON formatted policy document that controls access to the API Gateway.
	Policy pulumi.StringOutput `pulumi:"policy"`
	// ID of the REST API.
	RestApiId pulumi.StringOutput `pulumi:"restApiId"`
}

Provides an API Gateway REST API Policy.

> **Note:** Amazon API Gateway Version 1 resources are used for creating and deploying REST APIs. To create and deploy WebSocket and HTTP APIs, use Amazon API Gateway Version 2 resources.

## Example Usage

### Basic

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		testRestApi, err := apigateway.NewRestApi(ctx, "test", &apigateway.RestApiArgs{
			Name: pulumi.String("example-rest-api"),
		})
		if err != nil {
			return err
		}
		test := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
			Statements: iam.GetPolicyDocumentStatementArray{
				&iam.GetPolicyDocumentStatementArgs{
					Effect: pulumi.String("Allow"),
					Principals: iam.GetPolicyDocumentStatementPrincipalArray{
						&iam.GetPolicyDocumentStatementPrincipalArgs{
							Type: pulumi.String("AWS"),
							Identifiers: pulumi.StringArray{
								pulumi.String("*"),
							},
						},
					},
					Actions: pulumi.StringArray{
						pulumi.String("execute-api:Invoke"),
					},
					Resources: pulumi.StringArray{
						testRestApi.ExecutionArn,
					},
					Conditions: iam.GetPolicyDocumentStatementConditionArray{
						&iam.GetPolicyDocumentStatementConditionArgs{
							Test:     pulumi.String("IpAddress"),
							Variable: pulumi.String("aws:SourceIp"),
							Values: pulumi.StringArray{
								pulumi.String("123.123.123.123/32"),
							},
						},
					},
				},
			},
		}, nil)
		_, err = apigateway.NewRestApiPolicy(ctx, "test", &apigateway.RestApiPolicyArgs{
			RestApiId: testRestApi.ID(),
			Policy: test.ApplyT(func(test iam.GetPolicyDocumentResult) (*string, error) {
				return &test.Json, nil
			}).(pulumi.StringPtrOutput),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_rest_api_policy` using the REST API ID. For example:

```sh $ pulumi import aws:apigateway/restApiPolicy:RestApiPolicy example 12345abcde ```

func GetRestApiPolicy

func GetRestApiPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RestApiPolicyState, opts ...pulumi.ResourceOption) (*RestApiPolicy, error)

GetRestApiPolicy gets an existing RestApiPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewRestApiPolicy

func NewRestApiPolicy(ctx *pulumi.Context,
	name string, args *RestApiPolicyArgs, opts ...pulumi.ResourceOption) (*RestApiPolicy, error)

NewRestApiPolicy registers a new resource with the given unique name, arguments, and options.

func (*RestApiPolicy) ElementType

func (*RestApiPolicy) ElementType() reflect.Type

func (*RestApiPolicy) ToRestApiPolicyOutput

func (i *RestApiPolicy) ToRestApiPolicyOutput() RestApiPolicyOutput

func (*RestApiPolicy) ToRestApiPolicyOutputWithContext

func (i *RestApiPolicy) ToRestApiPolicyOutputWithContext(ctx context.Context) RestApiPolicyOutput

type RestApiPolicyArgs

type RestApiPolicyArgs struct {
	// JSON formatted policy document that controls access to the API Gateway.
	Policy pulumi.StringInput
	// ID of the REST API.
	RestApiId pulumi.StringInput
}

The set of arguments for constructing a RestApiPolicy resource.

func (RestApiPolicyArgs) ElementType

func (RestApiPolicyArgs) ElementType() reflect.Type

type RestApiPolicyArray

type RestApiPolicyArray []RestApiPolicyInput

func (RestApiPolicyArray) ElementType

func (RestApiPolicyArray) ElementType() reflect.Type

func (RestApiPolicyArray) ToRestApiPolicyArrayOutput

func (i RestApiPolicyArray) ToRestApiPolicyArrayOutput() RestApiPolicyArrayOutput

func (RestApiPolicyArray) ToRestApiPolicyArrayOutputWithContext

func (i RestApiPolicyArray) ToRestApiPolicyArrayOutputWithContext(ctx context.Context) RestApiPolicyArrayOutput

type RestApiPolicyArrayInput

type RestApiPolicyArrayInput interface {
	pulumi.Input

	ToRestApiPolicyArrayOutput() RestApiPolicyArrayOutput
	ToRestApiPolicyArrayOutputWithContext(context.Context) RestApiPolicyArrayOutput
}

RestApiPolicyArrayInput is an input type that accepts RestApiPolicyArray and RestApiPolicyArrayOutput values. You can construct a concrete instance of `RestApiPolicyArrayInput` via:

RestApiPolicyArray{ RestApiPolicyArgs{...} }

type RestApiPolicyArrayOutput

type RestApiPolicyArrayOutput struct{ *pulumi.OutputState }

func (RestApiPolicyArrayOutput) ElementType

func (RestApiPolicyArrayOutput) ElementType() reflect.Type

func (RestApiPolicyArrayOutput) Index

func (RestApiPolicyArrayOutput) ToRestApiPolicyArrayOutput

func (o RestApiPolicyArrayOutput) ToRestApiPolicyArrayOutput() RestApiPolicyArrayOutput

func (RestApiPolicyArrayOutput) ToRestApiPolicyArrayOutputWithContext

func (o RestApiPolicyArrayOutput) ToRestApiPolicyArrayOutputWithContext(ctx context.Context) RestApiPolicyArrayOutput

type RestApiPolicyInput

type RestApiPolicyInput interface {
	pulumi.Input

	ToRestApiPolicyOutput() RestApiPolicyOutput
	ToRestApiPolicyOutputWithContext(ctx context.Context) RestApiPolicyOutput
}

type RestApiPolicyMap

type RestApiPolicyMap map[string]RestApiPolicyInput

func (RestApiPolicyMap) ElementType

func (RestApiPolicyMap) ElementType() reflect.Type

func (RestApiPolicyMap) ToRestApiPolicyMapOutput

func (i RestApiPolicyMap) ToRestApiPolicyMapOutput() RestApiPolicyMapOutput

func (RestApiPolicyMap) ToRestApiPolicyMapOutputWithContext

func (i RestApiPolicyMap) ToRestApiPolicyMapOutputWithContext(ctx context.Context) RestApiPolicyMapOutput

type RestApiPolicyMapInput

type RestApiPolicyMapInput interface {
	pulumi.Input

	ToRestApiPolicyMapOutput() RestApiPolicyMapOutput
	ToRestApiPolicyMapOutputWithContext(context.Context) RestApiPolicyMapOutput
}

RestApiPolicyMapInput is an input type that accepts RestApiPolicyMap and RestApiPolicyMapOutput values. You can construct a concrete instance of `RestApiPolicyMapInput` via:

RestApiPolicyMap{ "key": RestApiPolicyArgs{...} }

type RestApiPolicyMapOutput

type RestApiPolicyMapOutput struct{ *pulumi.OutputState }

func (RestApiPolicyMapOutput) ElementType

func (RestApiPolicyMapOutput) ElementType() reflect.Type

func (RestApiPolicyMapOutput) MapIndex

func (RestApiPolicyMapOutput) ToRestApiPolicyMapOutput

func (o RestApiPolicyMapOutput) ToRestApiPolicyMapOutput() RestApiPolicyMapOutput

func (RestApiPolicyMapOutput) ToRestApiPolicyMapOutputWithContext

func (o RestApiPolicyMapOutput) ToRestApiPolicyMapOutputWithContext(ctx context.Context) RestApiPolicyMapOutput

type RestApiPolicyOutput

type RestApiPolicyOutput struct{ *pulumi.OutputState }

func (RestApiPolicyOutput) ElementType

func (RestApiPolicyOutput) ElementType() reflect.Type

func (RestApiPolicyOutput) Policy

JSON formatted policy document that controls access to the API Gateway.

func (RestApiPolicyOutput) RestApiId

func (o RestApiPolicyOutput) RestApiId() pulumi.StringOutput

ID of the REST API.

func (RestApiPolicyOutput) ToRestApiPolicyOutput

func (o RestApiPolicyOutput) ToRestApiPolicyOutput() RestApiPolicyOutput

func (RestApiPolicyOutput) ToRestApiPolicyOutputWithContext

func (o RestApiPolicyOutput) ToRestApiPolicyOutputWithContext(ctx context.Context) RestApiPolicyOutput

type RestApiPolicyState

type RestApiPolicyState struct {
	// JSON formatted policy document that controls access to the API Gateway.
	Policy pulumi.StringPtrInput
	// ID of the REST API.
	RestApiId pulumi.StringPtrInput
}

func (RestApiPolicyState) ElementType

func (RestApiPolicyState) ElementType() reflect.Type

type RestApiState

type RestApiState struct {
	// Source of the API key for requests. Valid values are `HEADER` (default) and `AUTHORIZER`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-api-key-source` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-api-key-source.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	ApiKeySource pulumi.StringPtrInput
	// ARN
	Arn pulumi.StringPtrInput
	// List of binary media types supported by the REST API. By default, the REST API supports only UTF-8-encoded text payloads. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-binary-media-types` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-binary-media-types.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	BinaryMediaTypes pulumi.StringArrayInput
	// OpenAPI specification that defines the set of routes and integrations to create as part of the REST API. This configuration, and any updates to it, will replace all REST API configuration except values overridden in this resource configuration and other resource updates applied after this resource but before any `apigateway.Deployment` creation. More information about REST API OpenAPI support can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).
	Body pulumi.StringPtrInput
	// Creation date of the REST API
	CreatedDate pulumi.StringPtrInput
	// Description of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.description` field. If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Description pulumi.StringPtrInput
	// Whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-endpoint-configuration` extension `disableExecuteApiEndpoint` property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html). If the argument value is `true` and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	DisableExecuteApiEndpoint pulumi.BoolPtrInput
	// Configuration block defining API endpoint configuration including endpoint type. Defined below.
	EndpointConfiguration RestApiEndpointConfigurationPtrInput
	// Execution ARN part to be used in `lambdaPermission`'s `sourceArn`
	// when allowing API Gateway to invoke a Lambda function,
	// e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j`, which can be concatenated with allowed stage, method and resource path.
	ExecutionArn pulumi.StringPtrInput
	// Whether warnings while API Gateway is creating or updating the resource should return an error or not. Defaults to `false`
	FailOnWarnings pulumi.BoolPtrInput
	// Minimum response size to compress for the REST API. String containing an integer value between `-1` and `10485760` (10MB). `-1` will disable an existing compression configuration, and all other values will enable compression with the configured size. New resources can simply omit this argument to disable compression, rather than setting the value to `-1`. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-minimum-compression-size` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-openapi-minimum-compression-size.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	MinimumCompressionSize pulumi.StringPtrInput
	// Name of the REST API. If importing an OpenAPI specification via the `body` argument, this corresponds to the `info.title` field. If the argument value is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Name pulumi.StringPtrInput
	// Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).
	Parameters pulumi.StringMapInput
	// JSON formatted policy document that controls access to the API Gateway. For more information about building AWS IAM policy documents with Pulumi, see the AWS IAM Policy Document Guide. The provider will only perform drift detection of its value when present in a configuration. We recommend using the `apigateway.RestApiPolicy` resource instead. If importing an OpenAPI specification via the `body` argument, this corresponds to the [`x-amazon-apigateway-policy` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/openapi-extensions-policy.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	Policy pulumi.StringPtrInput
	// Mode of the PutRestApi operation when importing an OpenAPI specification via the `body` argument (create or update operation). Valid values are `merge` and `overwrite`. If unspecificed, defaults to `overwrite` (for backwards compatibility). This corresponds to the [`x-amazon-apigateway-put-integration-method` extension](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-put-integration-method.html). If the argument value is provided and is different than the OpenAPI value, the argument value will override the OpenAPI value.
	PutRestApiMode pulumi.StringPtrInput
	// Resource ID of the REST API's root
	RootResourceId pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
}

func (RestApiState) ElementType

func (RestApiState) ElementType() reflect.Type

type Stage

type Stage struct {
	pulumi.CustomResourceState

	// Enables access logs for the API stage. See Access Log Settings below.
	AccessLogSettings StageAccessLogSettingsPtrOutput `pulumi:"accessLogSettings"`
	// ARN
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Whether a cache cluster is enabled for the stage
	CacheClusterEnabled pulumi.BoolPtrOutput `pulumi:"cacheClusterEnabled"`
	// Size of the cache cluster for the stage, if enabled. Allowed values include `0.5`, `1.6`, `6.1`, `13.5`, `28.4`, `58.2`, `118` and `237`.
	CacheClusterSize pulumi.StringPtrOutput `pulumi:"cacheClusterSize"`
	// Configuration settings of a canary deployment. See Canary Settings below.
	CanarySettings StageCanarySettingsPtrOutput `pulumi:"canarySettings"`
	// Identifier of a client certificate for the stage.
	ClientCertificateId pulumi.StringPtrOutput `pulumi:"clientCertificateId"`
	// ID of the deployment that the stage points to
	Deployment pulumi.StringOutput `pulumi:"deployment"`
	// Description of the stage.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Version of the associated API documentation
	DocumentationVersion pulumi.StringPtrOutput `pulumi:"documentationVersion"`
	// Execution ARN to be used in `lambdaPermission`'s `sourceArn`
	// when allowing API Gateway to invoke a Lambda function,
	// e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`
	ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
	// URL to invoke the API pointing to the stage,
	// e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`
	InvokeUrl pulumi.StringOutput `pulumi:"invokeUrl"`
	// ID of the associated REST API
	RestApi pulumi.StringOutput `pulumi:"restApi"`
	// Name of the stage
	StageName pulumi.StringOutput `pulumi:"stageName"`
	// Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// Map that defines the stage variables
	Variables pulumi.StringMapOutput `pulumi:"variables"`
	// ARN of the WebAcl associated with the Stage.
	WebAclArn pulumi.StringOutput `pulumi:"webAclArn"`
	// Whether active tracing with X-ray is enabled. Defaults to `false`.
	XrayTracingEnabled pulumi.BoolPtrOutput `pulumi:"xrayTracingEnabled"`
}

Manages an API Gateway Stage. A stage is a named reference to a deployment, which can be done via the `apigateway.Deployment` resource. Stages can be optionally managed further with the `apigateway.BasePathMapping` resource, `apigateway.DomainName` resource, and `awsApiMethodSettings` resource. For more information, see the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-stages.html).

### Managing the API Logging CloudWatch Log Group

API Gateway provides the ability to [enable CloudWatch API logging](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html). To manage the CloudWatch Log Group when this feature is enabled, the `cloudwatch.LogGroup` resource can be used where the name matches the API Gateway naming convention. If the CloudWatch Log Group previously exists, import the `cloudwatch.LogGroup` resource into Pulumi as a one time operation. You can recreate the environment without import.

<!--Start PulumiCodeChooser --> ```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		stageName := "example"
		if param := cfg.Get("stageName"); param != "" {
			stageName = param
		}
		example, err := apigateway.NewRestApi(ctx, "example", nil)
		if err != nil {
			return err
		}
		exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "example", &cloudwatch.LogGroupArgs{
			Name: example.ID().ApplyT(func(id string) (string, error) {
				return fmt.Sprintf("API-Gateway-Execution-Logs_%v/%v", id, stageName), nil
			}).(pulumi.StringOutput),
			RetentionInDays: pulumi.Int(7),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewStage(ctx, "example", &apigateway.StageArgs{
			StageName: pulumi.String(stageName),
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleLogGroup,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import `aws_api_gateway_stage` using `REST-API-ID/STAGE-NAME`. For example:

```sh $ pulumi import aws:apigateway/stage:Stage example 12345abcde/example ```

func GetStage

func GetStage(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *StageState, opts ...pulumi.ResourceOption) (*Stage, error)

GetStage gets an existing Stage resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewStage

func NewStage(ctx *pulumi.Context,
	name string, args *StageArgs, opts ...pulumi.ResourceOption) (*Stage, error)

NewStage registers a new resource with the given unique name, arguments, and options.

func (*Stage) ElementType

func (*Stage) ElementType() reflect.Type

func (*Stage) ToStageOutput

func (i *Stage) ToStageOutput() StageOutput

func (*Stage) ToStageOutputWithContext

func (i *Stage) ToStageOutputWithContext(ctx context.Context) StageOutput

type StageAccessLogSettings

type StageAccessLogSettings struct {
	// ARN of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`. Automatically removes trailing `:*` if present.
	DestinationArn string `pulumi:"destinationArn"`
	// Formatting and values recorded in the logs.
	// For more information on configuring the log format rules visit the AWS [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)
	Format string `pulumi:"format"`
}

type StageAccessLogSettingsArgs

type StageAccessLogSettingsArgs struct {
	// ARN of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`. Automatically removes trailing `:*` if present.
	DestinationArn pulumi.StringInput `pulumi:"destinationArn"`
	// Formatting and values recorded in the logs.
	// For more information on configuring the log format rules visit the AWS [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)
	Format pulumi.StringInput `pulumi:"format"`
}

func (StageAccessLogSettingsArgs) ElementType

func (StageAccessLogSettingsArgs) ElementType() reflect.Type

func (StageAccessLogSettingsArgs) ToStageAccessLogSettingsOutput

func (i StageAccessLogSettingsArgs) ToStageAccessLogSettingsOutput() StageAccessLogSettingsOutput

func (StageAccessLogSettingsArgs) ToStageAccessLogSettingsOutputWithContext

func (i StageAccessLogSettingsArgs) ToStageAccessLogSettingsOutputWithContext(ctx context.Context) StageAccessLogSettingsOutput

func (StageAccessLogSettingsArgs) ToStageAccessLogSettingsPtrOutput

func (i StageAccessLogSettingsArgs) ToStageAccessLogSettingsPtrOutput() StageAccessLogSettingsPtrOutput

func (StageAccessLogSettingsArgs) ToStageAccessLogSettingsPtrOutputWithContext

func (i StageAccessLogSettingsArgs) ToStageAccessLogSettingsPtrOutputWithContext(ctx context.Context) StageAccessLogSettingsPtrOutput

type StageAccessLogSettingsInput

type StageAccessLogSettingsInput interface {
	pulumi.Input

	ToStageAccessLogSettingsOutput() StageAccessLogSettingsOutput
	ToStageAccessLogSettingsOutputWithContext(context.Context) StageAccessLogSettingsOutput
}

StageAccessLogSettingsInput is an input type that accepts StageAccessLogSettingsArgs and StageAccessLogSettingsOutput values. You can construct a concrete instance of `StageAccessLogSettingsInput` via:

StageAccessLogSettingsArgs{...}

type StageAccessLogSettingsOutput

type StageAccessLogSettingsOutput struct{ *pulumi.OutputState }

func (StageAccessLogSettingsOutput) DestinationArn

ARN of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`. Automatically removes trailing `:*` if present.

func (StageAccessLogSettingsOutput) ElementType

func (StageAccessLogSettingsOutput) Format

Formatting and values recorded in the logs. For more information on configuring the log format rules visit the AWS [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)

func (StageAccessLogSettingsOutput) ToStageAccessLogSettingsOutput

func (o StageAccessLogSettingsOutput) ToStageAccessLogSettingsOutput() StageAccessLogSettingsOutput

func (StageAccessLogSettingsOutput) ToStageAccessLogSettingsOutputWithContext

func (o StageAccessLogSettingsOutput) ToStageAccessLogSettingsOutputWithContext(ctx context.Context) StageAccessLogSettingsOutput

func (StageAccessLogSettingsOutput) ToStageAccessLogSettingsPtrOutput

func (o StageAccessLogSettingsOutput) ToStageAccessLogSettingsPtrOutput() StageAccessLogSettingsPtrOutput

func (StageAccessLogSettingsOutput) ToStageAccessLogSettingsPtrOutputWithContext

func (o StageAccessLogSettingsOutput) ToStageAccessLogSettingsPtrOutputWithContext(ctx context.Context) StageAccessLogSettingsPtrOutput

type StageAccessLogSettingsPtrInput

type StageAccessLogSettingsPtrInput interface {
	pulumi.Input

	ToStageAccessLogSettingsPtrOutput() StageAccessLogSettingsPtrOutput
	ToStageAccessLogSettingsPtrOutputWithContext(context.Context) StageAccessLogSettingsPtrOutput
}

StageAccessLogSettingsPtrInput is an input type that accepts StageAccessLogSettingsArgs, StageAccessLogSettingsPtr and StageAccessLogSettingsPtrOutput values. You can construct a concrete instance of `StageAccessLogSettingsPtrInput` via:

        StageAccessLogSettingsArgs{...}

or:

        nil

type StageAccessLogSettingsPtrOutput

type StageAccessLogSettingsPtrOutput struct{ *pulumi.OutputState }

func (StageAccessLogSettingsPtrOutput) DestinationArn

ARN of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`. Automatically removes trailing `:*` if present.

func (StageAccessLogSettingsPtrOutput) Elem

func (StageAccessLogSettingsPtrOutput) ElementType

func (StageAccessLogSettingsPtrOutput) Format

Formatting and values recorded in the logs. For more information on configuring the log format rules visit the AWS [documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)

func (StageAccessLogSettingsPtrOutput) ToStageAccessLogSettingsPtrOutput

func (o StageAccessLogSettingsPtrOutput) ToStageAccessLogSettingsPtrOutput() StageAccessLogSettingsPtrOutput

func (StageAccessLogSettingsPtrOutput) ToStageAccessLogSettingsPtrOutputWithContext

func (o StageAccessLogSettingsPtrOutput) ToStageAccessLogSettingsPtrOutputWithContext(ctx context.Context) StageAccessLogSettingsPtrOutput

type StageArgs

type StageArgs struct {
	// Enables access logs for the API stage. See Access Log Settings below.
	AccessLogSettings StageAccessLogSettingsPtrInput
	// Whether a cache cluster is enabled for the stage
	CacheClusterEnabled pulumi.BoolPtrInput
	// Size of the cache cluster for the stage, if enabled. Allowed values include `0.5`, `1.6`, `6.1`, `13.5`, `28.4`, `58.2`, `118` and `237`.
	CacheClusterSize pulumi.StringPtrInput
	// Configuration settings of a canary deployment. See Canary Settings below.
	CanarySettings StageCanarySettingsPtrInput
	// Identifier of a client certificate for the stage.
	ClientCertificateId pulumi.StringPtrInput
	// ID of the deployment that the stage points to
	Deployment pulumi.Input
	// Description of the stage.
	Description pulumi.StringPtrInput
	// Version of the associated API documentation
	DocumentationVersion pulumi.StringPtrInput
	// ID of the associated REST API
	RestApi pulumi.Input
	// Name of the stage
	StageName pulumi.StringInput
	// Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map that defines the stage variables
	Variables pulumi.StringMapInput
	// Whether active tracing with X-ray is enabled. Defaults to `false`.
	XrayTracingEnabled pulumi.BoolPtrInput
}

The set of arguments for constructing a Stage resource.

func (StageArgs) ElementType

func (StageArgs) ElementType() reflect.Type

type StageArray

type StageArray []StageInput

func (StageArray) ElementType

func (StageArray) ElementType() reflect.Type

func (StageArray) ToStageArrayOutput

func (i StageArray) ToStageArrayOutput() StageArrayOutput

func (StageArray) ToStageArrayOutputWithContext

func (i StageArray) ToStageArrayOutputWithContext(ctx context.Context) StageArrayOutput

type StageArrayInput

type StageArrayInput interface {
	pulumi.Input

	ToStageArrayOutput() StageArrayOutput
	ToStageArrayOutputWithContext(context.Context) StageArrayOutput
}

StageArrayInput is an input type that accepts StageArray and StageArrayOutput values. You can construct a concrete instance of `StageArrayInput` via:

StageArray{ StageArgs{...} }

type StageArrayOutput

type StageArrayOutput struct{ *pulumi.OutputState }

func (StageArrayOutput) ElementType

func (StageArrayOutput) ElementType() reflect.Type

func (StageArrayOutput) Index

func (StageArrayOutput) ToStageArrayOutput

func (o StageArrayOutput) ToStageArrayOutput() StageArrayOutput

func (StageArrayOutput) ToStageArrayOutputWithContext

func (o StageArrayOutput) ToStageArrayOutputWithContext(ctx context.Context) StageArrayOutput

type StageCanarySettings

type StageCanarySettings struct {
	// Percent `0.0` - `100.0` of traffic to divert to the canary deployment.
	PercentTraffic *float64 `pulumi:"percentTraffic"`
	// Map of overridden stage `variables` (including new variables) for the canary deployment.
	StageVariableOverrides map[string]string `pulumi:"stageVariableOverrides"`
	// Whether the canary deployment uses the stage cache. Defaults to false.
	UseStageCache *bool `pulumi:"useStageCache"`
}

type StageCanarySettingsArgs

type StageCanarySettingsArgs struct {
	// Percent `0.0` - `100.0` of traffic to divert to the canary deployment.
	PercentTraffic pulumi.Float64PtrInput `pulumi:"percentTraffic"`
	// Map of overridden stage `variables` (including new variables) for the canary deployment.
	StageVariableOverrides pulumi.StringMapInput `pulumi:"stageVariableOverrides"`
	// Whether the canary deployment uses the stage cache. Defaults to false.
	UseStageCache pulumi.BoolPtrInput `pulumi:"useStageCache"`
}

func (StageCanarySettingsArgs) ElementType

func (StageCanarySettingsArgs) ElementType() reflect.Type

func (StageCanarySettingsArgs) ToStageCanarySettingsOutput

func (i StageCanarySettingsArgs) ToStageCanarySettingsOutput() StageCanarySettingsOutput

func (StageCanarySettingsArgs) ToStageCanarySettingsOutputWithContext

func (i StageCanarySettingsArgs) ToStageCanarySettingsOutputWithContext(ctx context.Context) StageCanarySettingsOutput

func (StageCanarySettingsArgs) ToStageCanarySettingsPtrOutput

func (i StageCanarySettingsArgs) ToStageCanarySettingsPtrOutput() StageCanarySettingsPtrOutput

func (StageCanarySettingsArgs) ToStageCanarySettingsPtrOutputWithContext

func (i StageCanarySettingsArgs) ToStageCanarySettingsPtrOutputWithContext(ctx context.Context) StageCanarySettingsPtrOutput

type StageCanarySettingsInput

type StageCanarySettingsInput interface {
	pulumi.Input

	ToStageCanarySettingsOutput() StageCanarySettingsOutput
	ToStageCanarySettingsOutputWithContext(context.Context) StageCanarySettingsOutput
}

StageCanarySettingsInput is an input type that accepts StageCanarySettingsArgs and StageCanarySettingsOutput values. You can construct a concrete instance of `StageCanarySettingsInput` via:

StageCanarySettingsArgs{...}

type StageCanarySettingsOutput

type StageCanarySettingsOutput struct{ *pulumi.OutputState }

func (StageCanarySettingsOutput) ElementType

func (StageCanarySettingsOutput) ElementType() reflect.Type

func (StageCanarySettingsOutput) PercentTraffic

Percent `0.0` - `100.0` of traffic to divert to the canary deployment.

func (StageCanarySettingsOutput) StageVariableOverrides

func (o StageCanarySettingsOutput) StageVariableOverrides() pulumi.StringMapOutput

Map of overridden stage `variables` (including new variables) for the canary deployment.

func (StageCanarySettingsOutput) ToStageCanarySettingsOutput

func (o StageCanarySettingsOutput) ToStageCanarySettingsOutput() StageCanarySettingsOutput

func (StageCanarySettingsOutput) ToStageCanarySettingsOutputWithContext

func (o StageCanarySettingsOutput) ToStageCanarySettingsOutputWithContext(ctx context.Context) StageCanarySettingsOutput

func (StageCanarySettingsOutput) ToStageCanarySettingsPtrOutput

func (o StageCanarySettingsOutput) ToStageCanarySettingsPtrOutput() StageCanarySettingsPtrOutput

func (StageCanarySettingsOutput) ToStageCanarySettingsPtrOutputWithContext

func (o StageCanarySettingsOutput) ToStageCanarySettingsPtrOutputWithContext(ctx context.Context) StageCanarySettingsPtrOutput

func (StageCanarySettingsOutput) UseStageCache

Whether the canary deployment uses the stage cache. Defaults to false.

type StageCanarySettingsPtrInput

type StageCanarySettingsPtrInput interface {
	pulumi.Input

	ToStageCanarySettingsPtrOutput() StageCanarySettingsPtrOutput
	ToStageCanarySettingsPtrOutputWithContext(context.Context) StageCanarySettingsPtrOutput
}

StageCanarySettingsPtrInput is an input type that accepts StageCanarySettingsArgs, StageCanarySettingsPtr and StageCanarySettingsPtrOutput values. You can construct a concrete instance of `StageCanarySettingsPtrInput` via:

        StageCanarySettingsArgs{...}

or:

        nil

type StageCanarySettingsPtrOutput

type StageCanarySettingsPtrOutput struct{ *pulumi.OutputState }

func (StageCanarySettingsPtrOutput) Elem

func (StageCanarySettingsPtrOutput) ElementType

func (StageCanarySettingsPtrOutput) PercentTraffic

Percent `0.0` - `100.0` of traffic to divert to the canary deployment.

func (StageCanarySettingsPtrOutput) StageVariableOverrides

func (o StageCanarySettingsPtrOutput) StageVariableOverrides() pulumi.StringMapOutput

Map of overridden stage `variables` (including new variables) for the canary deployment.

func (StageCanarySettingsPtrOutput) ToStageCanarySettingsPtrOutput

func (o StageCanarySettingsPtrOutput) ToStageCanarySettingsPtrOutput() StageCanarySettingsPtrOutput

func (StageCanarySettingsPtrOutput) ToStageCanarySettingsPtrOutputWithContext

func (o StageCanarySettingsPtrOutput) ToStageCanarySettingsPtrOutputWithContext(ctx context.Context) StageCanarySettingsPtrOutput

func (StageCanarySettingsPtrOutput) UseStageCache

Whether the canary deployment uses the stage cache. Defaults to false.

type StageInput

type StageInput interface {
	pulumi.Input

	ToStageOutput() StageOutput
	ToStageOutputWithContext(ctx context.Context) StageOutput
}

type StageMap

type StageMap map[string]StageInput

func (StageMap) ElementType

func (StageMap) ElementType() reflect.Type

func (StageMap) ToStageMapOutput

func (i StageMap) ToStageMapOutput() StageMapOutput

func (StageMap) ToStageMapOutputWithContext

func (i StageMap) ToStageMapOutputWithContext(ctx context.Context) StageMapOutput

type StageMapInput

type StageMapInput interface {
	pulumi.Input

	ToStageMapOutput() StageMapOutput
	ToStageMapOutputWithContext(context.Context) StageMapOutput
}

StageMapInput is an input type that accepts StageMap and StageMapOutput values. You can construct a concrete instance of `StageMapInput` via:

StageMap{ "key": StageArgs{...} }

type StageMapOutput

type StageMapOutput struct{ *pulumi.OutputState }

func (StageMapOutput) ElementType

func (StageMapOutput) ElementType() reflect.Type

func (StageMapOutput) MapIndex

func (StageMapOutput) ToStageMapOutput

func (o StageMapOutput) ToStageMapOutput() StageMapOutput

func (StageMapOutput) ToStageMapOutputWithContext

func (o StageMapOutput) ToStageMapOutputWithContext(ctx context.Context) StageMapOutput

type StageOutput

type StageOutput struct{ *pulumi.OutputState }

func (StageOutput) AccessLogSettings

func (o StageOutput) AccessLogSettings() StageAccessLogSettingsPtrOutput

Enables access logs for the API stage. See Access Log Settings below.

func (StageOutput) Arn

ARN

func (StageOutput) CacheClusterEnabled

func (o StageOutput) CacheClusterEnabled() pulumi.BoolPtrOutput

Whether a cache cluster is enabled for the stage

func (StageOutput) CacheClusterSize

func (o StageOutput) CacheClusterSize() pulumi.StringPtrOutput

Size of the cache cluster for the stage, if enabled. Allowed values include `0.5`, `1.6`, `6.1`, `13.5`, `28.4`, `58.2`, `118` and `237`.

func (StageOutput) CanarySettings

func (o StageOutput) CanarySettings() StageCanarySettingsPtrOutput

Configuration settings of a canary deployment. See Canary Settings below.

func (StageOutput) ClientCertificateId

func (o StageOutput) ClientCertificateId() pulumi.StringPtrOutput

Identifier of a client certificate for the stage.

func (StageOutput) Deployment

func (o StageOutput) Deployment() pulumi.StringOutput

ID of the deployment that the stage points to

func (StageOutput) Description

func (o StageOutput) Description() pulumi.StringPtrOutput

Description of the stage.

func (StageOutput) DocumentationVersion

func (o StageOutput) DocumentationVersion() pulumi.StringPtrOutput

Version of the associated API documentation

func (StageOutput) ElementType

func (StageOutput) ElementType() reflect.Type

func (StageOutput) ExecutionArn

func (o StageOutput) ExecutionArn() pulumi.StringOutput

Execution ARN to be used in `lambdaPermission`'s `sourceArn` when allowing API Gateway to invoke a Lambda function, e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`

func (StageOutput) InvokeUrl

func (o StageOutput) InvokeUrl() pulumi.StringOutput

URL to invoke the API pointing to the stage, e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`

func (StageOutput) RestApi

func (o StageOutput) RestApi() pulumi.StringOutput

ID of the associated REST API

func (StageOutput) StageName

func (o StageOutput) StageName() pulumi.StringOutput

Name of the stage

func (StageOutput) Tags

Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (StageOutput) TagsAll deprecated

func (o StageOutput) TagsAll() pulumi.StringMapOutput

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (StageOutput) ToStageOutput

func (o StageOutput) ToStageOutput() StageOutput

func (StageOutput) ToStageOutputWithContext

func (o StageOutput) ToStageOutputWithContext(ctx context.Context) StageOutput

func (StageOutput) Variables

func (o StageOutput) Variables() pulumi.StringMapOutput

Map that defines the stage variables

func (StageOutput) WebAclArn

func (o StageOutput) WebAclArn() pulumi.StringOutput

ARN of the WebAcl associated with the Stage.

func (StageOutput) XrayTracingEnabled

func (o StageOutput) XrayTracingEnabled() pulumi.BoolPtrOutput

Whether active tracing with X-ray is enabled. Defaults to `false`.

type StageState

type StageState struct {
	// Enables access logs for the API stage. See Access Log Settings below.
	AccessLogSettings StageAccessLogSettingsPtrInput
	// ARN
	Arn pulumi.StringPtrInput
	// Whether a cache cluster is enabled for the stage
	CacheClusterEnabled pulumi.BoolPtrInput
	// Size of the cache cluster for the stage, if enabled. Allowed values include `0.5`, `1.6`, `6.1`, `13.5`, `28.4`, `58.2`, `118` and `237`.
	CacheClusterSize pulumi.StringPtrInput
	// Configuration settings of a canary deployment. See Canary Settings below.
	CanarySettings StageCanarySettingsPtrInput
	// Identifier of a client certificate for the stage.
	ClientCertificateId pulumi.StringPtrInput
	// ID of the deployment that the stage points to
	Deployment pulumi.Input
	// Description of the stage.
	Description pulumi.StringPtrInput
	// Version of the associated API documentation
	DocumentationVersion pulumi.StringPtrInput
	// Execution ARN to be used in `lambdaPermission`'s `sourceArn`
	// when allowing API Gateway to invoke a Lambda function,
	// e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`
	ExecutionArn pulumi.StringPtrInput
	// URL to invoke the API pointing to the stage,
	// e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`
	InvokeUrl pulumi.StringPtrInput
	// ID of the associated REST API
	RestApi pulumi.Input
	// Name of the stage
	StageName pulumi.StringPtrInput
	// Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
	// Map that defines the stage variables
	Variables pulumi.StringMapInput
	// ARN of the WebAcl associated with the Stage.
	WebAclArn pulumi.StringPtrInput
	// Whether active tracing with X-ray is enabled. Defaults to `false`.
	XrayTracingEnabled pulumi.BoolPtrInput
}

func (StageState) ElementType

func (StageState) ElementType() reflect.Type

type UsagePlan

type UsagePlan struct {
	pulumi.CustomResourceState

	// Associated API stages of the usage plan.
	ApiStages UsagePlanApiStageArrayOutput `pulumi:"apiStages"`
	// ARN
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Description of a usage plan.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Name of the usage plan.
	Name pulumi.StringOutput `pulumi:"name"`
	// AWS Marketplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.
	ProductCode pulumi.StringPtrOutput `pulumi:"productCode"`
	// The quota settings of the usage plan.
	QuotaSettings UsagePlanQuotaSettingsPtrOutput `pulumi:"quotaSettings"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// The throttling limits of the usage plan.
	ThrottleSettings UsagePlanThrottleSettingsPtrOutput `pulumi:"throttleSettings"`
}

Provides an API Gateway Usage Plan.

## Import

Using `pulumi import`, import AWS API Gateway Usage Plan using the `id`. For example:

```sh $ pulumi import aws:apigateway/usagePlan:UsagePlan myusageplan <usage_plan_id> ```

func GetUsagePlan

func GetUsagePlan(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UsagePlanState, opts ...pulumi.ResourceOption) (*UsagePlan, error)

GetUsagePlan gets an existing UsagePlan resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewUsagePlan

func NewUsagePlan(ctx *pulumi.Context,
	name string, args *UsagePlanArgs, opts ...pulumi.ResourceOption) (*UsagePlan, error)

NewUsagePlan registers a new resource with the given unique name, arguments, and options.

func (*UsagePlan) ElementType

func (*UsagePlan) ElementType() reflect.Type

func (*UsagePlan) ToUsagePlanOutput

func (i *UsagePlan) ToUsagePlanOutput() UsagePlanOutput

func (*UsagePlan) ToUsagePlanOutputWithContext

func (i *UsagePlan) ToUsagePlanOutputWithContext(ctx context.Context) UsagePlanOutput

type UsagePlanApiStage

type UsagePlanApiStage struct {
	// API Id of the associated API stage in a usage plan.
	ApiId string `pulumi:"apiId"`
	// API stage name of the associated API stage in a usage plan.
	Stage string `pulumi:"stage"`
	// The throttling limits of the usage plan.
	Throttles []UsagePlanApiStageThrottle `pulumi:"throttles"`
}

type UsagePlanApiStageArgs

type UsagePlanApiStageArgs struct {
	// API Id of the associated API stage in a usage plan.
	ApiId pulumi.StringInput `pulumi:"apiId"`
	// API stage name of the associated API stage in a usage plan.
	Stage pulumi.StringInput `pulumi:"stage"`
	// The throttling limits of the usage plan.
	Throttles UsagePlanApiStageThrottleArrayInput `pulumi:"throttles"`
}

func (UsagePlanApiStageArgs) ElementType

func (UsagePlanApiStageArgs) ElementType() reflect.Type

func (UsagePlanApiStageArgs) ToUsagePlanApiStageOutput

func (i UsagePlanApiStageArgs) ToUsagePlanApiStageOutput() UsagePlanApiStageOutput

func (UsagePlanApiStageArgs) ToUsagePlanApiStageOutputWithContext

func (i UsagePlanApiStageArgs) ToUsagePlanApiStageOutputWithContext(ctx context.Context) UsagePlanApiStageOutput

type UsagePlanApiStageArray

type UsagePlanApiStageArray []UsagePlanApiStageInput

func (UsagePlanApiStageArray) ElementType

func (UsagePlanApiStageArray) ElementType() reflect.Type

func (UsagePlanApiStageArray) ToUsagePlanApiStageArrayOutput

func (i UsagePlanApiStageArray) ToUsagePlanApiStageArrayOutput() UsagePlanApiStageArrayOutput

func (UsagePlanApiStageArray) ToUsagePlanApiStageArrayOutputWithContext

func (i UsagePlanApiStageArray) ToUsagePlanApiStageArrayOutputWithContext(ctx context.Context) UsagePlanApiStageArrayOutput

type UsagePlanApiStageArrayInput

type UsagePlanApiStageArrayInput interface {
	pulumi.Input

	ToUsagePlanApiStageArrayOutput() UsagePlanApiStageArrayOutput
	ToUsagePlanApiStageArrayOutputWithContext(context.Context) UsagePlanApiStageArrayOutput
}

UsagePlanApiStageArrayInput is an input type that accepts UsagePlanApiStageArray and UsagePlanApiStageArrayOutput values. You can construct a concrete instance of `UsagePlanApiStageArrayInput` via:

UsagePlanApiStageArray{ UsagePlanApiStageArgs{...} }

type UsagePlanApiStageArrayOutput

type UsagePlanApiStageArrayOutput struct{ *pulumi.OutputState }

func (UsagePlanApiStageArrayOutput) ElementType

func (UsagePlanApiStageArrayOutput) Index

func (UsagePlanApiStageArrayOutput) ToUsagePlanApiStageArrayOutput

func (o UsagePlanApiStageArrayOutput) ToUsagePlanApiStageArrayOutput() UsagePlanApiStageArrayOutput

func (UsagePlanApiStageArrayOutput) ToUsagePlanApiStageArrayOutputWithContext

func (o UsagePlanApiStageArrayOutput) ToUsagePlanApiStageArrayOutputWithContext(ctx context.Context) UsagePlanApiStageArrayOutput

type UsagePlanApiStageInput

type UsagePlanApiStageInput interface {
	pulumi.Input

	ToUsagePlanApiStageOutput() UsagePlanApiStageOutput
	ToUsagePlanApiStageOutputWithContext(context.Context) UsagePlanApiStageOutput
}

UsagePlanApiStageInput is an input type that accepts UsagePlanApiStageArgs and UsagePlanApiStageOutput values. You can construct a concrete instance of `UsagePlanApiStageInput` via:

UsagePlanApiStageArgs{...}

type UsagePlanApiStageOutput

type UsagePlanApiStageOutput struct{ *pulumi.OutputState }

func (UsagePlanApiStageOutput) ApiId

API Id of the associated API stage in a usage plan.

func (UsagePlanApiStageOutput) ElementType

func (UsagePlanApiStageOutput) ElementType() reflect.Type

func (UsagePlanApiStageOutput) Stage

API stage name of the associated API stage in a usage plan.

func (UsagePlanApiStageOutput) Throttles

The throttling limits of the usage plan.

func (UsagePlanApiStageOutput) ToUsagePlanApiStageOutput

func (o UsagePlanApiStageOutput) ToUsagePlanApiStageOutput() UsagePlanApiStageOutput

func (UsagePlanApiStageOutput) ToUsagePlanApiStageOutputWithContext

func (o UsagePlanApiStageOutput) ToUsagePlanApiStageOutputWithContext(ctx context.Context) UsagePlanApiStageOutput

type UsagePlanApiStageThrottle

type UsagePlanApiStageThrottle struct {
	// The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.
	BurstLimit *int `pulumi:"burstLimit"`
	// Method to apply the throttle settings for. Specfiy the path and method, for example `/test/GET`.
	Path string `pulumi:"path"`
	// The API request steady-state rate limit.
	RateLimit *float64 `pulumi:"rateLimit"`
}

type UsagePlanApiStageThrottleArgs

type UsagePlanApiStageThrottleArgs struct {
	// The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.
	BurstLimit pulumi.IntPtrInput `pulumi:"burstLimit"`
	// Method to apply the throttle settings for. Specfiy the path and method, for example `/test/GET`.
	Path pulumi.StringInput `pulumi:"path"`
	// The API request steady-state rate limit.
	RateLimit pulumi.Float64PtrInput `pulumi:"rateLimit"`
}

func (UsagePlanApiStageThrottleArgs) ElementType

func (UsagePlanApiStageThrottleArgs) ToUsagePlanApiStageThrottleOutput

func (i UsagePlanApiStageThrottleArgs) ToUsagePlanApiStageThrottleOutput() UsagePlanApiStageThrottleOutput

func (UsagePlanApiStageThrottleArgs) ToUsagePlanApiStageThrottleOutputWithContext

func (i UsagePlanApiStageThrottleArgs) ToUsagePlanApiStageThrottleOutputWithContext(ctx context.Context) UsagePlanApiStageThrottleOutput

type UsagePlanApiStageThrottleArray

type UsagePlanApiStageThrottleArray []UsagePlanApiStageThrottleInput

func (UsagePlanApiStageThrottleArray) ElementType

func (UsagePlanApiStageThrottleArray) ToUsagePlanApiStageThrottleArrayOutput

func (i UsagePlanApiStageThrottleArray) ToUsagePlanApiStageThrottleArrayOutput() UsagePlanApiStageThrottleArrayOutput

func (UsagePlanApiStageThrottleArray) ToUsagePlanApiStageThrottleArrayOutputWithContext

func (i UsagePlanApiStageThrottleArray) ToUsagePlanApiStageThrottleArrayOutputWithContext(ctx context.Context) UsagePlanApiStageThrottleArrayOutput

type UsagePlanApiStageThrottleArrayInput

type UsagePlanApiStageThrottleArrayInput interface {
	pulumi.Input

	ToUsagePlanApiStageThrottleArrayOutput() UsagePlanApiStageThrottleArrayOutput
	ToUsagePlanApiStageThrottleArrayOutputWithContext(context.Context) UsagePlanApiStageThrottleArrayOutput
}

UsagePlanApiStageThrottleArrayInput is an input type that accepts UsagePlanApiStageThrottleArray and UsagePlanApiStageThrottleArrayOutput values. You can construct a concrete instance of `UsagePlanApiStageThrottleArrayInput` via:

UsagePlanApiStageThrottleArray{ UsagePlanApiStageThrottleArgs{...} }

type UsagePlanApiStageThrottleArrayOutput

type UsagePlanApiStageThrottleArrayOutput struct{ *pulumi.OutputState }

func (UsagePlanApiStageThrottleArrayOutput) ElementType

func (UsagePlanApiStageThrottleArrayOutput) Index

func (UsagePlanApiStageThrottleArrayOutput) ToUsagePlanApiStageThrottleArrayOutput

func (o UsagePlanApiStageThrottleArrayOutput) ToUsagePlanApiStageThrottleArrayOutput() UsagePlanApiStageThrottleArrayOutput

func (UsagePlanApiStageThrottleArrayOutput) ToUsagePlanApiStageThrottleArrayOutputWithContext

func (o UsagePlanApiStageThrottleArrayOutput) ToUsagePlanApiStageThrottleArrayOutputWithContext(ctx context.Context) UsagePlanApiStageThrottleArrayOutput

type UsagePlanApiStageThrottleInput

type UsagePlanApiStageThrottleInput interface {
	pulumi.Input

	ToUsagePlanApiStageThrottleOutput() UsagePlanApiStageThrottleOutput
	ToUsagePlanApiStageThrottleOutputWithContext(context.Context) UsagePlanApiStageThrottleOutput
}

UsagePlanApiStageThrottleInput is an input type that accepts UsagePlanApiStageThrottleArgs and UsagePlanApiStageThrottleOutput values. You can construct a concrete instance of `UsagePlanApiStageThrottleInput` via:

UsagePlanApiStageThrottleArgs{...}

type UsagePlanApiStageThrottleOutput

type UsagePlanApiStageThrottleOutput struct{ *pulumi.OutputState }

func (UsagePlanApiStageThrottleOutput) BurstLimit

The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.

func (UsagePlanApiStageThrottleOutput) ElementType

func (UsagePlanApiStageThrottleOutput) Path

Method to apply the throttle settings for. Specfiy the path and method, for example `/test/GET`.

func (UsagePlanApiStageThrottleOutput) RateLimit

The API request steady-state rate limit.

func (UsagePlanApiStageThrottleOutput) ToUsagePlanApiStageThrottleOutput

func (o UsagePlanApiStageThrottleOutput) ToUsagePlanApiStageThrottleOutput() UsagePlanApiStageThrottleOutput

func (UsagePlanApiStageThrottleOutput) ToUsagePlanApiStageThrottleOutputWithContext

func (o UsagePlanApiStageThrottleOutput) ToUsagePlanApiStageThrottleOutputWithContext(ctx context.Context) UsagePlanApiStageThrottleOutput

type UsagePlanArgs

type UsagePlanArgs struct {
	// Associated API stages of the usage plan.
	ApiStages UsagePlanApiStageArrayInput
	// Description of a usage plan.
	Description pulumi.StringPtrInput
	// Name of the usage plan.
	Name pulumi.StringPtrInput
	// AWS Marketplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.
	ProductCode pulumi.StringPtrInput
	// The quota settings of the usage plan.
	QuotaSettings UsagePlanQuotaSettingsPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// The throttling limits of the usage plan.
	ThrottleSettings UsagePlanThrottleSettingsPtrInput
}

The set of arguments for constructing a UsagePlan resource.

func (UsagePlanArgs) ElementType

func (UsagePlanArgs) ElementType() reflect.Type

type UsagePlanArray

type UsagePlanArray []UsagePlanInput

func (UsagePlanArray) ElementType

func (UsagePlanArray) ElementType() reflect.Type

func (UsagePlanArray) ToUsagePlanArrayOutput

func (i UsagePlanArray) ToUsagePlanArrayOutput() UsagePlanArrayOutput

func (UsagePlanArray) ToUsagePlanArrayOutputWithContext

func (i UsagePlanArray) ToUsagePlanArrayOutputWithContext(ctx context.Context) UsagePlanArrayOutput

type UsagePlanArrayInput

type UsagePlanArrayInput interface {
	pulumi.Input

	ToUsagePlanArrayOutput() UsagePlanArrayOutput
	ToUsagePlanArrayOutputWithContext(context.Context) UsagePlanArrayOutput
}

UsagePlanArrayInput is an input type that accepts UsagePlanArray and UsagePlanArrayOutput values. You can construct a concrete instance of `UsagePlanArrayInput` via:

UsagePlanArray{ UsagePlanArgs{...} }

type UsagePlanArrayOutput

type UsagePlanArrayOutput struct{ *pulumi.OutputState }

func (UsagePlanArrayOutput) ElementType

func (UsagePlanArrayOutput) ElementType() reflect.Type

func (UsagePlanArrayOutput) Index

func (UsagePlanArrayOutput) ToUsagePlanArrayOutput

func (o UsagePlanArrayOutput) ToUsagePlanArrayOutput() UsagePlanArrayOutput

func (UsagePlanArrayOutput) ToUsagePlanArrayOutputWithContext

func (o UsagePlanArrayOutput) ToUsagePlanArrayOutputWithContext(ctx context.Context) UsagePlanArrayOutput

type UsagePlanInput

type UsagePlanInput interface {
	pulumi.Input

	ToUsagePlanOutput() UsagePlanOutput
	ToUsagePlanOutputWithContext(ctx context.Context) UsagePlanOutput
}

type UsagePlanKey

type UsagePlanKey struct {
	pulumi.CustomResourceState

	// Identifier of the API key resource.
	KeyId pulumi.StringOutput `pulumi:"keyId"`
	// Type of the API key resource. Currently, the valid key type is API_KEY.
	KeyType pulumi.StringOutput `pulumi:"keyType"`
	// Name of a usage plan key.
	Name pulumi.StringOutput `pulumi:"name"`
	// Id of the usage plan resource representing to associate the key to.
	UsagePlanId pulumi.StringOutput `pulumi:"usagePlanId"`
	// Value of a usage plan key.
	Value pulumi.StringOutput `pulumi:"value"`
}

Provides an API Gateway Usage Plan Key.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		test, err := apigateway.NewRestApi(ctx, "test", &apigateway.RestApiArgs{
			Name: pulumi.String("MyDemoAPI"),
		})
		if err != nil {
			return err
		}
		// ...
		myusageplan, err := apigateway.NewUsagePlan(ctx, "myusageplan", &apigateway.UsagePlanArgs{
			Name: pulumi.String("my_usage_plan"),
			ApiStages: apigateway.UsagePlanApiStageArray{
				&apigateway.UsagePlanApiStageArgs{
					ApiId: test.ID(),
					Stage: pulumi.Any(foo.StageName),
				},
			},
		})
		if err != nil {
			return err
		}
		mykey, err := apigateway.NewApiKey(ctx, "mykey", &apigateway.ApiKeyArgs{
			Name: pulumi.String("my_key"),
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewUsagePlanKey(ctx, "main", &apigateway.UsagePlanKeyArgs{
			KeyId:       mykey.ID(),
			KeyType:     pulumi.String("API_KEY"),
			UsagePlanId: myusageplan.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import AWS API Gateway Usage Plan Key using the `USAGE-PLAN-ID/USAGE-PLAN-KEY-ID`. For example:

```sh $ pulumi import aws:apigateway/usagePlanKey:UsagePlanKey key 12345abcde/zzz ```

func GetUsagePlanKey

func GetUsagePlanKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UsagePlanKeyState, opts ...pulumi.ResourceOption) (*UsagePlanKey, error)

GetUsagePlanKey gets an existing UsagePlanKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewUsagePlanKey

func NewUsagePlanKey(ctx *pulumi.Context,
	name string, args *UsagePlanKeyArgs, opts ...pulumi.ResourceOption) (*UsagePlanKey, error)

NewUsagePlanKey registers a new resource with the given unique name, arguments, and options.

func (*UsagePlanKey) ElementType

func (*UsagePlanKey) ElementType() reflect.Type

func (*UsagePlanKey) ToUsagePlanKeyOutput

func (i *UsagePlanKey) ToUsagePlanKeyOutput() UsagePlanKeyOutput

func (*UsagePlanKey) ToUsagePlanKeyOutputWithContext

func (i *UsagePlanKey) ToUsagePlanKeyOutputWithContext(ctx context.Context) UsagePlanKeyOutput

type UsagePlanKeyArgs

type UsagePlanKeyArgs struct {
	// Identifier of the API key resource.
	KeyId pulumi.StringInput
	// Type of the API key resource. Currently, the valid key type is API_KEY.
	KeyType pulumi.StringInput
	// Id of the usage plan resource representing to associate the key to.
	UsagePlanId pulumi.StringInput
}

The set of arguments for constructing a UsagePlanKey resource.

func (UsagePlanKeyArgs) ElementType

func (UsagePlanKeyArgs) ElementType() reflect.Type

type UsagePlanKeyArray

type UsagePlanKeyArray []UsagePlanKeyInput

func (UsagePlanKeyArray) ElementType

func (UsagePlanKeyArray) ElementType() reflect.Type

func (UsagePlanKeyArray) ToUsagePlanKeyArrayOutput

func (i UsagePlanKeyArray) ToUsagePlanKeyArrayOutput() UsagePlanKeyArrayOutput

func (UsagePlanKeyArray) ToUsagePlanKeyArrayOutputWithContext

func (i UsagePlanKeyArray) ToUsagePlanKeyArrayOutputWithContext(ctx context.Context) UsagePlanKeyArrayOutput

type UsagePlanKeyArrayInput

type UsagePlanKeyArrayInput interface {
	pulumi.Input

	ToUsagePlanKeyArrayOutput() UsagePlanKeyArrayOutput
	ToUsagePlanKeyArrayOutputWithContext(context.Context) UsagePlanKeyArrayOutput
}

UsagePlanKeyArrayInput is an input type that accepts UsagePlanKeyArray and UsagePlanKeyArrayOutput values. You can construct a concrete instance of `UsagePlanKeyArrayInput` via:

UsagePlanKeyArray{ UsagePlanKeyArgs{...} }

type UsagePlanKeyArrayOutput

type UsagePlanKeyArrayOutput struct{ *pulumi.OutputState }

func (UsagePlanKeyArrayOutput) ElementType

func (UsagePlanKeyArrayOutput) ElementType() reflect.Type

func (UsagePlanKeyArrayOutput) Index

func (UsagePlanKeyArrayOutput) ToUsagePlanKeyArrayOutput

func (o UsagePlanKeyArrayOutput) ToUsagePlanKeyArrayOutput() UsagePlanKeyArrayOutput

func (UsagePlanKeyArrayOutput) ToUsagePlanKeyArrayOutputWithContext

func (o UsagePlanKeyArrayOutput) ToUsagePlanKeyArrayOutputWithContext(ctx context.Context) UsagePlanKeyArrayOutput

type UsagePlanKeyInput

type UsagePlanKeyInput interface {
	pulumi.Input

	ToUsagePlanKeyOutput() UsagePlanKeyOutput
	ToUsagePlanKeyOutputWithContext(ctx context.Context) UsagePlanKeyOutput
}

type UsagePlanKeyMap

type UsagePlanKeyMap map[string]UsagePlanKeyInput

func (UsagePlanKeyMap) ElementType

func (UsagePlanKeyMap) ElementType() reflect.Type

func (UsagePlanKeyMap) ToUsagePlanKeyMapOutput

func (i UsagePlanKeyMap) ToUsagePlanKeyMapOutput() UsagePlanKeyMapOutput

func (UsagePlanKeyMap) ToUsagePlanKeyMapOutputWithContext

func (i UsagePlanKeyMap) ToUsagePlanKeyMapOutputWithContext(ctx context.Context) UsagePlanKeyMapOutput

type UsagePlanKeyMapInput

type UsagePlanKeyMapInput interface {
	pulumi.Input

	ToUsagePlanKeyMapOutput() UsagePlanKeyMapOutput
	ToUsagePlanKeyMapOutputWithContext(context.Context) UsagePlanKeyMapOutput
}

UsagePlanKeyMapInput is an input type that accepts UsagePlanKeyMap and UsagePlanKeyMapOutput values. You can construct a concrete instance of `UsagePlanKeyMapInput` via:

UsagePlanKeyMap{ "key": UsagePlanKeyArgs{...} }

type UsagePlanKeyMapOutput

type UsagePlanKeyMapOutput struct{ *pulumi.OutputState }

func (UsagePlanKeyMapOutput) ElementType

func (UsagePlanKeyMapOutput) ElementType() reflect.Type

func (UsagePlanKeyMapOutput) MapIndex

func (UsagePlanKeyMapOutput) ToUsagePlanKeyMapOutput

func (o UsagePlanKeyMapOutput) ToUsagePlanKeyMapOutput() UsagePlanKeyMapOutput

func (UsagePlanKeyMapOutput) ToUsagePlanKeyMapOutputWithContext

func (o UsagePlanKeyMapOutput) ToUsagePlanKeyMapOutputWithContext(ctx context.Context) UsagePlanKeyMapOutput

type UsagePlanKeyOutput

type UsagePlanKeyOutput struct{ *pulumi.OutputState }

func (UsagePlanKeyOutput) ElementType

func (UsagePlanKeyOutput) ElementType() reflect.Type

func (UsagePlanKeyOutput) KeyId

Identifier of the API key resource.

func (UsagePlanKeyOutput) KeyType

Type of the API key resource. Currently, the valid key type is API_KEY.

func (UsagePlanKeyOutput) Name

Name of a usage plan key.

func (UsagePlanKeyOutput) ToUsagePlanKeyOutput

func (o UsagePlanKeyOutput) ToUsagePlanKeyOutput() UsagePlanKeyOutput

func (UsagePlanKeyOutput) ToUsagePlanKeyOutputWithContext

func (o UsagePlanKeyOutput) ToUsagePlanKeyOutputWithContext(ctx context.Context) UsagePlanKeyOutput

func (UsagePlanKeyOutput) UsagePlanId

func (o UsagePlanKeyOutput) UsagePlanId() pulumi.StringOutput

Id of the usage plan resource representing to associate the key to.

func (UsagePlanKeyOutput) Value

Value of a usage plan key.

type UsagePlanKeyState

type UsagePlanKeyState struct {
	// Identifier of the API key resource.
	KeyId pulumi.StringPtrInput
	// Type of the API key resource. Currently, the valid key type is API_KEY.
	KeyType pulumi.StringPtrInput
	// Name of a usage plan key.
	Name pulumi.StringPtrInput
	// Id of the usage plan resource representing to associate the key to.
	UsagePlanId pulumi.StringPtrInput
	// Value of a usage plan key.
	Value pulumi.StringPtrInput
}

func (UsagePlanKeyState) ElementType

func (UsagePlanKeyState) ElementType() reflect.Type

type UsagePlanMap

type UsagePlanMap map[string]UsagePlanInput

func (UsagePlanMap) ElementType

func (UsagePlanMap) ElementType() reflect.Type

func (UsagePlanMap) ToUsagePlanMapOutput

func (i UsagePlanMap) ToUsagePlanMapOutput() UsagePlanMapOutput

func (UsagePlanMap) ToUsagePlanMapOutputWithContext

func (i UsagePlanMap) ToUsagePlanMapOutputWithContext(ctx context.Context) UsagePlanMapOutput

type UsagePlanMapInput

type UsagePlanMapInput interface {
	pulumi.Input

	ToUsagePlanMapOutput() UsagePlanMapOutput
	ToUsagePlanMapOutputWithContext(context.Context) UsagePlanMapOutput
}

UsagePlanMapInput is an input type that accepts UsagePlanMap and UsagePlanMapOutput values. You can construct a concrete instance of `UsagePlanMapInput` via:

UsagePlanMap{ "key": UsagePlanArgs{...} }

type UsagePlanMapOutput

type UsagePlanMapOutput struct{ *pulumi.OutputState }

func (UsagePlanMapOutput) ElementType

func (UsagePlanMapOutput) ElementType() reflect.Type

func (UsagePlanMapOutput) MapIndex

func (UsagePlanMapOutput) ToUsagePlanMapOutput

func (o UsagePlanMapOutput) ToUsagePlanMapOutput() UsagePlanMapOutput

func (UsagePlanMapOutput) ToUsagePlanMapOutputWithContext

func (o UsagePlanMapOutput) ToUsagePlanMapOutputWithContext(ctx context.Context) UsagePlanMapOutput

type UsagePlanOutput

type UsagePlanOutput struct{ *pulumi.OutputState }

func (UsagePlanOutput) ApiStages

Associated API stages of the usage plan.

func (UsagePlanOutput) Arn

ARN

func (UsagePlanOutput) Description

func (o UsagePlanOutput) Description() pulumi.StringPtrOutput

Description of a usage plan.

func (UsagePlanOutput) ElementType

func (UsagePlanOutput) ElementType() reflect.Type

func (UsagePlanOutput) Name

Name of the usage plan.

func (UsagePlanOutput) ProductCode

func (o UsagePlanOutput) ProductCode() pulumi.StringPtrOutput

AWS Marketplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.

func (UsagePlanOutput) QuotaSettings

The quota settings of the usage plan.

func (UsagePlanOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (UsagePlanOutput) TagsAll deprecated

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (UsagePlanOutput) ThrottleSettings

The throttling limits of the usage plan.

func (UsagePlanOutput) ToUsagePlanOutput

func (o UsagePlanOutput) ToUsagePlanOutput() UsagePlanOutput

func (UsagePlanOutput) ToUsagePlanOutputWithContext

func (o UsagePlanOutput) ToUsagePlanOutputWithContext(ctx context.Context) UsagePlanOutput

type UsagePlanQuotaSettings

type UsagePlanQuotaSettings struct {
	// Maximum number of requests that can be made in a given time period.
	Limit int `pulumi:"limit"`
	// Number of requests subtracted from the given limit in the initial time period.
	Offset *int `pulumi:"offset"`
	// Time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".
	Period string `pulumi:"period"`
}

type UsagePlanQuotaSettingsArgs

type UsagePlanQuotaSettingsArgs struct {
	// Maximum number of requests that can be made in a given time period.
	Limit pulumi.IntInput `pulumi:"limit"`
	// Number of requests subtracted from the given limit in the initial time period.
	Offset pulumi.IntPtrInput `pulumi:"offset"`
	// Time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".
	Period pulumi.StringInput `pulumi:"period"`
}

func (UsagePlanQuotaSettingsArgs) ElementType

func (UsagePlanQuotaSettingsArgs) ElementType() reflect.Type

func (UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsOutput

func (i UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsOutput() UsagePlanQuotaSettingsOutput

func (UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsOutputWithContext

func (i UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsOutputWithContext(ctx context.Context) UsagePlanQuotaSettingsOutput

func (UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsPtrOutput

func (i UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsPtrOutput() UsagePlanQuotaSettingsPtrOutput

func (UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsPtrOutputWithContext

func (i UsagePlanQuotaSettingsArgs) ToUsagePlanQuotaSettingsPtrOutputWithContext(ctx context.Context) UsagePlanQuotaSettingsPtrOutput

type UsagePlanQuotaSettingsInput

type UsagePlanQuotaSettingsInput interface {
	pulumi.Input

	ToUsagePlanQuotaSettingsOutput() UsagePlanQuotaSettingsOutput
	ToUsagePlanQuotaSettingsOutputWithContext(context.Context) UsagePlanQuotaSettingsOutput
}

UsagePlanQuotaSettingsInput is an input type that accepts UsagePlanQuotaSettingsArgs and UsagePlanQuotaSettingsOutput values. You can construct a concrete instance of `UsagePlanQuotaSettingsInput` via:

UsagePlanQuotaSettingsArgs{...}

type UsagePlanQuotaSettingsOutput

type UsagePlanQuotaSettingsOutput struct{ *pulumi.OutputState }

func (UsagePlanQuotaSettingsOutput) ElementType

func (UsagePlanQuotaSettingsOutput) Limit

Maximum number of requests that can be made in a given time period.

func (UsagePlanQuotaSettingsOutput) Offset

Number of requests subtracted from the given limit in the initial time period.

func (UsagePlanQuotaSettingsOutput) Period

Time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".

func (UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsOutput

func (o UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsOutput() UsagePlanQuotaSettingsOutput

func (UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsOutputWithContext

func (o UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsOutputWithContext(ctx context.Context) UsagePlanQuotaSettingsOutput

func (UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsPtrOutput

func (o UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsPtrOutput() UsagePlanQuotaSettingsPtrOutput

func (UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsPtrOutputWithContext

func (o UsagePlanQuotaSettingsOutput) ToUsagePlanQuotaSettingsPtrOutputWithContext(ctx context.Context) UsagePlanQuotaSettingsPtrOutput

type UsagePlanQuotaSettingsPtrInput

type UsagePlanQuotaSettingsPtrInput interface {
	pulumi.Input

	ToUsagePlanQuotaSettingsPtrOutput() UsagePlanQuotaSettingsPtrOutput
	ToUsagePlanQuotaSettingsPtrOutputWithContext(context.Context) UsagePlanQuotaSettingsPtrOutput
}

UsagePlanQuotaSettingsPtrInput is an input type that accepts UsagePlanQuotaSettingsArgs, UsagePlanQuotaSettingsPtr and UsagePlanQuotaSettingsPtrOutput values. You can construct a concrete instance of `UsagePlanQuotaSettingsPtrInput` via:

        UsagePlanQuotaSettingsArgs{...}

or:

        nil

type UsagePlanQuotaSettingsPtrOutput

type UsagePlanQuotaSettingsPtrOutput struct{ *pulumi.OutputState }

func (UsagePlanQuotaSettingsPtrOutput) Elem

func (UsagePlanQuotaSettingsPtrOutput) ElementType

func (UsagePlanQuotaSettingsPtrOutput) Limit

Maximum number of requests that can be made in a given time period.

func (UsagePlanQuotaSettingsPtrOutput) Offset

Number of requests subtracted from the given limit in the initial time period.

func (UsagePlanQuotaSettingsPtrOutput) Period

Time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".

func (UsagePlanQuotaSettingsPtrOutput) ToUsagePlanQuotaSettingsPtrOutput

func (o UsagePlanQuotaSettingsPtrOutput) ToUsagePlanQuotaSettingsPtrOutput() UsagePlanQuotaSettingsPtrOutput

func (UsagePlanQuotaSettingsPtrOutput) ToUsagePlanQuotaSettingsPtrOutputWithContext

func (o UsagePlanQuotaSettingsPtrOutput) ToUsagePlanQuotaSettingsPtrOutputWithContext(ctx context.Context) UsagePlanQuotaSettingsPtrOutput

type UsagePlanState

type UsagePlanState struct {
	// Associated API stages of the usage plan.
	ApiStages UsagePlanApiStageArrayInput
	// ARN
	Arn pulumi.StringPtrInput
	// Description of a usage plan.
	Description pulumi.StringPtrInput
	// Name of the usage plan.
	Name pulumi.StringPtrInput
	// AWS Marketplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.
	ProductCode pulumi.StringPtrInput
	// The quota settings of the usage plan.
	QuotaSettings UsagePlanQuotaSettingsPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
	// The throttling limits of the usage plan.
	ThrottleSettings UsagePlanThrottleSettingsPtrInput
}

func (UsagePlanState) ElementType

func (UsagePlanState) ElementType() reflect.Type

type UsagePlanThrottleSettings

type UsagePlanThrottleSettings struct {
	// The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.
	BurstLimit *int `pulumi:"burstLimit"`
	// The API request steady-state rate limit.
	RateLimit *float64 `pulumi:"rateLimit"`
}

type UsagePlanThrottleSettingsArgs

type UsagePlanThrottleSettingsArgs struct {
	// The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.
	BurstLimit pulumi.IntPtrInput `pulumi:"burstLimit"`
	// The API request steady-state rate limit.
	RateLimit pulumi.Float64PtrInput `pulumi:"rateLimit"`
}

func (UsagePlanThrottleSettingsArgs) ElementType

func (UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsOutput

func (i UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsOutput() UsagePlanThrottleSettingsOutput

func (UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsOutputWithContext

func (i UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsOutputWithContext(ctx context.Context) UsagePlanThrottleSettingsOutput

func (UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsPtrOutput

func (i UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsPtrOutput() UsagePlanThrottleSettingsPtrOutput

func (UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsPtrOutputWithContext

func (i UsagePlanThrottleSettingsArgs) ToUsagePlanThrottleSettingsPtrOutputWithContext(ctx context.Context) UsagePlanThrottleSettingsPtrOutput

type UsagePlanThrottleSettingsInput

type UsagePlanThrottleSettingsInput interface {
	pulumi.Input

	ToUsagePlanThrottleSettingsOutput() UsagePlanThrottleSettingsOutput
	ToUsagePlanThrottleSettingsOutputWithContext(context.Context) UsagePlanThrottleSettingsOutput
}

UsagePlanThrottleSettingsInput is an input type that accepts UsagePlanThrottleSettingsArgs and UsagePlanThrottleSettingsOutput values. You can construct a concrete instance of `UsagePlanThrottleSettingsInput` via:

UsagePlanThrottleSettingsArgs{...}

type UsagePlanThrottleSettingsOutput

type UsagePlanThrottleSettingsOutput struct{ *pulumi.OutputState }

func (UsagePlanThrottleSettingsOutput) BurstLimit

The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.

func (UsagePlanThrottleSettingsOutput) ElementType

func (UsagePlanThrottleSettingsOutput) RateLimit

The API request steady-state rate limit.

func (UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsOutput

func (o UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsOutput() UsagePlanThrottleSettingsOutput

func (UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsOutputWithContext

func (o UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsOutputWithContext(ctx context.Context) UsagePlanThrottleSettingsOutput

func (UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsPtrOutput

func (o UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsPtrOutput() UsagePlanThrottleSettingsPtrOutput

func (UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsPtrOutputWithContext

func (o UsagePlanThrottleSettingsOutput) ToUsagePlanThrottleSettingsPtrOutputWithContext(ctx context.Context) UsagePlanThrottleSettingsPtrOutput

type UsagePlanThrottleSettingsPtrInput

type UsagePlanThrottleSettingsPtrInput interface {
	pulumi.Input

	ToUsagePlanThrottleSettingsPtrOutput() UsagePlanThrottleSettingsPtrOutput
	ToUsagePlanThrottleSettingsPtrOutputWithContext(context.Context) UsagePlanThrottleSettingsPtrOutput
}

UsagePlanThrottleSettingsPtrInput is an input type that accepts UsagePlanThrottleSettingsArgs, UsagePlanThrottleSettingsPtr and UsagePlanThrottleSettingsPtrOutput values. You can construct a concrete instance of `UsagePlanThrottleSettingsPtrInput` via:

        UsagePlanThrottleSettingsArgs{...}

or:

        nil

type UsagePlanThrottleSettingsPtrOutput

type UsagePlanThrottleSettingsPtrOutput struct{ *pulumi.OutputState }

func (UsagePlanThrottleSettingsPtrOutput) BurstLimit

The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.

func (UsagePlanThrottleSettingsPtrOutput) Elem

func (UsagePlanThrottleSettingsPtrOutput) ElementType

func (UsagePlanThrottleSettingsPtrOutput) RateLimit

The API request steady-state rate limit.

func (UsagePlanThrottleSettingsPtrOutput) ToUsagePlanThrottleSettingsPtrOutput

func (o UsagePlanThrottleSettingsPtrOutput) ToUsagePlanThrottleSettingsPtrOutput() UsagePlanThrottleSettingsPtrOutput

func (UsagePlanThrottleSettingsPtrOutput) ToUsagePlanThrottleSettingsPtrOutputWithContext

func (o UsagePlanThrottleSettingsPtrOutput) ToUsagePlanThrottleSettingsPtrOutputWithContext(ctx context.Context) UsagePlanThrottleSettingsPtrOutput
type VpcLink struct {
	pulumi.CustomResourceState

	Arn pulumi.StringOutput `pulumi:"arn"`
	// Description of the VPC link.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Name used to label and identify the VPC link.
	Name pulumi.StringOutput `pulumi:"name"`
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target.
	TargetArn pulumi.StringOutput `pulumi:"targetArn"`
}

Provides an API Gateway VPC Link.

> **Note:** Amazon API Gateway Version 1 VPC Links enable private integrations that connect REST APIs to private resources in a VPC. To enable private integration for HTTP APIs, use the Amazon API Gateway Version 2 VPC Link resource.

## Example Usage

<!--Start PulumiCodeChooser --> ```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := lb.NewLoadBalancer(ctx, "example", &lb.LoadBalancerArgs{
			Name:             pulumi.String("example"),
			Internal:         pulumi.Bool(true),
			LoadBalancerType: pulumi.String("network"),
			SubnetMappings: lb.LoadBalancerSubnetMappingArray{
				&lb.LoadBalancerSubnetMappingArgs{
					SubnetId: pulumi.String("12345"),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = apigateway.NewVpcLink(ctx, "example", &apigateway.VpcLinkArgs{
			Name:        pulumi.String("example"),
			Description: pulumi.String("example description"),
			TargetArn:   example.Arn,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` <!--End PulumiCodeChooser -->

## Import

Using `pulumi import`, import API Gateway VPC Link using the `id`. For example:

```sh $ pulumi import aws:apigateway/vpcLink:VpcLink example 12345abcde ```

func GetVpcLink(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VpcLinkState, opts ...pulumi.ResourceOption) (*VpcLink, error)

GetVpcLink gets an existing VpcLink resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVpcLink(ctx *pulumi.Context,
	name string, args *VpcLinkArgs, opts ...pulumi.ResourceOption) (*VpcLink, error)

NewVpcLink registers a new resource with the given unique name, arguments, and options.

func (*VpcLink) ElementType

func (*VpcLink) ElementType() reflect.Type

func (*VpcLink) ToVpcLinkOutput

func (i *VpcLink) ToVpcLinkOutput() VpcLinkOutput

func (*VpcLink) ToVpcLinkOutputWithContext

func (i *VpcLink) ToVpcLinkOutputWithContext(ctx context.Context) VpcLinkOutput

type VpcLinkArgs

type VpcLinkArgs struct {
	// Description of the VPC link.
	Description pulumi.StringPtrInput
	// Name used to label and identify the VPC link.
	Name pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target.
	TargetArn pulumi.StringInput
}

The set of arguments for constructing a VpcLink resource.

func (VpcLinkArgs) ElementType

func (VpcLinkArgs) ElementType() reflect.Type

type VpcLinkArray

type VpcLinkArray []VpcLinkInput

func (VpcLinkArray) ElementType

func (VpcLinkArray) ElementType() reflect.Type

func (VpcLinkArray) ToVpcLinkArrayOutput

func (i VpcLinkArray) ToVpcLinkArrayOutput() VpcLinkArrayOutput

func (VpcLinkArray) ToVpcLinkArrayOutputWithContext

func (i VpcLinkArray) ToVpcLinkArrayOutputWithContext(ctx context.Context) VpcLinkArrayOutput

type VpcLinkArrayInput

type VpcLinkArrayInput interface {
	pulumi.Input

	ToVpcLinkArrayOutput() VpcLinkArrayOutput
	ToVpcLinkArrayOutputWithContext(context.Context) VpcLinkArrayOutput
}

VpcLinkArrayInput is an input type that accepts VpcLinkArray and VpcLinkArrayOutput values. You can construct a concrete instance of `VpcLinkArrayInput` via:

VpcLinkArray{ VpcLinkArgs{...} }

type VpcLinkArrayOutput

type VpcLinkArrayOutput struct{ *pulumi.OutputState }

func (VpcLinkArrayOutput) ElementType

func (VpcLinkArrayOutput) ElementType() reflect.Type

func (VpcLinkArrayOutput) Index

func (VpcLinkArrayOutput) ToVpcLinkArrayOutput

func (o VpcLinkArrayOutput) ToVpcLinkArrayOutput() VpcLinkArrayOutput

func (VpcLinkArrayOutput) ToVpcLinkArrayOutputWithContext

func (o VpcLinkArrayOutput) ToVpcLinkArrayOutputWithContext(ctx context.Context) VpcLinkArrayOutput

type VpcLinkInput

type VpcLinkInput interface {
	pulumi.Input

	ToVpcLinkOutput() VpcLinkOutput
	ToVpcLinkOutputWithContext(ctx context.Context) VpcLinkOutput
}

type VpcLinkMap

type VpcLinkMap map[string]VpcLinkInput

func (VpcLinkMap) ElementType

func (VpcLinkMap) ElementType() reflect.Type

func (VpcLinkMap) ToVpcLinkMapOutput

func (i VpcLinkMap) ToVpcLinkMapOutput() VpcLinkMapOutput

func (VpcLinkMap) ToVpcLinkMapOutputWithContext

func (i VpcLinkMap) ToVpcLinkMapOutputWithContext(ctx context.Context) VpcLinkMapOutput

type VpcLinkMapInput

type VpcLinkMapInput interface {
	pulumi.Input

	ToVpcLinkMapOutput() VpcLinkMapOutput
	ToVpcLinkMapOutputWithContext(context.Context) VpcLinkMapOutput
}

VpcLinkMapInput is an input type that accepts VpcLinkMap and VpcLinkMapOutput values. You can construct a concrete instance of `VpcLinkMapInput` via:

VpcLinkMap{ "key": VpcLinkArgs{...} }

type VpcLinkMapOutput

type VpcLinkMapOutput struct{ *pulumi.OutputState }

func (VpcLinkMapOutput) ElementType

func (VpcLinkMapOutput) ElementType() reflect.Type

func (VpcLinkMapOutput) MapIndex

func (VpcLinkMapOutput) ToVpcLinkMapOutput

func (o VpcLinkMapOutput) ToVpcLinkMapOutput() VpcLinkMapOutput

func (VpcLinkMapOutput) ToVpcLinkMapOutputWithContext

func (o VpcLinkMapOutput) ToVpcLinkMapOutputWithContext(ctx context.Context) VpcLinkMapOutput

type VpcLinkOutput

type VpcLinkOutput struct{ *pulumi.OutputState }

func (VpcLinkOutput) Arn

func (VpcLinkOutput) Description

func (o VpcLinkOutput) Description() pulumi.StringPtrOutput

Description of the VPC link.

func (VpcLinkOutput) ElementType

func (VpcLinkOutput) ElementType() reflect.Type

func (VpcLinkOutput) Name

Name used to label and identify the VPC link.

func (VpcLinkOutput) Tags

Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.

func (VpcLinkOutput) TagsAll deprecated

func (o VpcLinkOutput) TagsAll() pulumi.StringMapOutput

Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.

Deprecated: Please use `tags` instead.

func (VpcLinkOutput) TargetArn

func (o VpcLinkOutput) TargetArn() pulumi.StringOutput

List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target.

func (VpcLinkOutput) ToVpcLinkOutput

func (o VpcLinkOutput) ToVpcLinkOutput() VpcLinkOutput

func (VpcLinkOutput) ToVpcLinkOutputWithContext

func (o VpcLinkOutput) ToVpcLinkOutputWithContext(ctx context.Context) VpcLinkOutput

type VpcLinkState

type VpcLinkState struct {
	Arn pulumi.StringPtrInput
	// Description of the VPC link.
	Description pulumi.StringPtrInput
	// Name used to label and identify the VPC link.
	Name pulumi.StringPtrInput
	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	//
	// Deprecated: Please use `tags` instead.
	TagsAll pulumi.StringMapInput
	// List of network load balancer arns in the VPC targeted by the VPC link. Currently AWS only supports 1 target.
	TargetArn pulumi.StringPtrInput
}

func (VpcLinkState) ElementType

func (VpcLinkState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL