

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 MQTT de provisionamento de dispositivos
<a name="fleet-provision-api"></a><a name="provision-mqtt-api"></a>

O serviço de Provisionamento de frotas dá suporte às seguintes operações da API MQTT:
+ `CreateCertificateFromCsr`
+ `CreateKeysAndCertificate`
+ `RegisterThing`

Essa API suporta buffers de resposta no formato Concise Binary Object Representation (CBOR) e JavaScript Object Notation (JSON), dependendo do tópico. *payload-format* Para clareza, os exemplos de resposta e de solicitação nesta seção são mostrados no formato JSON.


| *payload-format* | Tipo de dados do formato de resposta | 
| --- | --- | 
| cbor | Representação Concisa de Objetos Binários (CBOR) | 
| json | JavaScript Notação de objeto (JSON) | 

**Importante**  
Antes de publicar um tópico de mensagem de solicitação, assine os tópicos de resposta para receber a resposta. As mensagens usadas por esta API usam o protocolo MQTT de publicação/assinatura para fornecer uma interação de solicitação e resposta.   
Se você não assinar os tópicos de resposta *antes* de publicar uma solicitação, talvez não receba os resultados dessa solicitação.  
O IoT Core Fleet Provisioning exibe os resultados da API de provisionamento de dispositivos do MQTT por meio da mesma conexão do MQTT usada para publicar a solicitação da API.

## CreateCertificateFromCsr
<a name="create-cert-csr"></a>

Cria um certificado a partir de uma solicitação de assinatura de certificado (CSR). AWS IoT fornece certificados de cliente assinados pela autoridade de certificação (CA) raiz da Amazon. O novo certificado tem um status `PENDING_ACTIVATION`. Quando você chama `RegisterThing` para provisionar uma coisa com esse certificado, o status do certificado muda para `ACTIVE` ou `INACTIVE` conforme descrito no modelo.

Para obter mais informações sobre como criar um certificado de cliente usando seu certificado de Autoridade de Certificação e uma solicitação de assinatura de certificado, consulte [Criar um certificado de cliente usando o certificado CA](create-device-cert.md).

**nota**  
Por segurança, o `certificateOwnershipToken` devolvido pelo `CreateCertificateFromCsr` expira após uma hora. `RegisterThing` deve ser chamado antes que `certificateOwnershipToken` expire. Se o certificado criado por `CreateCertificateFromCsr` não tiver sido ativado nem anexado a uma política ou a um objeto quando o token expirar, o certificado será excluído. Se o token expirar, o dispositivo poderá chamar `CreateCertificateFromCsr` novamente para gerar um novo certificado.

### CreateCertificateFromCsr pedido
<a name="create-cert-csr-request"></a>

Publique uma mensagem com o tópico `$aws/certificates/create-from-csr/payload-format`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

#### CreateCertificateFromCsr carga útil de solicitação
<a name="create-cert-csr-request-payload"></a>

```
{
    "certificateSigningRequest": "string"
}
```

`certificateSigningRequest`  
A CSR, no formato PEM.

### CreateCertificateFromCsr resposta
<a name="create-cert-csr-response"></a>

Assine `$aws/certificates/create-from-csr/payload-format/accepted`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

#### CreateCertificateFromCsr carga útil de resposta
<a name="create-cert-csr-response-payload"></a>

```
{
    "certificateOwnershipToken": "string",
    "certificateId": "string",
    "certificatePem": "string"
}
```

`certificateOwnershipToken`  
O token para provar a propriedade do certificado durante o provisionamento. 

`certificateId`  
O ID do certificado. As operações de gerenciamento de certificado usam apenas um certificateId. 

`certificatePem`  
Os dados do certificado, no formato PEM.

### CreateCertificateFromCsr erro
<a name="create-cert-csr-error"></a>

Para receber respostas de erro, assine `$aws/certificates/create-from-csr/payload-format/rejected`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

#### CreateCertificateFromCsr carga útil de erro
<a name="create-cert-csr-error-payload"></a>

```
{
    "statusCode": int,
    "errorCode": "string",
    "errorMessage": "string"
}
```

`statusCode`  
O código do status.

`errorCode`  
O código do erro.

`errorMessage`  
A mensagem de erro.

## CreateKeysAndCertificate
<a name="create-keys-cert"></a>

Cria novas chaves e um certificado. AWS IoT fornece certificados de cliente assinados pela autoridade de certificação (CA) raiz da Amazon. O novo certificado tem um status `PENDING_ACTIVATION`. Quando você chama `RegisterThing` para provisionar uma coisa com esse certificado, o status do certificado muda para `ACTIVE` ou `INACTIVE` conforme descrito no modelo.

**nota**  
Por segurança, o `certificateOwnershipToken` devolvido pelo `CreateKeysAndCertificate` expira após uma hora. `RegisterThing` deve ser chamado antes que `certificateOwnershipToken` expire. Se o certificado criado por `CreateKeysAndCertificate` não tiver sido ativado nem anexado a uma política ou a um objeto quando o token expirar, o certificado será excluído. Se o token expirar, o dispositivo poderá chamar `CreateKeysAndCertificate` novamente para gerar um novo certificado.

### CreateKeysAndCertificate pedido
<a name="create-keys-cert-request"></a>

Publique uma mensagem em `$aws/certificates/create/payload-format` com uma carga de mensagem vazia.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

### CreateKeysAndCertificate resposta
<a name="create-keys-cert-response"></a>

Assine `$aws/certificates/create/payload-format/accepted`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

#### CreateKeysAndCertificate resposta
<a name="create-keys-cert-response-payload"></a>

```
{
    "certificateId": "string",
    "certificatePem": "string",
    "privateKey": "string",
    "certificateOwnershipToken": "string"
}
```

`certificateId`  
O ID do certificado.

`certificatePem`  
Os dados do certificado, no formato PEM.

`privateKey`  
A chave privada.

`certificateOwnershipToken`  
O token para provar a propriedade do certificado durante o provisionamento.

### CreateKeysAndCertificate erro
<a name="create-keys-cert-error"></a>

Para receber respostas de erro, assine `$aws/certificates/create/payload-format/rejected`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

#### CreateKeysAndCertificate carga útil de erro
<a name="create-keys-cert-error-payload"></a>

```
{
    "statusCode": int,
    "errorCode": "string",
    "errorMessage": "string"
}
```

`statusCode`  
O código do status.

`errorCode`  
O código do erro.

`errorMessage`  
A mensagem de erro.

## RegisterThing
<a name="register-thing"></a>

Provisiona uma coisa usando um modelo predefinido.

### RegisterThing pedido
<a name="register-thing-request"></a>

Publique uma mensagem em `$aws/provisioning-templates/templateName/provision/payload-format`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

`templateName`  
O nome do modelo provisionado.

#### RegisterThing carga útil de solicitação
<a name="register-thing-request-payload"></a>

```
{
    "certificateOwnershipToken": "string",
    "parameters": {
        "string": "string",
        ...
    }
}
```

`certificateOwnershipToken`  
O token para provar a propriedade do certificado. AWS IoT gera o token quando você cria um certificado por MQTT.

`parameters`  
Opcional. Pares de chave-valor do dispositivo que são usados pelos [hooks de pré-provisionamento](pre-provisioning-hook.md) para avaliar a solicitação de registro.

### RegisterThing resposta
<a name="register-thing-response"></a>

Assine `$aws/provisioning-templates/templateName/provision/payload-format/accepted`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

`templateName`  
O nome do modelo provisionado.

#### RegisterThing carga útil de resposta
<a name="register-thing-response-payload"></a>

```
{
    "deviceConfiguration": {
        "string": "string",
        ...
    },
    "thingName": "string"
}
```

`deviceConfiguration`  
A configuração do dispositivo definida no modelo.

`thingName`  
O nome da coisa da IoT criada durante o provisionamento.

### RegisterThing resposta de erro
<a name="register-thing-error"></a>

Para receber respostas de erro, assine `$aws/provisioning-templates/templateName/provision/payload-format/rejected`.

`payload-format`  
O formato da carga útil da mensagem como `cbor` ou `json`.

`templateName`  
O nome do modelo provisionado.

#### RegisterThing carga útil de resposta de erro
<a name="register-thing-error-payload"></a>

```
{
    "statusCode": int,
    "errorCode": "string",
    "errorMessage": "string"
}
```

`statusCode`  
O código do status.

`errorCode`  
O código do erro.

`errorMessage`  
A mensagem de erro.