chromium/ash/webui/eche_app_ui/proto/exo_messages.proto

syntax = "proto3";

package ash.eche_app.proto;

option optimize_for = LITE_RUNTIME;

message ExoMessage {
  oneof payload {
    SignalingRequest request = 1;
    SignalingResponse response = 2;
    SignalingAction action = 3;
    ProximityPing proximity_ping = 4;
    SendAppsSetupRequest apps_setup_request = 5;
    SendAppsSetupResponse apps_setup_response = 6;
    GetAppsAccessStateRequest apps_access_state_request = 7;
    GetAppsAccessStateResponse apps_access_state_response = 8;
    StatusChange status_change = 9;
    PolicyStateChange policy_state_change = 10;
  }
}

message NetworkInfo {
  bytes ssid = 1;
  bool mobile_network = 2;
}

message SignalingRequest {
  bytes data = 1;
}

message SignalingResponse {
  bytes data = 1;
  optional NetworkInfo network_info = 2;
}

message SignalingAction {
  ActionType action_type = 1;
}

enum ActionType {
  ACTION_UNKNOWN = 0;
  ACTION_TEAR_DOWN = 1;
}

message ProximityPing {
}

enum AppsAccessState {
  ACCESS_UNKNOWN = 0;
  ACCESS_NOT_GRANTED = 1;
  ACCESS_GRANTED = 2;
}

enum Result {
  RESULT_UNKNOWN = 0;
  RESULT_NO_ERROR = 1;
  RESULT_ERROR_USER_REJECTED = 2;
  RESULT_ERROR_ACTION_TIMEOUT = 3;
  RESULT_ERROR_ACTION_CANCELED = 4;
  RESULT_ERROR_SYSTEM = 5;
  RESULT_ACK_BY_EXO = 6;
}

message SendAppsSetupRequest {}
message SendAppsSetupResponse {
  Result result = 1;
  AppsAccessState apps_access_state = 2;
}

message GetAppsAccessStateRequest {}
message GetAppsAccessStateResponse {
  Result result = 1;
  AppsAccessState apps_access_state = 2;
}

message StatusChange {
  StatusChangeType type = 1;
}

enum StatusChangeType {
  TYPE_UNKNOWN = 0;
  TYPE_STREAM_START = 1;
  TYPE_STREAM_STOP = 2;
}

message PolicyStateChange {
  AppStreamingPolicy app_policy_state = 1;
}

enum AppStreamingPolicy {
  APP_POLICY_UNKNOWN = 0;
  APP_POLICY_DISABLED = 1;
  APP_POLICY_ENABLED = 2;
}