

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# Amazon API Gateway V2
<a name="AWS_ApiGatewayV2"></a>

**Resource types**
+ [AWS::ApiGatewayV2::Api](aws-resource-apigatewayv2-api.md)
+ [AWS::ApiGatewayV2::ApiGatewayManagedOverrides](aws-resource-apigatewayv2-apigatewaymanagedoverrides.md)
+ [AWS::ApiGatewayV2::ApiMapping](aws-resource-apigatewayv2-apimapping.md)
+ [AWS::ApiGatewayV2::Authorizer](aws-resource-apigatewayv2-authorizer.md)
+ [AWS::ApiGatewayV2::Deployment](aws-resource-apigatewayv2-deployment.md)
+ [AWS::ApiGatewayV2::DomainName](aws-resource-apigatewayv2-domainname.md)
+ [AWS::ApiGatewayV2::Integration](aws-resource-apigatewayv2-integration.md)
+ [AWS::ApiGatewayV2::IntegrationResponse](aws-resource-apigatewayv2-integrationresponse.md)
+ [AWS::ApiGatewayV2::Model](aws-resource-apigatewayv2-model.md)
+ [AWS::ApiGatewayV2::Route](aws-resource-apigatewayv2-route.md)
+ [AWS::ApiGatewayV2::RouteResponse](aws-resource-apigatewayv2-routeresponse.md)
+ [AWS::ApiGatewayV2::RoutingRule](aws-resource-apigatewayv2-routingrule.md)
+ [AWS::ApiGatewayV2::Stage](aws-resource-apigatewayv2-stage.md)
+ [AWS::ApiGatewayV2::VpcLink](aws-resource-apigatewayv2-vpclink.md)

# AWS::ApiGatewayV2::Api
<a name="aws-resource-apigatewayv2-api"></a>

The `AWS::ApiGatewayV2::Api` resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.*

## Syntax
<a name="aws-resource-apigatewayv2-api-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-api-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Api",
  "Properties" : {
      "[ApiKeySelectionExpression](#cfn-apigatewayv2-api-apikeyselectionexpression)" : String,
      "[BasePath](#cfn-apigatewayv2-api-basepath)" : String,
      "[Body](#cfn-apigatewayv2-api-body)" : Json,
      "[BodyS3Location](#cfn-apigatewayv2-api-bodys3location)" : BodyS3Location,
      "[CorsConfiguration](#cfn-apigatewayv2-api-corsconfiguration)" : Cors,
      "[CredentialsArn](#cfn-apigatewayv2-api-credentialsarn)" : String,
      "[Description](#cfn-apigatewayv2-api-description)" : String,
      "[DisableExecuteApiEndpoint](#cfn-apigatewayv2-api-disableexecuteapiendpoint)" : Boolean,
      "[DisableSchemaValidation](#cfn-apigatewayv2-api-disableschemavalidation)" : Boolean,
      "[FailOnWarnings](#cfn-apigatewayv2-api-failonwarnings)" : Boolean,
      "[IpAddressType](#cfn-apigatewayv2-api-ipaddresstype)" : String,
      "[Name](#cfn-apigatewayv2-api-name)" : String,
      "[ProtocolType](#cfn-apigatewayv2-api-protocoltype)" : String,
      "[RouteKey](#cfn-apigatewayv2-api-routekey)" : String,
      "[RouteSelectionExpression](#cfn-apigatewayv2-api-routeselectionexpression)" : String,
      "[Tags](#cfn-apigatewayv2-api-tags)" : {Key: Value, ...},
      "[Target](#cfn-apigatewayv2-api-target)" : String,
      "[Version](#cfn-apigatewayv2-api-version)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-api-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Api
Properties:
  [ApiKeySelectionExpression](#cfn-apigatewayv2-api-apikeyselectionexpression): String
  [BasePath](#cfn-apigatewayv2-api-basepath): String
  [Body](#cfn-apigatewayv2-api-body): Json
  [BodyS3Location](#cfn-apigatewayv2-api-bodys3location): 
    BodyS3Location
  [CorsConfiguration](#cfn-apigatewayv2-api-corsconfiguration): 
    Cors
  [CredentialsArn](#cfn-apigatewayv2-api-credentialsarn): String
  [Description](#cfn-apigatewayv2-api-description): String
  [DisableExecuteApiEndpoint](#cfn-apigatewayv2-api-disableexecuteapiendpoint): Boolean
  [DisableSchemaValidation](#cfn-apigatewayv2-api-disableschemavalidation): Boolean
  [FailOnWarnings](#cfn-apigatewayv2-api-failonwarnings): Boolean
  [IpAddressType](#cfn-apigatewayv2-api-ipaddresstype): String
  [Name](#cfn-apigatewayv2-api-name): String
  [ProtocolType](#cfn-apigatewayv2-api-protocoltype): String
  [RouteKey](#cfn-apigatewayv2-api-routekey): String
  [RouteSelectionExpression](#cfn-apigatewayv2-api-routeselectionexpression): String
  [Tags](#cfn-apigatewayv2-api-tags): 
    Key: Value
  [Target](#cfn-apigatewayv2-api-target): String
  [Version](#cfn-apigatewayv2-api-version): String
```

## Properties
<a name="aws-resource-apigatewayv2-api-properties"></a>

`ApiKeySelectionExpression`  <a name="cfn-apigatewayv2-api-apikeyselectionexpression"></a>
An API key selection expression. Supported only for WebSocket APIs. See [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BasePath`  <a name="cfn-apigatewayv2-api-basepath"></a>
Specifies how to interpret the base path of the API during import. Valid values are `ignore`, `prepend`, and `split`. The default value is `ignore`. To learn more, see [Set the OpenAPI basePath Property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html). Supported only for HTTP APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Body`  <a name="cfn-apigatewayv2-api-body"></a>
The OpenAPI definition. Supported only for HTTP APIs. To import an HTTP API, you must specify a `Body` or `BodyS3Location`. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources.   
*Required*: Conditional  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BodyS3Location`  <a name="cfn-apigatewayv2-api-bodys3location"></a>
The S3 location of an OpenAPI definition. Supported only for HTTP APIs. To import an HTTP API, you must specify a `Body` or `BodyS3Location`. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources.  
*Required*: Conditional  
*Type*: [BodyS3Location](aws-properties-apigatewayv2-api-bodys3location.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CorsConfiguration`  <a name="cfn-apigatewayv2-api-corsconfiguration"></a>
A CORS configuration. Supported only for HTTP APIs. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information.  
*Required*: No  
*Type*: [Cors](aws-properties-apigatewayv2-api-cors.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CredentialsArn`  <a name="cfn-apigatewayv2-api-credentialsarn"></a>
This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify `arn:aws:iam::*:user/*`. To use resource-based permissions on supported AWS services, specify `null`. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-apigatewayv2-api-description"></a>
The description of the API.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DisableExecuteApiEndpoint`  <a name="cfn-apigatewayv2-api-disableexecuteapiendpoint"></a>
Specifies whether clients can invoke your API by using the default `execute-api` endpoint. By default, clients can invoke your API with the default https://\$1api\$1id\$1.execute-api.\$1region\$1.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DisableSchemaValidation`  <a name="cfn-apigatewayv2-api-disableschemavalidation"></a>
Avoid validating models when creating a deployment. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`FailOnWarnings`  <a name="cfn-apigatewayv2-api-failonwarnings"></a>
Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IpAddressType`  <a name="cfn-apigatewayv2-api-ipaddresstype"></a>
The IP address types that can invoke the API. Use `ipv4` to allow only IPv4 addresses to invoke your API, or use `dualstack` to allow both IPv4 and IPv6 addresses to invoke your API.  
Don’t use IP address type for an HTTP API based on an OpenAPI specification. Instead, specify the IP address type in the OpenAPI specification.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-apigatewayv2-api-name"></a>
The name of the API. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ProtocolType`  <a name="cfn-apigatewayv2-api-protocoltype"></a>
The API protocol. Valid values are `WEBSOCKET` or `HTTP`. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RouteKey`  <a name="cfn-apigatewayv2-api-routekey"></a>
This property is part of quick create. If you don't specify a `routeKey`, a default route of `$default` is created. The `$default` route acts as a catch-all for any request made to your API, for a particular stage. The `$default` route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteSelectionExpression`  <a name="cfn-apigatewayv2-api-routeselectionexpression"></a>
The route selection expression for the API. For HTTP APIs, the `routeSelectionExpression` must be `${request.method} ${request.path}`. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-apigatewayv2-api-tags"></a>
The collection of tags. Each tag element is associated with a given resource.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Target`  <a name="cfn-apigatewayv2-api-target"></a>
This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP\$1PROXY or AWS\$1PROXY, respectively. Supported only for HTTP APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Version`  <a name="cfn-apigatewayv2-api-version"></a>
A version identifier for the API.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-api-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-api-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the API ID, such as `a1bcdef2gh`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-api-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-api-return-values-fn--getatt-fn--getatt"></a>

`ApiEndpoint`  <a name="ApiEndpoint-fn::getatt"></a>
The default endpoint for an API. For example: `https://abcdef.execute-api.us-west-2.amazonaws.com`.

`ApiId`  <a name="ApiId-fn::getatt"></a>
The API identifier.

## Examples
<a name="aws-resource-apigatewayv2-api--examples"></a>



**Topics**
+ [API creation example](#aws-resource-apigatewayv2-api--examples--API_creation_example)
+ [Quick create HTTP API](#aws-resource-apigatewayv2-api--examples--Quick_create_HTTP_API)

### API creation example
<a name="aws-resource-apigatewayv2-api--examples--API_creation_example"></a>

The following example creates a WebSocket `Api` resource called `MyApi`.

#### JSON
<a name="aws-resource-apigatewayv2-api--examples--API_creation_example--json"></a>

```
{
    "MyApi": {
      "Type": "AWS::ApiGatewayV2::Api",
      "Properties": {
        "Name": "MyApi",
        "ProtocolType": "WEBSOCKET",
        "RouteSelectionExpression": "$request.body.action",
        "ApiKeySelectionExpression": "$request.header.x-api-key"
      }
   }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-api--examples--API_creation_example--yaml"></a>

```
MyApi:
  Type: 'AWS::ApiGatewayV2::Api'
  Properties:
    Name: MyApi
    ProtocolType: WEBSOCKET
    RouteSelectionExpression: $request.body.action
    ApiKeySelectionExpression: $request.header.x-api-key
```

### Quick create HTTP API
<a name="aws-resource-apigatewayv2-api--examples--Quick_create_HTTP_API"></a>

The following example uses quick create to launch an HTTP API `Api` resource called `HttpApi` that's integrated with a Lambda function. Quick create produces an HTTP API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes.

**Note**  
To invoke a Lambda integration, API Gateway must have the required permissions. You can use a resource-based policy or an IAM role to grant API Gateway permissions to invoke a Lambda function. To learn more, see [AWS Lambda Permissions](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) in the *AWS Lambda Developer Guide*.

#### JSON
<a name="aws-resource-apigatewayv2-api--examples--Quick_create_HTTP_API--json"></a>

```
"HttpApi": {
    "Type": "AWS::ApiGatewayV2::Api",
    "Properties": {
        "Name": "Lambda Proxy",
        "Description": "Lambda proxy using quick create",
        "ProtocolType": "HTTP",
        "Target": "arn:aws:apigateway:{region}:lambda:path/2015-03-31/functions/arn:aws:lambda:{region}:{account-id}:function:{function-name}/invocations"
     }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-api--examples--Quick_create_HTTP_API--yaml"></a>

```
HttpApi:
  Type: AWS::ApiGatewayV2::Api
  Properties:
    Name: Lambda Proxy
    Description: Lambda proxy using quick create
    ProtocolType: HTTP
    Target: arn:aws:apigateway:{region}:lambda:path/2015-03-31/functions/arn:aws:lambda:{region}:{account-id}:function:{function-name}/invocations
```

## See also
<a name="aws-resource-apigatewayv2-api--seealso"></a>
+ [CreateApi](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#CreateApi) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Api BodyS3Location
<a name="aws-properties-apigatewayv2-api-bodys3location"></a>

The `BodyS3Location` property specifies an S3 location from which to import an OpenAPI definition. Supported only for HTTP APIs.

## Syntax
<a name="aws-properties-apigatewayv2-api-bodys3location-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-api-bodys3location-syntax.json"></a>

```
{
  "[Bucket](#cfn-apigatewayv2-api-bodys3location-bucket)" : String,
  "[Etag](#cfn-apigatewayv2-api-bodys3location-etag)" : String,
  "[Key](#cfn-apigatewayv2-api-bodys3location-key)" : String,
  "[Version](#cfn-apigatewayv2-api-bodys3location-version)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-api-bodys3location-syntax.yaml"></a>

```
  [Bucket](#cfn-apigatewayv2-api-bodys3location-bucket): String
  [Etag](#cfn-apigatewayv2-api-bodys3location-etag): String
  [Key](#cfn-apigatewayv2-api-bodys3location-key): String
  [Version](#cfn-apigatewayv2-api-bodys3location-version): String
```

## Properties
<a name="aws-properties-apigatewayv2-api-bodys3location-properties"></a>

`Bucket`  <a name="cfn-apigatewayv2-api-bodys3location-bucket"></a>
The S3 bucket that contains the OpenAPI definition to import. Required if you specify a `BodyS3Location` for an API.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Etag`  <a name="cfn-apigatewayv2-api-bodys3location-etag"></a>
The Etag of the S3 object.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Key`  <a name="cfn-apigatewayv2-api-bodys3location-key"></a>
The key of the S3 object. Required if you specify a `BodyS3Location` for an API.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Version`  <a name="cfn-apigatewayv2-api-bodys3location-version"></a>
The version of the S3 object.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::Api Cors
<a name="aws-properties-apigatewayv2-api-cors"></a>

The `Cors` property specifies a CORS configuration for an API. Supported only for HTTP APIs. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information.

## Syntax
<a name="aws-properties-apigatewayv2-api-cors-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-api-cors-syntax.json"></a>

```
{
  "[AllowCredentials](#cfn-apigatewayv2-api-cors-allowcredentials)" : Boolean,
  "[AllowHeaders](#cfn-apigatewayv2-api-cors-allowheaders)" : [ String, ... ],
  "[AllowMethods](#cfn-apigatewayv2-api-cors-allowmethods)" : [ String, ... ],
  "[AllowOrigins](#cfn-apigatewayv2-api-cors-alloworigins)" : [ String, ... ],
  "[ExposeHeaders](#cfn-apigatewayv2-api-cors-exposeheaders)" : [ String, ... ],
  "[MaxAge](#cfn-apigatewayv2-api-cors-maxage)" : Integer
}
```

### YAML
<a name="aws-properties-apigatewayv2-api-cors-syntax.yaml"></a>

```
  [AllowCredentials](#cfn-apigatewayv2-api-cors-allowcredentials): Boolean
  [AllowHeaders](#cfn-apigatewayv2-api-cors-allowheaders): 
    - String
  [AllowMethods](#cfn-apigatewayv2-api-cors-allowmethods): 
    - String
  [AllowOrigins](#cfn-apigatewayv2-api-cors-alloworigins): 
    - String
  [ExposeHeaders](#cfn-apigatewayv2-api-cors-exposeheaders): 
    - String
  [MaxAge](#cfn-apigatewayv2-api-cors-maxage): Integer
```

## Properties
<a name="aws-properties-apigatewayv2-api-cors-properties"></a>

`AllowCredentials`  <a name="cfn-apigatewayv2-api-cors-allowcredentials"></a>
Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AllowHeaders`  <a name="cfn-apigatewayv2-api-cors-allowheaders"></a>
Represents a collection of allowed headers. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AllowMethods`  <a name="cfn-apigatewayv2-api-cors-allowmethods"></a>
Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AllowOrigins`  <a name="cfn-apigatewayv2-api-cors-alloworigins"></a>
Represents a collection of allowed origins. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExposeHeaders`  <a name="cfn-apigatewayv2-api-cors-exposeheaders"></a>
Represents a collection of exposed headers. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MaxAge`  <a name="cfn-apigatewayv2-api-cors-maxage"></a>
The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::ApiGatewayManagedOverrides
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides"></a>

The `AWS::ApiGatewayV2::ApiGatewayManagedOverrides` resource overrides the default properties of API Gateway-managed resources that are implicitly configured for you when you use quick create. When you create an API by using quick create, an `AWS::ApiGatewayV2::Route`, `AWS::ApiGatewayV2::Integration`, and `AWS::ApiGatewayV2::Stage` are created for you and associated with your `AWS::ApiGatewayV2::Api`. The `AWS::ApiGatewayV2::ApiGatewayManagedOverrides` resource enables you to set, or override the properties of these implicit resources. Supported only for HTTP APIs.

## Syntax
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::ApiGatewayManagedOverrides",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-apigatewaymanagedoverrides-apiid)" : String,
      "[Integration](#cfn-apigatewayv2-apigatewaymanagedoverrides-integration)" : IntegrationOverrides,
      "[Route](#cfn-apigatewayv2-apigatewaymanagedoverrides-route)" : RouteOverrides,
      "[Stage](#cfn-apigatewayv2-apigatewaymanagedoverrides-stage)" : StageOverrides
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::ApiGatewayManagedOverrides
Properties:
  [ApiId](#cfn-apigatewayv2-apigatewaymanagedoverrides-apiid): String
  [Integration](#cfn-apigatewayv2-apigatewaymanagedoverrides-integration): 
    IntegrationOverrides
  [Route](#cfn-apigatewayv2-apigatewaymanagedoverrides-route): 
    RouteOverrides
  [Stage](#cfn-apigatewayv2-apigatewaymanagedoverrides-stage): 
    StageOverrides
```

## Properties
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-apiid"></a>
The ID of the API for which to override the configuration of API Gateway-managed resources.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Integration`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-integration"></a>
Overrides the integration configuration for an API Gateway-managed integration.  
*Required*: No  
*Type*: [IntegrationOverrides](aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Route`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-route"></a>
Overrides the route configuration for an API Gateway-managed route.  
*Required*: No  
*Type*: [RouteOverrides](aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Stage`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stage"></a>
Overrides the stage configuration for an API Gateway-managed stage.  
*Required*: No  
*Type*: [StageOverrides](aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-return-values"></a>

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-apigatewayv2-apigatewaymanagedoverrides-return-values-fn--getatt-fn--getatt"></a>

`Id`  <a name="Id-fn::getatt"></a>
The identifier.

# AWS::ApiGatewayV2::ApiGatewayManagedOverrides AccessLogSettings
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings"></a>

The `AccessLogSettings` property overrides the access log settings for an API Gateway-managed stage.

## Syntax
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-syntax.json"></a>

```
{
  "[DestinationArn](#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-destinationarn)" : String,
  "[Format](#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-format)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-syntax.yaml"></a>

```
  [DestinationArn](#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-destinationarn): String
  [Format](#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-format): String
```

## Properties
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-properties"></a>

`DestinationArn`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-destinationarn"></a>
The ARN of the CloudWatch Logs log group to receive access logs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Format`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-format"></a>
A single line format of the access logs of data, as specified by selected \$1context variables. The format must include at least \$1context.requestId.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::ApiGatewayManagedOverrides IntegrationOverrides
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides"></a>

The `IntegrationOverrides` property overrides the integration settings for an API Gateway-managed integration. If you remove this property, API Gateway restores the default values.

## Syntax
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-syntax.json"></a>

```
{
  "[Description](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-description)" : String,
  "[IntegrationMethod](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-integrationmethod)" : String,
  "[PayloadFormatVersion](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-payloadformatversion)" : String,
  "[TimeoutInMillis](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-timeoutinmillis)" : Integer
}
```

### YAML
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-syntax.yaml"></a>

```
  [Description](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-description): String
  [IntegrationMethod](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-integrationmethod): String
  [PayloadFormatVersion](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-payloadformatversion): String
  [TimeoutInMillis](#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-timeoutinmillis): Integer
```

## Properties
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-properties"></a>

`Description`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-description"></a>
The description of the integration.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegrationMethod`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-integrationmethod"></a>
Specifies the integration's HTTP method type. For WebSocket APIs, if you use a Lambda integration, you must set the integration method to `POST`.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PayloadFormatVersion`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-payloadformatversion"></a>
Specifies the format of the payload sent to an integration. Required for HTTP APIs. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`. For all other integrations, `1.0` is the only supported value. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TimeoutInMillis`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-timeoutinmillis"></a>
Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::ApiGatewayManagedOverrides RouteOverrides
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides"></a>

The `RouteOverrides` property overrides the route configuration for an API Gateway-managed route. If you remove this property, API Gateway restores the default values.

## Syntax
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-syntax.json"></a>

```
{
  "[AuthorizationScopes](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationscopes)" : [ String, ... ],
  "[AuthorizationType](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationtype)" : String,
  "[AuthorizerId](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizerid)" : String,
  "[OperationName](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-operationname)" : String,
  "[Target](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-target)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-syntax.yaml"></a>

```
  [AuthorizationScopes](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationscopes): 
    - String
  [AuthorizationType](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationtype): String
  [AuthorizerId](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizerid): String
  [OperationName](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-operationname): String
  [Target](#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-target): String
```

## Properties
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-properties"></a>

`AuthorizationScopes`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationscopes"></a>
The authorization scopes supported by this route.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizationType`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationtype"></a>
The authorization type for the route. To learn more, see [AuthorizationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizerId`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizerid"></a>
The identifier of the `Authorizer` resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OperationName`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-operationname"></a>
The operation name for the route.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Target`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-target"></a>
For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP\$1PROXY or AWS\$1PROXY, respectively.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::ApiGatewayManagedOverrides RouteSettings
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings"></a>

The `RouteSettings` property overrides the route settings for an API Gateway-managed route.

## Syntax
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings-syntax.json"></a>

```
{
  "[DataTraceEnabled](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-datatraceenabled)" : Boolean,
  "[DetailedMetricsEnabled](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-detailedmetricsenabled)" : Boolean,
  "[LoggingLevel](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-logginglevel)" : String,
  "[ThrottlingBurstLimit](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingburstlimit)" : Integer,
  "[ThrottlingRateLimit](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingratelimit)" : Number
}
```

### YAML
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings-syntax.yaml"></a>

```
  [DataTraceEnabled](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-datatraceenabled): Boolean
  [DetailedMetricsEnabled](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-detailedmetricsenabled): Boolean
  [LoggingLevel](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-logginglevel): String
  [ThrottlingBurstLimit](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingburstlimit): Integer
  [ThrottlingRateLimit](#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingratelimit): Number
```

## Properties
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings-properties"></a>

`DataTraceEnabled`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-datatraceenabled"></a>
Specifies whether (`true`) or not (`false`) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DetailedMetricsEnabled`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-detailedmetricsenabled"></a>
Specifies whether detailed metrics are enabled.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LoggingLevel`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-logginglevel"></a>
Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ThrottlingBurstLimit`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingburstlimit"></a>
Specifies the throttling burst limit.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ThrottlingRateLimit`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingratelimit"></a>
Specifies the throttling rate limit.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::ApiGatewayManagedOverrides StageOverrides
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides"></a>

The `StageOverrides` property overrides the stage configuration for an API Gateway-managed stage. If you remove this property, API Gateway restores the default values.

## Syntax
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-syntax.json"></a>

```
{
  "[AccessLogSettings](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-accesslogsettings)" : AccessLogSettings,
  "[AutoDeploy](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-autodeploy)" : Boolean,
  "[DefaultRouteSettings](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-defaultroutesettings)" : RouteSettings,
  "[Description](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-description)" : String,
  "[RouteSettings](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-routesettings)" : Json,
  "[StageVariables](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-stagevariables)" : Json
}
```

### YAML
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-syntax.yaml"></a>

```
  [AccessLogSettings](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-accesslogsettings): 
    AccessLogSettings
  [AutoDeploy](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-autodeploy): Boolean
  [DefaultRouteSettings](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-defaultroutesettings): 
    RouteSettings
  [Description](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-description): String
  [RouteSettings](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-routesettings): Json
  [StageVariables](#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-stagevariables): Json
```

## Properties
<a name="aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-properties"></a>

`AccessLogSettings`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-accesslogsettings"></a>
Settings for logging access in a stage.  
*Required*: No  
*Type*: [AccessLogSettings](aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AutoDeploy`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-autodeploy"></a>
Specifies whether updates to an API automatically trigger a new deployment. The default value is `true`.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DefaultRouteSettings`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-defaultroutesettings"></a>
The default route settings for the stage.  
*Required*: No  
*Type*: [RouteSettings](aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-description"></a>
The description for the API stage.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteSettings`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-routesettings"></a>
Route settings for the stage.  
*Required*: No  
*Type*: [Json](aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StageVariables`  <a name="cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-stagevariables"></a>
A map that defines the stage variables for a `Stage`. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-.\$1\$1:/?\$1&=,]\$1.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::ApiMapping
<a name="aws-resource-apigatewayv2-apimapping"></a>

The `AWS::ApiGatewayV2::ApiMapping` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*.

## Syntax
<a name="aws-resource-apigatewayv2-apimapping-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-apimapping-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::ApiMapping",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-apimapping-apiid)" : String,
      "[ApiMappingKey](#cfn-apigatewayv2-apimapping-apimappingkey)" : String,
      "[DomainName](#cfn-apigatewayv2-apimapping-domainname)" : String,
      "[Stage](#cfn-apigatewayv2-apimapping-stage)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-apimapping-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::ApiMapping
Properties:
  [ApiId](#cfn-apigatewayv2-apimapping-apiid): String
  [ApiMappingKey](#cfn-apigatewayv2-apimapping-apimappingkey): String
  [DomainName](#cfn-apigatewayv2-apimapping-domainname): String
  [Stage](#cfn-apigatewayv2-apimapping-stage): String
```

## Properties
<a name="aws-resource-apigatewayv2-apimapping-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-apimapping-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ApiMappingKey`  <a name="cfn-apigatewayv2-apimapping-apimappingkey"></a>
The API mapping key.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DomainName`  <a name="cfn-apigatewayv2-apimapping-domainname"></a>
The domain name.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Stage`  <a name="cfn-apigatewayv2-apimapping-stage"></a>
The API stage.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-apimapping-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-apimapping-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the API mapping resource ID.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-apimapping-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-apimapping-return-values-fn--getatt-fn--getatt"></a>

`ApiMappingId`  <a name="ApiMappingId-fn::getatt"></a>
The API mapping resource ID.

## Examples
<a name="aws-resource-apigatewayv2-apimapping--examples"></a>



### API mapping creation example
<a name="aws-resource-apigatewayv2-apimapping--examples--API_mapping_creation_example"></a>

The following example creates an `ApiMapping` resource called `MyApiMapping`.

#### JSON
<a name="aws-resource-apigatewayv2-apimapping--examples--API_mapping_creation_example--json"></a>

```
{
    "MyApiMapping": {
        "Type": "AWS::ApiGatewayV2::ApiMapping",
        "Properties": {
            "DomainName": "mydomainame.us-east-1.com",
            "ApiId": {
                "Ref": "MyApi"
            },
            "Stage": {
                "Ref": "MyStage"
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-apimapping--examples--API_mapping_creation_example--yaml"></a>

```
MyApiMapping:
  Type: 'AWS::ApiGatewayV2::ApiMapping'
  Properties:
    DomainName: mydomainame.us-east-1.com
    ApiId: !Ref MyApi
    Stage: !Ref MyStage
```

## See also
<a name="aws-resource-apigatewayv2-apimapping--seealso"></a>
+ [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Authorizer
<a name="aws-resource-apigatewayv2-authorizer"></a>

The `AWS::ApiGatewayV2::Authorizer` resource creates an authorizer for a WebSocket API or an HTTP API. To learn more, see [Controlling and managing access to a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-control-access.html) and [Controlling and managing access to an HTTP API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) in the *API Gateway Developer Guide*.

## Syntax
<a name="aws-resource-apigatewayv2-authorizer-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-authorizer-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Authorizer",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-authorizer-apiid)" : String,
      "[AuthorizerCredentialsArn](#cfn-apigatewayv2-authorizer-authorizercredentialsarn)" : String,
      "[AuthorizerPayloadFormatVersion](#cfn-apigatewayv2-authorizer-authorizerpayloadformatversion)" : String,
      "[AuthorizerResultTtlInSeconds](#cfn-apigatewayv2-authorizer-authorizerresultttlinseconds)" : Integer,
      "[AuthorizerType](#cfn-apigatewayv2-authorizer-authorizertype)" : String,
      "[AuthorizerUri](#cfn-apigatewayv2-authorizer-authorizeruri)" : String,
      "[EnableSimpleResponses](#cfn-apigatewayv2-authorizer-enablesimpleresponses)" : Boolean,
      "[IdentitySource](#cfn-apigatewayv2-authorizer-identitysource)" : [ String, ... ],
      "[IdentityValidationExpression](#cfn-apigatewayv2-authorizer-identityvalidationexpression)" : String,
      "[JwtConfiguration](#cfn-apigatewayv2-authorizer-jwtconfiguration)" : JWTConfiguration,
      "[Name](#cfn-apigatewayv2-authorizer-name)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-authorizer-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Authorizer
Properties:
  [ApiId](#cfn-apigatewayv2-authorizer-apiid): String
  [AuthorizerCredentialsArn](#cfn-apigatewayv2-authorizer-authorizercredentialsarn): String
  [AuthorizerPayloadFormatVersion](#cfn-apigatewayv2-authorizer-authorizerpayloadformatversion): String
  [AuthorizerResultTtlInSeconds](#cfn-apigatewayv2-authorizer-authorizerresultttlinseconds): Integer
  [AuthorizerType](#cfn-apigatewayv2-authorizer-authorizertype): String
  [AuthorizerUri](#cfn-apigatewayv2-authorizer-authorizeruri): String
  [EnableSimpleResponses](#cfn-apigatewayv2-authorizer-enablesimpleresponses): Boolean
  [IdentitySource](#cfn-apigatewayv2-authorizer-identitysource): 
    - String
  [IdentityValidationExpression](#cfn-apigatewayv2-authorizer-identityvalidationexpression): String
  [JwtConfiguration](#cfn-apigatewayv2-authorizer-jwtconfiguration): 
    JWTConfiguration
  [Name](#cfn-apigatewayv2-authorizer-name): String
```

## Properties
<a name="aws-resource-apigatewayv2-authorizer-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-authorizer-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AuthorizerCredentialsArn`  <a name="cfn-apigatewayv2-authorizer-authorizercredentialsarn"></a>
Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. Supported only for `REQUEST` authorizers.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizerPayloadFormatVersion`  <a name="cfn-apigatewayv2-authorizer-authorizerpayloadformatversion"></a>
Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are `1.0` and `2.0`. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizerResultTtlInSeconds`  <a name="cfn-apigatewayv2-authorizer-authorizerresultttlinseconds"></a>
The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizerType`  <a name="cfn-apigatewayv2-authorizer-authorizertype"></a>
The authorizer type. Specify `REQUEST` for a Lambda function using incoming request parameters. Specify `JWT` to use JSON Web Tokens (supported only for HTTP APIs).  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizerUri`  <a name="cfn-apigatewayv2-authorizer-authorizeruri"></a>
The authorizer's Uniform Resource Identifier (URI). For `REQUEST` authorizers, this must be a well-formed Lambda function URI, for example, `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations`. In general, the URI has this form: `arn:aws:apigateway:{region}:lambda:path/{service_api}`, where *\$1region\$1* is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial `/`. For Lambda functions, this is usually of the form `/2015-03-31/functions/[FunctionARN]/invocations`.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnableSimpleResponses`  <a name="cfn-apigatewayv2-authorizer-enablesimpleresponses"></a>
Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IdentitySource`  <a name="cfn-apigatewayv2-authorizer-identitysource"></a>
The identity source for which authorization is requested.  
For a `REQUEST` authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with `$`, for example, `$request.header.Auth`, `$request.querystring.Name`. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).  
For `JWT`, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example `$request.header.Authorization`.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IdentityValidationExpression`  <a name="cfn-apigatewayv2-authorizer-identityvalidationexpression"></a>
This parameter is not used.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`JwtConfiguration`  <a name="cfn-apigatewayv2-authorizer-jwtconfiguration"></a>
The `JWTConfiguration` property specifies the configuration of a JWT authorizer. Required for the `JWT` authorizer type. Supported only for HTTP APIs.   
*Required*: No  
*Type*: [JWTConfiguration](aws-properties-apigatewayv2-authorizer-jwtconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-apigatewayv2-authorizer-name"></a>
The name of the authorizer.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-authorizer-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-authorizer-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the authorizer's ID, such as `abcde1`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-authorizer-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-authorizer-return-values-fn--getatt-fn--getatt"></a>

`AuthorizerId`  <a name="AuthorizerId-fn::getatt"></a>
The authorizer ID.

## Examples
<a name="aws-resource-apigatewayv2-authorizer--examples"></a>



### Authorizer creation example
<a name="aws-resource-apigatewayv2-authorizer--examples--Authorizer_creation_example"></a>

The following example creates a Lambda `authorizer` resource using the Lambda function `AuthorizerFunction` for the `MyApi` API.

#### JSON
<a name="aws-resource-apigatewayv2-authorizer--examples--Authorizer_creation_example--json"></a>

```
{
    "Authorizer": {
        "Type": "AWS::ApiGatewayV2::Authorizer",
        "Properties": {
            "Name": "LambdaAuthorizer",
            "ApiId": {
                "Ref": "MyApi"
            },
            "AuthorizerType": "REQUEST",
            "AuthorizerCredentialsArn": "Arn",
            "AuthorizerUri": {
                "Fn::Join": [
                    "",
                    [
                        "arn:",
                        {
                            "Ref": "AWS::Partition"
                        },
                        ":apigateway:",
                        {
                            "Ref": "AWS::Region"
                        },
                        ":lambda:path/2015-03-31/functions/",
                        {
                            "Fn::GetAtt": [
                              "AuthorizerFunction",
                              "Arn"
                            ]
                        },
                        "/invocations"
                    ]
                ]
            },
            "AuthorizerResultTtlInSeconds": 500,
            "IdentitySource": [
                "route.request.header.Auth"
            ]
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-authorizer--examples--Authorizer_creation_example--yaml"></a>

```
Authorizer:
  Type: 'AWS::ApiGatewayV2::Authorizer'
  Properties:
    Name: LambdaAuthorizer
    ApiId: !Ref MyApi
    AuthorizerType: REQUEST
    AuthorizerCredentialsArn: Arn
    AuthorizerUri: !Join 
      - ''
      - - 'arn:'
        - !Ref 'AWS::Partition'
        - ':apigateway:'
        - !Ref 'AWS::Region'
        - ':lambda:path/2015-03-31/functions/'
        - !GetAtt AuthorizerFunction.Arn
        - /invocations
    AuthorizerResultTtlInSeconds: 500
    IdentitySource:
      - route.request.header.Auth
```

## See also
<a name="aws-resource-apigatewayv2-authorizer--seealso"></a>
+ [CreateAuthorizer](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-authorizers.html#CreateAuthorizer) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Authorizer JWTConfiguration
<a name="aws-properties-apigatewayv2-authorizer-jwtconfiguration"></a>

The `JWTConfiguration` property specifies the configuration of a JWT authorizer. Required for the `JWT` authorizer type. Supported only for HTTP APIs.

## Syntax
<a name="aws-properties-apigatewayv2-authorizer-jwtconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-authorizer-jwtconfiguration-syntax.json"></a>

```
{
  "[Audience](#cfn-apigatewayv2-authorizer-jwtconfiguration-audience)" : [ String, ... ],
  "[Issuer](#cfn-apigatewayv2-authorizer-jwtconfiguration-issuer)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-authorizer-jwtconfiguration-syntax.yaml"></a>

```
  [Audience](#cfn-apigatewayv2-authorizer-jwtconfiguration-audience): 
    - String
  [Issuer](#cfn-apigatewayv2-authorizer-jwtconfiguration-issuer): String
```

## Properties
<a name="aws-properties-apigatewayv2-authorizer-jwtconfiguration-properties"></a>

`Audience`  <a name="cfn-apigatewayv2-authorizer-jwtconfiguration-audience"></a>
A list of the intended recipients of the JWT. A valid JWT must provide an `aud` that matches at least one entry in this list. See [RFC 7519](https://tools.ietf.org/html/rfc7519#section-4.1.3). Required for the `JWT` authorizer type. Supported only for HTTP APIs.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Issuer`  <a name="cfn-apigatewayv2-authorizer-jwtconfiguration-issuer"></a>
The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: `https://cognito-idp.{region}.amazonaws.com/{userPoolId}`. Required for the `JWT` authorizer type. Supported only for HTTP APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::Deployment
<a name="aws-resource-apigatewayv2-deployment"></a>

The `AWS::ApiGatewayV2::Deployment` resource creates a deployment for an API.

## Syntax
<a name="aws-resource-apigatewayv2-deployment-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-deployment-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Deployment",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-deployment-apiid)" : String,
      "[Description](#cfn-apigatewayv2-deployment-description)" : String,
      "[StageName](#cfn-apigatewayv2-deployment-stagename)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-deployment-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Deployment
Properties:
  [ApiId](#cfn-apigatewayv2-deployment-apiid): String
  [Description](#cfn-apigatewayv2-deployment-description): String
  [StageName](#cfn-apigatewayv2-deployment-stagename): String
```

## Properties
<a name="aws-resource-apigatewayv2-deployment-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-deployment-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-apigatewayv2-deployment-description"></a>
The description for the deployment resource.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StageName`  <a name="cfn-apigatewayv2-deployment-stagename"></a>
The name of an existing stage to associate with the deployment.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-deployment-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-deployment-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the deployment ID, such as `123abc`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-deployment-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-deployment-return-values-fn--getatt-fn--getatt"></a>

`DeploymentId`  <a name="DeploymentId-fn::getatt"></a>
The deployment ID.

## Examples
<a name="aws-resource-apigatewayv2-deployment--examples"></a>



### Deployment creation example
<a name="aws-resource-apigatewayv2-deployment--examples--Deployment_creation_example"></a>

The following example creates a `deployment` resource for the `MyApi` API, which has the `MyRoute` route defined.

#### JSON
<a name="aws-resource-apigatewayv2-deployment--examples--Deployment_creation_example--json"></a>

```
{
    "Deployment": {
        "Type": "AWS::ApiGatewayV2::Deployment",
        "DependsOn": [
            "MyRoute"
        ],
        "Properties": {
            "Description": "My deployment",
            "ApiId": {
                "Ref": "MyApi"
            },
            "StageName": "Beta"
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-deployment--examples--Deployment_creation_example--yaml"></a>

```
Deployment:
  Type: 'AWS::ApiGatewayV2::Deployment'
  DependsOn:
    - MyRoute
  Properties:
    Description: My deployment
    ApiId: !Ref MyApi
    StageName: Beta
```

## See also
<a name="aws-resource-apigatewayv2-deployment--seealso"></a>
+ [CreateDeployment](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-deployments.html#CreateDeployment) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::DomainName
<a name="aws-resource-apigatewayv2-domainname"></a>

The `AWS::ApiGatewayV2::DomainName` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway). 

You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*.

## Syntax
<a name="aws-resource-apigatewayv2-domainname-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-domainname-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::DomainName",
  "Properties" : {
      "[DomainName](#cfn-apigatewayv2-domainname-domainname)" : String,
      "[DomainNameConfigurations](#cfn-apigatewayv2-domainname-domainnameconfigurations)" : [ DomainNameConfiguration, ... ],
      "[MutualTlsAuthentication](#cfn-apigatewayv2-domainname-mutualtlsauthentication)" : MutualTlsAuthentication,
      "[RoutingMode](#cfn-apigatewayv2-domainname-routingmode)" : String,
      "[Tags](#cfn-apigatewayv2-domainname-tags)" : {Key: Value, ...}
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-domainname-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::DomainName
Properties:
  [DomainName](#cfn-apigatewayv2-domainname-domainname): String
  [DomainNameConfigurations](#cfn-apigatewayv2-domainname-domainnameconfigurations): 
    - DomainNameConfiguration
  [MutualTlsAuthentication](#cfn-apigatewayv2-domainname-mutualtlsauthentication): 
    MutualTlsAuthentication
  [RoutingMode](#cfn-apigatewayv2-domainname-routingmode): String
  [Tags](#cfn-apigatewayv2-domainname-tags): 
    Key: Value
```

## Properties
<a name="aws-resource-apigatewayv2-domainname-properties"></a>

`DomainName`  <a name="cfn-apigatewayv2-domainname-domainname"></a>
The custom domain name for your API in Amazon API Gateway. Uppercase letters and the underscore (`_`) character are not supported.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DomainNameConfigurations`  <a name="cfn-apigatewayv2-domainname-domainnameconfigurations"></a>
The domain name configurations.  
*Required*: No  
*Type*: Array of [DomainNameConfiguration](aws-properties-apigatewayv2-domainname-domainnameconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MutualTlsAuthentication`  <a name="cfn-apigatewayv2-domainname-mutualtlsauthentication"></a>
The mutual TLS authentication configuration for a custom domain name.  
*Required*: No  
*Type*: [MutualTlsAuthentication](aws-properties-apigatewayv2-domainname-mutualtlsauthentication.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RoutingMode`  <a name="cfn-apigatewayv2-domainname-routingmode"></a>
The routing mode API Gateway uses to route traffic to your APIs.  
*Required*: No  
*Type*: String  
*Allowed values*: `API_MAPPING_ONLY | ROUTING_RULE_THEN_API_MAPPING | ROUTING_RULE_ONLY`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-apigatewayv2-domainname-tags"></a>
The collection of tags associated with a domain name.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-domainname-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-domainname-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the domain name, such as `example.mydomain.com`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-domainname-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-domainname-return-values-fn--getatt-fn--getatt"></a>

`DomainNameArn`  <a name="DomainNameArn-fn::getatt"></a>
Represents an Amazon Resource Name (ARN).

`RegionalDomainName`  <a name="RegionalDomainName-fn::getatt"></a>
The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name.

`RegionalHostedZoneId`  <a name="RegionalHostedZoneId-fn::getatt"></a>
The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint.

## Examples
<a name="aws-resource-apigatewayv2-domainname--examples"></a>



**Topics**
+ [Domain name creation example](#aws-resource-apigatewayv2-domainname--examples--Domain_name_creation_example)
+ [Domain name with routing mode creation example](#aws-resource-apigatewayv2-domainname--examples--Domain_name_with_routing_mode_creation_example)

### Domain name creation example
<a name="aws-resource-apigatewayv2-domainname--examples--Domain_name_creation_example"></a>

The following example creates a `DomainName` resource called `MyDomainName`.

#### JSON
<a name="aws-resource-apigatewayv2-domainname--examples--Domain_name_creation_example--json"></a>

```
{
    "MyDomainName": {
        "Type": "AWS::ApiGatewayV2::DomainName",
        "Properties": {
            "DomainName": "mydomainame.us-east-1.com",
            "DomainNameConfigurations": [
                {
                    "EndpointType": "REGIONAL",
                    "CertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/1a2b3c4d-aaaa-aaaa-aaaa-1a2b3c4d5e6f",
                    "CertificateName": "testCertificate"
                }
            ]
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-domainname--examples--Domain_name_creation_example--yaml"></a>

```
MyDomainName:
  Type: 'AWS::ApiGatewayV2::DomainName'
  Properties:
    DomainName: mydomainame.us-east-1.com
    DomainNameConfigurations:
      - EndpointType: REGIONAL
        CertificateArn: >-
          arn:aws:acm:us-east-1:123456789012:certificate/1a2b3c4d-aaaa-aaaa-aaaa-1a2b3c4d5e6f
        CertificateName: testCertificate
```

### Domain name with routing mode creation example
<a name="aws-resource-apigatewayv2-domainname--examples--Domain_name_with_routing_mode_creation_example"></a>

The following example creates a `DomainName` resource with the `RoutingMode` parameter of `ROUTING_RULES_ONLY`.

#### JSON
<a name="aws-resource-apigatewayv2-domainname--examples--Domain_name_with_routing_mode_creation_example--json"></a>

```
{
  "Resources": {
    "TestDomainName": {
      "Type": "AWS::ApiGatewayV2::DomainName",
      "Properties": {
        "DomainName": "mydomainame.example.com",
        "DomainNameConfigurations": [
          {
            "EndpointType": "REGIONAL",
            "CertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3",
            "SecurityPolicy": "TLS_1_2"
          }
        ],
        "RoutingMode": "ROUTING_RULE_ONLY"
      }
    }
  }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-domainname--examples--Domain_name_with_routing_mode_creation_example--yaml"></a>

```
Resources:
  TestDomainName:
    Type: AWS::ApiGatewayV2::DomainName
    Properties:
      DomainName: mydomainame.example.com
      DomainNameConfigurations:
        - EndpointType: REGIONAL
          CertificateArn: arn:aws:acm:us-east-1:111122223333:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3
          SecurityPolicy: TLS_1_2
      RoutingMode: "ROUTING_RULE_ONLY"
```

## See also
<a name="aws-resource-apigatewayv2-domainname--seealso"></a>
+ [CreateDomainName](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames.html#CreateDomainName) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::DomainName DomainNameConfiguration
<a name="aws-properties-apigatewayv2-domainname-domainnameconfiguration"></a>

The `DomainNameConfiguration` property type specifies the configuration for an API's domain name.

`DomainNameConfiguration` is a property of the [AWS::ApiGatewayV2::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html) resource.

## Syntax
<a name="aws-properties-apigatewayv2-domainname-domainnameconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-domainname-domainnameconfiguration-syntax.json"></a>

```
{
  "[CertificateArn](#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn)" : String,
  "[CertificateName](#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatename)" : String,
  "[EndpointType](#cfn-apigatewayv2-domainname-domainnameconfiguration-endpointtype)" : String,
  "[IpAddressType](#cfn-apigatewayv2-domainname-domainnameconfiguration-ipaddresstype)" : String,
  "[OwnershipVerificationCertificateArn](#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn)" : String,
  "[SecurityPolicy](#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-domainname-domainnameconfiguration-syntax.yaml"></a>

```
  [CertificateArn](#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn): String
  [CertificateName](#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatename): String
  [EndpointType](#cfn-apigatewayv2-domainname-domainnameconfiguration-endpointtype): String
  [IpAddressType](#cfn-apigatewayv2-domainname-domainnameconfiguration-ipaddresstype): String
  [OwnershipVerificationCertificateArn](#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn): String
  [SecurityPolicy](#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy): String
```

## Properties
<a name="aws-properties-apigatewayv2-domainname-domainnameconfiguration-properties"></a>

`CertificateArn`  <a name="cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn"></a>
An AWS-managed certificate that will be used by the edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CertificateName`  <a name="cfn-apigatewayv2-domainname-domainnameconfiguration-certificatename"></a>
The user-friendly name of the certificate that will be used by the edge-optimized endpoint for this domain name.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EndpointType`  <a name="cfn-apigatewayv2-domainname-domainnameconfiguration-endpointtype"></a>
The endpoint type.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IpAddressType`  <a name="cfn-apigatewayv2-domainname-domainnameconfiguration-ipaddresstype"></a>
The IP address types that can invoke the domain name. Use `ipv4` to allow only IPv4 addresses to invoke your domain name, or use `dualstack` to allow both IPv4 and IPv6 addresses to invoke your domain name.   
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OwnershipVerificationCertificateArn`  <a name="cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn"></a>
The Amazon resource name (ARN) for the public certificate issued by AWS Certificate Manager. This ARN is used to validate custom domain ownership. It's required only if you configure mutual TLS and use either an ACM-imported or a private CA certificate ARN as the regionalCertificateArn.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SecurityPolicy`  <a name="cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy"></a>
The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are `TLS_1_0` and `TLS_1_2`.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-apigatewayv2-domainname-domainnameconfiguration--seealso"></a>
+ [DomainNameConfiguration](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname.html#domainnames-domainname-model-domainnameconfiguration) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::DomainName MutualTlsAuthentication
<a name="aws-properties-apigatewayv2-domainname-mutualtlsauthentication"></a>

If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API.

## Syntax
<a name="aws-properties-apigatewayv2-domainname-mutualtlsauthentication-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-domainname-mutualtlsauthentication-syntax.json"></a>

```
{
  "[TruststoreUri](#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreuri)" : String,
  "[TruststoreVersion](#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreversion)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-domainname-mutualtlsauthentication-syntax.yaml"></a>

```
  [TruststoreUri](#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreuri): String
  [TruststoreVersion](#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreversion): String
```

## Properties
<a name="aws-properties-apigatewayv2-domainname-mutualtlsauthentication-properties"></a>

`TruststoreUri`  <a name="cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreuri"></a>
An 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. To update the truststore, you must have permissions to access the S3 object.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TruststoreVersion`  <a name="cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreversion"></a>
The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::Integration
<a name="aws-resource-apigatewayv2-integration"></a>

The `AWS::ApiGatewayV2::Integration` resource creates an integration for an API.

## Syntax
<a name="aws-resource-apigatewayv2-integration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-integration-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Integration",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-integration-apiid)" : String,
      "[ConnectionId](#cfn-apigatewayv2-integration-connectionid)" : String,
      "[ConnectionType](#cfn-apigatewayv2-integration-connectiontype)" : String,
      "[ContentHandlingStrategy](#cfn-apigatewayv2-integration-contenthandlingstrategy)" : String,
      "[CredentialsArn](#cfn-apigatewayv2-integration-credentialsarn)" : String,
      "[Description](#cfn-apigatewayv2-integration-description)" : String,
      "[IntegrationMethod](#cfn-apigatewayv2-integration-integrationmethod)" : String,
      "[IntegrationSubtype](#cfn-apigatewayv2-integration-integrationsubtype)" : String,
      "[IntegrationType](#cfn-apigatewayv2-integration-integrationtype)" : String,
      "[IntegrationUri](#cfn-apigatewayv2-integration-integrationuri)" : String,
      "[PassthroughBehavior](#cfn-apigatewayv2-integration-passthroughbehavior)" : String,
      "[PayloadFormatVersion](#cfn-apigatewayv2-integration-payloadformatversion)" : String,
      "[RequestParameters](#cfn-apigatewayv2-integration-requestparameters)" : {Key: Value, ...},
      "[RequestTemplates](#cfn-apigatewayv2-integration-requesttemplates)" : {Key: Value, ...},
      "[ResponseParameters](#cfn-apigatewayv2-integration-responseparameters)" : {Key: Value, ...},
      "[TemplateSelectionExpression](#cfn-apigatewayv2-integration-templateselectionexpression)" : String,
      "[TimeoutInMillis](#cfn-apigatewayv2-integration-timeoutinmillis)" : Integer,
      "[TlsConfig](#cfn-apigatewayv2-integration-tlsconfig)" : TlsConfig
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-integration-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Integration
Properties:
  [ApiId](#cfn-apigatewayv2-integration-apiid): String
  [ConnectionId](#cfn-apigatewayv2-integration-connectionid): String
  [ConnectionType](#cfn-apigatewayv2-integration-connectiontype): String
  [ContentHandlingStrategy](#cfn-apigatewayv2-integration-contenthandlingstrategy): String
  [CredentialsArn](#cfn-apigatewayv2-integration-credentialsarn): String
  [Description](#cfn-apigatewayv2-integration-description): String
  [IntegrationMethod](#cfn-apigatewayv2-integration-integrationmethod): String
  [IntegrationSubtype](#cfn-apigatewayv2-integration-integrationsubtype): String
  [IntegrationType](#cfn-apigatewayv2-integration-integrationtype): String
  [IntegrationUri](#cfn-apigatewayv2-integration-integrationuri): String
  [PassthroughBehavior](#cfn-apigatewayv2-integration-passthroughbehavior): String
  [PayloadFormatVersion](#cfn-apigatewayv2-integration-payloadformatversion): String
  [RequestParameters](#cfn-apigatewayv2-integration-requestparameters): 
    Key: Value
  [RequestTemplates](#cfn-apigatewayv2-integration-requesttemplates): 
    Key: Value
  [ResponseParameters](#cfn-apigatewayv2-integration-responseparameters): 
    Key: Value
  [TemplateSelectionExpression](#cfn-apigatewayv2-integration-templateselectionexpression): String
  [TimeoutInMillis](#cfn-apigatewayv2-integration-timeoutinmillis): Integer
  [TlsConfig](#cfn-apigatewayv2-integration-tlsconfig): 
    TlsConfig
```

## Properties
<a name="aws-resource-apigatewayv2-integration-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-integration-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ConnectionId`  <a name="cfn-apigatewayv2-integration-connectionid"></a>
The ID of the VPC link for a private integration. Supported only for HTTP APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ConnectionType`  <a name="cfn-apigatewayv2-integration-connectiontype"></a>
The type of the network connection to the integration endpoint. Specify `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and resources in a VPC. The default value is `INTERNET`.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ContentHandlingStrategy`  <a name="cfn-apigatewayv2-integration-contenthandlingstrategy"></a>
Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors:  
`CONVERT_TO_BINARY`: Converts a response payload from a Base64-encoded string to the corresponding binary blob.  
`CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64-encoded string.  
If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CredentialsArn`  <a name="cfn-apigatewayv2-integration-credentialsarn"></a>
Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::*:user/*`. To use resource-based permissions on supported AWS services, don't specify this parameter.  
*Required*: No  
*Type*: String  
*Pattern*: `arn:(aws|aws-cn|aws-us-gov):iam::[0-9]*:(role|user|group)\/.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-apigatewayv2-integration-description"></a>
The description of the integration.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegrationMethod`  <a name="cfn-apigatewayv2-integration-integrationmethod"></a>
Specifies the integration's HTTP method type. For WebSocket APIs, if you use a Lambda integration, you must set the integration method to `POST`.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegrationSubtype`  <a name="cfn-apigatewayv2-integration-integrationsubtype"></a>
Supported only for HTTP API `AWS_PROXY` integrations. Specifies the AWS service action to invoke. To learn more, see [Integration subtype reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegrationType`  <a name="cfn-apigatewayv2-integration-integrationtype"></a>
The integration type of an integration. One of the following:  
`AWS`: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.  
`AWS_PROXY`: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration.  
`HTTP`: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.  
`HTTP_PROXY`: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an `HTTP_PROXY` integration.  
`MOCK`: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegrationUri`  <a name="cfn-apigatewayv2-integration-integrationuri"></a>
For a Lambda integration, specify the URI of a Lambda function.  
For an HTTP integration, specify a fully-qualified URL.  
For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses `DiscoverInstances` to identify resources. You can use query parameters to target specific resources. To learn more, see [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html). For private integrations, all resources must be owned by the same AWS account.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PassthroughBehavior`  <a name="cfn-apigatewayv2-integration-passthroughbehavior"></a>
Specifies the pass-through behavior for incoming requests based on the `Content-Type` header in the request, and the available mapping templates specified as the `requestTemplates` property on the `Integration` resource. There are three valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, and `NEVER`. Supported only for WebSocket APIs.  
`WHEN_NO_MATCH` passes the request body for unmapped content types through to the integration backend without transformation.  
`NEVER` rejects unmapped content types with an `HTTP 415 Unsupported Media Type` response.  
`WHEN_NO_TEMPLATES` allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same `HTTP 415 Unsupported Media Type` response.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PayloadFormatVersion`  <a name="cfn-apigatewayv2-integration-payloadformatversion"></a>
Specifies the format of the payload sent to an integration. Required for HTTP APIs. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`. For all other integrations, `1.0` is the only supported value. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RequestParameters`  <a name="cfn-apigatewayv2-integration-requestparameters"></a>
For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of `method.request.{location}.{name}`, where ` {location} ` is `querystring`, `path`, or `header`; and ` {name} ` must be a valid and unique method request parameter name.  
For HTTP API integrations with a specified `integrationSubtype`, request parameters are a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see [Working with AWS service integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html).  
For HTTP API integrations without a specified `integrationSubtype` request parameters are a key-value map specifying how to transform HTTP requests before sending them to the backend. The key should follow the pattern <action>:<header\$1querystring\$1path>.<location> where action can be `append`, `overwrite` or` remove`. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html).  
*Required*: No  
*Type*: Object of String  
*Pattern*: `[a-zA-Z0-9]+`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RequestTemplates`  <a name="cfn-apigatewayv2-integration-requesttemplates"></a>
Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `[a-zA-Z0-9]+`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResponseParameters`  <a name="cfn-apigatewayv2-integration-responseparameters"></a>
Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. The value is of type [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html). To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html).   
*Required*: No  
*Type*: Object of [ResponseParameterMap](aws-properties-apigatewayv2-integration-responseparametermap.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TemplateSelectionExpression`  <a name="cfn-apigatewayv2-integration-templateselectionexpression"></a>
The template selection expression for the integration. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TimeoutInMillis`  <a name="cfn-apigatewayv2-integration-timeoutinmillis"></a>
Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TlsConfig`  <a name="cfn-apigatewayv2-integration-tlsconfig"></a>
The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.  
*Required*: No  
*Type*: [TlsConfig](aws-properties-apigatewayv2-integration-tlsconfig.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-integration-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-integration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the Integration resource ID, such as `abcd123`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-integration-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-apigatewayv2-integration-return-values-fn--getatt-fn--getatt"></a>

`IntegrationId`  <a name="IntegrationId-fn::getatt"></a>
The integration ID.

## Examples
<a name="aws-resource-apigatewayv2-integration--examples"></a>



**Topics**
+ [Integration creation example](#aws-resource-apigatewayv2-integration--examples--Integration_creation_example)
+ [Integration with parameter mapping for an HTTP API](#aws-resource-apigatewayv2-integration--examples--Integration_with_parameter_mapping_for_an_HTTP_API)

### Integration creation example
<a name="aws-resource-apigatewayv2-integration--examples--Integration_creation_example"></a>

The following example creates a Lambda integration for an HTTP API. For full examples, see [example CloudFormation templates](https://github.com/awsdocs/amazon-api-gateway-developer-guide/tree/main/cloudformation-templates) on GitHub.

#### JSON
<a name="aws-resource-apigatewayv2-integration--examples--Integration_creation_example--json"></a>

```
{
    "Integration": {
        "Type": "AWS::ApiGatewayV2::Integration",
        "Properties": {
            "ApiId": {
                "Ref": "HTTPApi"
            },
            "Description": "Lambda Integration",
            "IntegrationType": "AWS_PROXY",
            "IntegrationUri": {
                "Fn::Join": [
                    "",
                    [
                        "arn:",
                        {
                            "Ref": "AWS::Partition"
                        },
                        ":apigateway:",
                        {
                            "Ref": "AWS::Region"
                        },
                        ":lambda:path/2015-03-31/functions/",
                        {
                            "Fn::GetAtt": [
                                "MyLambdaFunction",
                                "Arn"
                            ]
                        },
                        "/invocations"
                    ]
                ]
            },
            "IntegrationMethod": "POST",
            "PayloadFormatVersion": "2.0"
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-integration--examples--Integration_creation_example--yaml"></a>

```
Integration:
  Type: 'AWS::ApiGatewayV2::Integration'
  Properties:
    ApiId: !Ref HTTPApi
    Description: Lambda Integration
    IntegrationType: AWS_PROXY
    IntegrationUri: !Join
      - ''
      - - 'arn:'
        - !Ref 'AWS::Partition'
        - ':apigateway:'
        - !Ref 'AWS::Region'
        - ':lambda:path/2015-03-31/functions/'
        - !GetAtt MyLambdaFunction.Arn
        - /invocations
    IntegrationMethod: POST
    PayloadFormatVersion: '2.0'
```

### Integration with parameter mapping for an HTTP API
<a name="aws-resource-apigatewayv2-integration--examples--Integration_with_parameter_mapping_for_an_HTTP_API"></a>

The following example creates an integration with parameter mapping. The request parameters add a header named `header1` to the request before it reaches the backend integration. The response parameters add a header to the integration's response named `header2`, with the static value `headervalue`, when the integration returns a 200 status code.

#### JSON
<a name="aws-resource-apigatewayv2-integration--examples--Integration_with_parameter_mapping_for_an_HTTP_API--json"></a>

```
{
  "MyIntegration": {
    "Type": "AWS::ApiGatewayV2::Integration",
    "Properties": {
      "ApiId": {
        "Ref": "MyApi"
      },
      "Description": "HTTP proxy integration",
      "IntegrationType": "HTTP_PROXY",
      "IntegrationMethod": "ANY",
      "IntegrationUri": "https://api.example.com",
      "PayloadFormatVersion": "1.0",
      "RequestParameters": {
        "append:header.header1": "$context.requestId"
      },
        "ResponseParameters": {
        "200": {
          "ResponseParameters": [
            {
              "Source": "headervalue",
              "Destination": "append:header.header2"
            }
          ]
        }
      }
    }
  }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-integration--examples--Integration_with_parameter_mapping_for_an_HTTP_API--yaml"></a>

```
MyIntegration:
Type: AWS::ApiGatewayV2::Integration
Properties:
  ApiId: !Ref MyApi
  Description: HTTP proxy integration
  IntegrationType: HTTP_PROXY
  IntegrationMethod: ANY
  IntegrationUri: https://api.example.com
  PayloadFormatVersion: 1.0
  RequestParameters:
    "append:header.header1": "$context.requestId"
   ResponseParameters:
    "200":
      ResponseParameters:
        - Source: "headerValue"
          Destination: "append:header.header2"
```

## See also
<a name="aws-resource-apigatewayv2-integration--seealso"></a>
+ [CreateIntegration](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-integrations.html#CreateIntegration) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Integration ResponseParameter
<a name="aws-properties-apigatewayv2-integration-responseparameter"></a>

Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match the pattern `<action>:<header>.<location>` or `overwrite.statuscode`. The action can be `append`, `overwrite` or `remove`. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html). 

## Syntax
<a name="aws-properties-apigatewayv2-integration-responseparameter-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-integration-responseparameter-syntax.json"></a>

```
{
  "[Destination](#cfn-apigatewayv2-integration-responseparameter-destination)" : String,
  "[Source](#cfn-apigatewayv2-integration-responseparameter-source)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-integration-responseparameter-syntax.yaml"></a>

```
  [Destination](#cfn-apigatewayv2-integration-responseparameter-destination): String
  [Source](#cfn-apigatewayv2-integration-responseparameter-source): String
```

## Properties
<a name="aws-properties-apigatewayv2-integration-responseparameter-properties"></a>

`Destination`  <a name="cfn-apigatewayv2-integration-responseparameter-destination"></a>
Specifies the location of the response to modify, and how to modify it. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Source`  <a name="cfn-apigatewayv2-integration-responseparameter-source"></a>
Specifies the data to update the parameter with. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html).  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::Integration ResponseParameterMap
<a name="aws-properties-apigatewayv2-integration-responseparametermap"></a>

<a name="aws-properties-apigatewayv2-integration-responseparametermap-description"></a>The `ResponseParameterMap` property type specifies Property description not available. for an [AWS::ApiGatewayV2::Integration](aws-resource-apigatewayv2-integration.md).

## Syntax
<a name="aws-properties-apigatewayv2-integration-responseparametermap-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-integration-responseparametermap-syntax.json"></a>

```
{
  "[ResponseParameters](#cfn-apigatewayv2-integration-responseparametermap-responseparameters)" : [ ResponseParameter, ... ]
}
```

### YAML
<a name="aws-properties-apigatewayv2-integration-responseparametermap-syntax.yaml"></a>

```
  [ResponseParameters](#cfn-apigatewayv2-integration-responseparametermap-responseparameters): 
    - ResponseParameter
```

## Properties
<a name="aws-properties-apigatewayv2-integration-responseparametermap-properties"></a>

`ResponseParameters`  <a name="cfn-apigatewayv2-integration-responseparametermap-responseparameters"></a>
Property description not available.  
*Required*: No  
*Type*: Array of [ResponseParameter](aws-properties-apigatewayv2-integration-responseparameter.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::Integration TlsConfig
<a name="aws-properties-apigatewayv2-integration-tlsconfig"></a>

The `TlsConfig` property specifies the TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

## Syntax
<a name="aws-properties-apigatewayv2-integration-tlsconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-integration-tlsconfig-syntax.json"></a>

```
{
  "[ServerNameToVerify](#cfn-apigatewayv2-integration-tlsconfig-servernametoverify)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-integration-tlsconfig-syntax.yaml"></a>

```
  [ServerNameToVerify](#cfn-apigatewayv2-integration-tlsconfig-servernametoverify): String
```

## Properties
<a name="aws-properties-apigatewayv2-integration-tlsconfig-properties"></a>

`ServerNameToVerify`  <a name="cfn-apigatewayv2-integration-tlsconfig-servernametoverify"></a>
If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::IntegrationResponse
<a name="aws-resource-apigatewayv2-integrationresponse"></a>

The `AWS::ApiGatewayV2::IntegrationResponse` resource updates an integration response for an WebSocket API. For more information, see [Set up WebSocket API Integration Responses in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html) in the *API Gateway Developer Guide*.

## Syntax
<a name="aws-resource-apigatewayv2-integrationresponse-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-integrationresponse-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::IntegrationResponse",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-integrationresponse-apiid)" : String,
      "[ContentHandlingStrategy](#cfn-apigatewayv2-integrationresponse-contenthandlingstrategy)" : String,
      "[IntegrationId](#cfn-apigatewayv2-integrationresponse-integrationid)" : String,
      "[IntegrationResponseKey](#cfn-apigatewayv2-integrationresponse-integrationresponsekey)" : String,
      "[ResponseParameters](#cfn-apigatewayv2-integrationresponse-responseparameters)" : Json,
      "[ResponseTemplates](#cfn-apigatewayv2-integrationresponse-responsetemplates)" : Json,
      "[TemplateSelectionExpression](#cfn-apigatewayv2-integrationresponse-templateselectionexpression)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-integrationresponse-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::IntegrationResponse
Properties:
  [ApiId](#cfn-apigatewayv2-integrationresponse-apiid): String
  [ContentHandlingStrategy](#cfn-apigatewayv2-integrationresponse-contenthandlingstrategy): String
  [IntegrationId](#cfn-apigatewayv2-integrationresponse-integrationid): String
  [IntegrationResponseKey](#cfn-apigatewayv2-integrationresponse-integrationresponsekey): String
  [ResponseParameters](#cfn-apigatewayv2-integrationresponse-responseparameters): Json
  [ResponseTemplates](#cfn-apigatewayv2-integrationresponse-responsetemplates): Json
  [TemplateSelectionExpression](#cfn-apigatewayv2-integrationresponse-templateselectionexpression): String
```

## Properties
<a name="aws-resource-apigatewayv2-integrationresponse-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-integrationresponse-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ContentHandlingStrategy`  <a name="cfn-apigatewayv2-integrationresponse-contenthandlingstrategy"></a>
Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors:  
`CONVERT_TO_BINARY`: Converts a response payload from a Base64-encoded string to the corresponding binary blob.  
`CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64-encoded string.  
If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IntegrationId`  <a name="cfn-apigatewayv2-integrationresponse-integrationid"></a>
The integration ID.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`IntegrationResponseKey`  <a name="cfn-apigatewayv2-integrationresponse-integrationresponsekey"></a>
The integration response key.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResponseParameters`  <a name="cfn-apigatewayv2-integrationresponse-responseparameters"></a>
A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of `method.response.header.{name}`, where name is a valid and unique header name. The mapped non-static value must match the pattern of `integration.response.header.{name}` or `integration.response.body.{JSON-expression}`, where ` {name} ` is a valid and unique response header name and ` {JSON-expression} ` is a valid JSON expression without the `$` prefix.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResponseTemplates`  <a name="cfn-apigatewayv2-integrationresponse-responsetemplates"></a>
The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TemplateSelectionExpression`  <a name="cfn-apigatewayv2-integrationresponse-templateselectionexpression"></a>
The template selection expression for the integration response. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-integrationresponse-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-integrationresponse-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the integration response resource ID, such as `abcd123`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-integrationresponse-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-integrationresponse-return-values-fn--getatt-fn--getatt"></a>

`IntegrationResponseId`  <a name="IntegrationResponseId-fn::getatt"></a>
The integration response ID.

## Examples
<a name="aws-resource-apigatewayv2-integrationresponse--examples"></a>



### Integration response creation example
<a name="aws-resource-apigatewayv2-integrationresponse--examples--Integration_response_creation_example"></a>

The following example creates an `IntegrationResponse` resource for an API named `MyApi` that has an `integration` resource called `MyIntegration`.

#### JSON
<a name="aws-resource-apigatewayv2-integrationresponse--examples--Integration_response_creation_example--json"></a>

```
{
    "IntegrationResponse": {
        "Type": "AWS::ApiGatewayV2::IntegrationResponse",
        "Properties": {
            "IntegrationId": {
                "Ref": "MyIntegration"
            },
            "IntegrationResponseKey": "/400/",
            "ApiId": {
                "Ref": "MyApi"
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-integrationresponse--examples--Integration_response_creation_example--yaml"></a>

```
IntegrationResponse:
  Type: 'AWS::ApiGatewayV2::IntegrationResponse'
  Properties:
    IntegrationId: !Ref MyIntegration
    IntegrationResponseKey: /400/
    ApiId: !Ref MyApi
```

## See also
<a name="aws-resource-apigatewayv2-integrationresponse--seealso"></a>
+ [CreateIntegrationResponse](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-integrations-integrationid-integrationresponses.html#CreateIntegrationResponse) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Model
<a name="aws-resource-apigatewayv2-model"></a>

The `AWS::ApiGatewayV2::Model` resource updates data model for a WebSocket API. For more information, see [Model Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) in the *API Gateway Developer Guide*.

## Syntax
<a name="aws-resource-apigatewayv2-model-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-model-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Model",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-model-apiid)" : String,
      "[ContentType](#cfn-apigatewayv2-model-contenttype)" : String,
      "[Description](#cfn-apigatewayv2-model-description)" : String,
      "[Name](#cfn-apigatewayv2-model-name)" : String,
      "[Schema](#cfn-apigatewayv2-model-schema)" : Json
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-model-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Model
Properties:
  [ApiId](#cfn-apigatewayv2-model-apiid): String
  [ContentType](#cfn-apigatewayv2-model-contenttype): String
  [Description](#cfn-apigatewayv2-model-description): String
  [Name](#cfn-apigatewayv2-model-name): String
  [Schema](#cfn-apigatewayv2-model-schema): Json
```

## Properties
<a name="aws-resource-apigatewayv2-model-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-model-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ContentType`  <a name="cfn-apigatewayv2-model-contenttype"></a>
The content-type for the model, for example, "application/json".  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-apigatewayv2-model-description"></a>
The description of the model.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-apigatewayv2-model-name"></a>
The name of the model.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Schema`  <a name="cfn-apigatewayv2-model-schema"></a>
The schema for the model. For application/json models, this should be JSON schema draft 4 model.  
*Required*: Yes  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-model-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-model-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the model ID, such as `abc123`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-model-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-model-return-values-fn--getatt-fn--getatt"></a>

`ModelId`  <a name="ModelId-fn::getatt"></a>
The model ID.

## Examples
<a name="aws-resource-apigatewayv2-model--examples"></a>



### Model creation example
<a name="aws-resource-apigatewayv2-model--examples--Model_creation_example"></a>

The following example creates a `model` resource called `MyModel` for an API called `MyApi`.

#### JSON
<a name="aws-resource-apigatewayv2-model--examples--Model_creation_example--json"></a>

```
{
    "MyModel": {
        "Type": "AWS::ApiGatewayV2::Model",
        "Properties": {
            "Name": "ModelName",
            "ApiId": {
                "Ref": "MyApi"
            },
            "ContentType": "application/json",
            "Schema": {
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "DummySchema",
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    }
                }
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-model--examples--Model_creation_example--yaml"></a>

```
MyModel:
  Type: 'AWS::ApiGatewayV2::Model'
  Properties:
    Name: ModelName
    ApiId: !Ref MyApi
    ContentType: application/json
    Schema:
      $schema: 'http://json-schema.org/draft-04/schema#'
      title: DummySchema
      type: object
      properties:
        id:
          type: string
```

## See also
<a name="aws-resource-apigatewayv2-model--seealso"></a>
+ [CreateModel](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-models.html#CreateModel) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Route
<a name="aws-resource-apigatewayv2-route"></a>

The `AWS::ApiGatewayV2::Route` resource creates a route for an API.

## Syntax
<a name="aws-resource-apigatewayv2-route-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-route-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Route",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-route-apiid)" : String,
      "[ApiKeyRequired](#cfn-apigatewayv2-route-apikeyrequired)" : Boolean,
      "[AuthorizationScopes](#cfn-apigatewayv2-route-authorizationscopes)" : [ String, ... ],
      "[AuthorizationType](#cfn-apigatewayv2-route-authorizationtype)" : String,
      "[AuthorizerId](#cfn-apigatewayv2-route-authorizerid)" : String,
      "[ModelSelectionExpression](#cfn-apigatewayv2-route-modelselectionexpression)" : String,
      "[OperationName](#cfn-apigatewayv2-route-operationname)" : String,
      "[RequestModels](#cfn-apigatewayv2-route-requestmodels)" : Json,
      "[RequestParameters](#cfn-apigatewayv2-route-requestparameters)" : Json,
      "[RouteKey](#cfn-apigatewayv2-route-routekey)" : String,
      "[RouteResponseSelectionExpression](#cfn-apigatewayv2-route-routeresponseselectionexpression)" : String,
      "[Target](#cfn-apigatewayv2-route-target)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-route-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Route
Properties:
  [ApiId](#cfn-apigatewayv2-route-apiid): String
  [ApiKeyRequired](#cfn-apigatewayv2-route-apikeyrequired): Boolean
  [AuthorizationScopes](#cfn-apigatewayv2-route-authorizationscopes): 
    - String
  [AuthorizationType](#cfn-apigatewayv2-route-authorizationtype): String
  [AuthorizerId](#cfn-apigatewayv2-route-authorizerid): String
  [ModelSelectionExpression](#cfn-apigatewayv2-route-modelselectionexpression): String
  [OperationName](#cfn-apigatewayv2-route-operationname): String
  [RequestModels](#cfn-apigatewayv2-route-requestmodels): Json
  [RequestParameters](#cfn-apigatewayv2-route-requestparameters): Json
  [RouteKey](#cfn-apigatewayv2-route-routekey): String
  [RouteResponseSelectionExpression](#cfn-apigatewayv2-route-routeresponseselectionexpression): String
  [Target](#cfn-apigatewayv2-route-target): String
```

## Properties
<a name="aws-resource-apigatewayv2-route-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-route-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ApiKeyRequired`  <a name="cfn-apigatewayv2-route-apikeyrequired"></a>
Specifies whether an API key is required for the route. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizationScopes`  <a name="cfn-apigatewayv2-route-authorizationscopes"></a>
The authorization scopes supported by this route.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizationType`  <a name="cfn-apigatewayv2-route-authorizationtype"></a>
The authorization type for the route. For WebSocket APIs, valid values are `NONE` for open access, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer. For HTTP APIs, valid values are `NONE` for open access, `JWT` for using JSON Web Tokens, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AuthorizerId`  <a name="cfn-apigatewayv2-route-authorizerid"></a>
The identifier of the `Authorizer` resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ModelSelectionExpression`  <a name="cfn-apigatewayv2-route-modelselectionexpression"></a>
The model selection expression for the route. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OperationName`  <a name="cfn-apigatewayv2-route-operationname"></a>
The operation name for the route.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RequestModels`  <a name="cfn-apigatewayv2-route-requestmodels"></a>
The request models for the route. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RequestParameters`  <a name="cfn-apigatewayv2-route-requestparameters"></a>
The request parameters for the route. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteKey`  <a name="cfn-apigatewayv2-route-routekey"></a>
The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteResponseSelectionExpression`  <a name="cfn-apigatewayv2-route-routeresponseselectionexpression"></a>
The route response selection expression for the route. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Target`  <a name="cfn-apigatewayv2-route-target"></a>
The target for the route.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-route-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-route-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the Route resource ID, such as `abcd123`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-route-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-route-return-values-fn--getatt-fn--getatt"></a>

`RouteId`  <a name="RouteId-fn::getatt"></a>
The route ID.

## Examples
<a name="aws-resource-apigatewayv2-route--examples"></a>

**Topics**
+ [HTTP API route creation example](#aws-resource-apigatewayv2-route--examples--HTTP_API_route_creation_example)
+ [WebSocket API route creation example](#aws-resource-apigatewayv2-route--examples--WebSocket_API_route_creation_example)

### HTTP API route creation example
<a name="aws-resource-apigatewayv2-route--examples--HTTP_API_route_creation_example"></a>

The following example creates a `route` resource called `MyRoute` for an HTTP API called `MyAPI` that already has an `integration` resource called `MyIntegration`. The route accepts `POST` requests to `/signup`.

#### JSON
<a name="aws-resource-apigatewayv2-route--examples--HTTP_API_route_creation_example--json"></a>

```
"MyRoute": {
    "Type": "AWS::ApiGatewayV2::Route",
        "Properties": {
            "ApiId": {
                "Ref": "MyAPI"
            },
            "RouteKey": "POST /signup",
            "Target": {
                "Fn::Join": [
                    "/",
                    [
                        "integrations",
                        {
                            "Ref": "MyIntegration"
                        }
                    ]
                ]
            }
        }
    }
```

#### YAML
<a name="aws-resource-apigatewayv2-route--examples--HTTP_API_route_creation_example--yaml"></a>

```
MyRoute:
  Type: AWS::ApiGatewayV2::Route
  Properties:
    ApiId: !Ref MyAPI
    RouteKey: 'POST /signup'
    Target: !Join
      - /
      - - integrations
        - !Ref MyIntegration
```

### WebSocket API route creation example
<a name="aws-resource-apigatewayv2-route--examples--WebSocket_API_route_creation_example"></a>

The following example creates a `route` resource called `MyRoute` for a WebSocket API called `MyAPI` that already has an `integration` resource called `MyIntegration`. The route has a route key value of `routekey1`.

#### JSON
<a name="aws-resource-apigatewayv2-route--examples--WebSocket_API_route_creation_example--json"></a>

```
{
    "MyRoute": {
        "Type": "AWS::ApiGatewayV2::Route",
        "DependsOn": [
            "MyIntegration"
        ],
        "Properties": {
            "ApiId": {
                "Ref": "MyApi"
            },
            "RouteKey": "routekey1",
            "AuthorizationType": "NONE",
            "Target": {
                "Fn::Join": [
                    "/",
                    [
                        "integrations",
                        {
                            "Ref": "MyIntegration"
                        }
                    ]
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-route--examples--WebSocket_API_route_creation_example--yaml"></a>

```
MyRoute:
  Type: 'AWS::ApiGatewayV2::Route'
  DependsOn:
    - MyIntegration
  Properties:
    ApiId: !Ref MyApi
    RouteKey: routekey1
    AuthorizationType: NONE
    Target: !Join 
      - /
      - - integrations
        - !Ref MyIntegration
```

## See also
<a name="aws-resource-apigatewayv2-route--seealso"></a>
+ [CreateRoute](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-routes.html#CreateRoute) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::RouteResponse
<a name="aws-resource-apigatewayv2-routeresponse"></a>

The `AWS::ApiGatewayV2::RouteResponse` resource creates a route response for a WebSocket API. For more information, see [Set up Route Responses for a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html) in the *API Gateway Developer Guide*.

## Syntax
<a name="aws-resource-apigatewayv2-routeresponse-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-routeresponse-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::RouteResponse",
  "Properties" : {
      "[ApiId](#cfn-apigatewayv2-routeresponse-apiid)" : String,
      "[ModelSelectionExpression](#cfn-apigatewayv2-routeresponse-modelselectionexpression)" : String,
      "[ResponseModels](#cfn-apigatewayv2-routeresponse-responsemodels)" : Json,
      "[ResponseParameters](#cfn-apigatewayv2-routeresponse-responseparameters)" : ParameterConstraints,
      "[RouteId](#cfn-apigatewayv2-routeresponse-routeid)" : String,
      "[RouteResponseKey](#cfn-apigatewayv2-routeresponse-routeresponsekey)" : String
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-routeresponse-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::RouteResponse
Properties:
  [ApiId](#cfn-apigatewayv2-routeresponse-apiid): String
  [ModelSelectionExpression](#cfn-apigatewayv2-routeresponse-modelselectionexpression): String
  [ResponseModels](#cfn-apigatewayv2-routeresponse-responsemodels): Json
  [ResponseParameters](#cfn-apigatewayv2-routeresponse-responseparameters): 
    ParameterConstraints
  [RouteId](#cfn-apigatewayv2-routeresponse-routeid): String
  [RouteResponseKey](#cfn-apigatewayv2-routeresponse-routeresponsekey): String
```

## Properties
<a name="aws-resource-apigatewayv2-routeresponse-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-routeresponse-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ModelSelectionExpression`  <a name="cfn-apigatewayv2-routeresponse-modelselectionexpression"></a>
The model selection expression for the route response. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResponseModels`  <a name="cfn-apigatewayv2-routeresponse-responsemodels"></a>
The response models for the route response.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResponseParameters`  <a name="cfn-apigatewayv2-routeresponse-responseparameters"></a>
The route response parameters.  
*Required*: No  
*Type*: [ParameterConstraints](aws-properties-apigatewayv2-routeresponse-parameterconstraints.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteId`  <a name="cfn-apigatewayv2-routeresponse-routeid"></a>
The route ID.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RouteResponseKey`  <a name="cfn-apigatewayv2-routeresponse-routeresponsekey"></a>
The route response key.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-routeresponse-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-routeresponse-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the Route Response resource ID, such as `abc123`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-routeresponse-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-routeresponse-return-values-fn--getatt-fn--getatt"></a>

`RouteResponseId`  <a name="RouteResponseId-fn::getatt"></a>
The route response ID.

## Examples
<a name="aws-resource-apigatewayv2-routeresponse--examples"></a>



### Route response creation example
<a name="aws-resource-apigatewayv2-routeresponse--examples--Route_response_creation_example"></a>

The following example creates a `RouteResponse` resource for a WebSocket API called `MyApi` that already has an `integration` called `MyIntegration` and a `route` called `MyRoute`.

#### JSON
<a name="aws-resource-apigatewayv2-routeresponse--examples--Route_response_creation_example--json"></a>

```
{
    "MyRouteResponse": {
        "Type": "AWS::ApiGatewayV2::RouteResponse",
        "Properties": {
            "RouteId": {
                "Ref": "MyRoute"
            },
            "ApiId": {
                "Ref": "MyApi"
            },
            "RouteResponseKey": "$default"
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-routeresponse--examples--Route_response_creation_example--yaml"></a>

```
MyRouteResponse:
  Type: 'AWS::ApiGatewayV2::RouteResponse'
  Properties:
    RouteId: !Ref MyRoute
    ApiId: !Ref MyApi
    RouteResponseKey: $default
```

## See also
<a name="aws-resource-apigatewayv2-routeresponse--seealso"></a>
+ [CreateRouteResponse](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-routes-routeid-routeresponses.html#CreateRouteResponse) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::RouteResponse ParameterConstraints
<a name="aws-properties-apigatewayv2-routeresponse-parameterconstraints"></a>

Specifies whether the parameter is required.

## Syntax
<a name="aws-properties-apigatewayv2-routeresponse-parameterconstraints-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routeresponse-parameterconstraints-syntax.json"></a>

```
{
  "[Required](#cfn-apigatewayv2-routeresponse-parameterconstraints-required)" : Boolean
}
```

### YAML
<a name="aws-properties-apigatewayv2-routeresponse-parameterconstraints-syntax.yaml"></a>

```
  [Required](#cfn-apigatewayv2-routeresponse-parameterconstraints-required): Boolean
```

## Properties
<a name="aws-properties-apigatewayv2-routeresponse-parameterconstraints-properties"></a>

`Required`  <a name="cfn-apigatewayv2-routeresponse-parameterconstraints-required"></a>
Specifies whether the parameter is required.  
*Required*: Yes  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-apigatewayv2-routeresponse-parameterconstraints--seealso"></a>
+ [RouteResponses](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-routes-routeid-routeresponses.html) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::RoutingRule
<a name="aws-resource-apigatewayv2-routingrule"></a>

Represents a routing rule. When the incoming request to a domain name matches the conditions for a rule, API Gateway invokes a stage of a target API. Supported only for REST APIs.

## Syntax
<a name="aws-resource-apigatewayv2-routingrule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-routingrule-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::RoutingRule",
  "Properties" : {
      "[Actions](#cfn-apigatewayv2-routingrule-actions)" : [ Action, ... ],
      "[Conditions](#cfn-apigatewayv2-routingrule-conditions)" : [ Condition, ... ],
      "[DomainNameArn](#cfn-apigatewayv2-routingrule-domainnamearn)" : String,
      "[Priority](#cfn-apigatewayv2-routingrule-priority)" : Integer
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-routingrule-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::RoutingRule
Properties:
  [Actions](#cfn-apigatewayv2-routingrule-actions): 
    - Action
  [Conditions](#cfn-apigatewayv2-routingrule-conditions): 
    - Condition
  [DomainNameArn](#cfn-apigatewayv2-routingrule-domainnamearn): String
  [Priority](#cfn-apigatewayv2-routingrule-priority): Integer
```

## Properties
<a name="aws-resource-apigatewayv2-routingrule-properties"></a>

`Actions`  <a name="cfn-apigatewayv2-routingrule-actions"></a>
The resulting action based on matching a routing rules condition. Only InvokeApi is supported.  
*Required*: Yes  
*Type*: Array of [Action](aws-properties-apigatewayv2-routingrule-action.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Conditions`  <a name="cfn-apigatewayv2-routingrule-conditions"></a>
The conditions of the routing rule.  
*Required*: Yes  
*Type*: Array of [Condition](aws-properties-apigatewayv2-routingrule-condition.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DomainNameArn`  <a name="cfn-apigatewayv2-routingrule-domainnamearn"></a>
The ARN of the domain name.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Priority`  <a name="cfn-apigatewayv2-routingrule-priority"></a>
The order in which API Gateway evaluates a rule. Priority is evaluated from the lowest value to the highest value. Rules can't have the same priority. Priority values 1-1,000,000 are supported.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-routingrule-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-routingrule-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the ID of the routing rule, such as `a1b2c3e`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-routingrule-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-routingrule-return-values-fn--getatt-fn--getatt"></a>

`RoutingRuleArn`  <a name="RoutingRuleArn-fn::getatt"></a>
Represents an Amazon Resource Name (ARN).

`RoutingRuleId`  <a name="RoutingRuleId-fn::getatt"></a>
The identifier.

## Examples
<a name="aws-resource-apigatewayv2-routingrule--examples"></a>



### Routing rule creation
<a name="aws-resource-apigatewayv2-routingrule--examples--Routing_rule_creation"></a>

The following example creates a `RoutingRule` resource called `MyRoutingRule` that routes any incoming requests that have the header `x-version:beta` and the path `users` to the `prod` stage of REST API `abcd123`.

#### JSON
<a name="aws-resource-apigatewayv2-routingrule--examples--Routing_rule_creation--json"></a>

```
{
  "Resources": {
    "MyRoutingRule": {
      "Type": "AWS::ApiGatewayV2::RoutingRule",
      "Properties": {
        "DomainNameArn": "arn:aws:apigateway:us-west-2::/domainnames/example.com",
        "Priority": 100,
        "Conditions": [
          {
            "MatchHeaders": {
              "AnyOf": [
                {
                  "Header": "x-version",
                  "ValueGlob": "beta"
                }
              ]
            }
          },
          {
            "MatchBasePaths": {
              "AnyOf": [
                "users"
              ]
            }
          }
        ],
        "Actions": [
          {
            "InvokeApi": {
              "ApiId": "abcd123",
              "Stage": "prod"
            }
          }
        ]
      }
    }
  }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-routingrule--examples--Routing_rule_creation--yaml"></a>

```
Resources:
  MyRoutingRule:
    Type: 'AWS::ApiGatewayV2::RoutingRule'
    Properties:
      DomainNameArn: arn:aws:apigateway:us-west-2::/domainnames/example.com
      Priority: 100
      Conditions: 
        - MatchHeaders:
            AnyOf:
              - Header: "x-version"
                ValueGlob: "beta"
        - MatchBasePaths:
            AnyOf:
              - "users"
      Actions: 
        - InvokeApi: 
            ApiId: "abcd123"
            Stage: "prod"
```

# AWS::ApiGatewayV2::RoutingRule Action
<a name="aws-properties-apigatewayv2-routingrule-action"></a>

Represents a routing rule action. The only supported action is `invokeApi`.

## Syntax
<a name="aws-properties-apigatewayv2-routingrule-action-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routingrule-action-syntax.json"></a>

```
{
  "[InvokeApi](#cfn-apigatewayv2-routingrule-action-invokeapi)" : ActionInvokeApi
}
```

### YAML
<a name="aws-properties-apigatewayv2-routingrule-action-syntax.yaml"></a>

```
  [InvokeApi](#cfn-apigatewayv2-routingrule-action-invokeapi): 
    ActionInvokeApi
```

## Properties
<a name="aws-properties-apigatewayv2-routingrule-action-properties"></a>

`InvokeApi`  <a name="cfn-apigatewayv2-routingrule-action-invokeapi"></a>
Represents an InvokeApi action.  
*Required*: Yes  
*Type*: [ActionInvokeApi](aws-properties-apigatewayv2-routingrule-actioninvokeapi.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::RoutingRule ActionInvokeApi
<a name="aws-properties-apigatewayv2-routingrule-actioninvokeapi"></a>

Represents an InvokeApi action.

## Syntax
<a name="aws-properties-apigatewayv2-routingrule-actioninvokeapi-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routingrule-actioninvokeapi-syntax.json"></a>

```
{
  "[ApiId](#cfn-apigatewayv2-routingrule-actioninvokeapi-apiid)" : String,
  "[Stage](#cfn-apigatewayv2-routingrule-actioninvokeapi-stage)" : String,
  "[StripBasePath](#cfn-apigatewayv2-routingrule-actioninvokeapi-stripbasepath)" : Boolean
}
```

### YAML
<a name="aws-properties-apigatewayv2-routingrule-actioninvokeapi-syntax.yaml"></a>

```
  [ApiId](#cfn-apigatewayv2-routingrule-actioninvokeapi-apiid): String
  [Stage](#cfn-apigatewayv2-routingrule-actioninvokeapi-stage): String
  [StripBasePath](#cfn-apigatewayv2-routingrule-actioninvokeapi-stripbasepath): Boolean
```

## Properties
<a name="aws-properties-apigatewayv2-routingrule-actioninvokeapi-properties"></a>

`ApiId`  <a name="cfn-apigatewayv2-routingrule-actioninvokeapi-apiid"></a>
The API identifier of the target API.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Stage`  <a name="cfn-apigatewayv2-routingrule-actioninvokeapi-stage"></a>
The name of the target stage.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StripBasePath`  <a name="cfn-apigatewayv2-routingrule-actioninvokeapi-stripbasepath"></a>
The strip base path setting. When true, API Gateway strips the incoming matched base path when forwarding the request to the target API.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::RoutingRule Condition
<a name="aws-properties-apigatewayv2-routingrule-condition"></a>

Represents a condition. Conditions can contain up to two `matchHeaders` conditions and one `matchBasePaths` conditions. API Gateway evaluates header conditions and base path conditions together. You can only use AND between header and base path conditions.

## Syntax
<a name="aws-properties-apigatewayv2-routingrule-condition-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routingrule-condition-syntax.json"></a>

```
{
  "[MatchBasePaths](#cfn-apigatewayv2-routingrule-condition-matchbasepaths)" : MatchBasePaths,
  "[MatchHeaders](#cfn-apigatewayv2-routingrule-condition-matchheaders)" : MatchHeaders
}
```

### YAML
<a name="aws-properties-apigatewayv2-routingrule-condition-syntax.yaml"></a>

```
  [MatchBasePaths](#cfn-apigatewayv2-routingrule-condition-matchbasepaths): 
    MatchBasePaths
  [MatchHeaders](#cfn-apigatewayv2-routingrule-condition-matchheaders): 
    MatchHeaders
```

## Properties
<a name="aws-properties-apigatewayv2-routingrule-condition-properties"></a>

`MatchBasePaths`  <a name="cfn-apigatewayv2-routingrule-condition-matchbasepaths"></a>
The base path to be matched.  
*Required*: No  
*Type*: [MatchBasePaths](aws-properties-apigatewayv2-routingrule-matchbasepaths.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MatchHeaders`  <a name="cfn-apigatewayv2-routingrule-condition-matchheaders"></a>
The headers to be matched.  
*Required*: No  
*Type*: [MatchHeaders](aws-properties-apigatewayv2-routingrule-matchheaders.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::RoutingRule MatchBasePaths
<a name="aws-properties-apigatewayv2-routingrule-matchbasepaths"></a>

Represents a `MatchBasePaths` condition.

## Syntax
<a name="aws-properties-apigatewayv2-routingrule-matchbasepaths-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routingrule-matchbasepaths-syntax.json"></a>

```
{
  "[AnyOf](#cfn-apigatewayv2-routingrule-matchbasepaths-anyof)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-apigatewayv2-routingrule-matchbasepaths-syntax.yaml"></a>

```
  [AnyOf](#cfn-apigatewayv2-routingrule-matchbasepaths-anyof): 
    - String
```

## Properties
<a name="aws-properties-apigatewayv2-routingrule-matchbasepaths-properties"></a>

`AnyOf`  <a name="cfn-apigatewayv2-routingrule-matchbasepaths-anyof"></a>
The string of the case sensitive base path to be matched.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::RoutingRule MatchHeaders
<a name="aws-properties-apigatewayv2-routingrule-matchheaders"></a>

Represents a `MatchHeaders` condition.

## Syntax
<a name="aws-properties-apigatewayv2-routingrule-matchheaders-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routingrule-matchheaders-syntax.json"></a>

```
{
  "[AnyOf](#cfn-apigatewayv2-routingrule-matchheaders-anyof)" : [ MatchHeaderValue, ... ]
}
```

### YAML
<a name="aws-properties-apigatewayv2-routingrule-matchheaders-syntax.yaml"></a>

```
  [AnyOf](#cfn-apigatewayv2-routingrule-matchheaders-anyof): 
    - MatchHeaderValue
```

## Properties
<a name="aws-properties-apigatewayv2-routingrule-matchheaders-properties"></a>

`AnyOf`  <a name="cfn-apigatewayv2-routingrule-matchheaders-anyof"></a>
The header name and header value glob to be matched. The matchHeaders condition is matched if any of the header name and header value globs are matched.  
*Required*: Yes  
*Type*: Array of [MatchHeaderValue](aws-properties-apigatewayv2-routingrule-matchheadervalue.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::RoutingRule MatchHeaderValue
<a name="aws-properties-apigatewayv2-routingrule-matchheadervalue"></a>

Represents a `MatchHeaderValue`.

## Syntax
<a name="aws-properties-apigatewayv2-routingrule-matchheadervalue-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-routingrule-matchheadervalue-syntax.json"></a>

```
{
  "[Header](#cfn-apigatewayv2-routingrule-matchheadervalue-header)" : String,
  "[ValueGlob](#cfn-apigatewayv2-routingrule-matchheadervalue-valueglob)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-routingrule-matchheadervalue-syntax.yaml"></a>

```
  [Header](#cfn-apigatewayv2-routingrule-matchheadervalue-header): String
  [ValueGlob](#cfn-apigatewayv2-routingrule-matchheadervalue-valueglob): String
```

## Properties
<a name="aws-properties-apigatewayv2-routingrule-matchheadervalue-properties"></a>

`Header`  <a name="cfn-apigatewayv2-routingrule-matchheadervalue-header"></a>
The case insensitive header name to be matched. The header name must be less than 40 characters and the only allowed characters are `a-z`, `A-Z`, `0-9`, and the following special characters: `*?-!#$%&'.^_`|~.`.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ValueGlob`  <a name="cfn-apigatewayv2-routingrule-matchheadervalue-valueglob"></a>
The case sensitive header glob value to be matched against entire header value. The header glob value must be less than 128 characters and the only allowed characters are `a-z`, `A-Z`, `0-9`, and the following special characters: `*?-!#$%&'.^_`|~`. Wildcard matching is supported for header glob values but must be for `*prefix-match`, `suffix-match*`, or `*infix*-match`.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::ApiGatewayV2::Stage
<a name="aws-resource-apigatewayv2-stage"></a>

The `AWS::ApiGatewayV2::Stage` resource specifies a stage for an API. Each stage is a named reference to a deployment of the API and is made available for client applications to call. To learn more, see [Working with stages for HTTP APIs ](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-stages.html) and [Deploy a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-set-up-websocket-deployment.html).

## Syntax
<a name="aws-resource-apigatewayv2-stage-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-stage-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::Stage",
  "Properties" : {
      "[AccessLogSettings](#cfn-apigatewayv2-stage-accesslogsettings)" : AccessLogSettings,
      "[ApiId](#cfn-apigatewayv2-stage-apiid)" : String,
      "[AutoDeploy](#cfn-apigatewayv2-stage-autodeploy)" : Boolean,
      "[ClientCertificateId](#cfn-apigatewayv2-stage-clientcertificateid)" : String,
      "[DefaultRouteSettings](#cfn-apigatewayv2-stage-defaultroutesettings)" : RouteSettings,
      "[DeploymentId](#cfn-apigatewayv2-stage-deploymentid)" : String,
      "[Description](#cfn-apigatewayv2-stage-description)" : String,
      "[RouteSettings](#cfn-apigatewayv2-stage-routesettings)" : Json,
      "[StageName](#cfn-apigatewayv2-stage-stagename)" : String,
      "[StageVariables](#cfn-apigatewayv2-stage-stagevariables)" : Json,
      "[Tags](#cfn-apigatewayv2-stage-tags)" : [ [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html), ... ]
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-stage-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::Stage
Properties:
  [AccessLogSettings](#cfn-apigatewayv2-stage-accesslogsettings): 
    AccessLogSettings
  [ApiId](#cfn-apigatewayv2-stage-apiid): String
  [AutoDeploy](#cfn-apigatewayv2-stage-autodeploy): Boolean
  [ClientCertificateId](#cfn-apigatewayv2-stage-clientcertificateid): String
  [DefaultRouteSettings](#cfn-apigatewayv2-stage-defaultroutesettings): 
    RouteSettings
  [DeploymentId](#cfn-apigatewayv2-stage-deploymentid): String
  [Description](#cfn-apigatewayv2-stage-description): String
  [RouteSettings](#cfn-apigatewayv2-stage-routesettings): Json
  [StageName](#cfn-apigatewayv2-stage-stagename): String
  [StageVariables](#cfn-apigatewayv2-stage-stagevariables): Json
  [Tags](#cfn-apigatewayv2-stage-tags): 
    - [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html)
```

## Properties
<a name="aws-resource-apigatewayv2-stage-properties"></a>

`AccessLogSettings`  <a name="cfn-apigatewayv2-stage-accesslogsettings"></a>
Settings for logging access in this stage.  
*Required*: No  
*Type*: [AccessLogSettings](aws-properties-apigatewayv2-stage-accesslogsettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ApiId`  <a name="cfn-apigatewayv2-stage-apiid"></a>
The API identifier.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AutoDeploy`  <a name="cfn-apigatewayv2-stage-autodeploy"></a>
Specifies whether updates to an API automatically trigger a new deployment. The default value is `false`.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ClientCertificateId`  <a name="cfn-apigatewayv2-stage-clientcertificateid"></a>
The identifier of a client certificate for a `Stage`. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DefaultRouteSettings`  <a name="cfn-apigatewayv2-stage-defaultroutesettings"></a>
The default route settings for the stage.  
*Required*: No  
*Type*: [RouteSettings](aws-properties-apigatewayv2-stage-routesettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DeploymentId`  <a name="cfn-apigatewayv2-stage-deploymentid"></a>
The deployment identifier for the API stage. Can't be updated if `autoDeploy` is enabled.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-apigatewayv2-stage-description"></a>
The description for the API stage.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RouteSettings`  <a name="cfn-apigatewayv2-stage-routesettings"></a>
Route settings for the stage.  
*Required*: No  
*Type*: [Json](aws-properties-apigatewayv2-stage-routesettings.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StageName`  <a name="cfn-apigatewayv2-stage-stagename"></a>
The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be `$default`. Maximum length is 128 characters.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`StageVariables`  <a name="cfn-apigatewayv2-stage-stagevariables"></a>
A map that defines the stage variables for a `Stage`. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-.\$1\$1:/?\$1&=,]\$1.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-apigatewayv2-stage-tags"></a>
The collection of tags. Each tag element is associated with a given resource.  
*Required*: No  
*Type*: Array of [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-stage-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-stage-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the stage name, such as `MyTestStage`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-stage-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-apigatewayv2-stage-return-values-fn--getatt-fn--getatt"></a>

`Id`  <a name="Id-fn::getatt"></a>
The identifier.

## Examples
<a name="aws-resource-apigatewayv2-stage--examples"></a>



### Stage creation example
<a name="aws-resource-apigatewayv2-stage--examples--Stage_creation_example"></a>

The following example creates a `stage` resource called `MyStage` and associates it with an existing `deployment` called `MyDeployment`.

#### JSON
<a name="aws-resource-apigatewayv2-stage--examples--Stage_creation_example--json"></a>

```
{
    "MyStage": {
        "Type": "AWS::ApiGatewayV2::Stage",
        "Properties": {
            "StageName": "Prod",
            "Description": "Prod Stage",
            "DeploymentId": {
                "Ref": "MyDeployment"
            },
            "ApiId": {
                "Ref": "CFNWebSocket"
            },
            "DefaultRouteSettings": {
                "DetailedMetricsEnabled": true,
                "LoggingLevel": "INFO",
                "DataTraceEnabled": false,
                "ThrottlingBurstLimit": 10,
                "ThrottlingRateLimit": 10
            },
            "AccessLogSettings": {
                "DestinationArn": "arn:aws:logs:us-east-1:123456789:log-group:my-log-group",
                "Format": "{\"requestId\":\"$context.requestId\", \"ip\": \"$context.identity.sourceIp\", \"caller\":\"$context.identity.caller\", \"user\":\"$context.identity.user\",\"requestTime\":\"$context.requestTime\", \"eventType\":\"$context.eventType\",\"routeKey\":\"$context.routeKey\", \"status\":\"$context.status\",\"connectionId\":\"$context.connectionId\"}"
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-apigatewayv2-stage--examples--Stage_creation_example--yaml"></a>

```
MyStage:
  Type: 'AWS::ApiGatewayV2::Stage'
  Properties:
    StageName: Prod
    Description: Prod Stage
    DeploymentId: !Ref MyDeployment
    ApiId: !Ref CFNWebSocket
    DefaultRouteSettings:
      DetailedMetricsEnabled: true
      LoggingLevel: INFO
      DataTraceEnabled: false
      ThrottlingBurstLimit: 10
      ThrottlingRateLimit: 10
    AccessLogSettings:
      DestinationArn: 'arn:aws:logs:us-east-1:123456789:log-group:my-log-group'
      Format: >-
        {"requestId":"$context.requestId", "ip": "$context.identity.sourceIp",
        "caller":"$context.identity.caller",
        "user":"$context.identity.user","requestTime":"$context.requestTime",
        "eventType":"$context.eventType","routeKey":"$context.routeKey",
        "status":"$context.status","connectionId":"$context.connectionId"}
```

## See also
<a name="aws-resource-apigatewayv2-stage--seealso"></a>
+ [CreateStage](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-stages.html#CreateStage) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Stage AccessLogSettings
<a name="aws-properties-apigatewayv2-stage-accesslogsettings"></a>

Settings for logging access in a stage.

## Syntax
<a name="aws-properties-apigatewayv2-stage-accesslogsettings-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-stage-accesslogsettings-syntax.json"></a>

```
{
  "[DestinationArn](#cfn-apigatewayv2-stage-accesslogsettings-destinationarn)" : String,
  "[Format](#cfn-apigatewayv2-stage-accesslogsettings-format)" : String
}
```

### YAML
<a name="aws-properties-apigatewayv2-stage-accesslogsettings-syntax.yaml"></a>

```
  [DestinationArn](#cfn-apigatewayv2-stage-accesslogsettings-destinationarn): String
  [Format](#cfn-apigatewayv2-stage-accesslogsettings-format): String
```

## Properties
<a name="aws-properties-apigatewayv2-stage-accesslogsettings-properties"></a>

`DestinationArn`  <a name="cfn-apigatewayv2-stage-accesslogsettings-destinationarn"></a>
The ARN of the CloudWatch Logs log group to receive access logs. This parameter is required to enable access logging.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Format`  <a name="cfn-apigatewayv2-stage-accesslogsettings-format"></a>
A single line format of the access logs of data, as specified by selected \$1context variables. The format must include at least \$1context.requestId. This parameter is required to enable access logging.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-apigatewayv2-stage-accesslogsettings--seealso"></a>
+ [Stages](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-stages.html) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::Stage RouteSettings
<a name="aws-properties-apigatewayv2-stage-routesettings"></a>

Represents a collection of route settings.

## Syntax
<a name="aws-properties-apigatewayv2-stage-routesettings-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-apigatewayv2-stage-routesettings-syntax.json"></a>

```
{
  "[DataTraceEnabled](#cfn-apigatewayv2-stage-routesettings-datatraceenabled)" : Boolean,
  "[DetailedMetricsEnabled](#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled)" : Boolean,
  "[LoggingLevel](#cfn-apigatewayv2-stage-routesettings-logginglevel)" : String,
  "[ThrottlingBurstLimit](#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit)" : Integer,
  "[ThrottlingRateLimit](#cfn-apigatewayv2-stage-routesettings-throttlingratelimit)" : Number
}
```

### YAML
<a name="aws-properties-apigatewayv2-stage-routesettings-syntax.yaml"></a>

```
  [DataTraceEnabled](#cfn-apigatewayv2-stage-routesettings-datatraceenabled): Boolean
  [DetailedMetricsEnabled](#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled): Boolean
  [LoggingLevel](#cfn-apigatewayv2-stage-routesettings-logginglevel): String
  [ThrottlingBurstLimit](#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit): Integer
  [ThrottlingRateLimit](#cfn-apigatewayv2-stage-routesettings-throttlingratelimit): Number
```

## Properties
<a name="aws-properties-apigatewayv2-stage-routesettings-properties"></a>

`DataTraceEnabled`  <a name="cfn-apigatewayv2-stage-routesettings-datatraceenabled"></a>
Specifies whether (`true`) or not (`false`) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DetailedMetricsEnabled`  <a name="cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled"></a>
Specifies whether detailed metrics are enabled.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LoggingLevel`  <a name="cfn-apigatewayv2-stage-routesettings-logginglevel"></a>
Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ThrottlingBurstLimit`  <a name="cfn-apigatewayv2-stage-routesettings-throttlingburstlimit"></a>
Specifies the throttling burst limit.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ThrottlingRateLimit`  <a name="cfn-apigatewayv2-stage-routesettings-throttlingratelimit"></a>
Specifies the throttling rate limit.  
*Required*: No  
*Type*: Number  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-apigatewayv2-stage-routesettings--seealso"></a>
+ [Stages](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-stages.html) in the *Amazon API Gateway Version 2 API Reference*



# AWS::ApiGatewayV2::VpcLink
<a name="aws-resource-apigatewayv2-vpclink"></a>

The `AWS::ApiGatewayV2::VpcLink` resource creates a VPC link. Supported only for HTTP APIs. The VPC link status must transition from `PENDING` to `AVAILABLE` to successfully create a VPC link, which can take up to 10 minutes. To learn more, see [Working with VPC Links for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vpc-links.html) in the *API Gateway Developer Guide*. 

## Syntax
<a name="aws-resource-apigatewayv2-vpclink-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-apigatewayv2-vpclink-syntax.json"></a>

```
{
  "Type" : "AWS::ApiGatewayV2::VpcLink",
  "Properties" : {
      "[Name](#cfn-apigatewayv2-vpclink-name)" : String,
      "[SecurityGroupIds](#cfn-apigatewayv2-vpclink-securitygroupids)" : [ String, ... ],
      "[SubnetIds](#cfn-apigatewayv2-vpclink-subnetids)" : [ String, ... ],
      "[Tags](#cfn-apigatewayv2-vpclink-tags)" : {Key: Value, ...}
    }
}
```

### YAML
<a name="aws-resource-apigatewayv2-vpclink-syntax.yaml"></a>

```
Type: AWS::ApiGatewayV2::VpcLink
Properties:
  [Name](#cfn-apigatewayv2-vpclink-name): String
  [SecurityGroupIds](#cfn-apigatewayv2-vpclink-securitygroupids): 
    - String
  [SubnetIds](#cfn-apigatewayv2-vpclink-subnetids): 
    - String
  [Tags](#cfn-apigatewayv2-vpclink-tags): 
    Key: Value
```

## Properties
<a name="aws-resource-apigatewayv2-vpclink-properties"></a>

`Name`  <a name="cfn-apigatewayv2-vpclink-name"></a>
The name of the VPC link.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SecurityGroupIds`  <a name="cfn-apigatewayv2-vpclink-securitygroupids"></a>
A list of security group IDs for the VPC link.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SubnetIds`  <a name="cfn-apigatewayv2-vpclink-subnetids"></a>
A list of subnet IDs to include in the VPC link.  
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-apigatewayv2-vpclink-tags"></a>
The collection of tags. Each tag element is associated with a given resource.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `.*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-apigatewayv2-vpclink-return-values"></a>

### Ref
<a name="aws-resource-apigatewayv2-vpclink-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the VPC link's ID, such as `abcde1`.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-apigatewayv2-vpclink-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-apigatewayv2-vpclink-return-values-fn--getatt-fn--getatt"></a>

`VpcLinkId`  <a name="VpcLinkId-fn::getatt"></a>
The VPC link ID.