

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.

# Modèle de données d'intégrations gérées
<a name="managedintegrations-data-model"></a>

Le modèle de données des intégrations gérées gère toutes les communications entre l'utilisateur final et les intégrations gérées.

**Hiérarchie des appareils**

Les éléments de `capability` données `endpoint` et sont utilisés pour décrire un appareil dans le modèle de données d'intégrations gérées.

**`endpoint`**

Le `endpoint` représente les interfaces logiques ou les services proposés par la fonctionnalité.

```
{
    "endpointId": { "type":"string" },
    "capabilities": Capability[]
}
```

**`Capability`**

Le `capability` représente les capacités de l'appareil.

```
{
    "$id": "string",                // Schema identifier (e.g. /schema-versions/capability/matter.OnOff@1.4)
    "name": "string",               // Human readable name
    "version": "string",            // e.g. 1.0  
    "properties": Property[],
    "actions": Action[],
    "events": Event[]
}
```

Pour l'élément de `capability` données, trois éléments le composent : `property``action`, et`event`. Ils peuvent être utilisés pour interagir avec l'appareil et le surveiller.
+ **Propriété** : états enregistrés par l'appareil, tels que l'attribut de niveau de luminosité actuel d'une lampe à intensité variable.
  + 

    ```
    {
        "name":                      // Property Name is outside of Property Entity
        "value": Value,              // value represented in any type e.g. 4, "A", []
        "lastChangedAt": Timestamp   // ISO 8601 Timestamp upto milliseconds yyyy-MM-ddTHH:mm:ss.ssssssZ
        "mutable": boolean,
        "retrievable": boolean,
        "reportable": boolean
        
    }
    ```
+ **Action** : tâches qui peuvent être effectuées, telles que le verrouillage d'une porte sur une serrure. Les actions peuvent générer des réponses et des résultats.
  + 

    ```
    { 
        "name": { "$ref": "/schema-versions/definition/aws.name@1.0" }, //required 
        "parameters": Map<String name, JSONNode value>, 
        "responseCode": HTTPResponseCode,
        "errors": { 
            "code": "string",
            "message": "string"
        }
    }
    ```
+ **Événement** : Il s'agit essentiellement d'un enregistrement des transitions entre États passées. Tout en `property` représentant les états actuels, les événements sont un journal du passé et incluent un compteur croissant de façon monotone, un horodatage et une priorité. Ils permettent de capturer les transitions d'état, ainsi que de modéliser les données, ce qui n'est pas facile à réaliser avec`property`.
  + 

    ```
    {
        "name": { "$ref": "/schema-versions/definition/aws.name@1.0" },        //required
        "parameters": Map<String name, JSONNode value> 
    }
    ```