# Network Service ## Overview Network service uses the respective ConnMan package to administer networking interfaces ## Verbs | Name | Description | JSON Response | |--------------------|---------------------------------------------------------|--------------------------------------------------------------------------------------------| | subscribe | subscribe to network events | *Request:* {"value": "global_state"} | | unsubscribe | unsubscribe to network events | *Request:* {"value": "global_state"} | | state | get current global network connection state | {"response":"online"} | | offline | set global offline mode | *Request:* {"value": true} | | technologies | returns the respective available technology types | see technologies verb section | | services | returns services provided from technologies | see services verb section | | enable_technology | enable respective technology | *Request:* {"technology": "wifi"} | | disable_technology | disable respective technology | *Request:* {"technology": "wifi"} | | scan_services | start scan on respective technology (if supported) | *Request:* {"technology": "wifi"} | | remove_service | remove respective service | *Request:* {"service": "wifi_ec086b181ee3_436861726c6f74746520262043686c6f65_managed_psk"} | | connect_service | connect to respective service | *Request:* {"service": "wifi_ec086b181ee3_436861726c6f74746520262043686c6f65_managed_psk"} | | disconnect_service | disconnect respective service | *Request:* {"service": "wifi_ec086b181ee3_436861726c6f74746520262043686c6f65_managed_psk"} | | agent_response | response information to confirm device association | see agent_response verb section | ### technologies Verb
 {
  "response": {
    "values": [
      {
        "technology": "p2p",
        "properties": {
          "name": "P2P",
          "type": "p2p",
          "powered": false,
          "connected": false,
          "tethering": false
        }
      },
      {
        "technology": "wifi",
        "properties": {
          "name": "WiFi",
          "type": "wifi",
          "powered": true,
          "connected": false,
          "tethering": false
        }
      },
      {
        "technology": "ethernet",
        "properties": {
          "name": "Wired",
          "type": "ethernet",
          "powered": true,
          "connected": true,
          "tethering": false
        }
      },
      {
        "technology": "bluetooth",
        "properties": {
          "name": "Bluetooth",
          "type": "bluetooth",
          "powered": true,
          "connected": false,
          "tethering": false
        }
      }
    ]
  },
  ...
 }
### services Verb
{
  "response": {
    "values": [
      {
        "service": "ethernet_0800271b86ef_cable",
        "properties": {
          "type": "ethernet",
          "security": [],
          "state": "ready",
          "favorite": true,
          "immutable": false,
          "autoconnect": true,
          "name": "Wired",
          "ethernet": {
            "method": "auto",
            "interface": "enp0s3",
            "address": "08:00:27:1B:86:EF",
            "mtu": 1500
          },
          "ipv4": {
            "method": "dhcp",
            "address": "192.168.56.3",
            "netmask": "255.255.255.0"
          },
          "ipv4.configuration": {
            "method": "dhcp"
          },
          "ipv6": {},
          "ipv6.configuration": {
            "method": "auto",
            "privacy": "disabled"
          },
          "nameservers": [],
          "nameservers.configuration": [],
          "timeservers": [
            "pool.ntp.org"
          ],
          "timeservers.configuration": [],
          "domains": [],
          "domains.configuration": [],
          "proxy": {
            "method": "direct"
          },
          "proxy.configuration": {},
          "provider": {}
        }
      },
      {
        "service": "wifi_ec086b181ee3_53494e4754454c2d35333630_managed_psk",
        "properties": {
          "type": "wifi",
          "security": [
            "psk"
          ],
          "state": "idle",
          "strength": 58,
          "favorite": false,
          "immutable": false,
          "autoconnect": false,
          "name": "SINGTEL-5360",
          "ethernet": {
            "method": "auto",
            "interface": "wlp0s12u3",
            "address": "EC:08:6B:18:1E:E3",
            "mtu": 1500
          },
          "ipv4": {},
          "ipv4.configuration": {
            "method": "dhcp"
          },
          "ipv6": {},
          "ipv6.configuration": {
            "method": "auto",
            "privacy": "disabled"
          },
          "nameservers": [],
          "nameservers.configuration": [],
          "timeservers": [],
          "timeservers.configuration": [],
          "domains": [],
          "domains.configuration": [],
          "proxy": {},
          "proxy.configuration": {},
          "provider": {}
        }
      },
      {
        "service": "wifi_ec086b181ee3_436861726c6f74746520262043686c6f65_managed_psk",
        "properties": {
          "type": "wifi",
          "security": [
            "psk",
            "wps"
          ],
          "state": "idle",
          "strength": 36,
          "favorite": false,
          "immutable": false,
          "autoconnect": false,
          "name": "Charlotte & Chloe",
          "ethernet": {
            "method": "auto",
            "interface": "wlp0s12u3",
            "address": "EC:08:6B:18:1E:E3",
            "mtu": 1500
          },
          "ipv4": {},
          "ipv4.configuration": {
            "method": "dhcp"
          },
          "ipv6": {},
          "ipv6.configuration": {
            "method": "auto",
            "privacy": "disabled"
          },
          "nameservers": [],
          "nameservers.configuration": [],
          "timeservers": [],
          "timeservers.configuration": [],
          "domains": [],
          "domains.configuration": [],
          "proxy": {},
          "proxy.configuration": {},
          "provider": {}
        }
      },
      {
        "service": "wifi_ec086b181ee3_42656c6c6128477565737429_managed_psk",
        "properties": {
          "type": "wifi",
          "security": [
            "psk"
          ],
          "state": "idle",
          "strength": 31,
          "favorite": false,
          "immutable": false,
          "autoconnect": false,
          "name": "Coffee Shop (Guest)",
          "ethernet": {
            "method": "auto",
            "interface": "wlp0s12u3",
            "address": "EC:08:6B:18:1E:E3",
            "mtu": 1500
          },
          "ipv4": {},
          "ipv4.configuration": {
            "method": "dhcp"
          },
          "ipv6": {},
          "ipv6.configuration": {
            "method": "auto",
            "privacy": "disabled"
          },
          "nameservers": [],
          "nameservers.configuration": [],
          "timeservers": [],
          "timeservers.configuration": [],
          "domains": [],
          "domains.configuration": [],
          "proxy": {},
          "proxy.configuration": {},
          "provider": {}
        }
      },
      {
        "service": "bluetooth_6030D46655A7_D0817A5ABC5E",
        "properties": {
          "type": "bluetooth",
          "security": [],
          "state": "idle",
          "favorite": false,
          "immutable": false,
          "autoconnect": false,
          "name": "Matt's iPhone",
          "ethernet": {
            "method": "auto"
          },
          "ipv4": {},
          "ipv4.configuration": {
            "method": "dhcp"
          },
          "ipv6": {},
          "ipv6.configuration": {
            "method": "auto",
            "privacy": "disabled"
          },
          "nameservers": [],
          "nameservers.configuration": [],
          "timeservers": [],
          "timeservers.configuration": [],
          "domains": [],
          "domains.configuration": [],
          "proxy": {},
          "proxy.configuration": {},
          "provider": {}
        }
      }
    ]
  },
  ...
}
### agent_response Verb After receiving an *agent event* the client must send back important information to the service, which is usually a passphase and respective id.
{
  "fields": {
    "passphrase": "hunter2"
  },
  "id": 1
}
## Events ### technologies Event
{
  "technology": "wifi",
  "action": "added",
  "properties": {
    "name": "WiFi",
    "type": "wifi",
    "powered": false,
    "connected": false,
    "tethering": false
  }
}
### technology_properties Event
{
  "technology": "wifi",
  "properties": {
    "powered": true
  }
}
### servicse Event
{
  "values": [
   {
     "service": "ethernet_080027ccbf98_cable",
     "action": "unchanged"
   },
   {
     "service": "ethernet_0800271b86ef_cable",
     "action": "unchanged"
   },
   {
     "service": "wifi_ec086b181ee3_415355535f4d31_managed_psk",
     "action": "changed",
     "properties": {
       "type": "wifi",
       "security": [
          "psk",
          "wps"
       ],
       "state": "idle",
       "strength": 95,
       "favorite": false,
       "immutable": false,
       "autoconnect": false,
       "name": "ASUS_M1",
       "ethernet": {
         "method": "auto",
         "interface": "wlan0",
         "address": "EC:08:6B:18:1E:E3",
         "mtu": 1500
       },
       "ipv4": {},
       "ipv4.configuration": {
         "method": "dhcp"
       },
       "ipv6": {},
       "ipv6.configuration": {
         "method": "auto",
         "privacy": "disabled"
       },
       "nameservers": [],
       "nameservers.configuration": [],
       "timeservers": [],
       "timeservers.configuration": [],
       "domains": [],
       "domains.configuration": [],
       "proxy": {},
       "proxy.configuration": {},
       "provider": {}
     }
   },
   ...
  ]
}
### service_properties Event
{
  "service": "wifi_ec086b181ee3_415355535f4d31_managed_psk",
  "properties": {
    "strength": 94
  }
}
### agent Event
{
  "id": 1,
  "method": "request-input",
  "service": "wifi_ec086b181ee3_415355535f4d31_managed_psk",
  "fields": {
    "passphrase": {
      "type": "psk",
      "requirement": "mandatory"
    },
    "wps": {
      "type": "wpspin",
      "requirement": "alternate"
    }
  }
}