<?xml version="1.0" encoding="UTF-8" ?>

<node name="/org/chromium/Buffet/Manager"
      xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.chromium.Buffet.Manager">
    <tp:docstring>
      The Manager is responsible for global state of Buffet.  It exposes
      interfaces which affect the entire device such as device registration and
      device state.
    </tp:docstring>
    <method name="CheckDeviceRegistered">
      <arg name="device_id" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="async"/>
    </method>
    <method name="RegisterDevice">
      <arg name="ticket_id" type="s" direction="in"/>
      <arg name="device_id" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="async"/>
    </method>
    <method name="UpdateDeviceInfo">
      <arg name="name" type="s" direction="in"/>
      <arg name="description" type="s" direction="in"/>
      <arg name="location" type="s" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="UpdateServiceConfig">
      <arg name="client_id" type="s" direction="in"/>
      <arg name="client_secret" type="s" direction="in"/>
      <arg name="api_key" type="s" direction="in"/>
      <arg name="oauth_url" type="s" direction="in"/>
      <arg name="service_url" type="s" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="UpdateState">
      <arg name="property_set" type="a{sv}" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="async"/>
    </method>
    <method name="GetState">
      <arg name="device_info" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="AddCommand">
      <arg name="json_command" type="s" direction="in"/>
      <arg name="id" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="async"/>
    </method>
    <method name="GetCommand">
      <arg name="id" type="s" direction="in"/>
      <arg name="json_command" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="async"/>
    </method>
    <method name="TestMethod">
      <arg name="message" type="s" direction="in"/>
      <arg name="echoed_message" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="simple"/>
    </method>
    <property name="Status" type="s" access="read">
      <tp:docstring>
        State of Buffet's cloud registration.
        Possible values include:
          "unconfigured": Buffet has no credentials, either from an out of box
                          state, or because device was unregistered.

          "connecting": Buffet is registered and attempting to connect to the
                        cloud.

          "connected": Buffet is online and connected to the cloud. Note that
                       only this state requires internet connectivity.

          "invalid_credentials": Buffet has credentials, but they are no longer
                                 valid.
      </tp:docstring>
    </property>
    <property name="DeviceId" type="s" access="read">
      <tp:docstring>
        GCD ID if the device is registered or empty otherwise.
      </tp:docstring>
    </property>
    <property name="State" type="s" access="read">
      <tp:docstring>
        JSON with state of the devices.
      </tp:docstring>
    </property>
    <property name="OemName" type="s" access="read">
      <tp:docstring>
        Name of the device maker.
      </tp:docstring>
    </property>
    <property name="ModelName" type="s" access="read">
      <tp:docstring>
        Name of the device model.
      </tp:docstring>
    </property>
    <property name="ModelId" type="s" access="read">
      <tp:docstring>
        Five character code assigned by the cloud registry of device models.
      </tp:docstring>
    </property>
    <property name="Name" type="s" access="read">
      <tp:docstring>
        Human readable name of the device. Must not be empty.
      </tp:docstring>
    </property>
    <property name="Description" type="s" access="read">
      <tp:docstring>
        Human readable description of the device.
      </tp:docstring>
    </property>
    <property name="Location" type="s" access="read">
      <tp:docstring>
        Location of the device.
      </tp:docstring>
    </property>
    <property name="GCDBootstrapState" type="s" access="read">
      <tp:docstring>
        Contains one of the following values describing the state of GCD
        bootstrapping:
          “disabled” - GCD registration has been disabled in the config file.
          “offline” - GCD registration is unknown because the device is offline.
          “connecting” - GCD registration is unknown because the device is still
                         connecting to the cloud.
          “waiting” - Waiting to be configured with GCD credentials.
          “registering” - Registering the device with the GCD servers.
          “online” - Device is online and registered with GCD servers.

        Note: more values may be added later to this list.

        Clients that wish to present a single linear bootstrapping flow to users
        may treat GCD bootstrapping states as a suffix to WiFi bootstrapping
        states.  If we have no cloud connectivity, we cannot possibly do GCD
        registration/credential verification.
      </tp:docstring>
    </property>
    <property name="PairingInfo" type="a{sv}" access="read">
      <tp:docstring>
        Describes the state of device pairing. While no pairing attempt is in
        progress, this dictionary will be empty. When a client initiates a
        pairing transaction via /privet/v3/pairing/start, dictionary will
        contain the following keys:
          “sessionId” - ID of the pairing session; generated by device
          “pairingMode” - Selected type of pairing from /privet/v3/pairing/start
                          (e.g. “pinCode” or “embeddedCode”)
          “code” - The pin code or embedded code as appropriate to the
                   “pairingMode” value.  See design document.
                   This value will be a string.
      </tp:docstring>
    </property>
  </interface>
</node>
