

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.

# Mettre à jour les modèles d'actifs, les modèles de composants et les interfaces
<a name="update-asset-models"></a>

Utilisez la AWS IoT SiteWise console ou l'API pour mettre à jour un modèle d'actif, un modèle de composant ou une interface.

Vous ne pouvez pas modifier le type ou le type de données d'une propriété existante, ni la fenêtre d'une métrique existante. Vous ne pouvez pas non plus modifier le type du modèle d'actif en modèle de composant ou d'interface, ou inversement.

**Important**  
Si vous supprimez une propriété d'un modèle de ressource ou d'un modèle de composant, toutes les AWS IoT SiteWise données précédentes relatives à cette propriété sont supprimées. Pour les modèles de composants, cela concerne **tous les modèles d'actifs utilisant ce modèle de composant**. Veillez donc particulièrement à comprendre dans quelle mesure votre modification peut s'appliquer.
Si vous supprimez une définition de hiérarchie d'un modèle d'actifs, AWS IoT SiteWise dissociez tous les actifs de cette hiérarchie.

Lorsque vous mettez à jour un modèle de ressource, chaque ressource basée sur ce modèle reflète toutes les modifications que vous apportez au modèle sous-jacent. Jusqu'à ce que les modifications se propagent, l'état de chaque ressource est `UPDATING`. Attendez que l'état des ressources passe à `ACTIVE` pour pouvoir interagir avec elles. Pendant ce temps, le statut du modèle de ressource mis à jour est `PROPAGATING`.

Lorsque vous mettez à jour un modèle de composant, chaque modèle d'actif qui intègre ce modèle de composant reflète les modifications. Jusqu'à ce que les modifications du modèle de composant se propagent, chaque modèle d'actif concerné possède l'`UPDATING`état, suivi `PROPAGATING` de la mise à jour de ses actifs associés, comme décrit dans le paragraphe précédent. Vous devez attendre que ces modèles d'actifs reviennent à leur `ACTIVE` état normal avant d'interagir avec eux. Pendant ce temps, le statut du modèle de composant mis à jour sera`PROPAGATING`.

Pour de plus amples informations, veuillez consulter [État des ressources et des modèles](asset-and-model-states.md).

**Topics**
+ [Mise à jour d'un modèle d'actif, d'un modèle de composant ou d'une interface (console)](#update-asset-model-console)
+ [Mettre à jour un modèle d'actif, un modèle de composant ou une interface (AWS CLI)](#update-asset-model-cli)

## Mise à jour d'un modèle d'actif, d'un modèle de composant ou d'une interface (console)
<a name="update-asset-model-console"></a>

Vous pouvez utiliser la AWS IoT SiteWise console pour mettre à jour un modèle de ressource, un modèle de composant ou une interface.

**Pour mettre à jour un modèle d'actif, un modèle de composant ou une interface (console)**

1. <a name="sitewise-open-console"></a>Accédez à la [console AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. <a name="sitewise-choose-models"></a>Dans le panneau de navigation, choisissez **Models (Modèles)**.

1. Choisissez le modèle de ressource, le modèle de composant ou l'interface à mettre à jour.

1. Choisissez **Modifier**.

1. Sur la page **Modifier le modèle**, effectuez l'une des opérations suivantes :
   + Dans **Informations relatives au modèle**, modifiez le **nom** du modèle.
   + Modifiez l'une des **définitions d'attribut**. Vous ne pouvez pas modifier le **type de données** des attributs existants. Pour de plus amples informations, veuillez consulter [Définir des données statiques (attributs)](attributes.md).
   + Modifiez l'une des **définitions de mesure**. Vous ne pouvez pas modifier le **type de données** des mesures existantes. Pour de plus amples informations, veuillez consulter [Définir les flux de données provenant de l'équipement (mesures)](measurements.md).
   + Modifiez l'une des **définitions de transformation**. Pour de plus amples informations, veuillez consulter [Transformer les données (transformations)](transforms.md).
   + Modifiez l'une des **définitions de métrique**. Vous ne pouvez pas modifier l'**intervalle de temps** des métriques existantes. Pour de plus amples informations, veuillez consulter [Données agrégées provenant de propriétés et d'autres actifs (métriques)](metrics.md).
   + (Modèles d'actifs uniquement) Modifiez l'une des **définitions de hiérarchie**. Vous ne pouvez pas modifier le **modèle de hiérarchie** des hiérarchies existantes. Pour de plus amples informations, veuillez consulter [Définir les hiérarchies des modèles d'actifs](define-asset-hierarchies.md).

1. Choisissez **Enregistrer**.

**Note**  
 Les demandes de mise à jour effectuées dans la console sont rejetées si un autre utilisateur met à jour le modèle de ressource avec succès depuis que vous avez ouvert la page **Modifier le modèle** pour la dernière fois. La console invite l'utilisateur à **actualiser** la page **Modifier le modèle** pour récupérer le modèle mis à jour. Vous devez effectuer à nouveau vos mises à jour, puis réessayer de sauvegarder. Pour plus d’informations, consultez [Verrouillage optimiste pour les écrits sur le modèle d'actifs](opt-locking-for-model.md). 

## Mettre à jour un modèle d'actif, un modèle de composant ou une interface (AWS CLI)
<a name="update-asset-model-cli"></a>

Utilisez le AWS Command Line Interface (AWS CLI) pour mettre à jour un modèle d'actif, un modèle de composant ou une interface.

Utilisez l'[UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)API pour mettre à jour le nom, la description et les propriétés d'un modèle d'actif, d'un modèle de composant ou d'une interface. Pour les modèles d'actifs uniquement, vous pouvez mettre à jour les hiérarchies. Pour les interfaces, vous pouvez mettre à jour les propriétés et les hiérarchies. Spécifiez les paramètres suivants :
+ `assetModelId`— L'ID de l'actif. Il s'agit de l'identifiant réel au format UUID, ou du `externalId:myExternalId` s'il en possède un. Pour plus d’informations, consultez [Objets de référence avec interface externe IDs](object-ids.md#external-id-references) dans le *Guide de l’utilisateur AWS IoT SiteWise *.

Spécifiez le modèle mis à jour dans la charge utile. Pour en savoir plus sur le format attendu d'un modèle d'actif ou d'un modèle de composant, voir[Créez des modèles d'actifs dans AWS IoT SiteWise](create-asset-models.md). 

**Avertissement**  
L'[UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)API remplace le modèle existant par le modèle que vous fournissez dans la charge utile. Pour éviter de supprimer les propriétés ou les hiérarchies de votre modèle, vous devez inclure leurs définitions IDs et leurs propriétés dans la charge utile du modèle mise à jour. Pour savoir comment interroger la structure existante de votre modèle, consultez l'[DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html)opération.

**Note**  
La procédure suivante ne permet de mettre à jour que les modèles composites de type`AWS/ALARM`. Si vous souhaitez mettre à jour des modèles `CUSTOM` composites, utilisez [UpdateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModelCompositeModel.html)plutôt. Pour de plus amples informations, veuillez consulter [Mettre à jour des modèles composites personnalisés (composants)](update-custom-composite-models.md).

**Pour mettre à jour un modèle d'actif ou un modèle de composant (AWS CLI)**

1. Exécutez la commande suivante pour récupérer la définition du modèle existant. *asset-model-id*Remplacez-le par l'ID ou l'ID externe du modèle d'actif ou du modèle de composant à mettre à jour.

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

   La commande ci-dessus renvoie la définition du modèle correspondant à la dernière version du modèle.

    Dans le cas d'utilisation où un modèle d'actif est dans un `FAILED` état, récupérez la définition de modèle valide correspondant à sa version active pour créer votre demande de mise à jour. Consultez [Versions du modèle d'actifs](model-active-version.md) pour plus de détails. Exécutez la commande suivante pour récupérer la définition du modèle actif :

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

   L'opération renvoie une réponse contenant les détails du modèle. La réponse présente la structure suivante.

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

   Pour plus d'informations, consultez l'[DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html)opération.

1. Créez un fichier appelé `update-asset-model.json` et copiez la réponse de la commande précédente dans le fichier.

1. Supprimez les paires clé-valeur suivantes de l'objet JSON dans `update-asset-model.json` :
   + `assetModelId`
   + `assetModelArn`
   + `assetModelCompositeModelSummaries`
   + `assetModelCreationDate`
   + `assetModelLastUpdateDate`
   + `assetModelStatus`
   + `assetModelType`
   + `assetModelVersion`
   + `eTag`

   L'[UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)opération attend une charge utile dont la structure est la suivante :

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

1. Dans `update-asset-model.json`, effectuez l’une des actions suivantes :
   + Modifiez le nom du modèle de ressource (`assetModelName`).
   + Modifiez, ajoutez ou supprimez la description du modèle de ressource (`assetModelDescription`).
   + Modifiez, ajoutez ou supprimez les propriétés du modèle de ressource (`assetModelProperties`). Vous ne pouvez pas modifier le `dataType` des propriétés existantes ou le `window` des métriques existantes. Pour de plus amples informations, veuillez consulter [Définir les propriétés des données](asset-properties.md).
   + Modifiez, ajoutez ou supprimez les hiérarchies du modèle de ressource (`assetModelHierarchies`). Vous ne pouvez pas modifier le `childAssetModelId` des hiérarchies existantes. Pour de plus amples informations, veuillez consulter [Définir les hiérarchies des modèles d'actifs](define-asset-hierarchies.md).
   + Modifiez, ajoutez ou supprimez l'un des modèles composites de type `AWS/ALARM` (`assetModelCompositeModels`) du modèle d'actifs. Les alarmes surveillent d'autres propriétés afin que vous puissiez identifier les équipements ou les processus nécessitant une attention particulière. Chaque définition d'alarme est un modèle composite qui normalise l'ensemble de propriétés utilisées par l'alarme. Pour plus d’informations, consultez [Surveillez les données avec des alarmes AWS IoT SiteWise](industrial-alarms.md) et [Définissez des alarmes sur les modèles d'actifs dans AWS IoT SiteWise](define-alarms.md).

1. Exécutez la commande suivante pour mettre à jour le modèle de ressource avec la définition stockée dans `update-asset-model.json`. Remplacez *asset-model-id* par l'ID du modèle d'actif :

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

**Important**  
 Lorsque plusieurs utilisateurs mettent à jour un modèle d'actif en même temps, les modifications apportées par un utilisateur peuvent être annulées par inadvertance par un autre utilisateur. Pour éviter cela, vous devez définir une demande de mise à jour conditionnelle. Consultez [Verrouillage optimiste pour les écrits sur le modèle d'actifs](opt-locking-for-model.md). 