

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.

# Tipos de cosas
<a name="thing-types"></a>

Los tipos de objetos le permiten almacenar información descriptiva y de configuración común a todos los objetos asociados al mismo tipo de objeto. Esto simplifica la administración de objetos en el registro. Por ejemplo, puede definir un tipo de LightBulb cosa. Todos los elementos asociados al LightBulb tipo de objeto comparten un conjunto de atributos: número de serie, fabricante y potencia. Al crear un objeto de tipo LightBulb (o al cambiar el tipo de un objeto existente LightBulb), puede especificar valores para cada uno de los atributos definidos en el tipo de LightBulb objeto. 

Aunque los tipos de objeto son opcionales, su uso facilita la detección de objetos.
+ Los objetos con un tipo de objeto pueden tener un máximo de 50 atributos.
+ Los objetos sin tipo de objeto pueden tener un máximo de tres atributos.
+ Los objetos solo se pueden asociar a un tipo de objeto.
+ El número de tipos de objetos que puede crear en su cuenta es ilimitado.

No se puede cambiar el nombre de un tipo de objeto después de que se haya creado. Puede descartar un tipo de objeto, en cualquier momento, para evitar que se le asocien nuevos objetos. También puede eliminar tipos de objeto que no tengan objetos asociados.

**Topics**
+ [Creación de un tipo de objeto](create-thing-type.md)
+ [Lista de los tipos de objeto](list-thing-types.md)
+ [Descripción de un tipo de objeto](describe-thing-type.md)
+ [Asociación de un tipo de objeto a un objeto](associate-thing-type.md)
+ [Actualización de un tipo de objeto](update-thing-type.md)
+ [Descartar un tipo de objeto](deprecate-thing-type.md)
+ [Eliminación de un tipo de objeto](delete-thing-types.md)

# Creación de un tipo de objeto
<a name="create-thing-type"></a>

Puede utilizar el comando **CreateThingType** para crear un tipo de objeto:

```
$ aws iot create-thing-type 

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

El comando **CreateThingType** devuelve una respuesta que contiene el tipo de objeto y su ARN:

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

# Lista de los tipos de objeto
<a name="list-thing-types"></a>

Puede utilizar el comando **ListThingTypes** para crear una lista de los tipos de objeto:

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

El **ListThingTypes** comando devuelve una lista de los tipos de cosas definidos en su Cuenta de AWS:

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

# Descripción de un tipo de objeto
<a name="describe-thing-type"></a>

Puede utilizar el comando **DescribeThingType** para obtener información acerca de un tipo de objeto:

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

El comando **DescribeThingType** devuelve información acerca del tipo especificado:

```
{
    "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
    }
}
```

# Asociación de un tipo de objeto a un objeto
<a name="associate-thing-type"></a>

Puede utilizar el comando **CreateThing** para especificar un tipo de objeto cuando crea un objeto:

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

Puede utilizar el comando **UpdateThing** en cualquier momento para cambiar el tipo de objeto asociado a un objeto:

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

También puede utilizar el comando **UpdateThing** para desvincular un objeto de un tipo de objeto.

# Actualización de un tipo de objeto
<a name="update-thing-type"></a>

Puede utilizar el comando **UpdateThingType** para actualizar un tipo de objeto cuando crea un objeto:

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

Puede utilizar el comando **UpdateThing** en cualquier momento para cambiar el tipo de objeto asociado a un objeto:

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

También puede utilizar el comando **UpdateThing** para desvincular un objeto de un tipo de objeto.

# Descartar un tipo de objeto
<a name="deprecate-thing-type"></a>

Los tipos de objeto son inmutables. No se pueden cambiar una vez que están definidos. Sin embargo, puede descartar un tipo de objeto para evitar que los usuarios le asocien nuevos objetos. Todos los objetos que estén asociados al tipo de objeto permanecen igual, sin cambios.

Para descartar un tipo de objeto, utilice el comando **DeprecateThingType**:

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

Puede utilizar el comando de **DescribeThingType** para ver el resultado:

```
$ 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
    }
}
```

Descartar un tipo de objeto es una operación reversible. Puede anular un descarte utilizando la marca `--undo-deprecate` con el comando de la CLI **DeprecateThingType**:

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

Puede utilizar el comando de la CLI **DescribeThingType** para ver el resultado:

```
$ 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,
    }
}
```

# Eliminación de un tipo de objeto
<a name="delete-thing-types"></a>

Puede eliminar tipos de objeto solo después de que se hayan descartado. Para eliminar un tipo de objeto, utilice el comando **DeleteThingType**:

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

**nota**  
Para poder eliminar un tipo de objeto descartado debe esperar cinco minutos.