

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

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

O objeto que descreve um tipo de origem do evento `Api`. Se um recurso [AWS::Serverless::Api](sam-resource-api.md) for definido, os valores do caminho e do método devem corresponder a uma operação na definição de OpenAPI da API.

Se nenhum [AWS::Serverless::Api](sam-resource-api.md) for definido, a entrada e a saída da função serão uma representação da solicitação HTTP e da resposta HTTP.

Por exemplo, usando a JavaScript API, o código de status e o corpo da resposta podem ser controlados retornando um objeto com as chaves statusCode e body.

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

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

 `Auth`   <a name="sam-function-api-auth"></a>
Configuração de autenticação para essa Api\$1Path\$1Method específica.  
Útil parar substituir a configuração `DefaultAuthorizer` da API para um caminho individual, quando nenhum `DefaultAuthorizer` for especificado, ou para substituir a configuração padrão `ApiKeyRequired`.  
*Digite*: [ApiFunctionAuth](sam-property-function-apifunctionauth.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Method`   <a name="sam-function-api-method"></a>
Método HTTP para o qual essa função é invocada. As opções incluem `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` e `ANY`. Consulte [Set up an HTTP method](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-add-http-method) in the *API Gateway Developer Guide* para obter mais detalhes.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Path`   <a name="sam-function-api-path"></a>
Caminho Uri para o qual essa função é invocada. Deve começar com `/`.  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `RequestModel`   <a name="sam-function-api-requestmodel"></a>
Solicite o modelo a ser usado para essa Api\$1Path\$1Method específica. Isso deve fazer referência ao nome de um modelo especificado na seção `Models` de um recurso [AWS::Serverless::Api](sam-resource-api.md).  
*Digite*: [RequestModel](sam-property-function-requestmodel.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `RequestParameters`   <a name="sam-function-api-requestparameters"></a>
Solicite a configuração dos parâmetros para este Api\$1Path\$1Method específico. Todos os nomes de parâmetros devem começar com `method.request` e devem ser limitados a `method.request.header`, `method.request.querystring` ou a `method.request.path`.  
Uma lista pode conter cadeias de caracteres de nomes de parâmetros e [RequestParameter](sam-property-function-requestparameter.md)objetos. Para cadeias de caracteres, as propriedades `Required` e `Caching` serão padronizadas como `false`.  
*Tipo*: Lista de [String \$1 [RequestParameter](sam-property-function-requestparameter.md)]  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `RestApiId`   <a name="sam-function-api-restapiid"></a>
Identificador de um RestApi recurso, que deve conter uma operação com o caminho e o método fornecidos. Normalmente, isso é definido para fazer referência a um recurso [AWS::Serverless::Api](sam-resource-api.md) definido nesse modelo.  
Se você não definir essa propriedade, AWS SAM cria um [AWS::Serverless::Api](sam-resource-api.md) recurso padrão usando um `OpenApi` documento gerado. Esse recurso contém uma união de todos os caminhos e métodos definidos por eventos `Api` no mesmo modelo que não especificam um arquivo `RestApiId`.  
Isso não pode fazer referência a um recurso [AWS::Serverless::Api](sam-resource-api.md) definido em outro modelo.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

`ResponseTransferMode`  <a name="sam-function-api-responsetransfermode"></a>
O modo de transferência de resposta para a integração da função Lambda. Defina como `RESPONSE_STREAM` para habilitar o streaming de respostas do Lambda por meio do API Gateway, permitindo que a função transmita respostas de volta aos clientes. Quando definido como`RESPONSE_STREAM`, o API Gateway usa a API Lambda InvokeWithResponseStreaming .  
*Tipo:* string  
*Obrigatório*: não  
*Valores válidos*: `BUFFERED` \$1 `RESPONSE_STREAM`  
*CloudFormation compatibilidade*: essa propriedade é passada diretamente para a [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)propriedade de um`AWS::ApiGateway::Method Integration`.

`TimeoutInMillis`  <a name="sam-function-api-timeoutinmillis"></a>
Tempo limite personalizado entre 50 e 29.000 milissegundos.  
Quando você especifica essa propriedade, AWS SAM modifica sua definição de OpenAPI. A definição da OpenAPI deve ser especificada em linha usando a propriedade `DefinitionBody`. 
*Tipo*: inteiro  
*Obrigatório*: não  
*Padrão*: 29.000 milissegundos ou 29 segundos  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

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

### Exemplo 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 a autorização no nível do evento, para uma API, um caminho e um método específicos.

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

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

 `ApiKeyRequired`   <a name="sam-function-apifunctionauth-apikeyrequired"></a>
Requer uma chave de API para essa API, caminho e método.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `AuthorizationScopes`   <a name="sam-function-apifunctionauth-authorizationscopes"></a>
Os escopos de autorização a serem aplicados a essa API, caminho e método.  
Os escopos que você especificar substituirão quaisquer escopos aplicados pela propriedade `DefaultAuthorizer`, caso você a tenha especificado.  
*Tipo*: Lista  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Authorizer`   <a name="sam-function-apifunctionauth-authorizer"></a>
O `Authorizer` para uma função específica.  
Se você tiver um autorizador global especificado para seu recurso `AWS::Serverless::Api`, poderá substituí-lo configurando como `Authorizer` `NONE`. Para ver um exemplo, consulte [Substitua um autorizador global para sua API REST do Amazon API Gateway](#sam-property-function-apifunctionauth--examples--override).  
Se você usar a propriedade `DefinitionBody` de um recurso `AWS::Serverless::Api` para descrever sua API, deverá usar o `OverrideApiAuth` com o `Authorizer` para substituir seu autorizador global. Consulte `OverrideApiAuth` para obter mais informações.
*Valores válidos*:`AWS_IAM`,`NONE`, ou a ID lógica de qualquer autorizador definido em seu AWS SAM modelo.  
*Tipo:* string  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `InvokeRole`   <a name="sam-function-apifunctionauth-invokerole"></a>
Especifica o `InvokeRole` a ser usado para autorização `AWS_IAM`.  
*Tipo:* string  
*Obrigatório*: não  
*Padrão*: `CALLER_CREDENTIALS`  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.  
*Notas adicionais*: `CALLER_CREDENTIALS` mapeia para `arn:aws:iam:::<user>/`, que usa as credenciais do chamador para invocar o endpoint.

`OverrideApiAuth`  <a name="sam-function-apifunctionauth-overrideapiauth"></a>
Especifique como `true` para substituir a configuração global do autorizador do seu recurso `AWS::Serverless::Api`. Essa propriedade só é necessária se você especificar um autorizador global e usar a propriedade `DefinitionBody` de um recurso `AWS::Serverless::Api` para descrever sua API.  
Quando você especificar `OverrideApiAuth` como`true`, AWS SAM substituirá seu autorizador global por quaisquer valores fornecidos para `ApiKeyRequired``Authorizer`, ou. `ResourcePolicy` Portanto, pelo menos uma dessas propriedades também deve ser especificada durante o uso do `OverrideApiAuth`. Para ver um exemplo, consulte [Substituir um autorizador global quando DefinitionBody for especificado AWS::Serverless::Api](#sam-property-function-apifunctionauth--examples--override2).
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ResourcePolicy`   <a name="sam-function-apifunctionauth-resourcepolicy"></a>
Configure a política de recursos para esse caminho em uma API.  
*Digite*: [ResourcePolicyStatement](sam-property-function-resourcepolicystatement.md)  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

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

### Function-Auth
<a name="sam-property-function-apifunctionauth--examples--function-auth"></a>

O exemplo a seguir especifica a autorização no nível da função.

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

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

### Substitua um autorizador global para sua API REST do Amazon API Gateway
<a name="sam-property-function-apifunctionauth--examples--override"></a>

Você pode especificar um autorizador global para seu recurso `AWS::Serverless::Api`. Este é um exemplo que configura um autorizador padrão 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 substituir o autorizador padrão da sua AWS Lambda função, você pode especificar `Authorizer` como. `NONE` Este é um exemplo:

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

### Substituir um autorizador global quando DefinitionBody for especificado AWS::Serverless::Api
<a name="sam-property-function-apifunctionauth--examples--override2"></a>

Ao usar a propriedade `DefinitionBody` para descrever seu recurso `AWS::Serverless::Api`, o método de substituição anterior não funciona. Veja a seguir um exemplo de uso da propriedade `DefinitionBody` para um 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 substituir o autorizador global, use a propriedade `OverrideApiAuth`. Veja a seguir um exemplo que usa o `OverrideApiAuth` para substituir o autorizador global pelo valor fornecido 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 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-function-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-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
```

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

 `AwsAccountBlacklist`   <a name="sam-function-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-function-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-function-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-function-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-function-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-function-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-function-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-function-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-function-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-function-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-function-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-function-resourcepolicystatement--examples"></a>

### Exemplo de política de recursos
<a name="sam-property-function-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-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 um modelo de solicitação para uma API\$1Path\$1Method específica.

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

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

 `Model`   <a name="sam-function-requestmodel-model"></a>
Nome de um modelo definido na propriedade Models do[AWS::Serverless::Api](sam-resource-api.md).  
*Tipo:* string  
*Obrigatório*: Sim  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Required`   <a name="sam-function-requestmodel-required"></a>
Adiciona uma `required` propriedade na seção de parâmetros da OpenApi definição para o determinado endpoint da API.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ValidateBody`   <a name="sam-function-requestmodel-validatebody"></a>
Especifica se o API Gateway usa o `Model` para validar o corpo da solicitação. Para obter mais informações, consulte [Ativar validação de solicitação no API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) no *Guia do desenvolvedor do API Gateway*.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `ValidateParameters`   <a name="sam-function-requestmodel-validateparameters"></a>
Especifica se o API Gateway usa o `Model` para validar parâmetros do caminho da solicitação, cadeias de caracteres de consulta e cabeçalhos. Para obter mais informações, consulte [Ativar validação de solicitação no API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) no *Guia do desenvolvedor do API Gateway*.  
*Tipo*: booliano  
*Obrigatório*: não  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

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

### Modelo de solicitação
<a name="sam-property-function-requestmodel--examples--request-model"></a>

Exemplo de modelo de solicitação

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

Configure o parâmetro de solicitação para uma API\$1Path\$1Method específica.

Uma `Required` ou a propriedade `Caching` precisa ser especificada para o parâmetro de solicitação

## Sintaxe
<a name="sam-property-function-requestparameter-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-function-requestparameter-syntax.yaml"></a>

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

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

 `Caching`   <a name="sam-function-requestparameter-caching"></a>
Adiciona uma `cacheKeyParameters` seção à OpenApi definição do API Gateway  
*Tipo*: booliano  
*Obrigatório*: Condicional  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

 `Required`   <a name="sam-function-requestparameter-required"></a>
Este campo especifica se um parâmetro é necessário  
*Tipo*: booliano  
*Obrigatório*: Condicional  
*CloudFormation compatibilidade*: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

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

### Parâmetro de solicitação
<a name="sam-property-function-requestparameter--examples--request-parameter"></a>

Exemplo de configuração de parâmetros de solicitação

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

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