

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.

# Api
<a name="sam-property-function-api"></a>

El objeto que describe un tipo de fuente de evento de `Api`. Si se define un recurso [AWS::Serverless::Api](sam-resource-api.md), los valores de ruta y método deben corresponder a una operación de la definición de OpenAPI de la API.

Si no se define ningún [AWS::Serverless::Api](sam-resource-api.md), la entrada y la salida de la función son una representación de la solicitud HTTP y la respuesta HTTP.

Por ejemplo, mediante la JavaScript API, el código de estado y el cuerpo de la respuesta se pueden controlar devolviendo un objeto con las claves StatusCode y body.

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

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

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

```
  [Auth](#sam-function-api-auth): ApiFunctionAuth
  [Method](#sam-function-api-method): String
  [Path](#sam-function-api-path): String
  [RequestModel](#sam-function-api-requestmodel): RequestModel
  [RequestParameters](#sam-function-api-requestparameters): List of [ String | RequestParameter ]
  [RestApiId](#sam-function-api-restapiid): String
  [ResponseTransferMode](#sam-function-api-responsetransfermode): String
  TimeoutInMillis: Integer
```

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

 `Auth`   <a name="sam-function-api-auth"></a>
Configuración de autenticación para esta API, ruta y método específicos.  
Útil para anular la configuración `DefaultAuthorizer` de autenticación de la API en una ruta individual cuando no se especifica ninguna `DefaultAuthorizer` o la anulación de la configuración `ApiKeyRequired` predeterminada.  
*Tipo:* [ApiFunctionAuth](sam-property-function-apifunctionauth.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Method`   <a name="sam-function-api-method"></a>
Método HTTP para el que se invoca esta función. Las opciones incluyen `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` y `ANY`. Consulte [Configuración de un método HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-add-http-method) en la *Guía para desarrolladores de API Gateway* para obtener más información.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Path`   <a name="sam-function-api-path"></a>
Ruta de URI para la que se invoca esta función. Debe empezar con `/`.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `RequestModel`   <a name="sam-function-api-requestmodel"></a>
Modelo de solicitud para usarlo en esta API, ruta y método específicos. Debe hacer referencia al nombre de un modelo especificado en la sección `Models` de un recurso [AWS::Serverless::Api](sam-resource-api.md).  
*Tipo:* [RequestModel](sam-property-function-requestmodel.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `RequestParameters`   <a name="sam-function-api-requestparameters"></a>
Configuración de los parámetro de solicitud para una API\$1ruta\$1método específicos. Todos los nombres de los parámetros deben empezar por `method.request` y estar limitados a `method.request.header`, `method.request.querystring` o `method.request.path`.  
Una lista puede contener tanto cadenas de nombres de parámetros como [RequestParameter](sam-property-function-requestparameter.md)objetos. En el caso de las cadenas, las propiedades `Required` y `Caching` se establecerán de forma predeterminada en `false`.  
*Tipo*: Lista de [Cadena \$1 [RequestParameter](sam-property-function-requestparameter.md)]  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `RestApiId`   <a name="sam-function-api-restapiid"></a>
Identificador de un RestApi recurso, que debe contener una operación con la ruta y el método dados. Normalmente, se configura para hacer referencia a un recurso [AWS::Serverless::Api](sam-resource-api.md) definido en esta plantilla.  
Si no define esta propiedad, AWS SAM crea un [AWS::Serverless::Api](sam-resource-api.md) recurso predeterminado a partir de un `OpenApi` documento generado. Ese recurso contiene una unión de todas las rutas y métodos definidos por eventos `Api` de la misma plantilla que no especifican un `RestApiId`.  
Esto no puede hacer referencia a un recurso [AWS::Serverless::Api](sam-resource-api.md) definido en otra plantilla.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

`ResponseTransferMode`  <a name="sam-function-api-responsetransfermode"></a>
El modo de transferencia de respuestas para la integración de la función Lambda. Configúrelo en `RESPONSE_STREAM` para habilitar la transmisión de respuestas de Lambda a través de API Gateway, lo que permite que la función transmita las respuestas a los clientes. Cuando se establece en`RESPONSE_STREAM`, API Gateway utiliza la API Lambda InvokeWithResponseStreaming .  
*Tipo:* cadena  
*Obligatorio*: no  
*Valores válidos*: `BUFFERED` \$1 `RESPONSE_STREAM`  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a la [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-responsetransfermode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-responsetransfermode)propiedad de un`AWS::ApiGateway::Method Integration`.

`TimeoutInMillis`  <a name="sam-function-api-timeoutinmillis"></a>
Tiempo de espera personalizado entre 50 y 29 000 milisegundos.  
Al especificar esta propiedad, AWS SAM modifica la definición de OpenAPI. La definición de OpenAPI debe especificarse en línea mediante la propiedad `DefinitionBody`. 
*Tipo*: entero  
*Obligatorio*: no  
*Valor predeterminado*: 29 000 milisegundos (29 segundos)  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

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

### Ejemplo básico
<a name="sam-property-function-api--examples--apievent"></a>

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

```
Events:
  ApiEvent:
    Type: Api
    Properties:
      Path: /path
      Method: get
      RequestParameters:
        - method.request.header.Authorization
        - method.request.querystring.keyword:
            Required: true
            Caching: false
```

# ApiFunctionAuth
<a name="sam-property-function-apifunctionauth"></a>

Configura la autorización a nivel de evento para una API, una ruta y un método específicos.

## Sintaxis
<a name="sam-property-function-apifunctionauth-syntax"></a>

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

### YAML
<a name="sam-property-function-apifunctionauth-syntax.yaml"></a>

```
  [ApiKeyRequired](#sam-function-apifunctionauth-apikeyrequired): Boolean
  [AuthorizationScopes](#sam-function-apifunctionauth-authorizationscopes): List
  [Authorizer](#sam-function-apifunctionauth-authorizer): String
  [InvokeRole](#sam-function-apifunctionauth-invokerole): String
  OverrideApiAuth: Boolean
  [ResourcePolicy](#sam-function-apifunctionauth-resourcepolicy): ResourcePolicyStatement
```

## Propiedades
<a name="sam-property-function-apifunctionauth-properties"></a>

 `ApiKeyRequired`   <a name="sam-function-apifunctionauth-apikeyrequired"></a>
Requiere una clave de API para esta API, ruta y método.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `AuthorizationScopes`   <a name="sam-function-apifunctionauth-authorizationscopes"></a>
Los ámbitos de autorización que se aplicarán a esta API, ruta y método.  
Los ámbitos que especifica anularán los ámbitos aplicados por la propiedad de `DefaultAuthorizer` si los ha especificado.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Authorizer`   <a name="sam-function-apifunctionauth-authorizer"></a>
`Authorizer` para una función específica.  
Si ha especificado un autorizador global para su recurso `AWS::Serverless::Api`, puede anular el autorizador configurando `Authorizer` como `NONE`. Para ver un ejemplo, consulta [Anule un autorizador global para su API de REST de Amazon API Gateway](#sam-property-function-apifunctionauth--examples--override).  
Si utiliza la propiedad `DefinitionBody` de un recurso de `AWS::Serverless::Api` para describir su API, debe usar `OverrideApiAuth` con `Authorizer` para anular su autorizador global. Para obtener más información, consulta `OverrideApiAuth`.
*Valores válidos*: `AWS_IAM``NONE`, o el identificador lógico de cualquier autorizador definido en la AWS SAM plantilla.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `InvokeRole`   <a name="sam-function-apifunctionauth-invokerole"></a>
Especifica qué `InvokeRole` utilizar para la autorización de `AWS_IAM`.  
*Tipo:* cadena  
*Obligatorio*: no  
*Valor predeterminado*: `CALLER_CREDENTIALS`  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.  
*Notas adicionales*: `CALLER_CREDENTIALS` asigna a `arn:aws:iam:::<user>/`, que utiliza las credenciales de la persona que llama para invocar el punto de conexión.

`OverrideApiAuth`  <a name="sam-function-apifunctionauth-overrideapiauth"></a>
Especifica como `true` para anular la configuración del autorizador global de su recurso `AWS::Serverless::Api`. Esta propiedad solo es necesaria si usted especifica un autorizador global y utiliza la propiedad `DefinitionBody` de un recurso `AWS::Serverless::Api` para describir su API.  
Si especificas `OverrideApiAuth` como`true`, AWS SAM anulará tu autorizador global con los valores proporcionados para `ApiKeyRequired``Authorizer`, o. `ResourcePolicy` Por lo tanto, al utilizar `OverrideApiAuth` también se debe especificar al menos una de estas propiedades. Para ver un ejemplo, consulta [Anula un autorizador global cuando se especifique for DefinitionBody AWS::Serverless::Api](#sam-property-function-apifunctionauth--examples--override2).
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `ResourcePolicy`   <a name="sam-function-apifunctionauth-resourcepolicy"></a>
Configura la política de recursos para esta ruta en una API.  
*Tipo:* [ResourcePolicyStatement](sam-property-function-resourcepolicystatement.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

## Ejemplos
<a name="sam-property-function-apifunctionauth--examples"></a>

### Autenticación de funciones
<a name="sam-property-function-apifunctionauth--examples--function-auth"></a>

El siguiente ejemplo especifica la autorización a nivel de función.

#### YAML
<a name="sam-property-function-apifunctionauth--examples--function-auth--yaml"></a>

```
Auth:
  ApiKeyRequired: true
  Authorizer: NONE
```

### Anule un autorizador global para su API de REST de Amazon API Gateway
<a name="sam-property-function-apifunctionauth--examples--override"></a>

Puedes especificar un autorizador global para su recurso `AWS::Serverless::Api`. A continuación se muestra un ejemplo que configura un autorizador predeterminado global:

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApiWithLambdaRequestAuth:
    Type: AWS::Serverless::Api
    Properties:
      ...
      Auth:
        Authorizers:
          MyLambdaRequestAuth:
            FunctionArn: !GetAtt MyAuthFn.Arn
        DefaultAuthorizer: MyLambdaRequestAuth
```

Para anular el autorizador predeterminado de tu AWS Lambda función, puedes `Authorizer` especificarlo como. `NONE` A continuación, se muestra un ejemplo:

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  ...
  MyFn:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Events:
        LambdaRequest:
          Type: Api
          Properties:
            RestApiId: !Ref MyApiWithLambdaRequestAuth
            Method: GET
            Auth:
              Authorizer: NONE
```

### Anula un autorizador global cuando se especifique for DefinitionBody AWS::Serverless::Api
<a name="sam-property-function-apifunctionauth--examples--override2"></a>

Al utilizar la propiedad `DefinitionBody` para describir el recurso `AWS::Serverless::Api`, el método de anulación anterior no funciona. A continuación se muestra un ejemplo del uso de la propiedad `DefinitionBody` para un recurso `AWS::Serverless::Api`:

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApiWithLambdaRequestAuth:
    Type: AWS::Serverless::Api
    Properties:
      ...
      DefinitionBody:
        swagger: 2.0
        ...
        paths:
          /lambda-request:
            ...
      Auth:
        Authorizers:
          MyLambdaRequestAuth:
            FunctionArn: !GetAtt MyAuthFn.Arn
        DefaultAuthorizer: MyLambdaRequestAuth
```

Para anular el autorizador global, utilice la propiedad `OverrideApiAuth`. El siguiente es un ejemplo que utiliza `OverrideApiAuth` para anular el autorizador global con el valor proporcionado para `Authorizer`:

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApiWithLambdaRequestAuth:
    Type: AWS::Serverless::Api
    Properties:
      ...
      DefinitionBody:
        swagger: 2-0
        ...
        paths:
          /lambda-request:
            ...
      Auth:
        Authorizers:
          MyLambdaRequestAuth:
            FunctionArn: !GetAtt MyAuthFn.Arn
        DefaultAuthorizer: MyLambdaRequestAuth
    
    MyAuthFn:
      Type: AWS::Serverless::Function
      ...
    
    MyFn:
      Type: AWS::Serverless::Function
        Properties:
          ...
          Events:
            LambdaRequest:
              Type: Api
              Properties:
                RestApiId: !Ref MyApiWithLambdaRequestAuth
                Method: GET
                Auth:
                  Authorizer: NONE
                  OverrideApiAuth: true
                Path: /lambda-token
```

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

Configura una política de recursos para todos los métodos y rutas de una API. Para obtener más información sobre las políticas de recursos, consulta [Controlar el acceso a una API con las políticas de recursos de API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) en la *Guía para desarrolladores de API Gateway*.

## Sintaxis
<a name="sam-property-function-resourcepolicystatement-syntax"></a>

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

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

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

## Propiedades
<a name="sam-property-function-resourcepolicystatement-properties"></a>

 `AwsAccountBlacklist`   <a name="sam-function-resourcepolicystatement-awsaccountblacklist"></a>
Las AWS cuentas que se van a bloquear.  
*Tipo*: lista de cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `AwsAccountWhitelist`   <a name="sam-function-resourcepolicystatement-awsaccountwhitelist"></a>
Las AWS cuentas que se van a permitir. Para obtener un ejemplo del uso de esta propiedad, consulta la sección Ejemplos al final de esta página.  
*Tipo*: lista de cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `CustomStatements`   <a name="sam-function-resourcepolicystatement-customstatements"></a>
Una lista de instrucciones de política de recursos personalizadas para aplicarlas a esta API. Para obtener un ejemplo del uso de esta propiedad, consulta la sección Ejemplos al final de esta página.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `IntrinsicVpcBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcblacklist"></a>
La lista de nubes privadas virtuales (VPCs) que se van a bloquear, en la que cada VPC se especifica como referencia, por ejemplo, una [referencia dinámica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) o la función `Ref` [intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html). Para obtener un ejemplo del uso de esta propiedad, consulta la sección Ejemplos al final de esta página.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `IntrinsicVpcWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcwhitelist"></a>
La lista de VPCs permitidos, donde cada VPC se especifica como una referencia, como una [referencia dinámica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) o la función `Ref` [intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `IntrinsicVpceBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpceblacklist"></a>
La lista de puntos de conexión de VPC que se van a bloquear, donde cada punto de conexión de VPC se especifica como referencia, por ejemplo, una [referencia dinámica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) o la [función intrínseca `Ref`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `IntrinsicVpceWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcewhitelist"></a>
La lista de nubes privadas virtuales (VPC) permitidas, donde cada punto de conexión de VPC se especifica como referencia, por ejemplo, una [referencia dinámica](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) o la [función intrínseca `Ref`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html). Para obtener un ejemplo del uso de esta propiedad, consulta la sección Ejemplos al final de esta página.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `IpRangeBlacklist`   <a name="sam-function-resourcepolicystatement-iprangeblacklist"></a>
Las direcciones IP o los rangos de direcciones que se van a bloquear. Para obtener un ejemplo del uso de esta propiedad, consulta la sección Ejemplos al final de esta página.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `IpRangeWhitelist`   <a name="sam-function-resourcepolicystatement-iprangewhitelist"></a>
Las direcciones IP o los rangos de direcciones que se van a permitir.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `SourceVpcBlacklist`   <a name="sam-function-resourcepolicystatement-sourcevpcblacklist"></a>
La VPC de origen o los puntos de conexión de VPC que se van a bloquear. Los nombres de la VPC de origen deben empezar por `"vpc-"` y los nombres de los puntos de conexión de VPC de origen deben empezar por `"vpce-"`. Para obtener un ejemplo del uso de esta propiedad, consulta la sección Ejemplos al final de esta página.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `SourceVpcWhitelist`   <a name="sam-function-resourcepolicystatement-sourcevpcwhitelist"></a>
La VPC de origen o los puntos de conexión de VPC que se van a permitir. Los nombres de la VPC de origen deben empezar por `"vpc-"` y los nombres de los puntos de conexión de VPC de origen deben empezar por `"vpce-"`.  
*Tipo*: lista  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

## Ejemplos
<a name="sam-property-function-resourcepolicystatement--examples"></a>

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

El siguiente ejemplo bloquea dos direcciones IP y una VPC de origen y permite una AWS cuenta.

#### YAML
<a name="sam-property-function-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
```

# RequestModel
<a name="sam-property-function-requestmodel"></a>

Configura un modelo de solicitud para una API\$1ruta\$1método específicos.

## Sintaxis
<a name="sam-property-function-requestmodel-syntax"></a>

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

### YAML
<a name="sam-property-function-requestmodel-syntax.yaml"></a>

```
  [Model](#sam-function-requestmodel-model): String
  [Required](#sam-function-requestmodel-required): Boolean
  [ValidateBody](#sam-function-requestmodel-validatebody): Boolean
  [ValidateParameters](#sam-function-requestmodel-validateparameters): Boolean
```

## Propiedades
<a name="sam-property-function-requestmodel-properties"></a>

 `Model`   <a name="sam-function-requestmodel-model"></a>
Nombre de un modelo definido en la propiedad Modelos del [AWS::Serverless::Api](sam-resource-api.md).  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Required`   <a name="sam-function-requestmodel-required"></a>
Añade una `required` propiedad en la sección de parámetros de la OpenApi definición para el punto final de la API en cuestión.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `ValidateBody`   <a name="sam-function-requestmodel-validatebody"></a>
Especifica si API Gateway utiliza el `Model` para validar el cuerpo de la solicitud. Para obtener más información, consulta [Habilitar la validación de solicitudes en API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) en la *Guía para desarrolladores de API Gateway*.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `ValidateParameters`   <a name="sam-function-requestmodel-validateparameters"></a>
Especifica si API Gateway utiliza el `Model` para validar los parámetros de la ruta de solicitud, las cadenas de consulta y los encabezados. Para obtener más información, consulta [Habilitar la validación de solicitudes en API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) en la *Guía para desarrolladores de API Gateway*.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

## Ejemplos
<a name="sam-property-function-requestmodel--examples"></a>

### Modelo de solicitud
<a name="sam-property-function-requestmodel--examples--request-model"></a>

Ejemplo de modelo de solicitud

#### YAML
<a name="sam-property-function-requestmodel--examples--request-model--yaml"></a>

```
RequestModel:
  Model: User
  Required: true
  ValidateBody: true
  ValidateParameters: true
```

# RequestParameter
<a name="sam-property-function-requestparameter"></a>

Configura un parámetro de solicitud para una API\$1ruta\$1método específicos.

Se debe especificar una propiedad tanto `Required` como `Caching` para el parámetro de solicitud

## Sintaxis
<a name="sam-property-function-requestparameter-syntax"></a>

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

### YAML
<a name="sam-property-function-requestparameter-syntax.yaml"></a>

```
  [Caching](#sam-function-requestparameter-caching): Boolean
  [Required](#sam-function-requestparameter-required): Boolean
```

## Propiedades
<a name="sam-property-function-requestparameter-properties"></a>

 `Caching`   <a name="sam-function-requestparameter-caching"></a>
Añade una `cacheKeyParameters` sección a la OpenApi definición de API Gateway  
*Tipo*: Booleano  
*Obligatorio*: condicional  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Required`   <a name="sam-function-requestparameter-required"></a>
Este campo especifica si un parámetro es necesario.  
*Tipo*: Booleano  
*Obligatorio*: condicional  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

## Ejemplos
<a name="sam-property-function-requestparameter--examples"></a>

### Parámetro de solicitud
<a name="sam-property-function-requestparameter--examples--request-parameter"></a>

Ejemplo de configuración de los parámetros de solicitud

#### YAML
<a name="sam-property-function-requestparameter--examples--request-parameter--yaml"></a>

```
RequestParameters:
  - method.request.header.Authorization:
      Required: true
      Caching: true
```