// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Protocol buffer definitions for Syncable FileSystem.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package pairing_api;

message HostStatusParameters {
  enum Connectivity {
    CONNECTIVITY_UNTESTED = 0;
    CONNECTIVITY_NONE = 1;
    CONNECTIVITY_LIMITED = 2;
    CONNECTIVITY_CONNECTING = 3;
    CONNECTIVITY_CONNECTED = 4;
  }

  enum UpdateStatus {
    UPDATE_STATUS_UNKNOWN = 0;
    UPDATE_STATUS_UPDATING = 1;
    UPDATE_STATUS_REBOOTING = 2;
    UPDATE_STATUS_UPDATED = 3;
  }

  optional string domain = 1;
  optional Connectivity connectivity = 2;
  optional UpdateStatus update_status = 3;
  repeated string paired_controllers = 4;
}

message HostStatus {
  optional int32 api_version = 1;
  optional HostStatusParameters parameters = 2;
}

message ConfigureHostParameters {
  optional bool accepted_eula = 1;
  optional string lang = 2;
  optional string timezone = 3;
  optional bool send_reports = 4;
  optional string keyboard_layout = 5;
}

message ConfigureHost {
  optional int32 api_version = 1;
  optional ConfigureHostParameters parameters = 2;
}

message PairDevicesParameters {
  optional string controller_access_token = 1;
  optional string admin_access_token = 2;
}

message PairDevices {
  optional int32 api_version = 1;
  optional PairDevicesParameters parameters = 2;
}

message CompleteSetupParameters {
  optional bool add_another = 1;
}

message CompleteSetup {
  optional int32 api_version = 1;
  optional CompleteSetupParameters parameters = 2;
}

message ErrorParameters {
  optional int32 code = 1;
  optional string description = 2;
}

message Error {
  optional int32 api_version = 1;
  optional ErrorParameters parameters = 2;
}