

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.

# API de MQTT de aprovisionamiento de dispositivos
<a name="fleet-provision-api"></a><a name="provision-mqtt-api"></a>

El servicio de aprovisionamiento de flotas admite las siguientes operaciones de API de MQTT:
+ `CreateCertificateFromCsr`
+ `CreateKeysAndCertificate`
+ `RegisterThing`

Esta API admite búferes de respuesta en formato de representación concisa de objetos binarios (CBOR) y notación de JavaScript objetos (JSON), según el *payload-format* tema. Para una mayor claridad, los ejemplos de respuesta y solicitud de esta sección se muestran en formato JSON.


| *payload-format* | Tipo de datos de formato de respuesta | 
| --- | --- | 
| cbor | Concise Binary Object Representation (Representación concisa de objetos binarios, CBOR) | 
| json | JavaScript Notación de objetos (JSON) | 

**importante**  
Antes de publicar un tema de mensaje de solicitud, suscríbase a los temas de respuesta para recibir la respuesta. Los mensajes utilizados por esta API utilizan el protocolo de publicación/suscripción de MQTT para proporcionar una interacción de solicitud y respuesta.   
Si no se suscribe a los temas de respuesta *antes* de publicar una solicitud, es posible que no reciba los resultados de dicha solicitud.  
Aprovisionamiento de flotas de IoT Core devuelve los resultados de la API de MQTT de aprovisionamiento del dispositivo a través de la misma conexión con MQTT utilizada para publicar la solicitud de API.

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

Crea un certificado a partir de una solicitud de firma de certificado (CSR). AWS IoT proporciona certificados de cliente firmados por la autoridad de certificación (CA) raíz de Amazon. El nuevo certificado tiene un estado `PENDING_ACTIVATION`. Cuando llama a `RegisterThing` para aprovisionar un objeto con este certificado, el estado del certificado cambia a la plantilla `ACTIVE` o `INACTIVE` tal como se describe en ella.

Para obtener más información sobre cómo crear un certificado de cliente con el certificado de la autoridad de certificación y una solicitud de firma de certificado, consulte [Crear un certificado de cliente mediante el certificado de entidad de certificación](create-device-cert.md).

**nota**  
Por motivos de seguridad, el `certificateOwnershipToken` devuelto por `CreateCertificateFromCsr` caduca al cabo de una hora. Se debe llamar a `RegisterThing` antes de que venza `certificateOwnershipToken`. Si el certificado creado por `CreateCertificateFromCsr` no se ha activado y no se ha asociado a una política o a un objeto cuando caduque el token, se elimina el certificado. Si el token caduca, el dispositivo puede realizar una llamada `CreateCertificateFromCsr` para generar un certificado nuevo.

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

Publicar un mensaje con el tema `$aws/certificates/create-from-csr/payload-format`.

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

#### CreateCertificateFromCsr solicitar carga útil
<a name="create-cert-csr-request-payload"></a>

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

`certificateSigningRequest`  
La CSR, en formato PEM.

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

Suscripción a `$aws/certificates/create-from-csr/payload-format/accepted`

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

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

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

`certificateOwnershipToken`  
El token para comprobar la propiedad del certificado durante el aprovisionamiento. 

`certificateId`  
El ID del certificado. Las operaciones de administración de certificados solo adoptan un certificateId. 

`certificatePem`  
Los datos del certificado, en formato PEM.

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

Para recibir respuestas de error, suscríbase a `$aws/certificates/create-from-csr/payload-format/rejected`.

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

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

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

`statusCode`  
El código del estado.

`errorCode`  
Código de error.

`errorMessage`  
Mensaje de error.

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

Crea nuevas claves y un certificado. AWS IoT proporciona certificados de cliente firmados por la autoridad de certificación (CA) raíz de Amazon. El nuevo certificado tiene un estado `PENDING_ACTIVATION`. Cuando llama a `RegisterThing` para aprovisionar un objeto con este certificado, el estado del certificado cambia a la plantilla `ACTIVE` o `INACTIVE` tal como se describe en ella.

**nota**  
Por motivos de seguridad, el `certificateOwnershipToken` devuelto por `CreateKeysAndCertificate` caduca al cabo de una hora. Se debe llamar a `RegisterThing` antes de que venza `certificateOwnershipToken`. Si el certificado creado por `CreateKeysAndCertificate` no se ha activado y no se ha asociado a una política o a un objeto cuando caduque el token, se elimina el certificado. Si el token caduca, el dispositivo puede realizar una llamada `CreateKeysAndCertificate` para generar un certificado nuevo.

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

Publicar un mensaje en `$aws/certificates/create/payload-format` con una carga de mensajes vacía.

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

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

Suscripción a `$aws/certificates/create/payload-format/accepted`

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

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

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

`certificateId`  
El ID del certificado.

`certificatePem`  
Los datos del certificado, en formato PEM.

`privateKey`  
La clave privada.

`certificateOwnershipToken`  
El token para comprobar la propiedad del certificado durante el aprovisionamiento.

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

Para recibir respuestas de error, suscríbase a `$aws/certificates/create/payload-format/rejected`.

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

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

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

`statusCode`  
El código del estado.

`errorCode`  
Código de error.

`errorMessage`  
Mensaje de error.

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

Aprovisiona un objeto mediante una plantilla predefinida.

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

Publica un mensaje en `$aws/provisioning-templates/templateName/provision/payload-format`.

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

`templateName`  
El nombre de la plantilla de aprovisionamiento.

#### RegisterThing solicitar carga útil
<a name="register-thing-request-payload"></a>

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

`certificateOwnershipToken`  
Es el token que demuestra quién es propietario del certificado. AWS IoT genera el token al crear un certificado a través de MQTT.

`parameters`  
Opcional. Pares clave-valor del dispositivo que utilizan los [enlaces de preaprovisionamiento](pre-provisioning-hook.md) para evaluar la solicitud de registro.

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

Suscripción a `$aws/provisioning-templates/templateName/provision/payload-format/accepted`

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

`templateName`  
El nombre de la plantilla de aprovisionamiento.

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

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

`deviceConfiguration`  
La configuración del dispositivo definida en la plantilla.

`thingName`  
El nombre de la cosa de IoT creado durante el aprovisionamiento.

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

Para recibir respuestas de error, suscríbase a `$aws/provisioning-templates/templateName/provision/payload-format/rejected`.

`payload-format`  
El formato de carga del mensaje como `cbor` o `json`.

`templateName`  
El nombre de la plantilla de aprovisionamiento.

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

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

`statusCode`  
El código del estado.

`errorCode`  
Código de error.

`errorMessage`  
Mensaje de error.