

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á.

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

Os tipos de objeto permitem que você armazene descrições e informações de configuração que sejam comuns a todas as objetos associadas com o mesmo tipo. Isso simplifica o gerenciamento de objetos no registro. Por exemplo, você pode definir um tipo de LightBulb coisa. Todas as coisas associadas ao tipo de LightBulb coisa compartilham um conjunto de atributos: número de série, fabricante e potência. Quando você cria uma coisa do tipo LightBulb (ou altera o tipo de uma coisa existente para LightBulb), você pode especificar valores para cada um dos atributos definidos no tipo da LightBulb coisa. 

Embora os tipos de objeto sejam opcionais, seu uso facilita a descobrir objetos.
+ As objetos com um tipo de objeto podem ter até 50 atributos.
+ As objetos sem um tipo de objeto podem ter até três atributos.
+ Umo objeto só pode ser associada a um tipo de objeto.
+ Não há limite para o número de tipos de objeto que você pode criar em sua conta.

Não é possível alterar um nome do tipo de objeto após sua criação. Você pode reprovar um tipo de objeto a qualquer momento para impedir que novas objetos sejam associadas a ele. Você também pode excluir tipos de objeto que não tenham objetos associadas a eles.

**Topics**
+ [Criar um tipo de objeto](create-thing-type.md)
+ [Listar tipos de objeto](list-thing-types.md)
+ [Descrever um tipo de objeto](describe-thing-type.md)
+ [Associar um tipo de objeto a um objeto](associate-thing-type.md)
+ [Atualizar um tipo de coisa](update-thing-type.md)
+ [Reprovar um tipo de objeto](deprecate-thing-type.md)
+ [Excluir um tipo de objeto](delete-thing-types.md)

# Criar um tipo de objeto
<a name="create-thing-type"></a>

Você pode usar o comando **CreateThingType** para criar um tipo de objeto:

```
$ aws iot create-thing-type 

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

O comando **CreateThingType** retorna uma resposta que contém o tipo de objeto e seu ARN:

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

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

Você pode usar o comando **ListThingTypes** para listar tipos de objeto:

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

O **ListThingTypes** comando retorna uma lista dos tipos de coisas definidos em seu Conta da AWS:

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

# Descrever um tipo de objeto
<a name="describe-thing-type"></a>

Você pode usar o comando **DescribeThingType** para obter informações sobre um tipo de objeto:

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

O comando **DescribeThingType** retorna informações sobre o 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
    }
}
```

# Associar um tipo de objeto a um objeto
<a name="associate-thing-type"></a>

Você pode usar o comando **CreateThing** para especificar um tipo de objeto ao criar um objeto:

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

Você pode usar o comando **UpdateThing** a qualquer momento para alterar o tipo de objeto associado a um objeto:

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

Você também pode usar o comando **UpdateThing** para desassociar um objeto de um tipo de objeto.

# Atualizar um tipo de coisa
<a name="update-thing-type"></a>

Você pode usar o comando **UpdateThingType** para atualizar um tipo de coisa ao criá-la:

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

Você pode usar o comando **UpdateThing** a qualquer momento para alterar o tipo de objeto associado a um objeto:

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

Você também pode usar o comando **UpdateThing** para desassociar um objeto de um tipo de objeto.

# Reprovar um tipo de objeto
<a name="deprecate-thing-type"></a>

Os tipos de objeto são imutáveis. Eles não podem ser alterados depois que são definidos. No entanto, você pode reprovar um tipo de objeto para impedir que os usuários associem novas objetos a ele. Todas as objetos existentes associadas ao tipo de objeto são inalteradas.

Para tornar um tipo de objeto obsoleto, use o comando **DeprecateThingType**:

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

Você pode usar o comando **DescribeThingType** para exibir o 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
    }
}
```

Reprovar um tipo de objeto é uma operação reversível. Você pode desfazer uma reprovação usando o sinalizador `--undo-deprecate` com o comando CLI **DeprecateThingType**:

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

Você pode usar o comando CLI **DescribeThingType** para exibir o 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,
    }
}
```

# Excluir um tipo de objeto
<a name="delete-thing-types"></a>

É possível excluir tipos de objeto somente depois que eles forem preteridos. Para excluir um tipo de objeto, use o comando **DeleteThingType**:

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

**nota**  
Antes de excluir um tipo de objeto, espere cinco minutos após descontinuá-lo.