

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Modello di dati di integrazioni gestite
<a name="managedintegrations-data-model"></a>

Il modello di dati delle integrazioni gestite gestisce tutte le comunicazioni tra l'utente finale e le integrazioni gestite.

**Gerarchia dei dispositivi**

Gli elementi `endpoint` e `capability` dati vengono utilizzati per descrivere un dispositivo nel modello di dati delle integrazioni gestite.

**`endpoint`**

`endpoint`Rappresenta le interfacce o i servizi logici offerti dalla funzionalità.

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

**`Capability`**

`capability`Rappresenta le funzionalità del dispositivo.

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

Per l'elemento `capability` dati, ci sono tre elementi che lo compongono: `property``action`, e`event`. Possono essere utilizzati per interagire e monitorare il dispositivo.
+ **Proprietà**: Stati mantenuti dal dispositivo, ad esempio l'attributo del livello di luminosità corrente di una luce dimmerabile.
  + 

    ```
    {
        "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
        
    }
    ```
+ **Azione**: Attività che possono essere eseguite, come bloccare una porta su una serratura. Le azioni possono generare risposte e risultati.
  + 

    ```
    { 
        "name": { "$ref": "/schema-versions/definition/aws.name@1.0" }, //required 
        "parameters": Map<String name, JSONNode value>, 
        "responseCode": HTTPResponseCode,
        "errors": { 
            "code": "string",
            "message": "string"
        }
    }
    ```
+ **Evento**: essenzialmente una registrazione delle transizioni di stato passate. Sebbene `property` rappresentino gli stati attuali, gli eventi sono un diario del passato e includono un contatore che aumenta in modo monotono, un timestamp e una priorità. Consentono di catturare le transizioni di stato e la modellazione dei dati che non è facilmente realizzabile. `property`
  + 

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