

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

# Notifiche di integrazioni gestite
<a name="managedintegrations-notifications"></a>

Le notifiche di Managed Integrations forniscono aggiornamenti e informazioni chiave dai dispositivi. Le notifiche includono eventi relativi ai connettori, comandi dei dispositivi, eventi del ciclo di vita, aggiornamenti OTA (Over-the-Air) e segnalazioni di errori. Queste informazioni forniscono informazioni utilizzabili per creare flussi di lavoro automatizzati, intraprendere azioni immediate o archiviare dati sugli eventi per la risoluzione dei problemi.

Attualmente, solo i flussi di dati di Amazon Kinesis sono supportati come destinazione per le notifiche di integrazioni gestite. Prima di configurare le notifiche, dovrai prima configurare un flusso di dati Amazon Kinesis e consentire a Managed Integrations di accedere al flusso di dati. 

## Configurare Amazon Kinesis per le notifiche
<a name="kinesis-setup"></a>

**Contents**
+ [Fase 1: creare un flusso di dati Amazon Kinesis](#create-data-stream)
+ [Passaggio 2: crea una politica di autorizzazioni](#create-permissions-policy)
+ [Passaggio 3: accedi alla dashboard IAM e seleziona Ruoli](#navigate-roles)
+ [Fase 4: Utilizzare una politica di fiducia personalizzata](#custom-trust-policy)
+ [Passaggio 5: Applica la tua politica sulle autorizzazioni](#apply-permissions-policy)
+ [Fase 6: Inserire il nome del ruolo](#finalize-role)

Per configurare le notifiche di Amazon Kinesis for Managed Integrations, segui questi passaggi:

### Fase 1: creare un flusso di dati Amazon Kinesis
<a name="create-data-stream"></a>

Un Amazon Kinesis Data Stream può importare una grande quantità di dati in tempo reale, archiviarli in modo duraturo e renderli disponibili per l'utilizzo da parte delle applicazioni.

**Per creare un flusso di dati Amazon Kinesis**
+ Per creare un flusso di dati Kinesis, segui i passaggi descritti in [Creare e gestire flussi di dati Kinesis](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html).

### Passaggio 2: crea una politica di autorizzazioni
<a name="create-permissions-policy"></a>

Crea una politica di autorizzazioni che consenta a Managed Integrations di accedere al flusso di dati Kinesis.

**Per creare una politica di autorizzazioni**
+ Per creare una politica di autorizzazioni, copia la politica seguente e segui i passaggi descritti in [Creare politiche utilizzando l'](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)editor JSON

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": "kinesis:PutRecord",
              "Resource": "*",
              "Effect": "Allow"
          }
      ]
  }
  ```

------

### Passaggio 3: accedi alla dashboard IAM e seleziona Ruoli
<a name="navigate-roles"></a>

Apri la dashboard IAM e fai clic su **Ruoli**.

**Per accedere alla dashboard IAM**
+ **Apri la dashboard IAM e fai clic su Ruoli.**

  Per ulteriori informazioni, consulta la [creazione di ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) nella Guida *AWS Identity and Access Management*per l'utente.

### Fase 4: Utilizzare una politica di fiducia personalizzata
<a name="custom-trust-policy"></a>

Puoi utilizzare una policy di fiducia personalizzata per concedere a Managed Integrations l'accesso al flusso di dati Kinesis.

**Per utilizzare una politica di fiducia personalizzata**
+ **Crea un nuovo ruolo e scegli una politica di fiducia personalizzata. Fai clic su Avanti.**

  La seguente politica consente a Managed Integrations di assumere il ruolo e la `Condition` dichiarazione aiuta a prevenire problemi confusi tra i deputati. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": "iotmanagedintegrations.amazonaws.com"
          },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                      "aws:SourceAccount": "{{123456789012}}"
              },
                  "ArnLike": {
                      "aws:SourceArn": "arn:aws:iotmanagedintegrations:{{ca-central-1}}:{{123456789012}}:*"
              }
          }
          }
      ]
  }
  ```

------

### Passaggio 5: Applica la tua politica sulle autorizzazioni
<a name="apply-permissions-policy"></a>

Aggiungi al ruolo la politica di autorizzazione creata nel passaggio 2.

**Per aggiungere una politica di autorizzazioni**
+ **Nella pagina Aggiungi autorizzazioni, cerca e aggiungi la politica di autorizzazione creata nel passaggio 2. Fai clic su Avanti.**

### Fase 6: Inserire il nome del ruolo
<a name="finalize-role"></a>
+ **Inserisci il nome del ruolo e fai clic su Crea ruolo.**

## Imposta le notifiche relative alle integrazioni gestite
<a name="managedintegrations-notification-setup"></a>

**Topics**
+ [Passaggio 1: concedere all'utente le autorizzazioni per chiamare l'API CreateDestination](#user-permissions)
+ [Fase 2: Chiama l'API CreateDestination](#call-createdestination)
+ [Fase 3: Chiama l'API CreateNotificationConfiguration](#call-notification-config)

Per configurare le notifiche di Managed Integrations, segui questi passaggi:

### Passaggio 1: concedere all'utente le autorizzazioni per chiamare l'API CreateDestination
<a name="user-permissions"></a>
+ **Concedi all'utente le autorizzazioni per chiamare l'API `CreateDestination`**

   La seguente politica definisce i requisiti per l'utente per chiamare l'[CreateDestination](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateDestination.html)API.

   Consulta [Concedere a un utente le autorizzazioni per passare un ruolo a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) nella Guida per l'*AWS Identity and Access Management*utente per ottenere le autorizzazioni passrole per le integrazioni gestite. 

------
#### [ JSON ]

****  

  ```
  {
        "Version":"2012-10-17",		 	 	 
        "Statement":[
           {
              "Effect":"Allow",
              "Action":"iam:PassRole",
              "Resource":"arn:aws:iam::{{123456789012}}:role/{{ROLE_CREATED_IN_PREVIOUS_STEP}}",
              "Condition":{
                 "StringEquals":{
                    "iam:PassedToService":"iotmanagedintegrations.amazonaws.com"
             }
          }
           },
           {
              "Effect":"Allow",
              "Action":"iotmanagedintegrations:CreateDestination",
              "Resource":"*"
           }
        ]
  }
  ```

------

### Fase 2: Chiama l'API CreateDestination
<a name="call-createdestination"></a>
+ **Chiama l'`CreateDestination`API**

  Dopo aver creato il flusso di dati di Amazon Kinesis e il ruolo di accesso allo stream, chiama l'[CreateDestination](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateDestination.html)API per creare la destinazione delle notifiche a cui verranno indirizzate le notifiche. Per il `DeliveryDestinationArn` parametro, usa il nuovo `arn` flusso di dati di Amazon Kinesis.

  ```
  {
      "DeliveryDestinationArn": "Your Kinesis arn"
      "DeliveryDestinationType": "KINESIS"
      "Name": "DestinationName"
      "ClientToken": {{"string"}}
      "RoleArn": "arn:aws:iam::{{accountID}}:role/{{ROLE_CREATED_IN_PREVIOUS_STEP}}"
  }
  ```
**Nota**  
`ClientToken`è un token di idempotenza. Se riprovi una richiesta completata correttamente inizialmente utilizzando lo stesso token client e gli stessi parametri, il nuovo tentativo avrà esito positivo senza eseguire ulteriori azioni.

### Fase 3: Chiama l'API CreateNotificationConfiguration
<a name="call-notification-config"></a>
+ **Chiama l'`CreateNotificationConfiguration`API**

  Infine, usa l'[CreateNotificationConfiguration](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateNotificationConfiguration.html)API per creare la configurazione di notifica che indirizza i tipi di eventi scelti verso la tua destinazione rappresentata dal flusso di dati Kinesis. Nel `DestinationName` parametro, utilizza lo stesso nome di destinazione utilizzato per la chiamata iniziale all'`CreateDestination`API.

  ```
  {
      "EventType": "DEVICE_EVENT"
      "DestinationName" // This name has to be identical to the name in createDestination API
      "ClientToken": {{"string"}}
  }
  ```

## Tipi di eventi monitorati con Managed Integrations
<a name="managedintegrations-notification-listevents"></a>

Di seguito sono riportati i tipi di eventi monitorati con le notifiche di Managed Integrations:
+ `DEVICE_COMMAND`
  + Lo stato del comando [SendManagedThingCommand](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendManagedThingCommand.html)API. I valori validi sono `succeeded` o `failed`.

    ```
    {
                  "version":"0",
                  "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718",
                  "messageType":"DEVICE_COMMAND",
                  "source":"aws.iotmanagedintegrations",
                  "customerAccountId":"123456789012",
                  "timestamp":"1731623291671",
                  "region":"ca-central-1",
                  "resources":[
                        "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718"
                  ],
                  "payload":{
                    "traceId":"1234567890abcdef0",
                    "receivedAt":"2017-12-22T18:43:48Z",
                    "executedAt":"2017-12-22T18:43:48Z",
                    "result":"failed"
                  }
    }
    ```
+ `DEVICE_COMMAND_REQUEST`
  + La richiesta di comando da Web Real-Time Communication (WebRTC).

    Lo standard WebRTC consente la comunicazione tra due peer. Questi peer possono trasmettere video, audio e dati arbitrari in tempo reale. Managed Integrations supporta WebRTC per abilitare questi tipi di streaming tra un'applicazione mobile del cliente e il dispositivo di un utente finale. [Per ulteriori informazioni sullo standard WebRTC, vedere WebRTC.](https://webrtc.org/)

    ```
    {
                  "version":"0",
                  "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718",
                  "messageType":"DEVICE_COMMAND_REQUEST",
                  "source":"aws.iotmanagedintegrations",
                  "customerAccountId":"123456789012",
                  "timestamp":"1731623291671",
                  "region":"ca-central-1",
                  "resources":[
                      "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718"
                  ],
                  "payload":{
                    "endpoints":[{
                      "endpointId":"1",
                      "capabilities":[{
                        "id":"aws.DoorLock",
                        "name":"Door Lock",
                        "version":"1.0"
                      }]
                    }]
                  }
    }
    ```
+ `DEVICE_DISCOVERY_STATUS`
  + Lo stato di rilevamento del dispositivo.

    ```
    {
          "version":"0",
          "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718",
          "messageType":"DEVICE_DISCOVERY_STATUS",
          "source":"aws.iotmanagedintegrations",
          "customerAccountId":"123456789012",
          "timestamp":"2017-12-22T18:43:48Z",
          "region":"ca-central-1",
          "resources":[
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718"
          ],
          "payload":{
            "deviceCount": 1,
            "deviceDiscoveryId": "123",
            "status": "SUCCEEDED"
          }
    }
    ```
+ `DEVICE_EVENT`
  + Una notifica del verificarsi di un evento relativo al dispositivo.

    ```
    {
          "version":"1.0",
          "messageId":"2ed545027bd347a2b855d28f94559940",
          "messageType":"DEVICE_EVENT",
          "source":"aws.iotmanagedintegrations",
          "customerAccountId":"123456789012",
          "timestamp":"1731630247280",
          "resources":[
            "/quit/1b15b39992f9460ba82c6c04595d1f4f"
          ],
          "payload":{
            "iotMiArrivalTimestamp":"2026-06-26T21:28:14.697Z",
            "endpoints":[{
              "endpointId":"1",
              "capabilities":[{
                "id":"aws.DoorLock",
                "name":"Door Lock",
                "version":"1.0",
                "properties":[{
                  "name":"ActuatorEnabled",
                  "value":"true"
                }]
              }]
            }]
          }
    }
    ```

    Il `DEVICE_EVENT` payload contiene i seguenti campi:
    + `iotMiArrivalTimestamp`, String (ISO 8601): il timestamp che indica quando l'evento del dispositivo è stato pubblicato dal dispositivo in Managed Integrations. Utilizzate questo campo per determinare la latenza tra il momento in cui l'evento è stato generato dal dispositivo e il momento in cui Managed Integrations lo ha ricevuto.
    + `endpoints`: l'elenco degli endpoint dei dispositivi e le relative proprietà di funzionalità aggiornate.

    Il `timestamp` campo nella busta esterna del messaggio indica quando la notifica è stata consegnata a Kinesis. Il payload `iotMiArrivalTimestamp` nel payload indica quando l'evento è arrivato in Managed Integrations. Questi due timestamp possono differire in caso di latenza di elaborazione tra l'arrivo dell'evento e l'invio della notifica.
+ `DEVICE_LIFE_CYCLE`

  Riflette i cambiamenti nello stato del ciclo di vita del dispositivo (inclusi lo stato e lo stato di onboarding). connected/disconnected 
  + Evento di aggiornamento dello stato di onboarding.

    ```
    { 
          "version": "1.0.0", 
          "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
          "messageType": "DEVICE_LIFE_CYCLE",
          "source": "aws.iotmanagedintegrations",
          "customerAccountId": "123456789012",
          "timestamp": "2024-11-14T19:55:57.568284645Z",
          "region": "ca-central-1",
          "resources": [
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
            ],
          "payload": {
            "deviceDetails": {
              "id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
              "arn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
              "createdAt": "2024-11-14T19:55:57.515841147Z",
              "updatedAt": "2024-11-14T19:55:57.515841559Z"
            },
            "status": "UNCLAIMED" 
          } 
    }
    ```
  + Evento sullo stato della connessione del dispositivo.

    ```
    {
        "version": "1.0",
        "messageId": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
        "messageType": "DEVICE_LIFE_CYCLE",
        "source": "aws.iotmanagedintegrations",
        "customerAccountId": "123456789012",
        "timestamp": "2024-11-14T19:55:57.568284645Z",
        "region": "ca-central-1",
        "resources": [
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
        ],
        "payload": {
            "managedThingId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "managedThingArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "clientId": "iotmi-example-client-id",
            "timestamp": "1768000475344",
            "eventType": "connected",
            "sessionIdentifier": "q1w2e3r4-t5y6-u7i8-o9p0-a1s2d3f4g5h6",
            "principalIdentifier": "z1x2c3v4b5n6m7a8s9d0f1g2h3j4k5l6p7o8i9u0y1t2r3e4w5q6a7z8x9c0v1b2",
            "ipAddress": "192.0.2.100",
            "versionNumber": "0"
        }
    }
    ```
  + Evento di stato di disconnessione del dispositivo.

    ```
    {
        "version": "1.0",
        "messageId": "b2n3m4a5-s6d7-f8g9-h0j1-k2l3z4x5c6v7",
        "messageType": "DEVICE_LIFE_CYCLE",
        "source": "aws.iotmanagedintegrations",
        "customerAccountId": "123456789012",
        "timestamp": "2024-11-14T19:55:57.568284645Z",
        "region": "ca-central-1",
        "resources": [
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
        ],
        "payload": {
            "managedThingId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "managedThingArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "clientId": "iotmi-example-client-id",
            "timestamp": "1768000492431",
            "eventType": "disconnected",
            "sessionIdentifier": "p9o8i7u6-y5t4-r3e2-w1q0-m9n8b7v6c5x4",
            "principalIdentifier": "a1s2d3f4g5h6j7k8l9z0x1c2v3b4n5m6q7w8e9r0t1y2u3i4o5p6a7s8d9f0g1h2",
            "versionNumber": "0",
            "disconnectReason": "CLIENT_INITIATED_DISCONNECT"
        }
    }
    ```
+ `DEVICE_OTA`
  + Una notifica OTA del dispositivo.

    ```
    {
        "version": "1.0.0",
        "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "messageType": "DEVICE_OTA",
        "source": "aws.iotmanagedintegrations",
        "customerAccountId": "123456789012",
        "timestamp": "2024-11-14T19:55:57.568284645Z",
        "region": "ca-central-1",
        "resources": [
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8"
        ],
        "payload": {
            "operation": "CREATE_OTA",
            "otaTaskId": "ota-job-abc123def456",
            "status": "IN_PROGRESS",
            "otaType": "ONE_TIME"
        }
    }
    ```
+ `DEVICE_STATE`
  + Una notifica quando lo stato di un dispositivo è stato aggiornato.

    ```
    { 
          "messageType": "DEVICE_STATE",
          "source": "aws.iotmanagedintegrations",
          "customerAccountId": "123456789012",
          "timestamp": "1731623291671",
          "resources": [
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/61889008880012345678"
          ],
          "payload": {
            "addedStates": {
              "endpoints": [{
                "endpointId": "nonEndpointId",
                "capabilities": [{
                  "id": "aws.OnOff",
                  "name": "On/Off",
                  "version": "1.0",
                  "properties": [{
                    "name": "OnOff",
                    "value": {
                      "propertyValue": "\"onoff\"",
                      "lastChangedAt": "2024-06-11T01:38:09.000414Z"
                    }
                  }
                ]}
              ]}
            ]}
          } 
    }
    ```
+ `ACCOUNT_ASSOCIATION`
  + Una notifica quando lo stato di associazione di un account cambia in IN\_PROGRESS.

    ```
    {
        "version": "1.0.0",
        "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "messageType": "ACCOUNT_ASSOCIATION",
        "source": "aws.iotmanagedintegrations",
        "customerAccountId": "123456789012",
        "timestamp": "2026-01-20T23:59:34.009284802Z",
        "region": "ca-central-1",
        "resources": ["arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"],
        "payload": {
            "traceId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "logLevel": "INFO",
            "resourceType": "account-association",
            "resourceId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "connectorDestinationId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "associationArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
            "state": "ASSOCIATION_IN_PROGRESS",
            "isServiceError": false,
            "isCustomerError": false,
            "details": "AccountAssociation State is updated to IN_PROGRESS during StartAccountAssociationRefresh"
        }
    }
    ```
  + Una notifica quando l'associazione di un account viene completata correttamente.

    ```
    {
        "version": "1.0.0",
        "messageId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
        "messageType": "ACCOUNT_ASSOCIATION",
        "source": "aws.iotmanagedintegrations",
        "customerAccountId": "123456789012",
        "timestamp": "2026-01-20T23:59:44.672304821Z",
        "region": "ca-central-1",
        "resources": ["arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7"],
        "payload": {
            "traceId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
            "logLevel": "INFO",
            "resourceType": "account-association",
            "resourceId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
            "connectorDestinationId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
            "associationArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
            "state": "ASSOCIATION_SUCCEEDED",
            "isServiceError": false,
            "isCustomerError": false,
            "details": "AccountAssociation has completed successfully"
        }
    }
    ```
+ `CONNECTOR_ERROR_REPORT`
  + Questa notifica viene inviata quando un connettore cloud-to-cloud (C2C) segnala un errore durante l'elaborazione di una richiesta per conto dell'utente, ad esempio il rilevamento di un comando o di un dispositivo che ha restituito una risposta non riuscita.

    ```
    {
        "version": "1.0.0",
        "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
        "messageType": "CONNECTOR_ERROR_REPORT",
        "source": "aws.iotmanagedintegrations",
        "customerAccountId": "123456789012",
        "timestamp": "2026-01-20T23:59:34.009284802Z",
        "region": "ca-central-1",
        "resources": [
            "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
        ],
        "payload": {
            "statusCode": 0,
            "resourceType": "account-association",
            "resourceId": [
                "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
            ],
            "associationArn": [
                "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
            ],
            "connectorDestinationId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
            "connectorDeviceId": "connectorDeviceId11597664a",
            "operation": "AWS.SendCommand",
            "operationVersion": "1.0",
            "traceId": "f4be7a5d55d34cc=_1",
            "logLevel": "ERROR",
            "message": "AWS.SendCommand operation failed during asynchronous invocation of the connector: Connector response exception: responseCode=xxx, responseMessage=Mocking a ValidationException with error code xxx",
            "managedThingId": "c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8"
        }
    }
    ```

    Il `managedThingId` campo viene incluso quando può essere risolto per la richiesta. I campi senza un valore vengono omessi dal payload.