

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# API MQTT de mise en service des appareils
<a name="fleet-provision-api"></a><a name="provision-mqtt-api"></a>

Le service Fleet Provisioning prend en charge les opérations d'API MQTT suivantes :
+ `CreateCertificateFromCsr`
+ `CreateKeysAndCertificate`
+ `RegisterThing`

Cette API prend en charge les tampons de réponse au format CBOR (Concise Binary JavaScript Object Representation) et au format JSON (Object Notation), selon le *payload-format* sujet. Pour plus de clarté, les exemples de réponse et de demande présentés dans cette section sont présentés au format JSON.


| *payload-format* | Type de données du format de réponse | 
| --- | --- | 
| CBOR | CBOR (Concise Binary Object Representation, représentation concise d'objets binaires) | 
| json | JavaScript Notation d'objets (JSON) | 

**Important**  
Avant de publier une rubrique de message de demande, abonnez-vous aux rubriques de réponse pour recevoir la réponse. Les messages utilisés par cette API utilisent le protocole de publication et d'abonnement de MQTT pour fournir une interaction de demande et réponse.   
Si vous ne vous abonnez pas aux sujets de réponse *avant* de publier une demande, il est possible que vous ne receviez pas les résultats de cette demande.  
IoT Core Fleet Provisioning renvoie les résultats de l'API MQTT de provisionnement de l'appareil via la même connexion MQTT que celle utilisée pour publier la demande d'API.

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

Crée un certificat à partir d'une demande de signature de certificat (CSR). AWS IoT fournit des certificats clients signés par l'autorité de certification Amazon Root (CA). Le nouveau certificat a un statut `PENDING_ACTIVATION`. Lorsque vous appelez `RegisterThing` pour provisionner un objet avec ce certificat, l'état du certificat devient `ACTIVE` ou `INACTIVE` comme décrit dans le modèle.

Pour plus d’informations sur la création d’un certificat client à l’aide de votre certificat d’autorité de certification et d’une demande de signature de certificat, reportez-vous à [Création d’un certificat client à l'aide de votre certificat d’autorité de certification](create-device-cert.md).

**Note**  
Pour des raisons de sécurité, le `certificateOwnershipToken` renvoyé par `CreateCertificateFromCsr` expire au bout d’une heure. `RegisterThing` doit être appelé avant l’expiration de `certificateOwnershipToken`. Si le certificat créé par `CreateCertificateFromCsr` n'a pas été activé et attaché à une politique ou à un objet au moment où le jeton expire, le certificat est supprimé. Si le jeton expire, l’appareil peut appeler `CreateCertificateFromCsr` pour générer un nouveau certificat.

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

Publiez un message avec la rubrique `$aws/certificates/create-from-csr/payload-format`.

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

#### CreateCertificateFromCsr charge utile de la demande
<a name="create-cert-csr-request-payload"></a>

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

`certificateSigningRequest`  
La CSR, au format PEM.

### CreateCertificateFromCsr réponse
<a name="create-cert-csr-response"></a>

S'abonner à `$aws/certificates/create-from-csr/payload-format/accepted`

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

#### CreateCertificateFromCsr charge utile de réponse
<a name="create-cert-csr-response-payload"></a>

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

`certificateOwnershipToken`  
Le jeton pour prouver la propriété du certificat lors de la mise en service. 

`certificateId`  
ID du certificat. Les opérations de gestion de certificats prennent uniquement en compte un ID de certificat. 

`certificatePem`  
Données du certificat, au format PEM.

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

Pour recevoir des réponses d'erreur, abonnez-vous à `$aws/certificates/create-from-csr/payload-format/rejected`.

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

#### CreateCertificateFromCsr charge utile d'erreur
<a name="create-cert-csr-error-payload"></a>

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

`statusCode`  
Le code de statut.

`errorCode`  
Code de l’erreur.

`errorMessage`  
Message d’erreur.

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

Crée de nouvelles clés et un certificat. AWS IoT fournit des certificats clients signés par l'autorité de certification Amazon Root (CA). Le nouveau certificat a un statut `PENDING_ACTIVATION`. Lorsque vous appelez `RegisterThing` pour provisionner un objet avec ce certificat, l'état du certificat devient `ACTIVE` ou `INACTIVE` comme décrit dans le modèle.

**Note**  
Pour des raisons de sécurité, le `certificateOwnershipToken` renvoyé par `CreateKeysAndCertificate` expire au bout d’une heure. `RegisterThing` doit être appelé avant l’expiration de `certificateOwnershipToken`. Si le certificat créé par `CreateKeysAndCertificate` n'a pas été activé et attaché à une politique ou à un objet au moment où le jeton expire, le certificat est supprimé. Si le jeton expire, l’appareil peut appeler `CreateKeysAndCertificate` pour générer un nouveau certificat.

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

Publiez un message sur `$aws/certificates/create/payload-format` avec une charge utile de message vide.

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

### CreateKeysAndCertificate réponse
<a name="create-keys-cert-response"></a>

S'abonner à `$aws/certificates/create/payload-format/accepted`

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

#### CreateKeysAndCertificate réponse
<a name="create-keys-cert-response-payload"></a>

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

`certificateId`  
ID du certificat.

`certificatePem`  
Données du certificat, au format PEM.

`privateKey`  
Clé privée.

`certificateOwnershipToken`  
Le jeton pour prouver la propriété du certificat lors de la mise en service.

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

Pour recevoir des réponses d'erreur, abonnez-vous à `$aws/certificates/create/payload-format/rejected`.

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

#### CreateKeysAndCertificate charge utile d'erreur
<a name="create-keys-cert-error-payload"></a>

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

`statusCode`  
Le code de statut.

`errorCode`  
Code de l’erreur.

`errorMessage`  
Message d’erreur.

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

Alloue un objet à l'aide d'un modèle prédéfini.

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

Publier un message sur `$aws/provisioning-templates/templateName/provision/payload-format`

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

`templateName`  
Nom du modèle de mise en service.

#### RegisterThing charge utile de la demande
<a name="register-thing-request-payload"></a>

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

`certificateOwnershipToken`  
Le jeton qui prouve la propriété du certificat. AWS IoT génère le jeton lorsque vous créez un certificat via MQTT.

`parameters`  
Facultatif. Paires clé-valeur du périphérique utilisées par les [hooks de pré-provisionnement](pre-provisioning-hook.md) pour évaluer la demande d'enregistrement.

### RegisterThing réponse
<a name="register-thing-response"></a>

S'abonner à `$aws/provisioning-templates/templateName/provision/payload-format/accepted`

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

`templateName`  
Nom du modèle de mise en service.

#### RegisterThing charge utile de réponse
<a name="register-thing-response-payload"></a>

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

`deviceConfiguration`  
Configuration de l'appareil définie dans le modèle.

`thingName`  
Nom de l'objet IoT créé lors de la mise en service.

### RegisterThing réponse d'erreur
<a name="register-thing-error"></a>

Pour recevoir des réponses d'erreur, abonnez-vous à `$aws/provisioning-templates/templateName/provision/payload-format/rejected`.

`payload-format`  
Format de charge utile du message en tant que `cbor` ou `json`.

`templateName`  
Nom du modèle de mise en service.

#### RegisterThing charge utile de réponse aux erreurs
<a name="register-thing-error-payload"></a>

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

`statusCode`  
Le code de statut.

`errorCode`  
Code de l’erreur.

`errorMessage`  
Message d’erreur.