

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

# AWS IoT operações de API de empregos
<a name="jobs-api"></a>

AWS IoT A API Jobs pode ser usada para qualquer uma das seguintes categorias:
+ Tarefas administrativas, como gerenciamento e controle de trabalhos. Esse é o *ambiente de gerenciamento*.
+ Dispositivos que realizam esses trabalhos. Esse é o *plano de dados*, que permite enviar e receber dados.

O gerenciamento e o controle de trabalhos usam uma API do protocolo HTTPS. Os dispositivos podem usar uma API MQTT ou de protocolo HTTPS. A API do ambiente de gerenciamento é projetada para um volume baixo de chamadas típicas durante a criação e o acompanhamento de trabalhos. Normalmente, ela abre uma conexão para uma única solicitação e, em seguida, fecha a conexão depois que a resposta é recebida. O plano de dados HTTPS e a API MQTT permitem pesquisas longas. Essas operações de API foram projetadas para grandes quantidades de tráfego que podem ser escaladas para milhões de dispositivos.

Cada API HTTPS do AWS IoT Jobs tem um comando correspondente que permite que você chame a API a partir do AWS Command Line Interface (AWS CLI). Os comandos são em letras minúsculas, com hifens entre as palavras que compõem o nome da API. Por exemplo, você pode chamar a API `CreateJob` na CLI, digitando:

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

No caso de erro durante uma operação, você recebe uma resposta de erro que contém as informações sobre o erro.

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

Contém informações sobre um erro que ocorreu durante uma operação do serviço Jobs da AWS IoT .

O exemplo a seguir mostra a sintaxe dessa operação:

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

A seguir está uma descrição desse `ErrorResponse`:

`code`  
ErrorCode pode ser configurado para:    
InvalidTopic  
A solicitação foi enviada para um tópico no namespace AWS IoT Jobs que não é mapeado para nenhuma operação de API.  
InvalidJson  
O conteúdo da solicitação não pôde ser interpretado como JSON codificado em UTF-8 válido.  
InvalidRequest  
O conteúdo da solicitação não era válido. Por exemplo, esse código é retornado quando uma solicitação `UpdateJobExecution` contém detalhes do status inválido. A mensagem contém detalhes sobre o erro.  
InvalidStateTransition  
Uma atualização tentou alterar a execução do trabalho para um estado que não é válido devido ao estado atual da execução do trabalho. Por exemplo, uma tentativa de alterar uma solicitação no estado SUCCEEDED para o estado IN\$1PROGRESS. Nesse caso, o corpo da mensagem de erro também contém o campo `executionState`.  
ResourceNotFound  
A `JobExecution` especificada pelo tópico da solicitação não existe.   
VersionMismatch  
A versão esperada especificada na solicitação não corresponde à versão da execução do trabalho no serviço AWS IoT Jobs. Nesse caso, o corpo da mensagem de erro também contém o campo `executionState`.  
InternalError  
Ocorreu um erro interno durante o processamento da solicitação.  
RequestThrottled  
A solicitação foi acelerada.  
TerminalStateReached  
Ocorre quando um comando para descrever um trabalho é executado em um trabalho que está em um estado terminal.

`message`  
A sequência de uma mensagem de erro.

`clientToken`  
Uma sequência arbitrária usada para correlacionar uma solicitação com sua resposta.

`timestamp`  
O tempo, em segundos, desde a epoch.

`executionState`  
Um 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). Esse campo é incluído apenas quando o campo `code` tem o valor `InvalidStateTransition` ou `VersionMismatch`. Nesses casos, torna-se desnecessário executar uma solicitação `DescribeJobExecution` separada para obter os dados do status da execução do trabalho atual.

**Topics**
+ [Tipos de dados e API de controle e gerenciamento de trabalhos](jobs-management-control-api.md)
+ [Tipos de dados e operações da API MQTT e HTTPS do dispositivo de trabalhos](jobs-mqtt-https-api.md)