<?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="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>
