

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 IoT operaciones de API de trabajos
<a name="jobs-api"></a>

AWS IoT La API de trabajos se puede utilizar para cualquiera de las siguientes categorías:
+ Tareas administrativas, como la gestión y el control de los trabajos. Este es el *plano de control*.
+ Los dispositivos que realizan esos trabajos. Este es el *plano de datos*, que permite enviar y recibir datos.

La administración y control de los trabajos utilizan una API de protocolo HTTPS. Los dispositivos pueden usar una API de protocolo HTTPS o MQTT. La API del plano de control se ha diseñado para un volumen reducido de llamadas normalmente cuando se crean trabajos y se hace un seguimiento de ellos. Normalmente, abre una conexión para una solicitud única y, a continuación, cierra la conexión después de que se reciba la respuesta. Las API HTTPS y MQTT del plano de datos permiten un sondeo prolongado. Estas operaciones de API se han diseñado para cantidades grandes de tráfico que pueden escalar millones de dispositivos.

Cada API HTTPS de AWS IoT Jobs tiene un comando correspondiente que te permite llamar a la API desde AWS Command Line Interface (AWS CLI). Los comandos están en minúsculas, con guiones entre las palabras que conforman el nombre de la API. Por ejemplo, puede invocar la API `CreateJob` en la CLI escribiendo lo siguiente:

```
aws iot create-job ...
```

Si ocurre un error durante una operación, recibirá una respuesta de error que contiene información acerca de este.

## ErrorResponse
<a name="jobs-mqtt-error-response"></a>

Contiene información acerca de un error que se produjo durante una operación del servicio Jobs de AWS IoT .

En el siguiente ejemplo se muestra la sintaxis de esta operación:

```
{
    "code": "ErrorCode",
    "message": "string",
    "clientToken": "string",
    "timestamp": timestamp,
    "executionState": JobExecutionState
}
```

A continuación se muestra una descripción de esta `ErrorResponse`:

`code`  
ErrorCode se puede configurar de la siguiente manera:    
InvalidTopic  
La solicitud se envió a un tema del espacio de nombres de AWS IoT Jobs que no se corresponde con ninguna operación de la API.  
InvalidJson  
El contenido de la solicitud podría no interpretarse como un formato JSON con codificación UTF-8 válida.  
InvalidRequest  
El contenido de la solicitud no es válido. Por ejemplo, se devuelve este código cuando una solicitud `UpdateJobExecution` contiene detalles de estado no válido. El mensaje contiene detalles acerca del error.  
InvalidStateTransition  
Una actualización intentó cambiar la ejecución del trabajo a un estado que no es válido debido al estado actual de dicha ejecución. Por ejemplo, un intento de cambiar una solicitud en el estado SUCCEEDED al estado IN\$1PROGRESS. En este caso, el cuerpo del mensaje de error también contiene el campo `executionState`.  
ResourceNotFound  
La `JobExecution` especificada por el tema de la solicitud no existe.   
VersionMismatch  
La versión esperada especificada en la solicitud no coincide con la versión de la ejecución del trabajo en el servicio AWS IoT Jobs. En este caso, el cuerpo del mensaje de error también contiene el campo `executionState`.  
InternalError  
Se ha producido un error interno al procesar la solicitud.  
RequestThrottled  
La solicitud se ha limitado.  
TerminalStateReached  
Se produce cuando un comando para describir un trabajo se realiza en un trabajo que está en un estado terminal.

`message`  
Una cadena de mensajes de error.

`clientToken`  
Una cadena arbitraria utilizada para correlacionar una solicitud con su respuesta.

`timestamp`  
El tiempo, en segundos, desde la fecha de inicio.

`executionState`  
Un objeto [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html). Este campo se incluye solo cuando el campo `code` tiene el valor `InvalidStateTransition` o `VersionMismatch`. Esto hace que no sea necesario en esos casos realizar una solicitud `DescribeJobExecution` independiente para obtener los datos de estado de ejecución de trabajo actuales.

**Topics**
+ [API de administración y control de trabajos y tipos de datos](jobs-management-control-api.md)
+ [Operaciones y tipos de datos de las API MQTT y HTTPS de dispositivos de Jobs](jobs-mqtt-https-api.md)