

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS::Serverless::Api
<a name="sam-resource-api"></a>

Cria uma coleção de recursos e métodos do Amazon API Gateway que podem ser invocados por meio de endpoints HTTPS.

Um [AWS::Serverless::Api](#sam-resource-api) recurso não precisa ser adicionado explicitamente a um modelo de definição de aplicativo AWS sem servidor. Um recurso desse tipo é criado implicitamente a partir da união de eventos de API definidos nos recursos [AWS::Serverless::Function](sam-resource-function.md) definidos no modelo que não se referem a um recurso [AWS::Serverless::Api](#sam-resource-api).

Um [AWS::Serverless::Api](#sam-resource-api) recurso deve ser usado para definir e documentar o uso da API OpenApi, o que fornece mais capacidade de configurar os recursos subjacentes do Amazon API Gateway.

Recomendamos que você use CloudFormation ganchos ou políticas do IAM para verificar se os recursos do API Gateway têm autorizadores vinculados a eles para controlar o acesso a eles.

Para obter mais informações sobre o uso de CloudFormation ganchos, consulte [Registrando ganchos](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/registering-hook-python.html) no guia do *usuário da CloudFormation CLI* e no repositório. [apigw-enforce-authorizer](https://github.com/aws-cloudformation/aws-cloudformation-samples/tree/main/hooks/python-hooks/apigw-enforce-authorizer/) GitHub 

Para obter mais informações sobre o uso de políticas do IAM, consulte [Exigir que as rotas de API tenham autorização](https://docs.aws.amazon.com/apigateway/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-require-authorization) no *Guia do desenvolvedor do API Gateway*.

**nota**  
Quando você implanta AWS CloudFormation, AWS SAM transforma seus AWS SAM recursos em CloudFormation recursos. Para obter mais informações, consulte [CloudFormation Recursos gerados para AWS SAM](sam-specification-generated-resources.md).

## Sintaxe
<a name="sam-resource-api-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

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

```
Type: AWS::Serverless::Api
Properties:
  [AccessLogSetting](#sam-api-accesslogsetting): [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)
  AlwaysDeploy: Boolean
  [ApiKeySourceType](#sam-api-apikeysourcetype): String
  [Auth](#sam-api-auth): ApiAuth
  [BinaryMediaTypes](#sam-api-binarymediatypes): List
  [CacheClusterEnabled](#sam-api-cacheclusterenabled): Boolean
  [CacheClusterSize](#sam-api-cacheclustersize): String
  [CanarySetting](#sam-api-canarysetting): [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)
  [Cors](#sam-api-cors): String | CorsConfiguration
  [DefinitionBody](#sam-api-definitionbody): JSON
  [DefinitionUri](#sam-api-definitionuri): String | ApiDefinition
  [Description](#sam-api-description): String
  [DisableExecuteApiEndpoint](#sam-api-disableexecuteapiendpoint): Boolean
  [Domain](#sam-api-domain): DomainConfiguration
  [EndpointConfiguration](#sam-api-endpointconfiguration): EndpointConfiguration
  [FailOnWarnings](#sam-api-failonwarnings): Boolean
  [GatewayResponses](#sam-api-gatewayresponses): Map
  MergeDefinitions: Boolean
  [MethodSettings](#sam-api-methodsettings): MethodSettings
  [MinimumCompressionSize](#sam-api-minimumcompressionsize): Integer
  [Mode](#sam-api-mode): String
  [Models](#sam-api-models): Map
  [Name](#sam-api-name): String
  [OpenApiVersion](#sam-api-openapiversion): String
  PropagateTags: Boolean
  [Policy](#sam-api-policy): JSON
  [StageName](#sam-api-stagename): String
  [Tags](#sam-api-tags): Map
  [TracingEnabled](#sam-api-tracingenabled): Boolean
  [Variables](#sam-api-variables): Map
```

## Propriedades
<a name="sam-resource-api-properties"></a>

 `AccessLogSetting`   <a name="sam-api-accesslogsetting"></a>
Configura a configuração do log de acesso para um estágio.  
*Digite*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)` propriedade de um `AWS::ApiGateway::Stage` recurso.

 `AlwaysDeploy`   <a name="sam-api-alwaysdeploy"></a>
Sempre implanta a API, mesmo quando nenhuma alteração na API foi detectada.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ApiKeySourceType`   <a name="sam-api-apikeysourcetype"></a>
A origem da chave de API para as solicitações de medição de acordo com um plano de uso. Os valores válidos são `HEADER` e `AUTHORIZER`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ApiKeySourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype)` propriedade de um `AWS::ApiGateway::RestApi` recurso.

 `Auth`   <a name="sam-api-auth"></a>
Configure a autorização para controlar o acesso à sua API API Gateway.  
Para obter mais informações sobre como configurar o acesso usando, AWS SAM consulte[Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md). Para ver um exemplo de como substituir um autorizador global, consulte [Substitua um autorizador global para sua API REST do Amazon API Gateway](sam-property-function-apifunctionauth.md#sam-property-function-apifunctionauth--examples--override).  
*Digite*: [ApiAuth](sam-property-api-apiauth.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `BinaryMediaTypes`   <a name="sam-api-binarymediatypes"></a>
Lista de tipos de MIME que sua API pode retornar. Use isso para ativar o suporte binário paraAPIs.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[BinaryMediaTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes)` propriedade de um `AWS::ApiGateway::RestApi` recurso. A lista de BinaryMediaTypes é adicionada ao CloudFormation recurso e ao documento da OpenAPI.

 `CacheClusterEnabled`   <a name="sam-api-cacheclusterenabled"></a>
Indica se o cache está habilitado para o estágio. Para armazenar respostas em cache, você também deve definir `CachingEnabled` como `true` abaixo `MethodSettings`.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CacheClusterEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled)` propriedade de um `AWS::ApiGateway::Stage` recurso.

 `CacheClusterSize`   <a name="sam-api-cacheclustersize"></a>
O tamanho do cluster de cache da etapa.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CacheClusterSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize)` propriedade de um `AWS::ApiGateway::Stage` recurso.

 `CanarySetting`   <a name="sam-api-canarysetting"></a>
Configure uma configuração de canário para um estágio de uma implantação regular.  
*Digite*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)` propriedade de um `AWS::ApiGateway::Stage` recurso.

 `Cors`   <a name="sam-api-cors"></a>
Gerencie o compartilhamento de recursos de origem cruzada (CORS) para todo o seu API Gateway. APIs Especifique o domínio a ser permitido como uma string ou especifique um dicionário com configuração adicional do Cors.   
O CORS exige que AWS SAM você modifique sua definição de OpenAPI. Crie uma definição de OpenAPI em linha no `DefinitionBody` para ativar o CORS.
Para obter mais informações sobre o CORS, consulte [Habilitar o CORS para um recurso API REST para a API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) no *Guia do desenvolvedor do API Gateway*.  
*Tipo*: String \$1 [CorsConfiguration](sam-property-api-corsconfiguration.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `DefinitionBody`   <a name="sam-api-definitionbody"></a>
Especificação OpenAPI que descreve sua API. Se o `DefinitionUri` nem o `DefinitionBody` for especificado, o SAM gerará um `DefinitionBody` para você com base na configuração do seu modelo.  
Para fazer referência a um arquivo OpenAPI local que define sua API, use a transformação `AWS::Include`. Para saber mais, consulte [Como AWS SAM carrega arquivos locais](deploy-upload-local-files.md).  
*Type*: JSON  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` propriedade de um `AWS::ApiGateway::RestApi` recurso. Se determinadas propriedades forem fornecidas, o conteúdo poderá ser inserido ou modificado no DefinitionBody antes de ser passado para CloudFormation. As propriedades incluem `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, e um `EventSource` tipo API para um arquivo `AWS::Serverless::Function`.

 `DefinitionUri`   <a name="sam-api-definitionuri"></a>
Uri do Amazon S3, caminho de arquivo local ou objeto de localização do documento OpenAPI que define a API. O objeto do Amazon S3 a que essa propriedade faz referência deve ser um arquivo OpenAPI válido. Se o `DefinitionUri` nem o `DefinitionBody` for especificado, o SAM gerará um `DefinitionBody` para você com base na configuração do seu modelo.  
Se um caminho de arquivo local for fornecido, o modelo deverá passar pelo fluxo de trabalho que inclui o comando `sam deploy` ou `sam package` para que a definição seja transformada adequadamente.  
As funções intrínsecas não são suportadas em OpenApi arquivos externos referenciados por. `DefinitionUri` Em vez disso, use a `DefinitionBody` propriedade com a [Transformação Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) para importar uma OpenApi definição para o modelo.  
*Tipo*: String \$1 [ApiDefinition](sam-property-api-apidefinition.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location)` propriedade de um `AWS::ApiGateway::RestApi` recurso. As propriedades aninhadas do Amazon S3 têm nomes diferentes.

 `Description`   <a name="sam-api-description"></a>
Uma descrição do recurso da API.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description)` propriedade de um `AWS::ApiGateway::RestApi` recurso.

 `DisableExecuteApiEndpoint`   <a name="sam-api-disableexecuteapiendpoint"></a>
Especifica se os clientes podem invocar sua API usando o endpoint `execute-api` padrão. Por padrão, os clientes podem invocar sua API com o padrão `https://{api_id}.execute-api.{region}.amazonaws.com`. Para exigir que os clientes usem um nome de domínio personalizado para invocar sua API, especifique `True`.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[ DisableExecuteApiEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint)` propriedade de um `AWS::ApiGateway::RestApi` recurso. Ele é passado diretamente para a propriedade `disableExecuteApiEndpoint` de uma extensão `[ x-amazon-apigateway-endpoint-configuration](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html)`, que é adicionada à propriedade ` [ Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` de um recurso `AWS::ApiGateway::RestApi`.

 `Domain`   <a name="sam-api-domain"></a>
Configura um domínio personalizado para essa API do API Gateway.  
*Digite*: [DomainConfiguration](sam-property-api-domainconfiguration.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `EndpointConfiguration`   <a name="sam-api-endpointconfiguration"></a>
O tipo de endpoint de uma API REST.  
*Digite*: [EndpointConfiguration](sam-property-api-endpointconfiguration.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration)` propriedade de um `AWS::ApiGateway::RestApi` recurso. As propriedades aninhadas de configuração têm nomes diferentes.

 `FailOnWarnings`   <a name="sam-api-failonwarnings"></a>
Especifica se deve reverter a criação da API (`true`) ou não (`false`) quando um aviso é encontrado. O valor padrão é `false`.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[FailOnWarnings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings)` propriedade de um `AWS::ApiGateway::RestApi` recurso.

 `GatewayResponses`   <a name="sam-api-gatewayresponses"></a>
Configura as respostas do Gateway para uma API. As respostas do Gateway são respostas retornadas pelo API Gateway, diretamente ou por meio do uso de autorizadores do Lambda. Para obter mais informações, consulte a documentação da [ OpenApi extensão Api Gateway para respostas do Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html).  
*Tipo*: mapa  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `MergeDefinitions`   <a name="sam-api-mergedefinitions"></a>
AWS SAM gera uma OpenAPI especificação da sua fonte de eventos de API. Especifique `true` para AWS SAM mesclar isso na OpenAPI especificação embutida definida em seu `AWS::Serverless::Api` recurso. Especifique `false` para não mesclar.  
O `MergeDefinitions` requer que `DefinitionBody` a propriedade `AWS::Serverless::Api` seja definida. O `MergeDefinitions` não é compatível com a propriedade `DefinitionUri` para `AWS::Serverless::Api`.  
*Valor padrão*: `false`  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `MethodSettings`   <a name="sam-api-methodsettings"></a>
Define todas as configurações para o estágio da API, incluindo Logging, Métricas, CacheTTL, controle de utilização.  
*Tipo*: lista de [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[MethodSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings)` propriedade de um `AWS::ApiGateway::Stage` recurso.

 `MinimumCompressionSize`   <a name="sam-api-minimumcompressionsize"></a>
Permita a compactação dos corpos de resposta com base no cabeçalho Accept-Encoding do cliente. A compressão é acionada quando o tamanho do corpo da resposta é maior ou igual ao limite configurado. O limite máximo de tamanho do corpo é de 10 MB (10.485.760 bytes). - Os seguintes tipos de compactação são suportados: gzip, deflate e identity.  
*Tipo*: inteiro  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[MinimumCompressionSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize)` propriedade de um `AWS::ApiGateway::RestApi` recurso.

 `Mode`   <a name="sam-api-mode"></a>
Essa propriedade se aplica somente quando você usa a OpenAPI para definir sua API REST. O `Mode` determina como o API Gateway trata atualizações de recursos. Para obter mais informações, consulte a propriedade [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) do tipo de recurso [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html).  
*Valores válidos*: `overwrite` ou `merge`  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode)` propriedade de um `AWS::ApiGateway::RestApi` recurso.

 `Models`   <a name="sam-api-models"></a>
Os esquemas a serem usados pelos seus métodos de API. Esses esquemas podem ser descritos usando JSON ou YAML. Consulte a seção Exemplos na parte inferior desta página para ver exemplos de modelos.  
*Tipo*: mapa  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Name`   <a name="sam-api-name"></a>
Um nome para o RestApi recurso API Gateway  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name)` propriedade de um `AWS::ApiGateway::RestApi` recurso.

 `OpenApiVersion`   <a name="sam-api-openapiversion"></a>
Versão do OpenApi para usar. Isso pode ser `2.0` para a especificação Swagger ou para uma das versões OpenApi 3.0, como. `3.0.1` Para obter mais informações sobre a OpenAPI, consulte a [Especificação da OpenAPI.](https://swagger.io/specification/)  
 AWS SAM cria um estágio chamado `Stage` por padrão. Definir essa propriedade com qualquer valor válido impedirá a criação do estágio `Stage`. 
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`PropagateTags`  <a name="sam-api-propagatetags"></a>
Indique se deseja ou não passar as tags da propriedade `Tags` para os recursos [AWS::Serverless::Api](sam-specification-generated-resources-api.md) gerados. Especifique `True` para propagar as tags nos recursos gerados.  
*Tipo*: booliano  
*Obrigatório*: não  
*Padrão*: `False`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`Policy`  <a name="sam-api-policy"></a>
Um documento de política que contenha as permissões para a API. Para definir o ARN da política, use a função intrínseca `!Join` com `""` como delimitador e valores de `"execute-api:/"` e `"*"`.  
*Type*: JSON  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a propriedade [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy) de um `AWS::ApiGateway::RestApi` recurso.

 `StageName`   <a name="sam-api-stagename"></a>
O nome do estágio, que o API Gateway usa como o primeiro segmento de caminho no URI (Uniform Resource Identifier) invocado.  
Para referenciar o recurso do estágio, use `<api-logical-id>.Stage`. Para obter mais informações sobre como referenciar recursos gerados quando um recurso [AWS::Serverless::Api](#sam-resource-api) é especificado, consulte [CloudFormation recursos gerados quando AWS::Serverless::Api é especificado](sam-specification-generated-resources-api.md). Para obter informações gerais sobre CloudFormation os recursos gerados, consulte[CloudFormation Recursos gerados para AWS SAM](sam-specification-generated-resources.md).  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[StageName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename)` propriedade de um `AWS::ApiGateway::Stage` recurso. É obrigatório no SAM, mas não no API Gateway  
*Outras observações*: A API implícita tem o nome de estágio de “Prod”.

 `Tags`   <a name="sam-api-tags"></a>
Um mapa (string para string) que especifica as tags a serem adicionadas a esse estágio do API Gateway. Para obter detalhes sobre chaves e valores válidos para tags, consulte [Etiqueta de recurso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) no *AWS CloudFormation Guia do usuário*.  
*Tipo*: mapa  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags)` propriedade de um `AWS::ApiGateway::Stage` recurso. A propriedade Tags no SAM consiste em pares de chave-valor; CloudFormation nela consiste em uma lista de objetos Tag.

 `TracingEnabled`   <a name="sam-api-tracingenabled"></a>
Indica se o rastreamento ativo com o X-Ray está habilitado para esse estágio. Para obter mais informações sobre o X-Ray, consulte [Rastreando solicitações de usuários para REST APIs usando o X-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) no *Guia do desenvolvedor do API Gateway*.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[TracingEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled)` propriedade de um `AWS::ApiGateway::Stage` recurso.

 `Variables`   <a name="sam-api-variables"></a>
Um mapa (string para string) que define as variáveis de estágio, onde o nome da variável é a chave e o valor da variável é o valor. Os nomes de variáveis são limitadas a caracteres alfanuméricos. Os valores devem corresponder a expressão regular a seguir: `[A-Za-z0-9._~:/?#&=,-]+`.  
*Tipo*: mapa  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Variables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables)` propriedade de um `AWS::ApiGateway::Stage` recurso.

## Valores de retorno
<a name="sam-resource-api-return-values"></a>

### Ref.
<a name="sam-resource-api-return-values-ref"></a>

Quando o ID lógico desse recurso é fornecido para a `Ref` função intrínseca, retorna o ID da API API Gateway subjacente.

Para obter mais informações sobre como usar a função `Ref`, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) no *Guia do usuário do AWS CloudFormation *. 

### Fã:: GetAtt
<a name="sam-resource-api-return-values-fn--getatt"></a>

`Fn::GetAtt` retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveis e os valores de retorno de amostra. 

Para obter mais informações sobre o uso do `Fn::GetAtt`, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) o *AWS CloudFormation Guia do usuário*. 

`RootResourceId`  <a name="RootResourceId-fn::getatt"></a>
O ID de um recurso raiz `RestApi`, como `a0bc123d4e`.

## Exemplos
<a name="sam-resource-api--examples"></a>

### SimpleApiExample
<a name="sam-resource-api--examples--simpleapiexample"></a>

Um arquivo de AWS SAM modelo Hello World que contém uma função Lambda com um endpoint de API. Este é um arquivo AWS SAM de modelo completo para um aplicativo sem servidor em funcionamento.

#### YAML
<a name="sam-resource-api--examples--simpleapiexample--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template with a simple API definition
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
  ApiFunction: # Adds a GET method at the root resource via an Api event
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
            RestApiId:
              Ref: ApiGatewayApi
      Runtime: python3.10
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
```

### ApiCorsExample
<a name="sam-resource-api--examples--apicorsexample"></a>

Um trecho AWS SAM de modelo com uma API definida em um arquivo Swagger externo junto com as integrações do Lambda e as configurações do CORS. Essa é apenas uma parte de um arquivo de AWS SAM modelo que mostra uma [AWS::Serverless::Api](#sam-resource-api) definição.

#### YAML
<a name="sam-resource-api--examples--apicorsexample--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      # Allows www.example.com to call these APIs
      # SAM will automatically add AllowMethods with a list of methods for this API
      Cors: "'www.example.com'"
      DefinitionBody: # Pull in an OpenApi definition from S3
        'Fn::Transform':
          Name: 'AWS::Include'
          # Replace "bucket" with your bucket name
          Parameters:
            Location: s3://bucket/swagger.yaml
```

### ApiCognitoAuthExample
<a name="sam-resource-api--examples--apicognitoauthexample"></a>

Um trecho AWS SAM de modelo com uma API que usa o Amazon Cognito para autorizar solicitações contra a API. Essa é apenas uma parte de um arquivo de AWS SAM modelo que mostra uma [AWS::Serverless::Api](#sam-resource-api) definição.

#### YAML
<a name="sam-resource-api--examples--apicognitoauthexample--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Cors: "'*'"
      Auth:
        DefaultAuthorizer: MyCognitoAuthorizer
        Authorizers:
          MyCognitoAuthorizer:
            UserPoolArn:
              Fn::GetAtt: [MyCognitoUserPool, Arn]
```

### ApiModelsExample
<a name="sam-resource-api--examples--apimodelsexample"></a>

Um trecho de AWS SAM modelo com uma API que inclui um esquema de modelos. Essa é apenas uma parte de um arquivo de AWS SAM modelo, mostrando uma [AWS::Serverless::Api](#sam-resource-api) definição com dois esquemas de modelo.

#### YAML
<a name="sam-resource-api--examples--apimodelsexample--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Models:
        User:
          type: object
          required:
            - username
            - employee_id
          properties:
            username:
              type: string
            employee_id:
              type: integer
            department:
              type: string
        Item:
          type: object
          properties:
            count:
              type: integer
            category:
              type: string
            price:
              type: integer
```

### Exemplo de armazenamento em cache
<a name="sam-resource-api--examples--caching-example"></a>

Um arquivo de AWS SAM modelo Hello World que contém uma função Lambda com um endpoint de API. A API tem o armazenamento em cache ativado para um recurso e método. Para obter mais informações sobre armazenamento em cache, consulte [Habilitar o armazenamento em cache de APIs para melhorar a capacidade de resposta ](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) no *Guia do desenvolvedor do API Gateway*.

#### YAML
<a name="sam-resource-api--examples--caching-example--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template with a simple API definition with caching turned on
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      CacheClusterEnabled: true
      CacheClusterSize: '0.5'
      MethodSettings:
        - ResourcePath: /
          HttpMethod: GET
          CachingEnabled: true
          CacheTtlInSeconds: 300
      Tags:
        CacheMethods: All 

  ApiFunction: # Adds a GET method at the root resource via an Api event
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
            RestApiId:
              Ref: ApiGatewayApi
      Runtime: python3.10
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
```

### Domínio personalizado com um exemplo de API privada
<a name="sam-resource-api--examples--custom-domain-example"></a>

Um arquivo de AWS SAM modelo Hello World que contém uma função Lambda com um endpoint de API mapeado para um domínio privado. O modelo cria uma associação de acesso a domínio entre um endpoint da VPC e o domínio privado. Para obter mais informações, consulte [Nomes de domínio personalizados para uso privado APIs no API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-custom-domains.html).

#### YAML
<a name="sam-resource-api--examples--custom-domain-example--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template configured with a custom domain using a private API

Parameters:
    DomainName:
      Type: String
      Default: mydomain.example.com
    CertificateArn:
      Type: String
    HostedZoneId:
      Type: String
    VpcEndpointId:
      Type: String
    VpcEndpointDomainName:
      Type: String
    VpcEndpointHostedZoneId:
      Type: String

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
      Handler: index.handler
      Runtime: python3.13
      Events:
        Fetch:
          Type: Api
          Properties:
            RestApiId:
              Ref: MyApi
            Method: Get
            Path: /get
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      EndpointConfiguration:
        Type: PRIVATE
        VPCEndpointIds:
        - !Ref VpcEndpointId
      Policy:
        Version: '2012-10-17		 	 	 '
        Statement:
        - Effect: Allow
          Principal: '*'
          Action: execute-api:Invoke
          Resource: execute-api:/*
        - Effect: Deny
          Principal: '*'
          Action: execute-api:Invoke
          Resource: execute-api:/*
          Condition:
            StringNotEquals:
              aws:SourceVpce: !Ref VpcEndpointId
      Domain:
        DomainName: !Ref DomainName
        CertificateArn: !Ref CertificateArn
        EndpointConfiguration: PRIVATE
        BasePath:
        - /
        Route53:
          HostedZoneId: !Ref HostedZoneId
          VpcEndpointDomainName: !Ref VpcEndpointDomainName
          VpcEndpointHostedZoneId: !Ref VpcEndpointHostedZoneId
        AccessAssociation:
          VpcEndpointId: !Ref VpcEndpointId
        Policy:
          Version: '2012-10-17		 	 	 '
          Statement:
          - Effect: Allow
            Principal: '*'
            Action: execute-api:Invoke
            Resource: execute-api:/*
          - Effect: Deny
            Principal: '*'
            Action: execute-api:Invoke
            Resource: execute-api:/*
            Condition:
              StringNotEquals:
                aws:SourceVpce: !Ref VpcEndpointId
```

# ApiAuth
<a name="sam-property-api-apiauth"></a>

Configure a autorização para controlar o acesso à sua API API Gateway.

Para obter mais informações e exemplos para configurar o acesso usando, AWS SAM consulte[Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).

## Sintaxe
<a name="sam-property-api-apiauth-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-apiauth-syntax.yaml"></a>

```
  AddApiKeyRequiredToCorsPreflight: Boolean
  [AddDefaultAuthorizerToCorsPreflight](#sam-api-apiauth-adddefaultauthorizertocorspreflight): Boolean
  [ApiKeyRequired](#sam-api-apiauth-apikeyrequired): Boolean
  [Authorizers](#sam-api-apiauth-authorizers): CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
  [DefaultAuthorizer](#sam-api-apiauth-defaultauthorizer): String
  [InvokeRole](#sam-api-apiauth-invokerole): String
  [ResourcePolicy](#sam-api-apiauth-resourcepolicy): ResourcePolicyStatement
  [UsagePlan](#sam-api-apiauth-usageplan): ApiUsagePlan
```

**nota**  
A propriedade `Authorizers` inclui o `AWS_IAM`, mas não é necessária nenhuma configuração extra do `AWS_IAM`. Para ver um exemplo, consulte [AWS IAM](#sam-property-api-apiauth--examples--aws_iam).

## Propriedades
<a name="sam-property-api-apiauth-properties"></a>

 `AddApiKeyRequiredToCorsPreflight`   <a name="sam-api-apiauth-addapikeyrequiredtocorspreflight"></a>
Se as propriedades `ApiKeyRequired` e `Cors` estiverem definidas, a configuração `AddApiKeyRequiredToCorsPreflight` fará com que a chave de API seja adicionada à propriedade `Options`.  
*Tipo*: booliano  
*Obrigatório*: não  
*Padrão*: `True`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `AddDefaultAuthorizerToCorsPreflight`   <a name="sam-api-apiauth-adddefaultauthorizertocorspreflight"></a>
Se as propriedades `DefaultAuthorizer` e `Cors` estiverem definidas, a configuração `AddDefaultAuthorizerToCorsPreflight` fará com que o autorizador padrão seja adicionado à propriedade `Options` na seção OpenAPI.  
*Tipo*: booliano  
*Obrigatório*: não  
*Padrão*: verdadeiro  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ApiKeyRequired`   <a name="sam-api-apiauth-apikeyrequired"></a>
Se definido como verdadeiro, uma chave de API é necessária para todos os eventos da API. Para obter mais informações sobre chaves de API, consulte [Criar e usar planos de uso com chaves de API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) no *Guia do desenvolvedor do Gateway da API*.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Authorizers`   <a name="sam-api-apiauth-authorizers"></a>
O autorizador usado para controlar o acesso à sua API do API Gateway.  
Para obter mais informações, consulte [Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).  
*Tipo*: [CognitoAuthorizer](sam-property-api-cognitoauthorizer.md)\$1 [LambdaTokenAuthorizer](sam-property-api-lambdatokenauthorizer.md)\$1 [LambdaRequestAuthorizer](sam-property-api-lambdarequestauthorizer.md)\$1 AWS\$1IAM  
*Obrigatório*: não  
*Padrão*: nenhum  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.  
*Notas adicionais*: O SAM adiciona os Autorizadores à OpenApi definição de uma Api.

 `DefaultAuthorizer`   <a name="sam-api-apiauth-defaultauthorizer"></a>
Especifique um autorizador padrão para uma API do API Gateway, que será usada para autorizar chamadas de API por padrão.  
Se a API EventSource da função associada a essa API estiver configurada para usar permissões do IAM, essa propriedade deverá ser definida como`AWS_IAM`, caso contrário, ocorrerá um erro.
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: nenhum  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `InvokeRole`   <a name="sam-api-apiauth-invokerole"></a>
Define as credenciais de integração para todos os recursos e métodos com esse valor.  
`CALLER_CREDENTIALS`mapeia para `arn:aws:iam:::<user>/`, que usa as credenciais do chamador para invocar o endpoint.  
*Valores válidos*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn`  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: `CALLER_CREDENTIALS`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ResourcePolicy`   <a name="sam-api-apiauth-resourcepolicy"></a>
Configure a política de recursos para todos os métodos e caminhos em uma API.  
*Digite*: [ResourcePolicyStatement](sam-property-api-resourcepolicystatement.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.  
*Notas adicionais*: Essa configuração também pode ser definida individualmente `AWS::Serverless::Function` usando [ApiFunctionAuth](sam-property-function-apifunctionauth.md). Isso é necessário para APIs com`EndpointConfiguration: PRIVATE`.

 `UsagePlan`   <a name="sam-api-apiauth-usageplan"></a>
Configura um plano de uso associado a essa API. Para obter mais informações sobre planos de uso, consulte [Criar e usar planos de uso com chaves de API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) no *Guia do desenvolvedor do API Gateway*.  
Essa AWS SAM propriedade gera três CloudFormation recursos adicionais quando essa propriedade é definida: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an e an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html). Para obter informações sobre esse cenário, consulte [UsagePlan propriedade é especificada](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-usage-plan). Para obter informações gerais sobre CloudFormation os recursos gerados, consulte[CloudFormation Recursos gerados para AWS SAM](sam-specification-generated-resources.md).  
*Digite*: [ApiUsagePlan](sam-property-api-apiusageplan.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-apiauth--examples"></a>

### CognitoAuth
<a name="sam-property-api-apiauth--examples--cognitoauth"></a>

Exemplo de autenticação do Cognito

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers:
    MyCognitoAuth:
     UserPoolArn:
       Fn::GetAtt:
         - MyUserPool
         - Arn
     AuthType: "COGNITO_USER_POOLS"
  DefaultAuthorizer: MyCognitoAuth
  InvokeRole: CALLER_CREDENTIALS
  AddDefaultAuthorizerToCorsPreflight: false
  ApiKeyRequired: false
  ResourcePolicy:
    CustomStatements: [{
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "execute-api:/Prod/GET/pets",
      "Condition": {
          "IpAddress": {
              "aws:SourceIp": "1.2.3.4"
          }
        }
    }]
    IpRangeDenylist:
      - "10.20.30.40"
```

### AWS IAM
<a name="sam-property-api-apiauth--examples--aws_iam"></a>

AWS Exemplo de IAM

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers: AWS_IAM
```

# ApiUsagePlan
<a name="sam-property-api-apiusageplan"></a>

Configura um plano de uso para uma API do API Gateway. Para obter mais informações sobre planos de uso, consulte [Criar e usar planos de uso com chaves de API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) no *Guia do desenvolvedor do Gateway da API*.

## Sintaxe
<a name="sam-property-api-apiusageplan-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-apiusageplan-syntax.yaml"></a>

```
  [CreateUsagePlan](#sam-api-apiusageplan-createusageplan): String
  [Description](#sam-api-apiusageplan-description): String
  [Quota](#sam-api-apiusageplan-quota): [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota)
  [Tags](#sam-api-apiusageplan-tags): List
  [Throttle](#sam-api-apiusageplan-throttle): [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle)
  [UsagePlanName](#sam-api-apiusageplan-usageplanname): String
```

## Propriedades
<a name="sam-property-api-apiusageplan-properties"></a>

 `CreateUsagePlan`   <a name="sam-api-apiusageplan-createusageplan"></a>
Determina como esse plano de uso é configurado. Os valores válidos são `PER_API`, `SHARED` e `NONE`.  
`PER_API` cria recursos [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) e [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) que são específicos para essa API. Esses recursos têm lógica IDs de`<api-logical-id>UsagePlan`,`<api-logical-id>ApiKey`, e`<api-logical-id>UsagePlanKey`, respectivamente.  
`SHARED`cria [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), e [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html)recursos que são compartilhados em qualquer API que também tenha `CreateUsagePlan: SHARED` o mesmo AWS SAM modelo. Esses recursos têm lógica IDs de`ServerlessUsagePlan`,`ServerlessApiKey`, e`ServerlessUsagePlanKey`, respectivamente. Se você usar essa opção, recomendamos adicionar configurações adicionais para esse plano de uso em apenas um recurso de API para evitar definições conflitantes e um estado incerto.  
`NONE` desativa a criação ou associação de um plano de uso com essa API. Isso só é necessário se `SHARED` ou `PER_API` estiver especificado no [Seção Global do modelo AWS SAM](sam-specification-template-anatomy-globals.md).  
*Valores válidos*: `PER_API`, `SHARED` e `NONE`  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Description`   <a name="sam-api-apiusageplan-description"></a>
Uma descrição do plano de uso.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description)` propriedade de um `AWS::ApiGateway::UsagePlan` recurso.

 `Quota`   <a name="sam-api-apiusageplan-quota"></a>
Configura o número de solicitações que os usuários podem fazer em um determinado intervalo.  
*Digite*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Quota](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota)` propriedade de um `AWS::ApiGateway::UsagePlan` recurso.

 `Tags`   <a name="sam-api-apiusageplan-tags"></a>
Uma matriz de tags arbitrárias (pares de chave-valor) a ser associada ao plano de uso.  
Essa propriedade usa o [Tipo de CloudFormation Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags)` propriedade de um `AWS::ApiGateway::UsagePlan` recurso.

 `Throttle`   <a name="sam-api-apiusageplan-throttle"></a>
Configura a taxa de solicitações geral (média de solicitações por segundo) e capacidade de intermitência.  
*Digite*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Throttle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle)` propriedade de um `AWS::ApiGateway::UsagePlan` recurso.

 `UsagePlanName`   <a name="sam-api-apiusageplan-usageplanname"></a>
Um nome para o plano de uso.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[UsagePlanName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname)` propriedade de um `AWS::ApiGateway::UsagePlan` recurso.

## Exemplos
<a name="sam-property-api-apiusageplan--examples"></a>

### UsagePlan
<a name="sam-property-api-apiusageplan--examples--usageplan"></a>

Veja a seguir um exemplo de plano de uso.

#### YAML
<a name="sam-property-api-apiusageplan--examples--usageplan--yaml"></a>

```
Auth:
  UsagePlan:
    CreateUsagePlan: PER_API
    Description: Usage plan for this API
    Quota:
      Limit: 500
      Period: MONTH
    Throttle:
      BurstLimit: 100
      RateLimit: 50
    Tags:
      - Key: TagName
        Value: TagValue
```

# CognitoAuthorizer
<a name="sam-property-api-cognitoauthorizer"></a>

Defina um autorizador do grupo de usuários do Amazon Cognito.

Para ter mais informações e exemplos, consulte [Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).

## Sintaxe
<a name="sam-property-api-cognitoauthorizer-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-cognitoauthorizer-syntax.yaml"></a>

```
  [AuthorizationScopes](#sam-api-cognitoauthorizer-authorizationscopes): List
  [Identity](#sam-api-cognitoauthorizer-identity): CognitoAuthorizationIdentity
  [UserPoolArn](#sam-api-cognitoauthorizer-userpoolarn): String
```

## Propriedades
<a name="sam-property-api-cognitoauthorizer-properties"></a>

 `AuthorizationScopes`   <a name="sam-api-cognitoauthorizer-authorizationscopes"></a>
Lista de escopos de autorização para esse autorizador.  
*Tipo:* lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Identity`   <a name="sam-api-cognitoauthorizer-identity"></a>
Esta propriedade pode ser usada para especificar um `IdentitySource` em uma solicitação recebida para um autorizador.  
*Digite*: [CognitoAuthorizationIdentity](sam-property-api-cognitoauthorizationidentity.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `UserPoolArn`   <a name="sam-api-cognitoauthorizer-userpoolarn"></a>
Pode se referir a um usuário a pool/specify um grupo de usuários (arn) ao qual você deseja adicionar este autorizador cognito.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-cognitoauthorizer--examples"></a>

### CognitoAuth
<a name="sam-property-api-cognitoauthorizer--examples--cognitoauth"></a>

Exemplo de Autenticação Cognito

#### YAML
<a name="sam-property-api-cognitoauthorizer--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers:
    MyCognitoAuth:
      AuthorizationScopes:
        - scope1
        - scope2
      UserPoolArn:
        Fn::GetAtt:
          - MyCognitoUserPool
          - Arn
      Identity:
        Header: MyAuthorizationHeader
        ValidationExpression: myauthvalidationexpression
```

# CognitoAuthorizationIdentity
<a name="sam-property-api-cognitoauthorizationidentity"></a>

Essa propriedade pode ser usada para especificar um IdentitySource em uma solicitação recebida para um autorizador. Para obter mais informações, IdentitySource consulte a [ OpenApi extensão ApiGateway Authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-authorizer.html).

## Sintaxe
<a name="sam-property-api-cognitoauthorizationidentity-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-cognitoauthorizationidentity-syntax.yaml"></a>

```
  [Header](#sam-api-cognitoauthorizationidentity-header): String
  [ReauthorizeEvery](#sam-api-cognitoauthorizationidentity-reauthorizeevery): Integer
  [ValidationExpression](#sam-api-cognitoauthorizationidentity-validationexpression): String
```

## Propriedades
<a name="sam-property-api-cognitoauthorizationidentity-properties"></a>

 `Header`   <a name="sam-api-cognitoauthorizationidentity-header"></a>
Especifique o nome do cabeçalho para Autorização na OpenApi definição.  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: Autorização  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ReauthorizeEvery`   <a name="sam-api-cognitoauthorizationidentity-reauthorizeevery"></a>
O período time-to-live (TTL), em segundos, que especifica por quanto tempo o API Gateway armazena em cache os resultados do autorizador. Se você especificar um valor maior que 0, o API Gateway armazenará em cache as respostas do autorizador. Por padrão, o API Gateway define essa propriedade como 300. O valor máximo é 3600, ou uma hora.  
*Tipo*: inteiro  
*Obrigatório*: não  
*Padrão*: 300  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ValidationExpression`   <a name="sam-api-cognitoauthorizationidentity-validationexpression"></a>
Especifique uma expressão de validação para validar a identidade recebida  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-cognitoauthorizationidentity--examples"></a>

### CognitoAuthIdentity
<a name="sam-property-api-cognitoauthorizationidentity--examples--cognitoauthidentity"></a>

#### YAML
<a name="sam-property-api-cognitoauthorizationidentity--examples--cognitoauthidentity--yaml"></a>

```
Identity:
  Header: MyCustomAuthHeader
  ValidationExpression: Bearer.*
  ReauthorizeEvery: 30
```

# LambdaRequestAuthorizer
<a name="sam-property-api-lambdarequestauthorizer"></a>

Configure um autorizador do Lambda para controlar o acesso à sua API com uma função do Lambda.

Para ter mais informações e exemplos, consulte [Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).

## Sintaxe
<a name="sam-property-api-lambdarequestauthorizer-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-lambdarequestauthorizer-syntax.yaml"></a>

```
DisableFunctionDefaultPermissions: Boolean
[FunctionArn](#sam-api-lambdarequestauthorizer-functionarn): String
[FunctionInvokeRole](#sam-api-lambdarequestauthorizer-functioninvokerole): String
[FunctionPayloadType](#sam-api-lambdarequestauthorizer-functionpayloadtype): String
[Identity](#sam-api-lambdarequestauthorizer-identity): LambdaRequestAuthorizationIdentity
```

## Propriedades
<a name="sam-property-api-lambdarequestauthorizer-properties"></a>

 `DisableFunctionDefaultPermissions`   <a name="sam-api-lambdarequestauthorizer-disablefunctiondefaultpermissions"></a>
Especifique `true` para evitar a criação automática AWS SAM de um `AWS::Lambda::Permissions` recurso para provisionar permissões entre seu `AWS::Serverless::Api` recurso e a função Lambda do autorizador.  
*Valor padrão*: `false`  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `FunctionArn`   <a name="sam-api-lambdarequestauthorizer-functionarn"></a>
Especifique a função ARN da função do Lambda que fornece autorização para a API.  
AWS SAM criará automaticamente um `AWS::Lambda::Permissions` recurso quando `FunctionArn` for especificado para`AWS::Serverless::Api`. O recurso `AWS::Lambda::Permissions` fornece permissões entre sua API e a função do Lambda do autorizador.
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `FunctionInvokeRole`   <a name="sam-api-lambdarequestauthorizer-functioninvokerole"></a>
Adiciona credenciais do autorizador à OpenApi definição do autorizador Lambda.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `FunctionPayloadType`   <a name="sam-api-lambdarequestauthorizer-functionpayloadtype"></a>
Esta propriedade pode ser usada para definir o tipo de autorizador do Lambda para uma API.  
*Valores válidos*: `TOKEN` ou `REQUEST`  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: `TOKEN`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Identity`   <a name="sam-api-lambdarequestauthorizer-identity"></a>
Esta propriedade pode ser usada para especificar um `IdentitySource` em uma solicitação recebida para um autorizador. Essa propriedade só é necessária se a propriedade do `FunctionPayloadType` estiver definida como `REQUEST`.  
*Digite*: [LambdaRequestAuthorizationIdentity](sam-property-api-lambdarequestauthorizationidentity.md)  
*Obrigatório*: Condicional  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-lambdarequestauthorizer--examples"></a>

### LambdaRequestAuth
<a name="sam-property-api-lambdarequestauthorizer--examples--lambdarequestauth"></a>

#### YAML
<a name="sam-property-api-lambdarequestauthorizer--examples--lambdarequestauth--yaml"></a>

```
Authorizers:
  MyLambdaRequestAuth:
    FunctionPayloadType: REQUEST
    FunctionArn:
      Fn::GetAtt:
        - MyAuthFunction
        - Arn
    FunctionInvokeRole:
      Fn::GetAtt:
        - LambdaAuthInvokeRole
        - Arn
    Identity:
      Headers:
        - Authorization1
```

# LambdaRequestAuthorizationIdentity
<a name="sam-property-api-lambdarequestauthorizationidentity"></a>

Essa propriedade pode ser usada para especificar um IdentitySource em uma solicitação recebida para um autorizador. Para obter mais informações, IdentitySource consulte a [ OpenApi extensão ApiGateway Authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-authorizer.html).

## Sintaxe
<a name="sam-property-api-lambdarequestauthorizationidentity-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-lambdarequestauthorizationidentity-syntax.yaml"></a>

```
  [Context](#sam-api-lambdarequestauthorizationidentity-context): List
  [Headers](#sam-api-lambdarequestauthorizationidentity-headers): List
  [QueryStrings](#sam-api-lambdarequestauthorizationidentity-querystrings): List
  [ReauthorizeEvery](#sam-api-lambdarequestauthorizationidentity-reauthorizeevery): Integer
  [StageVariables](#sam-api-lambdarequestauthorizationidentity-stagevariables): List
```

## Propriedades
<a name="sam-property-api-lambdarequestauthorizationidentity-properties"></a>

 `Context`   <a name="sam-api-lambdarequestauthorizationidentity-context"></a>
Converte as cadeias de caracteres de contexto fornecidas nas expressões de mapeamento do formato `context.contextString`.  
*Tipo:* lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Headers`   <a name="sam-api-lambdarequestauthorizationidentity-headers"></a>
Converte os cabeçalhos em uma sequência separada por vírgula de expressões de mapeamento de formato `method.request.header.name`.  
*Tipo:* lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `QueryStrings`   <a name="sam-api-lambdarequestauthorizationidentity-querystrings"></a>
Converte as cadeias de caracteres de consulta fornecidas em uma sequência separada por vírgula de expressões de mapeamento de formato `method.request.querystring.queryString`.  
*Tipo:* lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ReauthorizeEvery`   <a name="sam-api-lambdarequestauthorizationidentity-reauthorizeevery"></a>
O período time-to-live (TTL), em segundos, que especifica por quanto tempo o API Gateway armazena em cache os resultados do autorizador. Se você especificar um valor maior que 0, o API Gateway armazenará em cache as respostas do autorizador. Por padrão, o API Gateway define essa propriedade como 300. O valor máximo é 3600, ou uma hora.  
*Tipo*: inteiro  
*Obrigatório*: não  
*Padrão*: 300  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `StageVariables`   <a name="sam-api-lambdarequestauthorizationidentity-stagevariables"></a>
Converte as variáveis de estágio fornecidas em uma string separada por vírgula de expressões de mapeamento de formato `stageVariables.stageVariable`.  
*Tipo:* lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-lambdarequestauthorizationidentity--examples"></a>

### LambdaRequestIdentity
<a name="sam-property-api-lambdarequestauthorizationidentity--examples--lambdarequestidentity"></a>

#### YAML
<a name="sam-property-api-lambdarequestauthorizationidentity--examples--lambdarequestidentity--yaml"></a>

```
Identity:
  QueryStrings:
    - auth
  Headers:
    - Authorization
  StageVariables:
    - VARIABLE
  Context:
    - authcontext
  ReauthorizeEvery: 100
```

# LambdaTokenAuthorizer
<a name="sam-property-api-lambdatokenauthorizer"></a>

Configure um autorizador do Lambda para controlar o acesso à sua API com uma função do Lambda.

Para ter mais informações e exemplos, consulte [Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).

## Sintaxe
<a name="sam-property-api-lambdatokenauthorizer-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-lambdatokenauthorizer-syntax.yaml"></a>

```
DisableFunctionDefaultPermissions: Boolean
[FunctionArn](#sam-api-lambdatokenauthorizer-functionarn): String
[FunctionInvokeRole](#sam-api-lambdatokenauthorizer-functioninvokerole): String
[FunctionPayloadType](#sam-api-lambdatokenauthorizer-functionpayloadtype): String
[Identity](#sam-api-lambdatokenauthorizer-identity): LambdaTokenAuthorizationIdentity
```

## Propriedades
<a name="sam-property-api-lambdatokenauthorizer-properties"></a>

 `DisableFunctionDefaultPermissions`   <a name="sam-api-lambdatokenauthorizer-disablefunctiondefaultpermissions"></a>
Especifique `true` para evitar a criação automática AWS SAM de um `AWS::Lambda::Permissions` recurso para provisionar permissões entre seu `AWS::Serverless::Api` recurso e a função Lambda do autorizador.  
*Valor padrão*: `false`  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `FunctionArn`   <a name="sam-api-lambdatokenauthorizer-functionarn"></a>
Especifique a função ARN da função do Lambda que fornece autorização para a API.  
AWS SAM criará automaticamente um `AWS::Lambda::Permissions` recurso quando `FunctionArn` for especificado para`AWS::Serverless::Api`. O recurso `AWS::Lambda::Permissions` fornece permissões entre sua API e a função do Lambda do autorizador.
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `FunctionInvokeRole`   <a name="sam-api-lambdatokenauthorizer-functioninvokerole"></a>
Adiciona credenciais do autorizador à OpenApi definição do autorizador Lambda.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `FunctionPayloadType`   <a name="sam-api-lambdatokenauthorizer-functionpayloadtype"></a>
Esta propriedade pode ser usada para definir o tipo de autorizador do Lambda para uma Api.  
*Valores válidos*: `TOKEN` ou `REQUEST`  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: `TOKEN`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Identity`   <a name="sam-api-lambdatokenauthorizer-identity"></a>
Esta propriedade pode ser usada para especificar um `IdentitySource` em uma solicitação recebida para um autorizador. Essa propriedade só é necessária se a propriedade do `FunctionPayloadType` estiver definida como `REQUEST`.  
*Digite*: [LambdaTokenAuthorizationIdentity](sam-property-api-lambdatokenauthorizationidentity.md)  
*Obrigatório*: Condicional  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-lambdatokenauthorizer--examples"></a>

### LambdaTokenAuth
<a name="sam-property-api-lambdatokenauthorizer--examples--lambdatokenauth"></a>

#### YAML
<a name="sam-property-api-lambdatokenauthorizer--examples--lambdatokenauth--yaml"></a>

```
Authorizers:
  MyLambdaTokenAuth:
    FunctionArn:
      Fn::GetAtt:
        - MyAuthFunction
        - Arn
    Identity:
      Header: MyCustomAuthHeader # OPTIONAL; Default: 'Authorization'
      ValidationExpression: mycustomauthexpression # OPTIONAL
      ReauthorizeEvery: 20 # OPTIONAL; Service Default: 300
```

### BasicLambdaTokenAuth
<a name="sam-property-api-lambdatokenauthorizer--examples--basiclambdatokenauth"></a>

#### YAML
<a name="sam-property-api-lambdatokenauthorizer--examples--basiclambdatokenauth--yaml"></a>

```
Authorizers:
  MyLambdaTokenAuth:
    FunctionArn:
      Fn::GetAtt:
        - MyAuthFunction
        - Arn
```

# LambdaTokenAuthorizationIdentity
<a name="sam-property-api-lambdatokenauthorizationidentity"></a>

Essa propriedade pode ser usada para especificar um IdentitySource em uma solicitação recebida para um autorizador. Para obter mais informações, IdentitySource consulte a [ OpenApi extensão ApiGateway Authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-authorizer.html).

## Sintaxe
<a name="sam-property-api-lambdatokenauthorizationidentity-syntax"></a>

 Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir. 

### YAML
<a name="sam-property-api-lambdatokenauthorizationidentity-syntax.yaml"></a>

```
  [Header](#sam-api-lambdatokenauthorizationidentity-header): String
  [ReauthorizeEvery](#sam-api-lambdatokenauthorizationidentity-reauthorizeevery): Integer
  [ValidationExpression](#sam-api-lambdatokenauthorizationidentity-validationexpression): String
```

## Propriedades
<a name="sam-property-api-lambdatokenauthorizationidentity-properties"></a>

 `Header`   <a name="sam-api-lambdatokenauthorizationidentity-header"></a>
Especifique o nome do cabeçalho para Autorização na OpenApi definição.  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: Autorização  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ReauthorizeEvery`   <a name="sam-api-lambdatokenauthorizationidentity-reauthorizeevery"></a>
O período time-to-live (TTL), em segundos, que especifica por quanto tempo o API Gateway armazena em cache os resultados do autorizador. Se você especificar um valor maior que 0, o API Gateway armazenará em cache as respostas do autorizador. Por padrão, o API Gateway define essa propriedade como 300. O valor máximo é 3600, ou uma hora.  
*Tipo*: inteiro  
*Obrigatório*: não  
*Padrão*: 300  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ValidationExpression`   <a name="sam-api-lambdatokenauthorizationidentity-validationexpression"></a>
Especifique uma expressão de validação para validar a identidade recebida.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-lambdatokenauthorizationidentity--examples"></a>

### LambdaTokenIdentity
<a name="sam-property-api-lambdatokenauthorizationidentity--examples--lambdatokenidentity"></a>

#### YAML
<a name="sam-property-api-lambdatokenauthorizationidentity--examples--lambdatokenidentity--yaml"></a>

```
Identity:
  Header: MyCustomAuthHeader
  ValidationExpression: Bearer.*
  ReauthorizeEvery: 30
```

# ResourcePolicyStatement
<a name="sam-property-api-resourcepolicystatement"></a>

Configura uma política de recursos para todos os métodos e caminhos de uma API. Para obter mais informações sobre políticas de recursos, consulte Como [controlar o acesso a uma API com as políticas de recursos do API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) no *Guia do desenvolvedor do API Gateway*.

## Sintaxe
<a name="sam-property-api-resourcepolicystatement-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-resourcepolicystatement-syntax.yaml"></a>

```
  [AwsAccountBlacklist](#sam-api-resourcepolicystatement-awsaccountblacklist): List
  [AwsAccountWhitelist](#sam-api-resourcepolicystatement-awsaccountwhitelist): List
  [CustomStatements](#sam-api-resourcepolicystatement-customstatements): List
  [IntrinsicVpcBlacklist](#sam-api-resourcepolicystatement-intrinsicvpcblacklist): List
  [IntrinsicVpcWhitelist](#sam-api-resourcepolicystatement-intrinsicvpcwhitelist): List
  [IntrinsicVpceBlacklist](#sam-api-resourcepolicystatement-intrinsicvpceblacklist): List
  [IntrinsicVpceWhitelist](#sam-api-resourcepolicystatement-intrinsicvpcewhitelist): List
  [IpRangeBlacklist](#sam-api-resourcepolicystatement-iprangeblacklist): List
  [IpRangeWhitelist](#sam-api-resourcepolicystatement-iprangewhitelist): List
  [SourceVpcBlacklist](#sam-api-resourcepolicystatement-sourcevpcblacklist): List
  [SourceVpcWhitelist](#sam-api-resourcepolicystatement-sourcevpcwhitelist): List
```

## Propriedades
<a name="sam-property-api-resourcepolicystatement-properties"></a>

 `AwsAccountBlacklist`   <a name="sam-api-resourcepolicystatement-awsaccountblacklist"></a>
As AWS contas a serem bloqueadas.  
*Tipo*: lista de strings  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `AwsAccountWhitelist`   <a name="sam-api-resourcepolicystatement-awsaccountwhitelist"></a>
As AWS contas a serem permitidas. Para obter um exemplo de uso desta propriedade, consulte a seção Exemplos na parte inferior desta página.  
*Tipo*: lista de strings  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `CustomStatements`   <a name="sam-api-resourcepolicystatement-customstatements"></a>
Uma lista de declarações de política de recursos personalizadas a serem aplicadas a essa API. Para obter um exemplo de uso desta propriedade, consulte a seção Exemplos na parte inferior desta página.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `IntrinsicVpcBlacklist`   <a name="sam-api-resourcepolicystatement-intrinsicvpcblacklist"></a>
A lista de nuvens privadas virtuais (VPCs) a serem bloqueadas, em que cada VPC é especificada como uma referência, como uma [referência dinâmica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou a função `Ref` [intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html). Para obter um exemplo de uso desta propriedade, consulte a seção Exemplos na parte inferior desta página.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `IntrinsicVpcWhitelist`   <a name="sam-api-resourcepolicystatement-intrinsicvpcwhitelist"></a>
A lista de VPCs permissões, em que cada VPC é especificada como uma referência, como uma [referência dinâmica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou a função `Ref` [intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `IntrinsicVpceBlacklist`   <a name="sam-api-resourcepolicystatement-intrinsicvpceblacklist"></a>
A lista de endpoints da VPC a serem bloqueados, em que cada endpoint da VPC é especificado como uma referência, como uma [referência dinâmica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou a `Ref` [função intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `IntrinsicVpceWhitelist`   <a name="sam-api-resourcepolicystatement-intrinsicvpcewhitelist"></a>
A lista de endpoints da VPC a serem permitidos, em que cada endpoint da VPC é especificado como uma referência, como uma [referência dinâmica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou a `Ref` [função intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html). Para obter um exemplo de uso desta propriedade, consulte a seção Exemplos na parte inferior desta página.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `IpRangeBlacklist`   <a name="sam-api-resourcepolicystatement-iprangeblacklist"></a>
Os endereços IP ou intervalos de endereços a serem bloqueados. Para obter um exemplo de uso desta propriedade, consulte a seção Exemplos na parte inferior desta página.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `IpRangeWhitelist`   <a name="sam-api-resourcepolicystatement-iprangewhitelist"></a>
Os endereços IP ou intervalos de endereços a serem permitidos.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `SourceVpcBlacklist`   <a name="sam-api-resourcepolicystatement-sourcevpcblacklist"></a>
A VPC de origem ou os endpoints da VPC a serem bloqueados. Os nomes da VPC de origem devem começar com `"vpc-"` e os nomes dos endpoints da VPC de origem devem começar com `"vpce-"`. Para obter um exemplo de uso desta propriedade, consulte a seção Exemplos na parte inferior desta página.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `SourceVpcWhitelist`   <a name="sam-api-resourcepolicystatement-sourcevpcwhitelist"></a>
A VPC de origem ou os endpoints da VPC a serem permitidos. Os nomes da VPC de origem devem começar com `"vpc-"` e os nomes dos endpoints da VPC de origem devem começar com `"vpce-"`.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-resourcepolicystatement--examples"></a>

### Exemplo de política de recursos
<a name="sam-property-api-resourcepolicystatement--examples--resource-policy-example"></a>

O exemplo a seguir bloqueia dois endereços IP e uma VPC de origem e permite uma AWS conta.

#### YAML
<a name="sam-property-api-resourcepolicystatement--examples--resource-policy-example--yaml"></a>

```
Auth:
  ResourcePolicy:
    CustomStatements: [{
                         "Effect": "Allow",
                         "Principal": "*",
                         "Action": "execute-api:Invoke",
                         "Resource": "execute-api:/Prod/GET/pets",
                         "Condition": {
                           "IpAddress": {
                             "aws:SourceIp": "1.2.3.4"
                           }
                         }
                       }]
    IpRangeBlacklist:
      - "10.20.30.40"
      - "1.2.3.4"
    SourceVpcBlacklist:
      - "vpce-1a2b3c4d"
    AwsAccountWhitelist:
      - "111122223333"
    IntrinsicVpcBlacklist:
      - "{{resolve:ssm:SomeVPCReference:1}}" 
      - !Ref MyVPC
    IntrinsicVpceWhitelist:
      - "{{resolve:ssm:SomeVPCEReference:1}}" 
      - !Ref MyVPCE
```

# ApiDefinition
<a name="sam-property-api-apidefinition"></a>

Um documento da OpenAPI que define a API.

## Sintaxe
<a name="sam-property-api-apidefinition-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-apidefinition-syntax.yaml"></a>

```
  [Bucket](#sam-api-apidefinition-bucket): String
  [Key](#sam-api-apidefinition-key): String
  [Version](#sam-api-apidefinition-version): String
```

## Propriedades
<a name="sam-property-api-apidefinition-properties"></a>

 `Bucket`   <a name="sam-api-apidefinition-bucket"></a>
O nome do bucket do Amazon S3 no qual o arquivo do OpenAPI está armazenado.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket)` propriedade do tipo de `AWS::ApiGateway::RestApi` `S3Location` dados.

 `Key`   <a name="sam-api-apidefinition-key"></a>
A chave do Amazon S3 do arquivo OpenAPI.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key)` propriedade do tipo de `AWS::ApiGateway::RestApi` `S3Location` dados.

 `Version`   <a name="sam-api-apidefinition-version"></a>
Para objetos com controle de versão, a versão do arquivo OpenAPI.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Version](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version)` propriedade do tipo de `AWS::ApiGateway::RestApi` `S3Location` dados.

## Exemplos
<a name="sam-property-api-apidefinition--examples"></a>

### Exemplo de definição de Uri
<a name="sam-property-api-apidefinition--examples--definition-uri-example"></a>

Exemplo de definição de API

#### YAML
<a name="sam-property-api-apidefinition--examples--definition-uri-example--yaml"></a>

```
DefinitionUri:
  Bucket: amzn-s3-demo-bucket-name
  Key: mykey-name
  Version: 121212
```

# CorsConfiguration
<a name="sam-property-api-corsconfiguration"></a>

Gerencie o compartilhamento de recursos de origem cruzada (CORS) para seu API Gateway. APIs Especifique o domínio a ser permitido como uma string ou especifique um dicionário com configuração adicional do Cors.

**nota**  
O CORS exige que AWS SAM você modifique sua definição de OpenAPI. Crie uma definição de OpenAPI em linha no `DefinitionBody` para ativar o CORS. Se `CorsConfiguration` for definido na definição da OpenAPI e também no nível da propriedade, AWS SAM mescla-os. O nível da propriedade tem precedência sobre a definição de OpenAPI.

Para obter mais informações sobre o CORS, consulte [Habilitar o CORS para um recurso API REST para a API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) no *Guia do desenvolvedor do API Gateway*.

## Sintaxe
<a name="sam-property-api-corsconfiguration-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-corsconfiguration-syntax.yaml"></a>

```
  [AllowCredentials](#sam-api-corsconfiguration-allowcredentials): Boolean
  [AllowHeaders](#sam-api-corsconfiguration-allowheaders): String
  [AllowMethods](#sam-api-corsconfiguration-allowmethods): String
  [AllowOrigin](#sam-api-corsconfiguration-alloworigin): String
  [MaxAge](#sam-api-corsconfiguration-maxage): String
```

## Propriedades
<a name="sam-property-api-corsconfiguration-properties"></a>

 `AllowCredentials`   <a name="sam-api-corsconfiguration-allowcredentials"></a>
Booleano indicando se a solicitação pode conter credenciais.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `AllowHeaders`   <a name="sam-api-corsconfiguration-allowheaders"></a>
Cadeia de cabeçalhos a serem permitidos.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `AllowMethods`   <a name="sam-api-corsconfiguration-allowmethods"></a>
Cadeia de caracteres contendo os métodos HTTP a serem permitidos.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `AllowOrigin`   <a name="sam-api-corsconfiguration-alloworigin"></a>
Cadeia de origem a ser permitida. Pode ser uma lista separada por vírgulas em formato de string.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `MaxAge`   <a name="sam-api-corsconfiguration-maxage"></a>
Cadeia de caracteres contendo o número de segundos para armazenar em cache a solicitação CORS Preflight.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

## Exemplos
<a name="sam-property-api-corsconfiguration--examples"></a>

### CorsConfiguration
<a name="sam-property-api-corsconfiguration--examples--corsconfiguration"></a>

Exemplo de configuração do CORS. Essa é apenas uma parte de um arquivo de AWS SAM modelo que mostra uma [AWS::Serverless::Api](sam-resource-api.md) definição com o CORS configurado e um[AWS::Serverless::Function](sam-resource-function.md). Se você usa uma integração de proxy do Lambda ou uma integração de proxy HTTP, seu backend deve retornar os cabeçalhos `Access-Control-Allow-Origin`, `Access-Control-Allow-Methods` e `Access-Control-Allow-Headers`.

#### YAML
<a name="sam-property-api-corsconfiguration--examples--corsconfiguration--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Cors:
        AllowMethods: "'POST, GET'"
        AllowHeaders: "'X-Forwarded-For'"
        AllowOrigin: "'https://example.com'"
        MaxAge: "'600'"
        AllowCredentials: true
  ApiFunction: # Adds a GET method at the root resource via an Api event
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
            RestApiId:
              Ref: ApiGatewayApi
      Runtime: python3.10
      Handler: index.handler
      InlineCode: |
        import json
        def handler(event, context):
          return {
          'statusCode': 200,
          'headers': {
            'Access-Control-Allow-Headers': 'Content-Type',
            'Access-Control-Allow-Origin': 'https://example.com',
            'Access-Control-Allow-Methods': 'POST, GET'
            },
          'body': json.dumps('Hello from Lambda!')
          }
```

# DomainConfiguration
<a name="sam-property-api-domainconfiguration"></a>

Configura um domínio personalizado para uma API.

## Sintaxe
<a name="sam-property-api-domainconfiguration-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-domainconfiguration-syntax.yaml"></a>

```
  [AccessAssociation](#sam-api-domainconfiguration-domainaccessassociation): DomainAccessAssociation
  [BasePath](#sam-api-domainconfiguration-basepath): List
  [CertificateArn](#sam-api-domainconfiguration-certificatearn): String
  [DomainName](#sam-api-domainconfiguration-domainname): String
  [EndpointConfiguration](#sam-api-domainconfiguration-endpointconfiguration): String
  [MutualTlsAuthentication](#sam-api-domainconfiguration-mutualtlsauthentication): [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication)
  [NormalizeBasePath](#sam-api-domainconfiguration-normalizebasepath): Boolean
  [OwnershipVerificationCertificateArn](#sam-api-domainconfiguration-ownershipverificationcertificatearn): String
  [Policy: ](#sam-api-domainconfiguration-policy)Json
  [Route53](#sam-api-domainconfiguration-route53): Route53Configuration
  [SecurityPolicy](#sam-api-domainconfiguration-securitypolicy): String
```

## Propriedades
<a name="sam-property-api-domainconfiguration-properties"></a>

 `AccessAssociation`   <a name="sam-api-domainconfiguration-domainaccessassociation"></a>
A configuração necessária para gerar recursos ` AWS::ApiGateway::DomainNameAccessAssociation`.  
AWS SAM gera um [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html)recurso quando essa propriedade é definida. Para obter informações sobre CloudFormation os recursos gerados, consulte[CloudFormation Recursos gerados para AWS SAM](sam-specification-generated-resources.md).  
*Digite*: [DomainAccessAssociation](sam-property-api-domainaccessassociation.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `BasePath`   <a name="sam-api-domainconfiguration-basepath"></a>
Uma lista dos caminhos básicos a serem configurados com o nome de domínio do Amazon API Gateway.  
*Tipo*: lista  
*Obrigatório*: não  
*Padrão*: /  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[BasePath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath)` propriedade de um `AWS::ApiGateway::BasePathMapping` recurso. AWS SAM cria vários `AWS::ApiGateway::BasePathMapping` recursos, um por `BasePath` especificado nessa propriedade.

 `CertificateArn`   <a name="sam-api-domainconfiguration-certificatearn"></a>
O Amazon Resource Name (ARN) de um certificado AWS gerenciado é o endpoint desse nome de domínio. AWS Certificate Manager é a única fonte compatível.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é semelhante à `[CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn)` propriedade de um `AWS::ApiGateway::DomainName` recurso. Se `EndpointConfiguration` estiver definido como `REGIONAL` (o valor padrão), `CertificateArn` mapeia para [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn)in`AWS::ApiGateway::DomainName`. Se `EndpointConfiguration` estiver definido como`EDGE`, `CertificateArn` mapeia para [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn)in`AWS::ApiGateway::DomainName`. Se `EndpointConfiguration` estiver definido como`PRIVATE`, essa propriedade será passada para o recurso [AWS::ApiGateway::DomainNameV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2).  
*Observações adicionais*: Para um `EDGE` endpoint, você deve criar o certificado na `us-east-1` AWS região.

 `DomainName`   <a name="sam-api-domainconfiguration-domainname"></a>
O nome de domínio personalizado para a sua API Gateway API. Letras maiúsculas não são compatíveis.  
AWS SAM gera um [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html)recurso quando essa propriedade é definida. Para obter informações sobre esse cenário, consulte [DomainName propriedade é especificada](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-domain-name). Para obter informações sobre CloudFormation os recursos gerados, consulte[CloudFormation Recursos gerados para AWS SAM](sam-specification-generated-resources.md).  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname)` propriedade de um `AWS::ApiGateway::DomainName` recurso ou para [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2)quando EndpointConfiguration está definida como`PRIVATE`.

 `EndpointConfiguration`   <a name="sam-api-domainconfiguration-endpointconfiguration"></a>
Define o tipo de endpoint do API Gateway a ser mapeado para o domínio personalizado. O valor dessa propriedade determina como a `CertificateArn` propriedade é mapeada CloudFormation.  
*Valores válidos*: `EDGE`, `REGIONAL` ou `PRIVATE`  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: `REGIONAL`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `MutualTlsAuthentication`   <a name="sam-api-domainconfiguration-mutualtlsauthentication"></a>
A Transport Layer Security (TLS) mútua para um nome de domínio personalizado.  
*Digite*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication)` propriedade de um `AWS::ApiGateway::DomainName` recurso.

 `NormalizeBasePath`   <a name="sam-api-domainconfiguration-normalizebasepath"></a>
Indica se caracteres não alfanuméricos são permitidos nos caminhos base definidos pela propriedade `BasePath`. Quando definido como `True`, caracteres não alfanuméricos são removidos dos caminhos base.  
Use a propriedade `NormalizeBasePath` para `BasePath`.  
*Tipo*: booliano  
*Obrigatório*: não  
*Padrão*: verdadeiro  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `OwnershipVerificationCertificateArn`   <a name="sam-api-domainconfiguration-ownershipverificationcertificatearn"></a>
O ARN do certificado público emitido pelo ACM para validar a propriedade do domínio personalizado. Necessário somente para configurar o TLS mútuo e para especificar um ARN de CA privado ou importado do ACM para o `CertificateArn`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[OwnershipVerificationCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn)` propriedade de um `AWS::ApiGateway::DomainName` recurso.

 `Policy`   <a name="sam-api-domainconfiguration-policy"></a>
A política do IAM para anexar ao nome de domínio do API Gateway. Aplicável somente quando `EndpointConfiguration` for definida como `PRIVATE`.  
*Tipo*: Json  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `Policy` propriedade de um `AWS::ApiGateway::DomainNameV2` recurso quando `EndpointConfiguration` está definida como`PRIVATE`. Para exemplos de documentos de política válidos, consulte [AWS::ApiGateway::DomainNameV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2).

 `Route53`   <a name="sam-api-domainconfiguration-route53"></a>
Define uma configuração do Amazon Route 53.  
*Tipo:*: [Route53Configuration](sam-property-api-route53configuration.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `SecurityPolicy`   <a name="sam-api-domainconfiguration-securitypolicy"></a>
O pacote de criptografia TLS mais o pacote de criptografia para este nome de domínio.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[SecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy)` propriedade de um `AWS::ApiGateway::DomainName` recurso ou para [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnamev2)quando `EndpointConfiguration` está definida como`PRIVATE`. Para endpoints `PRIVATE`, somente TLS\$11\$12 é compatível.

## Exemplos
<a name="sam-property-api-domainconfiguration--examples"></a>

### DomainName
<a name="sam-property-api-domainconfiguration--examples--domainname"></a>

DomainName exemplo

#### YAML
<a name="sam-property-api-domainconfiguration--examples--domainname--yaml"></a>

```
Domain:
  DomainName: www.example.com
  CertificateArn: arn-example
  EndpointConfiguration: EDGE
  Route53:
    HostedZoneId: Z1PA6795UKMFR9
  BasePath:
    - foo
    - bar
```

# DomainAccessAssociation
<a name="sam-property-api-domainaccessassociation"></a>

Configura uma associação de acesso a um domínio entre uma fonte de associação de acesso e um nome de domínio personalizado privado. A única fonte de associação de acesso compatível é um ID de endpoint da VPC. Para obter mais informações, consulte [Nomes de domínio personalizados para uso privado APIs no API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-custom-domains.html).

## Sintaxe
<a name="sam-property-api-domainaccessassociation-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-domainaccessassociation-syntax.yaml"></a>

```
 VpcEndpointId: String
```

## Propriedades
<a name="sam-property-api-domainaccessassociation-properties"></a>

 `VpcEndpointId`   <a name="sam-api-domainaccessassociation-vpcendpointid"></a>
O ID do endpoint da interface da VPC associada ao serviço da VPC do API Gateway.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ AccessAssociationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainnameaccessassociation.html#cfn-apigateway-domainnameaccessassociation-accessassociationsource)` propriedade de um `AWS::ApiGateway::DomainNameAccessAssociation` recurso.

# Route53Configuration
<a name="sam-property-api-route53configuration"></a>

Configura os conjuntos de registros Route53 para uma API.

## Sintaxe
<a name="sam-property-api-route53configuration-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-route53configuration-syntax.yaml"></a>

```
  [DistributionDomainName](#sam-api-route53configuration-distributiondomainname): String
  [EvaluateTargetHealth](#sam-api-route53configuration-evaluatetargethealth): Boolean
  [HostedZoneId](#sam-api-route53configuration-hostedzoneid): String
  [HostedZoneName](#sam-api-route53configuration-hostedzonename): String
  [IpV6](#sam-api-route53configuration-ipv6): Boolean
  Region: String
  SetIdentifier: String
  VpcEndpointDomainName: String
  VpcEndpointHostedZoneId: String
```

## Propriedades
<a name="sam-property-api-route53configuration-properties"></a>

 `DistributionDomainName`   <a name="sam-api-route53configuration-distributiondomainname"></a>
Configura uma distribuição personalizada do nome de domínio personalizado da API.  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: use a distribuição do API Gateway.  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[DNSName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname)` propriedade de um `AWS::Route53::RecordSetGroup AliasTarget` recurso.  
*Notas adicionais*: O nome de domínio de uma [CloudFrontdistribuição](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html).

 `EvaluateTargetHealth`   <a name="sam-api-route53configuration-evaluatetargethealth"></a>
Quando EvaluateTargetHealth verdadeiro, um registro de alias herda a integridade do AWS recurso referenciado, como um balanceador de carga do Elastic Load Balancing ou outro registro na zona hospedada.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[EvaluateTargetHealth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth)` propriedade de um `AWS::Route53::RecordSetGroup AliasTarget` recurso.  
*Observações adicionais*: você não pode EvaluateTargetHealth definir como verdadeiro quando o destino do alias é uma CloudFront distribuição.

 `HostedZoneId`   <a name="sam-api-route53configuration-hostedzoneid"></a>
O ID da zona hospedada na qual você deseja criar registros.  
Especifique `HostedZoneName` ou `HostedZoneId`, mas não ambos. Se houver várias zonas hospedadas com o mesmo nome de domínio, especifique a zona hospedada usando `HostedZoneId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[HostedZoneId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid)` propriedade de um `AWS::Route53::RecordSetGroup RecordSet` recurso.

 `HostedZoneName`   <a name="sam-api-route53configuration-hostedzonename"></a>
O nome da zona hospedada na qual você deseja criar registros.  
Especifique `HostedZoneName` ou `HostedZoneId`, mas não ambos. Se houver várias zonas hospedadas com o mesmo nome de domínio, especifique a zona hospedada usando `HostedZoneId`.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[HostedZoneName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename)` propriedade de um `AWS::Route53::RecordSetGroup RecordSet` recurso.

 `IpV6`   <a name="sam-api-route53configuration-ipv6"></a>
Quando essa propriedade é definida, AWS SAM cria um `AWS::Route53::RecordSet` recurso e define [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) como `AAAA` para o fornecido HostedZone.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`Region`  <a name="sam-api-route53configuration-region"></a>
*Somente conjuntos de registros de recursos baseados em latência: a* EC2 região amazônica onde você criou o recurso ao qual esse conjunto de registros de recursos se refere. O recurso normalmente é um AWS recurso, como uma EC2 instância ou um balanceador de carga ELB, e é referido por um endereço IP ou nome de domínio DNS, dependendo do tipo de registro.  
Quando o Amazon Route 53 recebe uma consulta de DNS para um nome e tipo de domínio para o qual você criou conjuntos de registros de recursos de latência, o Route 53 seleciona o conjunto de registros de recursos de latência que tem a menor latência entre o usuário final e a região da Amazon associada. EC2 O Route 53 retorna o valor associado ao conjunto de registros de recursos selecionado.  
Observe o seguinte:  
+ Só é possível especificar um `ResourceRecord` por conjunto de registros de recursos de latência.
+ Você só pode criar um conjunto de registros de recursos de latência para cada EC2 região da Amazon.
+ Você não precisa criar conjuntos de registros de recursos de latência para todas as EC2 regiões da Amazon. O Route 53 selecionará a região com a melhor latência entre as regiões para as quais você cria conjuntos de registros de recursos de latência.
+ Não é possível criar conjuntos de registros de recursos que não sejam de latência e tenham os mesmos valores para os elementos `Name` e `Type` como conjuntos registros de recursos de latência.
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-region)` propriedade de um tipo de `AWS::Route53::RecordSetGroup` `RecordSet` dados.

`SetIdentifier`  <a name="sam-api-route53configuration-setidentifier"></a>
*Conjuntos de registros de recursos que têm uma política de roteamento diferente da simples:* um identificador que diferencia entre vários conjuntos de registros de recursos que têm a mesma combinação de nome e tipo, como vários conjuntos de registros de recursos ponderados chamados acme.example.com que tenham um tipo de A. Em um grupo de conjuntos de registros de recursos que têm o mesmo nome e tipo, o valor de `SetIdentifier` deve ser exclusivo para cada conjunto de registros de recursos.  
Para obter informações sobre políticas de roteamento, consulte [Escolher uma política de roteamento](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) no *Guia do desenvolvedor do Amazon Route 53*.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[ SetIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-setidentifier)` propriedade de um tipo de `AWS::Route53::RecordSetGroup` `RecordSet` dados.

`VpcEndpointDomainName`  <a name="sam-api-route53configuration-vpcendpointdomainname"></a>
O nome de DNS do endpoint da interface da VPC associada ao serviço da VPC do API Gateway. Essa propriedade é necessária apenas para domínios privados.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[DNSName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-aliastarget.html)` propriedade de um `AWS::Route53::RecordSet` `AliasTarget` campo.

`VpcEndpointHostedZoneId`  <a name="sam-api-route53configuration-vpcendpointhostedzoneid"></a>
O ID da zona hospedada do endpoint da interface VPC associado ao serviço da VPC do API Gateway. Essa propriedade é necessária apenas para domínios privados.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[HostedZoneId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-aliastarget.html)` propriedade de um `AWS::Route53::RecordSet` `AliasTarget` campo.

## Exemplos
<a name="sam-property-api-route53configuration--examples"></a>

### Exemplo básico
<a name="sam-property-api-route53configuration--examples--route-53-configuration-example"></a>

Neste exemplo, configuramos um domínio personalizado e conjuntos de registros do Route 53 para nossa API.

#### YAML
<a name="sam-property-api-route53configuration--examples--route-53-configuration-example--yaml"></a>

```
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Domain:
        DomainName: www.example.com
        CertificateArn: arn:aws:acm:us-east-1:123456789012:certificate/abcdef12-3456-7890-abcd-ef1234567890
        EndpointConfiguration: REGIONAL
        Route53:
          HostedZoneId: ABCDEFGHIJKLMNOP
```

# EndpointConfiguration
<a name="sam-property-api-endpointconfiguration"></a>

O tipo de endpoint de uma API REST.

## Sintaxe
<a name="sam-property-api-endpointconfiguration-syntax"></a>

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

### YAML
<a name="sam-property-api-endpointconfiguration-syntax.yaml"></a>

```
  [IpAddressType](#sam-api-endpointconfiguration-ipaddresstype): String
  [Type](#sam-api-endpointconfiguration-type): String
  [VPCEndpointIds](#sam-api-endpointconfiguration-vpcendpointids): List
```

## Propriedades
<a name="sam-property-api-endpointconfiguration-properties"></a>

 `IpAddressType`   <a name="sam-api-endpointconfiguration-ipaddresstype"></a>
Os tipos de endereço IP que podem invocar uma API (RestApi).  
*Valores válidos*: `ipv4` ou `dualstack`  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[IpAddressType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-ipaddresstype)` propriedade do tipo de `AWS::ApiGateway::RestApi` `EndpointConfiguration` dados.

 `Type`   <a name="sam-api-endpointconfiguration-type"></a>
O tipo de endpoint de uma API REST.  
*Valores válidos*: `EDGE` ou `REGIONAL` ou `PRIVATE`  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[Types](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types)` propriedade do tipo de `AWS::ApiGateway::RestApi` `EndpointConfiguration` dados.

 `VPCEndpointIds`   <a name="sam-api-endpointconfiguration-vpcendpointids"></a>
Uma lista de pontos de extremidade VPC IDs de uma API REST com os quais criar aliases do Route53.  
*Tipo*: lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a `[VpcEndpointIds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids)` propriedade do tipo de `AWS::ApiGateway::RestApi` `EndpointConfiguration` dados.

## Exemplos
<a name="sam-property-api-endpointconfiguration--examples"></a>

### EndpointConfiguration
<a name="sam-property-api-endpointconfiguration--examples--endpointconfiguration"></a>

Exemplo de configuração do endpoint

#### YAML
<a name="sam-property-api-endpointconfiguration--examples--endpointconfiguration--yaml"></a>

```
EndpointConfiguration:
  Type: PRIVATE
  VPCEndpointIds:
    - vpce-123a123a
    - vpce-321a321a
```