

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.

# Types d'objets
<a name="thing-types"></a>

Les types d'objets permettent de stocker des informations de configuration et de description communes à tous les objets qui associés au même type d'objet. Cela simplifie la gestion des objets dans le registre. Par exemple, vous pouvez définir un type d' LightBulb objet. Tous les objets associés au type d' LightBulb objet partagent un ensemble d'attributs : numéro de série, fabricant et puissance en watts. Lorsque vous créez un objet de type LightBulb (ou que vous modifiez le type d'un objet existant en LightBulb), vous pouvez spécifier des valeurs pour chacun des attributs définis dans le type d' LightBulb objet. 

Bien que les types d'objet soient facultatifs, leur utilisation facilite la découverte des objets.
+ Les objets avec un type d'objet peuvent posséder jusqu'à 50 attributs.
+ Les objets sans type d'objet peuvent posséder jusqu'à trois attributs.
+ Un objet ne peut être associé qu'à un seul type d'objet.
+ Il n'y a aucune limite au nombre de types d'objets que vous pouvez créer dans votre compte.

Vous ne pouvez pas modifier un nom de type d'objet après sa création. Vous pouvez rendre obsolète un type d'objet à tout moment pour empêcher de nouveaux objets d'y être associés. Vous pouvez aussi supprimer les types d'objets qui n'ont aucun objet associé.

**Topics**
+ [Créer un type d'objet](create-thing-type.md)
+ [Liste des types d'objets](list-thing-types.md)
+ [Décrire un type d'objet](describe-thing-type.md)
+ [Associer un type d'objet à un objet](associate-thing-type.md)
+ [Mettre à jour un type d'objet](update-thing-type.md)
+ [Rendre obsolète un type d'objet](deprecate-thing-type.md)
+ [Supprimer un type d'objet](delete-thing-types.md)

# Créer un type d'objet
<a name="create-thing-type"></a>

Vous pouvez utiliser la commande **CreateThingType** pour créer un type d'objet :

```
$ aws iot create-thing-type 

                --thing-type-name "LightBulb" --thing-type-properties "thingTypeDescription=light bulb type, searchableAttributes=wattage,model"
```

La commande **CreateThingType** renvoie une réponse qui contient le type d'objet et son ARN :

```
{
    "thingTypeName": "LightBulb",
    "thingTypeId": "df9c2d8c-894d-46a9-8192-9068d01b2886",
    "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb"
}
```

# Liste des types d'objets
<a name="list-thing-types"></a>

Vous pouvez utiliser la commande **ListThingTypes** pour répertorier les types d'objets :

```
$ aws iot list-thing-types
```

La **ListThingTypes** commande renvoie une liste des types d'objets définis dans votre Compte AWS :

```
{
    "thingTypes": [
        {
            "thingTypeName": "LightBulb",
            "thingTypeProperties": {
                "searchableAttributes": [
                    "wattage",
                    "model"
                ],
                "thingTypeDescription": "light bulb type"
            },
            "thingTypeMetadata": {
                "deprecated": false,
                "creationDate": 1468423800950
            }
        }
    ]
}
```

# Décrire un type d'objet
<a name="describe-thing-type"></a>

Vous pouvez utiliser la commande **DescribeThingType** pour obtenir des informations sur un type d'objet :

```
$ aws iot describe-thing-type --thing-type-name "LightBulb"
```

La commande **DescribeThingType** renvoie des informations sur le type spécifié :

```
{
    "thingTypeProperties": {
        "searchableAttributes": [
            "model", 
            "wattage"
        ], 
        "thingTypeDescription": "light bulb type"
    }, 
    "thingTypeId": "df9c2d8c-894d-46a9-8192-9068d01b2886", 
    "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb", 
    "thingTypeName": "LightBulb", 
    "thingTypeMetadata": {
        "deprecated": false, 
        "creationDate": 1544466338.399
    }
}
```

# Associer un type d'objet à un objet
<a name="associate-thing-type"></a>

Vous pouvez utiliser la commande **CreateThing** pour spécifier un type d'objet lorsque vous créez un objet :

```
$ aws iot create-thing --thing-name "MyLightBulb" --thing-type-name "LightBulb" --attribute-payload "{\"attributes\": {\"wattage\":\"75\", \"model\":\"123\"}}"
```

Vous pouvez utiliser la commande **UpdateThing** à tout moment pour modifier le type d'objet associé à un objet :

```
$ aws iot update-thing --thing-name "MyLightBulb"
                --thing-type-name "LightBulb" --attribute-payload  "{\"attributes\": {\"wattage\":\"75\", \"model\":\"123\"}}"
```

Vous pouvez également utiliser la commande **UpdateThing** pour dissocier un objet d'un type d'objet.

# Mettre à jour un type d'objet
<a name="update-thing-type"></a>

Vous pouvez utiliser la **UpdateThingType** commande pour mettre à jour un type d'objet lorsque vous créez un objet :

```
$ aws iot create-thing --thing-name "MyLightBulb" --thing-type-name "LightBulb" --attribute-payload "{\"attributes\": {\"wattage\":\"75\", \"model\":\"123\"}}"
```

Vous pouvez utiliser la commande **UpdateThing** à tout moment pour modifier le type d'objet associé à un objet :

```
$ aws iot update-thing --thing-name "MyLightBulb"
                --thing-type-name "LightBulb" --attribute-payload  "{\"attributes\": {\"wattage\":\"75\", \"model\":\"123\"}}"
```

Vous pouvez également utiliser la commande **UpdateThing** pour dissocier un objet d'un type d'objet.

# Rendre obsolète un type d'objet
<a name="deprecate-thing-type"></a>

Les types d'objets sont immuables. Il est impossible de les modifier une fois qu'ils sont définis. Vous pouvez, toutefois, rendre obsolète un type d'objet pour empêcher les utilisateurs de lui associer de nouveaux objets. Tous les objets existants associés au type d'objet restent inchangés.

Pour rendre obsolète un type d'objet, utilisez la commande **DeprecateThingType** :

```
$ aws iot deprecate-thing-type --thing-type-name "myThingType"
```

Vous pouvez voir le résultat à l'aide de la commande **DescribeThingType** :

```
$ aws iot describe-thing-type --thing-type-name "StopLight":
```

```
{
    "thingTypeName": "StopLight",
    "thingTypeProperties": {
        "searchableAttributes": [
            "wattage",
            "numOfLights",
            "model"
        ],
        "thingTypeDescription": "traffic light type",
    },
    "thingTypeMetadata": {
        "deprecated": true,
        "creationDate": 1468425854308,
        "deprecationDate": 1468446026349
    }
}
```

Rendre obsolète un type d'objet est une opération réversible. Vous pouvez annuler une obsolescence en utilisant l'indicateur `--undo-deprecate` avec la commande CLI **DeprecateThingType** :

```
$ aws iot deprecate-thing-type --thing-type-name "myThingType" --undo-deprecate
```

Vous pouvez voir le résultat à l'aide de la commande CLI **DescribeThingType** :

```
$ aws iot describe-thing-type --thing-type-name "StopLight":
```

```
{
    "thingTypeName": "StopLight",
    "thingTypeArn": "arn:aws:iot:us-east-1:123456789012:thingtype/StopLight",
    "thingTypeId": "12345678abcdefgh12345678ijklmnop12345678"
    "thingTypeProperties": {
        "searchableAttributes": [
            "wattage",
            "numOfLights",
            "model"
        ],
        "thingTypeDescription": "traffic light type"
    },
    "thingTypeMetadata": {
        "deprecated": false,
        "creationDate": 1468425854308,
    }
}
```

# Supprimer un type d'objet
<a name="delete-thing-types"></a>

Vous pouvez supprimer des types d'objet uniquement une fois qu'ils sont obsolètes. Pour supprimer un type d'objet, utilisez la commande **DeleteThingType** :

```
$ aws iot delete-thing-type --thing-type-name "StopLight"
```

**Note**  
Avant de pouvoir supprimer un type d'objet, attendez cinq minutes après l'avoir rendu obsolète.