<?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="GetDeviceInfo">
      <arg name="device_info" 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="user_role" 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="SetCommandVisibility">
      <tp:docstring>
        Changes the visibility of command definition.
        Parameters:
          names       - a list of the full names of commands to update
                        (each command name should look like 'base.identify').
          visibility  - the new visibility state of the command:
                        "none"  - Command is hidden/unavailable.
                        "local" - Command is available to local clients only.
                        "cloud" - Command is available to cloud clients only.
                        "all"   - Command is available to both local and cloud
                                  clients.
      </tp:docstring>
      <arg name="names" type="as" direction="in"/>
      <arg name="visibility" type="s" direction="in"/>
      <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>
    <method name="EnableWiFiBootstrapping">
      <tp:docstring>
        Enables WiFiBootstrapping if manual bootstrapping is selected via the
        configuration file.  This will re-purpose a WiFi interface for use in
        bootstrapping.  This breaks any existing WiFi connection on the
        interface.
      </tp:docstring>
      <arg name="listener_path" type="o" direction="in">
        <tp:docstring>
          Path to an object exposed by the caller.  This object must support
          the org.chromium.Buffet.WiFiBootstrapListener interface.
        </tp:docstring>
      </arg>
      <arg name="options" type="a{sv}" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="DisableWiFiBootstrapping">
      <tp:docstring>
        If a previous call to EnableWiFiBootstrapping was successful and
        has not been cancelled or completed since, disables that bootstrapping
        process.
      </tp:docstring>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="EnableGCDBootstrapping">
      <arg name="listener_path" type="o" direction="in"/>
      <arg name="options" type="a{sv}" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="DisableGCDBootstrapping">
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </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="CommandDefs" type="s" access="read">
      <tp:docstring>
        JSON with command definitions of the devices.
      </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="AnonymousAccessRole" type="s" access="read">
      <tp:docstring>
        Max role granted to anonymous user when accessing device over the local
        network.
        Possible values include:
          "none": Device does not allow local access by unauthenticated users.

          "viewer": Device allows everyone authenticated to access device.

          "user": Device allows everyone authenticated as 'user' to access
                  device.

          "owner": Device allows everyone authenticated as 'owner' to access
                  device.
      </tp:docstring>
    </property>
    <property name="WiFiBootstrapState" type="s" access="read">
      <tp:docstring>
        Contains one of the following values describing the state of WiFi
        bootstrapping:
          “disabled” - Bootstrapping has been disabled in the config file.
          “waiting” - buffet is waiting to receive WiFi credentials from
                      a paired peer.
          “connecting” - buffet has received WiFi credentials, and is now
                         attempting to connect to a WiFi network.
          “monitoring” - buffet is monitoring our connectivity and will
                         re-enable bootstrapping if connectivity fails in
                         automatic mode.

       Note: more values may be added later to this list.
      </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>
