

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Crea una colección de recursos y métodos de Amazon API Gateway que se pueden invocarse a través de puntos de conexión HTTPS.

No es necesario añadir un [AWS::Serverless::Api](#sam-resource-api) recurso de forma explícita a una plantilla de definición de aplicaciones AWS sin servidor. Un recurso de este tipo se crea implícitamente a partir de la unión de eventos de API definidos en los recursos [AWS::Serverless::Function](sam-resource-function.md) definidos en la plantilla que no hacen referencia a un recurso [AWS::Serverless::Api](#sam-resource-api).

Se debe utilizar un [AWS::Serverless::Api](#sam-resource-api) recurso para definir y documentar la API que se utiliza OpenApi, lo que proporciona más capacidad para configurar los recursos subyacentes de Amazon API Gateway.

Te recomendamos que utilices CloudFormation enlaces o políticas de IAM para comprobar que los recursos de API Gateway tienen autorizadores adjuntos para controlar el acceso a ellos.

Para obtener más información sobre el uso de CloudFormation ganchos, consulte [Registrar ganchos](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/registering-hook-python.html) en la *guía del usuario de la CloudFormation CLI* y en el [apigw-enforce-authorizer](https://github.com/aws-cloudformation/aws-cloudformation-samples/tree/main/hooks/python-hooks/apigw-enforce-authorizer/) GitHub repositorio.

Para obtener más información sobre el uso de las políticas de IAM, consulta [Exigir que las rutas de API tengan autorización](https://docs.aws.amazon.com/apigateway/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-require-authorization) en la *Guía para desarrolladores de API Gateway*.

**nota**  
Al realizar la implementación en AWS CloudFormation, AWS SAM transforma AWS SAM los recursos en CloudFormation recursos. Para obtener más información, consulte [CloudFormation Recursos generados para AWS SAM](sam-specification-generated-resources.md).

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

Para declarar esta entidad en tu plantilla AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis.

### 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
```

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

 `AccessLogSetting`   <a name="sam-api-accesslogsetting"></a>
Configuración de registros de acceso para una etapa.  
*Tipo:* [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)` propiedad de un `AWS::ApiGateway::Stage` recurso.

 `AlwaysDeploy`   <a name="sam-api-alwaysdeploy"></a>
Siempre implementas la API, incluso cuando no se han detectado cambios en la API.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `ApiKeySourceType`   <a name="sam-api-apikeysourcetype"></a>
Origen de la clave de API para medir las solicitudes de acuerdo con un plan de uso. Los valores válidos son `HEADER` y `AUTHORIZER`.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[ApiKeySourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype)` propiedad de un `AWS::ApiGateway::RestApi` recurso.

 `Auth`   <a name="sam-api-auth"></a>
Configura la autorización para controlar el acceso a su API de API Gateway.  
Para obtener más información sobre cómo configurar el acceso mediante, AWS SAM consulte[Controla el acceso a la API con tu AWS SAM plantilla](serverless-controlling-access-to-apis.md). Para ver un ejemplo que muestra cómo anular un autorizador global, consulte [Anule un autorizador global para su API de REST de Amazon API Gateway](sam-property-function-apifunctionauth.md#sam-property-function-apifunctionauth--examples--override).  
*Tipo:* [ApiAuth](sam-property-api-apiauth.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `BinaryMediaTypes`   <a name="sam-api-binarymediatypes"></a>
Lista de tipos MIME que su API puede devolver. Use esta opción para habilitar el soporte binario paraAPIs.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[BinaryMediaTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes)` propiedad de un `AWS::ApiGateway::RestApi` recurso. La lista de BinaryMediaTypes se añade tanto al CloudFormation recurso como al documento de OpenAPI.

 `CacheClusterEnabled`   <a name="sam-api-cacheclusterenabled"></a>
Indica si el almacenado en caché está habilitado para la etapa. Para almacenar en caché las respuestas, también debe configurar `CachingEnabled` para `true` bajo `MethodSettings`.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[CacheClusterEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled)` propiedad de un `AWS::ApiGateway::Stage` recurso.

 `CacheClusterSize`   <a name="sam-api-cacheclustersize"></a>
El tamaño del clúster de caché de la etapa.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[CacheClusterSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize)` propiedad de un `AWS::ApiGateway::Stage` recurso.

 `CanarySetting`   <a name="sam-api-canarysetting"></a>
Configure una prueba canario como una etapa de una implementación normal.  
*Tipo:* [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)` propiedad de un `AWS::ApiGateway::Stage` recurso.

 `Cors`   <a name="sam-api-cors"></a>
Gestione el intercambio de recursos entre orígenes (CORS) para todas sus API Gateway. APIs Especifica el dominio que quieres permitir como cadena o especifica un diccionario con una configuración de Cors adicional.   
CORS requiere modificar AWS SAM la definición de OpenAPI. Cree una definición de OpenAPI en línea en `DefinitionBody` para activar CORS.
Para obtener más información sobre CORS, consulta [Habilitar CORS para un recurso de la API de REST de API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) en la *Guía para desarrolladores de API Gateway*.  
*Tipo: Cadena* \$1 [CorsConfiguration](sam-property-api-corsconfiguration.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `DefinitionBody`   <a name="sam-api-definitionbody"></a>
Especificación de OpenAPI que describe su API. Si no se especifica ni `DefinitionUri` ni `DefinitionBody`, SAM generará `DefinitionBody` para usted en función de la configuración de la plantilla.  
Para hacer referencia a un archivo local de OpenAPI que defina su API, usa la transformación `AWS::Include`. Para obtener más información, consulta [¿Cómo se AWS SAM cargan los archivos locales](deploy-upload-local-files.md).  
*Tipo*: JSON  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` propiedad de un `AWS::ApiGateway::RestApi` recurso. Si se proporcionan determinadas propiedades, el contenido se puede insertar o modificar en ellas DefinitionBody antes de pasarlo a ellas CloudFormation. Las propiedades incluyen`Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models` y una `EventSource` del tipo Api para una `AWS::Serverless::Function` correspondiente.

 `DefinitionUri`   <a name="sam-api-definitionuri"></a>
Amazon S3 Uri, la ruta de archivo local o el objeto de ubicación del documento de OpenAPI que define la API. El objeto Amazon S3 al que hace referencia esta propiedad debe ser un archivo OpenAPI válido. Si no se especifica ni `DefinitionUri` ni `DefinitionBody`, SAM generará `DefinitionBody` para usted en función de la configuración de la plantilla.  
Si se proporciona una ruta de archivo local, la plantilla debe seguir el flujo de trabajo que incluye el comando `sam deploy` o `sam package` para que la definición se transforme correctamente.  
Las funciones intrínsecas no se admiten en OpenApi los archivos externos a los que hace referencia`DefinitionUri`. En su lugar, utilice la `DefinitionBody` propiedad con la [transformación 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 una OpenApi definición a la plantilla.  
*Tipo*: Cadena \$1 [ApiDefinition](sam-property-api-apidefinition.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location)` propiedad de un `AWS::ApiGateway::RestApi` recurso. Las propiedades anidadas de Amazon S3 tienen un nombre diferente.

 `Description`   <a name="sam-api-description"></a>
Una descripción del recurso de la Api.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description)` propiedad de un `AWS::ApiGateway::RestApi` recurso.

 `DisableExecuteApiEndpoint`   <a name="sam-api-disableexecuteapiendpoint"></a>
Especifica si los clientes pueden invocar la API mediante el punto de conexión `execute-api` predeterminado. De forma predeterminada, los clientes pueden invocar su API con el `https://{api_id}.execute-api.{region}.amazonaws.com` predeterminado. Para exigir que los clientes utilicen un nombre de dominio personalizado para invocar su API, especifica `True`.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[ DisableExecuteApiEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint)` propiedad de un `AWS::ApiGateway::RestApi` recurso. Se pasa directamente a la propiedad `disableExecuteApiEndpoint` de una extensión `[ x-amazon-apigateway-endpoint-configuration](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html)`, que se agrega a la propiedad ` [ Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` de un recurso `AWS::ApiGateway::RestApi`.

 `Domain`   <a name="sam-api-domain"></a>
Configura un dominio personalizado para esta API de API Gateway.  
*Tipo:* [DomainConfiguration](sam-property-api-domainconfiguration.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `EndpointConfiguration`   <a name="sam-api-endpointconfiguration"></a>
El tipo de punto de conexión de una API de REST.  
*Tipo:* [EndpointConfiguration](sam-property-api-endpointconfiguration.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration)` propiedad de un `AWS::ApiGateway::RestApi` recurso. Las propiedades anidadas de configuración tienen un nombre diferente.

 `FailOnWarnings`   <a name="sam-api-failonwarnings"></a>
Especifica si se va a restaurar la creación de API (`true`) o no (`false`) cuando se encuentra una advertencia. El valor predeterminado es `false`.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[FailOnWarnings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings)` propiedad de un `AWS::ApiGateway::RestApi` recurso.

 `GatewayResponses`   <a name="sam-api-gatewayresponses"></a>
Configura las respuestas de Gateway para una API. Las respuestas de Gateway son respuestas devueltas por API Gateway, ya sea directamente o mediante el uso de autorizadores Lambda. Para obtener más información, consulte la documentación de la [ OpenApi extensión Api Gateway para Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html).  
*Tipo*: mapa  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `MergeDefinitions`   <a name="sam-api-mergedefinitions"></a>
AWS SAM genera una OpenAPI especificación a partir de la fuente de eventos de la API. Especifique `true` si desea AWS SAM fusionarla con la OpenAPI especificación en línea definida en su `AWS::Serverless::Api` recurso. Especifica que `false` no se fusione.  
`MergeDefinitions` requiere que la propiedad de `DefinitionBody` para `AWS::Serverless::Api` se defina. `MergeDefinitions` no es compatible con la propiedad de `DefinitionUri` para `AWS::Serverless::Api`.  
*Valor predeterminado:* `false`  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `MethodSettings`   <a name="sam-api-methodsettings"></a>
Configura todos los ajustes de la etapa de la API, incluidos los de registro, métricas, cachetTL y la limitación controlada.  
*Tipo*: lista de [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[MethodSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings)` propiedad de un `AWS::ApiGateway::Stage` recurso.

 `MinimumCompressionSize`   <a name="sam-api-minimumcompressionsize"></a>
Permita la compresión de los cuerpos de respuesta en función del encabezado Accept-Encoding del cliente. La compresión se desencadena cuando el tamaño del cuerpo de respuesta es superior o igual al umbral configurado. El umbral de tamaño máximo del cuerpo es de 10 MB (10.485.760 bytes). - Se admiten los siguientes tipos de compresión: gzip, deflate e identidad.  
*Tipo*: entero  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[MinimumCompressionSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize)` propiedad de un `AWS::ApiGateway::RestApi` recurso.

 `Mode`   <a name="sam-api-mode"></a>
Esta propiedad solo se aplica cuando se utiliza OpenAPI para definir su API de REST. El `Mode` determina cómo API Gateway maneja las actualizaciones de recursos. Para obtener más información, consulta la propiedad [Modo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) en el 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` o `merge`  
*Tipo*: cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode)` propiedad de un `AWS::ApiGateway::RestApi` recurso.

 `Models`   <a name="sam-api-models"></a>
Los esquemas que deben utilizar sus métodos API. Estos esquemas se pueden describir mediante JSON o YAML. Consulte la sección de ejemplos al final de esta página para ver ejemplos de modelos.  
*Tipo*: mapa  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `Name`   <a name="sam-api-name"></a>
Un nombre para el RestApi recurso API Gateway  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name)` propiedad de un `AWS::ApiGateway::RestApi` recurso.

 `OpenApiVersion`   <a name="sam-api-openapiversion"></a>
Versión de OpenApi a utilizar. Puede ser `2.0` para la especificación Swagger o para una de las versiones OpenApi 3.0, por ejemplo. `3.0.1` Para más información sobre OpenAPI, consulta la [Especificación de OpenAPI.](https://swagger.io/specification/)  
 AWS SAM crea un escenario llamado `Stage` por defecto. Si se establece esta propiedad en cualquier valor válido, se impedirá la creación de la etapa `Stage`. 
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

`PropagateTags`  <a name="sam-api-propagatetags"></a>
Indique si quiere pasar o no las etiquetas de la propiedad `Tags` a los recursos generados [AWS::Serverless::Api](sam-specification-generated-resources-api.md). Especifica `True` para propagar las etiquetas en los recursos generados.  
*Tipo*: Booleano  
*Obligatorio*: no  
*Valor predeterminado*: `False`  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

`Policy`  <a name="sam-api-policy"></a>
Documento de la política que contiene los permisos para la API. Para establecer el ARN de la política, utilice la función intrínseca `!Join` con `""` como delimitador y los valores `"execute-api:/"` y `"*"`.  
*Tipo*: JSON  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la propiedad [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy) de un `AWS::ApiGateway::RestApi` recurso.

 `StageName`   <a name="sam-api-stagename"></a>
El nombre de la etapa, que API Gateway utiliza como el primer segmento de la ruta en el Identificador uniforme de recursos (URI) invocado.  
Para hacer referencia al recurso de la etapa, utilice `<api-logical-id>.Stage`. Para obtener más información sobre cómo hacer referencia a los recursos generados cuando se especifica un recurso [AWS::Serverless::Api](#sam-resource-api), consulta [CloudFormation recursos generados cuando AWS::Serverless::Api se especifica](sam-specification-generated-resources-api.md). Para obtener información general sobre CloudFormation los recursos generados, consulte[CloudFormation Recursos generados para AWS SAM](sam-specification-generated-resources.md).  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[StageName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename)` propiedad de un `AWS::ApiGateway::Stage` recurso. Es obligatorio en SAM, pero no en API Gateway  
*Notas adicionales*: la API implícita tiene el nombre de etapa de “Prod”.

 `Tags`   <a name="sam-api-tags"></a>
Un mapa (cadena a cadena) que especifica las etiquetas que deben añadirse a esta etapa de la API Gateway. Para obtener más información sobre las claves y los valores válidos de las etiquetas, consulta la [etiqueta de recursos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) en la *Guía del usuario de AWS CloudFormation *.  
*Tipo*: mapa  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es similar a la `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags)` propiedad de un `AWS::ApiGateway::Stage` recurso. La propiedad Tags de SAM consta de pares clave-valor; en CloudFormation ella, consiste en una lista de objetos Tag.

 `TracingEnabled`   <a name="sam-api-tracingenabled"></a>
Indica si se ha habilitado el rastreo activo con X-Ray para la fase. Para obtener más información sobre X-Ray, consulte [Rastreo de las solicitudes de los usuarios a REST APIs mediante X-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) en la *Guía para desarrolladores de API Gateway*.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se transfiere directamente a la `[TracingEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled)` propiedad de un `AWS::ApiGateway::Stage` recurso.

 `Variables`   <a name="sam-api-variables"></a>
Un mapa (cadena a cadena) que define las variables de la fase, donde el nombre de la variable es la clave y el valor de la variable es el valor. Los nombres de variables están limitados a caracteres alfanuméricos. Los valores deben coincidir con las siguientes expresiones regulares: `[A-Za-z0-9._~:/?#&=,-]+`.  
*Tipo*: mapa  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la `[Variables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables)` propiedad de un `AWS::ApiGateway::Stage` recurso.

## valores devueltos
<a name="sam-resource-api-return-values"></a>

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

Cuando se proporciona el ID lógico de este recurso a la función intrínseca `Ref`, devuelve el ID del API de API Gateway subyacente.

Para obtener más información sobre el uso de la función `Ref`, consulta [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) en la *Guía del usuario de AWS CloudFormation *. 

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

`Fn::GetAtt` devuelve un valor para un atributo especificado de este tipo. A continuación se indican los atributos disponibles y los valores devueltos de muestra. 

Para obtener más información acerca de cómo usar `Fn::GetAtt`, consulta [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) en la *Guía del usuario de AWS CloudFormation *. 

`RootResourceId`  <a name="RootResourceId-fn::getatt"></a>
El ID del recurso raíz de un recurso `RestApi`, como por ejemplo `a0bc123d4e`.

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

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

Un archivo de AWS SAM plantilla de Hello World que contiene una función Lambda con un punto final de API. Se trata de un archivo de AWS SAM plantilla completo para una aplicación sin servidor que funcione.

#### 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>

Un fragmento AWS SAM de plantilla con una API definida en un archivo Swagger externo junto con integraciones de Lambda y configuraciones de CORS. Esto es solo una parte de un archivo de plantilla que muestra una definición. AWS SAM [AWS::Serverless::Api](#sam-resource-api)

#### 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>

Un fragmento AWS SAM de plantilla con una API que utiliza Amazon Cognito para autorizar las solicitudes contra la API. Es solo una parte de un archivo de AWS SAM plantilla que muestra una definición. [AWS::Serverless::Api](#sam-resource-api)

#### 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>

Un fragmento AWS SAM de plantilla con una API que incluye un esquema de modelos. Esto es solo una parte de un archivo de AWS SAM plantilla, que muestra una [AWS::Serverless::Api](#sam-resource-api) definición con dos 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
```

### Ejemplo de almacenamiento en caché
<a name="sam-resource-api--examples--caching-example"></a>

Un archivo de AWS SAM plantilla de Hello World que contiene una función Lambda con un punto final de API. La API tiene habilitado el almacenamiento en caché para un recurso y un método. Para obtener más información acerca del almacenamiento en caché, consulta [Habilitar el almacenamiento en caché de la API para mejorar la capacidad de respuesta](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) en la *Guía para desarrolladores de 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}
```

### Ejemplo de dominio personalizado con una API privada
<a name="sam-resource-api--examples--custom-domain-example"></a>

Un archivo de AWS SAM plantilla de Hello World que contiene una función Lambda con un punto final de API asignado a un dominio privado. La plantilla crea una asociación de acceso a un dominio entre un punto de conexión de VPC y un dominio privado. Para obtener más información, consulte [Nombres de dominio personalizados para uso privado APIs en 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
```