

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.

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

El documento de mapeo de `DeleteItem` solicitudes le permite indicar al solucionador de AWS AppSync DynamoDB que realice `DeleteItem` una solicitud a DynamoDB y le permite especificar lo siguiente:
+ La clave del elemento de DynamoDB
+ Condiciones para que la operación se lleve a cabo correctamente.

El documento de mapeo de `DeleteItem` tiene la siguiente estructura:

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

Los campos se definen de la siguiente manera:

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

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

** `version` **  
La versión de la definición de plantilla `2017-02-28` y `2018-05-29` se admiten actualmente. Este valor es obligatorio.

** `operation` **  
La operación de DynamoDB que se ha de realizar. Para ejecutar la operación de DynamoDB `DeleteItem`, este valor se debe establecer en `DeleteItem`. Este valor es obligatorio.

** `key` **  
La clave del elemento de DynamoDB. Los elementos de DynamoDB pueden tener solo una clave hash o una clave hash y una clave de clasificación, dependiendo de la estructura de la tabla. Para obtener más información sobre cómo especificar un “valor con tipo”, consulte [Sistema de tipos (mapeo de solicitud)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md). Este valor es obligatorio.

** `condition` **  
Una condición para determinar si la solicitud debe realizarse correctamente o no, en función del estado del objeto ya incluido en DynamoDB. Si no se especifica ninguna condición, la solicitud `DeleteItem` elimina un elemento independientemente de su estado actual. Para obtener más información sobre las condiciones, consulte [Expresiones de condición](aws-appsync-resolver-mapping-template-reference-dynamodb-condition-expressions.md). Este valor es opcional.

** `_version` **  
Valor numérico que representa la última versión conocida de un elemento. Este valor es opcional. Este campo se utiliza para *detectar conflictos* y solo se admite en orígenes de datos con control de versiones.

**`customPartitionKey`**  
Cuando está activado, este valor de cadena modifica el formato `ds_sk` y los `ds_pk` registros que utiliza la tabla de sincronización delta cuando se ha activado el control de versiones (para obtener más información, consulte [Detección de conflictos y sincronización](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) en la *Guía para AWS AppSync desarrolladores*). Cuando se habilita, también lo hace el procesamiento de la entrada `populateIndexFields`. Este campo es opcional.

**`populateIndexFields`**  
Valor booleano que, cuando se habilita **junto con la `customPartitionKey`**, crea nuevas entradas para cada registro de la tabla Delta Sync, específicamente en las columnas `gsi_ds_pk` y `gsi_ds_sk`. Para obtener más información, consulte el artículo sobre [detección de conflictos y sincronización](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) en la *Guía para desarrolladores de AWS AppSync *. Este campo es opcional. 

El elemento que se elimina de DynamoDB se convierte automáticamente a los tipos primitivos de GraphQL y JSON, y está disponible en el contexto de mapeo (`$context.result`).

Para obtener más información sobre la conversión de tipos de DynamoDB, consulte la sección [Sistema de tipos (mapeo de respuestas)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses.md).

Para obtener más información acerca de las plantillas de mapeo de respuesta, consulte [Información general sobre las plantillas de mapeo de solucionador](resolver-mapping-template-reference-overview.md#aws-appsync-resolver-mapping-template-reference-overview).

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

El siguiente ejemplo muestra una plantilla de mapeo de una mutación de GraphQL `deleteItem(id: ID!)`. Si ya existe un elemento con este ID, se eliminará.

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

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

El siguiente ejemplo muestra una plantilla de mapeo de una mutación de GraphQL `deleteItem(id: ID!, expectedVersion: Int!)`. Si ya existe un elemento con este ID, se eliminará, pero solo si su campo `version` está establecido en `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 obtener más información sobre la API `DeleteItem` de DynamoDB, consulte la [documentación de la API de DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html).