

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

# Atualize modelos de ativos, modelos de componentes e interfaces
<a name="update-asset-models"></a>

Use o AWS IoT SiteWise console ou a API para atualizar um modelo de ativo, modelo de componente ou interface.

Não é possível alterar o tipo de uma propriedade existente ou o respectivo tipo de dado, ou ainda a janela de uma métrica existente. Você também não pode alterar o tipo do modelo de modelo de ativo para modelo de componente ou interface, ou vice-versa.

**Importante**  
Se você remover uma propriedade de um modelo de ativo ou modelo de componente, AWS IoT SiteWise excluirá todos os dados anteriores dessa propriedade. Para modelos de componente, isso afeta **todos os modelos de ativo que usam esse modelo de componente**, por isso tome muito cuidado e entenda até que ponto a alteração pode ser aplicada.
Se você remover uma definição de hierarquia de um modelo de ativo, AWS IoT SiteWise desassociará todos os ativos dessa hierarquia.

Quando você atualiza um modelo de ativo, cada ativo baseado nesse modelo reflete todas as alterações feitas no modelo subjacente. Até que as alterações se propaguem, cada ativo estará definido com o estado `UPDATING`. É necessário aguardar até que esses ativos retornem ao estado `ACTIVE` antes de interagir com eles. Durante esse período, o status do modelo de ativo atualizado será `PROPAGATING`.

Quando você atualiza um modelo de componente, todo modelo de ativo que incorpora esse modelo de componente reflete as alterações. Até que as alterações do modelo de componente se propaguem, cada modelo de ativo afetado tem o estado `UPDATING`, seguido de `PROPAGATING` à medida que ele atualiza os ativos associados, conforme descrito no parágrafo anterior. Aguarde até que esses modelos de ativo retornem ao estado `ACTIVE` para interagir com eles. Durante esse período, o status do modelo de componente atualizado será `PROPAGATING`.

Para obter mais informações, consulte [Estados de ativos e modelos](asset-and-model-states.md).

**Topics**
+ [Atualização de um modelo de ativo, modelo de componente ou interface (console)](#update-asset-model-console)
+ [Atualizar um modelo de ativo, modelo de componente ou interface (AWS CLI)](#update-asset-model-cli)

## Atualização de um modelo de ativo, modelo de componente ou interface (console)
<a name="update-asset-model-console"></a>

Você pode usar o AWS IoT SiteWise console para atualizar um modelo de ativo, modelo de componente ou interface.

**Para atualizar um modelo de ativo, modelo de componente ou interface (console)**

1. <a name="sitewise-open-console"></a>Navegue até o [console do AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. <a name="sitewise-choose-models"></a>No painel de navegação, selecione **Modelos**.

1. Escolha o modelo do ativo, o modelo do componente ou a interface a ser atualizada.

1. Escolha **Editar**.

1. Na página **Editar modelo** siga um destes procedimentos:
   + Em **Detalhes do modelo**, altere o **Nome** do modelo.
   + Altere qualquer uma das **Definições de atributos**. Não é possível alterar o **Tipo de dados** dos atributos existentes. Para obter mais informações, consulte [Definir dados estáticos (atributos)](attributes.md).
   + Altere qualquer uma das **Definições de medição**. Não é possível alterar o **Tipo de dados** das medições existentes. Para obter mais informações, consulte [Definir fluxos de dados de equipamentos (medições)](measurements.md).
   + Altere qualquer uma das **Definições de transformação**. Para obter mais informações, consulte [Transformar dados (transformações)](transforms.md).
   + Altere qualquer uma das **Definições de métrica**. Não é possível alterar o **Intervalo de tempo** das métricas existentes. Para obter mais informações, consulte [Agregar dados de propriedades e outros ativos (métricas)](metrics.md).
   + (Somente modelos de ativo) Altere qualquer uma das **Definições da hierarquia**. Não é possível alterar o **Modelo de hierarquia** das hierarquias existentes. Para obter mais informações, consulte [Definir hierarquias de modelos de ativo](define-asset-hierarchies.md).

1. Escolha **Salvar**.

**nota**  
 As solicitações de atualização feitas no console serão rejeitadas se outro usuário atualizar com êxito o modelo de ativo desde a última vez em que você abriu a página **Editar modelo**. O console solicita que o usuário clica em **Atualizar** na página **Editar modelo** para buscar o modelo atualizado. Você deve fazer as atualizações novamente e tentar salvar mais uma vez. Consulte [Bloqueio positivo para gravações do modelo de ativo](opt-locking-for-model.md) para obter mais detalhes. 

## Atualizar um modelo de ativo, modelo de componente ou interface (AWS CLI)
<a name="update-asset-model-cli"></a>

Use o AWS Command Line Interface (AWS CLI) para atualizar um modelo de ativo, modelo de componente ou interface.

Use a [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)API para atualizar o nome, a descrição e as propriedades de um modelo de ativo, modelo de componente ou interface. Somente para modelos de ativo, você pode atualizar as hierarquias. Para interfaces, você pode atualizar propriedades e hierarquias. Especifique os seguintes parâmetros:
+ `assetModelId` – O ID do ativo. Esse é o ID real no formato UUID, ou `externalId:myExternalId` se ele tiver um. Consulte mais informações em [Objetos de referência com objetos externos IDs](object-ids.md#external-id-references) no *Guia de Usuário AWS IoT SiteWise *.

Especifique o modelo atualizado na carga útil. Para saber mais sobre o formato esperado de um modelo de ativo ou de um modelo de componente, consulte [Crie modelos de ativos em AWS IoT SiteWise](create-asset-models.md). 

**Atenção**  
A [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)API substitui o modelo existente pelo modelo que você fornece na carga. Para evitar a exclusão das propriedades ou hierarquias do seu modelo, você deve incluir suas definições IDs e suas na carga útil atualizada do modelo. Para saber como consultar a estrutura existente do seu modelo, consulte a [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html)operação.

**nota**  
O procedimento a seguir só pode atualizar modelos compostos do tipo `AWS/ALARM`. Se você quiser atualizar modelos `CUSTOM` compostos, use [UpdateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModelCompositeModel.html)em vez disso. Para obter mais informações, consulte [Atualizar modelos compostos personalizados (componentes)](update-custom-composite-models.md).

**Como atualizar um modelo de ativo ou um modelo de componente (AWS CLI)**

1. Execute o comando a seguir para recuperar a definição do modelo existente. *asset-model-id*Substitua pela ID ou pela ID externa do modelo de ativo ou modelo de componente a ser atualizado.

   ```
   aws iotsitewise describe-asset-model --asset-model-id asset-model-id
   ```

   O comando acima retorna a definição do modelo correspondente à versão mais recente do modelo.

    Para um caso de uso em que um modelo de ativo está em um estado `FAILED`, recupere a definição de modelo válida correspondente à versão ativa para criar a solicitação de atualização. Para mais detalhes, consulte [Versões do modelo de ativo](model-active-version.md). Execute o seguinte comando para recuperar a definição de modelo válida:

   ```
   aws iotsitewise describe-asset-model --asset-model-id asset-model-id --asset-model-version ACTIVE 
   ```

   A operação retorna uma resposta que contém os detalhes do modelo. A resposta tem a seguinte estrutura:

   ```
   {
       "assetModelId": "String",
       "assetModelArn": "String",
       "assetModelName": "String",
       "assetModelDescription": "String",
       "assetModelProperties": Array of AssetModelProperty,
       "assetModelHierarchies": Array of AssetModelHierarchyDefinition,
       "assetModelCompositeModels": Array of AssetModelCompositeModel,
       "assetModelCompositeModelSummaries": Array of AssetModelCompositeModelSummary,
       "assetModelCreationDate": "String",
       "assetModelLastUpdateDate": "String",
       "assetModelStatus": {
         "state": "String",
         "error": {
           "code": "String",
           "message": "String"
         },
       "assetModelType": "String"
       },
       "assetModelVersion": "String",
       "eTag": "String"
   }
   ```

   Para obter mais informações, consulte a operação [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html).

1. Crie um arquivo chamado `update-asset-model.json` e copie a resposta do comando anterior no arquivo.

1. Remova os seguintes pares de chave-valor do objeto JSON em `update-asset-model.json`:
   + `assetModelId`
   + `assetModelArn`
   + `assetModelCompositeModelSummaries`
   + `assetModelCreationDate`
   + `assetModelLastUpdateDate`
   + `assetModelStatus`
   + `assetModelType`
   + `assetModelVersion`
   + `eTag`

   A [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)operação espera uma carga útil com a seguinte estrutura:

   ```
   {
     "assetModelName": "String",
     "assetModelDescription": "String",
     "assetModelProperties": Array of AssetModelProperty,
     "assetModelHierarchies": Array of AssetModelHierarchyDefinition,
     "assetModelCompositeModels": Array of AssetModelCompositeModel
   }
   ```

1. Em `update-asset-model.json` proceda de uma das seguintes maneiras:
   + Altere o nome do modelo de ativo (`assetModelName`).
   + Altere, adicione ou remova a descrição do modelo de ativo (`assetModelDescription`).
   + Altere, adicione ou remova qualquer uma das propriedades do modelo de ativo (`assetModelProperties`). Não é possível alterar o `dataType` de propriedades existentes ou a `window` das métricas existentes. Para obter mais informações, consulte [Definir propriedades de dados](asset-properties.md).
   + Altere, adicione ou remova qualquer uma das hierarquias de modelos de ativo (`assetModelHierarchies`). Não é possível alterar o `childAssetModelId` das hierarquias existentes. Para obter mais informações, consulte [Definir hierarquias de modelos de ativo](define-asset-hierarchies.md).
   + Altere, adicione ou remova qualquer um dos modelos compostos do modelo de ativo do tipo `AWS/ALARM` (`assetModelCompositeModels`). Os alarmes monitoram outras propriedades para que você possa identificar quando equipamentos ou processos requerem atenção. Cada definição de alarme é um modelo composto que padroniza o conjunto de propriedades que o alarme usa. Para obter mais informações, consulte [Monitore dados com alarmes em AWS IoT SiteWise](industrial-alarms.md) e [Defina alarmes em modelos de ativos em AWS IoT SiteWise](define-alarms.md).

1. Execute o seguinte comando para atualizar o modelo de ativo com a definição armazenada no `update-asset-model.json`. *asset-model-id*Substitua pelo ID do modelo de ativo:

   ```
   aws iotsitewise update-asset-model \
     --asset-model-id asset-model-id \
     --cli-input-json file://model-payload.json
   ```

**Importante**  
 Quando vários usuários atualizam um modelo de ativo ao mesmo tempo, as alterações de um usuário podem ser inadvertidamente substituídas por outro. Para evitar isso, defina uma solicitação de atualização condicional. Consulte [Bloqueio positivo para gravações do modelo de ativo](opt-locking-for-model.md). 