

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

# DeleteItem
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-deleteitem"></a>

O documento de mapeamento de `DeleteItem` solicitações permite que você peça ao AWS AppSync resolvedor do DynamoDB que faça uma `DeleteItem` solicitação ao DynamoDB e especifique o seguinte:
+ A chave do item no DynamoDB
+ Condições para que a operação seja bem-sucedida

O documento de mapeamento `DeleteItem` possui a seguinte estrutura:

```
{
    "version" : "2018-05-29",
    "operation" : "DeleteItem",
    "customPartitionKey" : "foo",
    "populateIndexFields" : boolean value,
    "key": {
        "foo" : ... typed value,
        "bar" : ... typed value
    },
    "condition" : {
        ...
    },
    "_version" : 1
}
```

Os campos são definidos da seguinte forma:

## DeleteItem campos
<a name="deleteitem-list"></a>

### DeleteItem lista de campos
<a name="deleteitem-list-col"></a>

** `version` **  
As versões de definição de modelo `2017-02-28` e `2018-05-29` são compatíveis atualmente. Este valor é obrigatório.

** `operation` **  
A operação do DynamoDB para execução. Para executar a operação `DeleteItem` do DynamoDB, ela deve ser definida como `DeleteItem`. Este valor é obrigatório.

** `key` **  
A chave do item no DynamoDB. Os itens do DynamoDB podem ter uma única chave de hash ou uma chave de hash e uma chave de classificação, dependendo da estrutura da tabela. Para obter mais informações sobre como especificar um "valor digitado", consulte [Sistema de tipo (mapeamento da solicitação)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md). Este valor é obrigatório.

** `condition` **  
Uma condição para determinar se a solicitação deve ser bem-sucedida ou não, com base no estado do objeto que já está no DynamoDB. Se nenhuma condição for especificada, a solicitação `DeleteItem` excluirá um item independentemente do estado atual. Para obter mais informações sobre as condições, consulte [Expressões de condição](aws-appsync-resolver-mapping-template-reference-dynamodb-condition-expressions.md). Este valor é opcional.

** `_version` **  
Um valor numérico que representa a versão conhecida mais recente de um item. Este valor é opcional. Esse campo é usado para *Detecção de conflitos* e só é compatível com fontes de dados versionadas.

**`customPartitionKey`**  
Quando ativado, esse valor de string modifica o formato dos `ds_pk` registros `ds_sk` e usados pela tabela de sincronização delta quando o controle de versão é ativado (para obter mais informações, consulte [Detecção e sincronização de conflitos no Guia](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) do *AWS AppSync desenvolvedor*). Quando ativado, o processamento da entrada `populateIndexFields` também é ativado. Esse campo é opcional.

**`populateIndexFields`**  
Um valor booleano que, quando ativado **com `customPartitionKey`**, cria novas entradas para cada registro na tabela de sincronização delta, especificamente nas colunas `gsi_ds_pk` e `gsi_ds_sk`. Para obter mais informações, consulte [Detecção e sincronização de conflitos](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) no *Guia do desenvolvedor do AWS AppSync *. Esse campo é opcional. 

O item excluído do DynamoDB é automaticamente convertido nos tipos primitivos GraphQL e JSON e está disponível no contexto de mapeamento (`$context.result`).

Para obter mais informações sobre a conversão de tipo do DynamoDB, consulte [Sistema de tipo (mapeamento da resposta)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses.md).

Para obter mais informações sobre os modelos de mapeamento da resposta, consulte [Visão geral do modelo de mapeamento do resolvedor](resolver-mapping-template-reference-overview.md#aws-appsync-resolver-mapping-template-reference-overview).

## Exemplo 1
<a name="id6"></a>

Veja a seguir um modelo de mapeamento para uma mutação do GraphQL `deleteItem(id: ID!)`. Se existir um item com esse ID, ele será excluído.

```
{
    "version" : "2017-02-28",
    "operation" : "DeleteItem",
    "key" : {
        "id" : $util.dynamodb.toDynamoDBJson($ctx.args.id)
    }
}
```

## Exemplo 2
<a name="id7"></a>

Veja a seguir um modelo de mapeamento para uma mutação do GraphQL `deleteItem(id: ID!, expectedVersion: Int!)`. Se existir um item com esse ID, ele será excluído, mas apenas se o campo `version` estiver definido como `expectedVersion`:

```
{
    "version" : "2017-02-28",
    "operation" : "DeleteItem",
    "key" : {
        "id" : $util.dynamodb.toDynamoDBJson($ctx.args.id)
    },
    "condition" : {
        "expression"       : "attribute_not_exists(id) OR version = :expectedVersion",
        "expressionValues" : {
            ":expectedVersion" : $util.dynamodb.toDynamoDBJson($expectedVersion)
        }
    }
}
```

Para obter mais informações sobre a API `DeleteItem` do DynamoDB, consulte a [Documentação da API do DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html).