{
  "id": "iot-command",
  "revision": "1a11b20d761148f7f75f75d0d955905cec811445932dd24149e5dc54500c9757",
  "regions": [
    {
      "id": "device",
      "label": "Constrained devices"
    },
    {
      "id": "gateway",
      "label": "Gateway"
    },
    {
      "id": "cloud",
      "label": "Cloud authority"
    }
  ],
  "nodes": [
    {
      "id": "operator",
      "label": "Operator proposal",
      "kind": "N20",
      "region": "cloud",
      "ports": [
        {
          "id": "intent",
          "profile": "P03",
          "contract": "DeviceIntentV1",
          "polarity": "Offer"
        },
        {
          "id": "principal",
          "profile": "P24",
          "contract": "PrincipalRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "policy",
      "label": "Device policy",
      "kind": "N33",
      "region": "cloud",
      "ports": [
        {
          "id": "grant",
          "profile": "P20",
          "contract": "DeviceGrantV1",
          "polarity": "Offer"
        },
        {
          "id": "policy",
          "profile": "P24",
          "contract": "PolicyRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "command",
      "label": "Command service",
      "kind": "N19",
      "region": "cloud",
      "ports": [
        {
          "id": "intent",
          "profile": "P03",
          "contract": "DeviceIntentV1",
          "polarity": "Require"
        },
        {
          "id": "authority",
          "profile": "P20",
          "contract": "DeviceGrantV1",
          "polarity": "Require"
        },
        {
          "id": "deliver",
          "profile": "P02",
          "contract": "DeviceCommandV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "gateway",
      "label": "Gateway executor",
      "kind": "N27",
      "region": "gateway",
      "ports": [
        {
          "id": "execute",
          "profile": "P02",
          "contract": "DeviceCommandV1",
          "polarity": "Offer"
        },
        {
          "id": "device",
          "profile": "P02",
          "contract": "DeviceProtocolV1",
          "polarity": "Require"
        },
        {
          "id": "artifact",
          "profile": "P23",
          "contract": "FirmwareRefV1",
          "polarity": "Require"
        },
        {
          "id": "executor",
          "profile": "P24",
          "contract": "HostRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "device",
      "label": "Device controller boundary",
      "kind": "N30",
      "region": "device",
      "ports": [
        {
          "id": "command",
          "profile": "P02",
          "contract": "DeviceProtocolV1",
          "polarity": "Offer"
        },
        {
          "id": "identity",
          "profile": "P24",
          "contract": "DeviceRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "bundle",
      "label": "Signed firmware artifact",
      "kind": "N35",
      "region": "cloud",
      "ports": [
        {
          "id": "artifact",
          "profile": "P23",
          "contract": "FirmwareRefV1",
          "polarity": "Offer"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "proposal",
      "kind": "H02",
      "incidences": [
        {
          "node": "operator",
          "port": "intent",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "command",
          "port": "intent",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "grant",
      "kind": "H23",
      "incidences": [
        {
          "node": "policy",
          "port": "grant",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "command",
          "port": "authority",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "deliver",
      "kind": "H05",
      "incidences": [
        {
          "node": "gateway",
          "port": "execute",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "command",
          "port": "deliver",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "device",
      "kind": "H05",
      "incidences": [
        {
          "node": "device",
          "port": "command",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "gateway",
          "port": "device",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "artifact",
      "kind": "H26",
      "incidences": [
        {
          "node": "bundle",
          "port": "artifact",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "gateway",
          "port": "artifact",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "admission",
      "kind": "H23",
      "incidences": [
        {
          "node": "operator",
          "port": "principal",
          "role": "principal",
          "ordinal": 0
        },
        {
          "node": "device",
          "port": "identity",
          "role": "resource",
          "ordinal": 1
        },
        {
          "node": "policy",
          "port": "policy",
          "role": "policy",
          "ordinal": 2
        },
        {
          "node": "gateway",
          "port": "executor",
          "role": "executor",
          "ordinal": 3
        }
      ]
    }
  ]
}
