// 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;
  }

  enum EnrollmentStatus {
    ENROLLMENT_STATUS_UNKNOWN = 0;
    ENROLLMENT_STATUS_ENROLLING = 1;
    ENROLLMENT_STATUS_FAILURE = 2;
    ENROLLMENT_STATUS_SUCCESS = 3;
  }

  optional string domain = 1;
  optional Connectivity connectivity = 2;
  optional UpdateStatus update_status = 3;
  optional EnrollmentStatus enrollment_status = 4;
  repeated string paired_controllers = 5;
  optional string permanent_id = 6;
}

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;
  optional string enrolling_domain = 3;
}

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;
}

message AddNetworkParameters {
  optional string onc_spec = 1;
}

message AddNetwork {
  optional int32 api_version = 1;
  optional AddNetworkParameters parameters = 2;
}

message Reboot {
  optional int32 api_version = 1;
  optional bool reboot = 2 [default = true];
}
