// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Events related to adding and removing users from Chrome.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
import "components/reporting/proto/synced/session_affiliated_user.proto";
package ash.reporting;
enum ConnectionType {
CRD_CONNECTION_UNKNOWN = 0;
CRD_CONNECTION_DIRECT = 1;
CRD_CONNECTION_RELAY = 2;
CRD_CONNECTION_STUN = 3;
}
// To be reported when host is started.
message CRDHostStarted {}
// To be reported when client is connected or reconnected.
message CRDClientConnected {
optional string host_ip = 1;
optional string client_ip = 2;
optional string session_id = 3;
optional ConnectionType connection_type = 4;
}
// To be reported when client is disconnected.
message CRDClientDisconnected {
optional string host_ip = 1;
optional string client_ip = 2;
optional string session_id = 3;
}
// To be reported when host is ended.
message CRDHostEnded {}
message CRDRecord {
optional int64 event_timestamp_sec = 1; // Seconds since epoch.
optional .reporting.SessionAffiliatedUser host_user =
2; // Omitted if not affiliated.
oneof event {
CRDHostStarted started = 3;
CRDClientConnected connected = 4;
CRDClientDisconnected disconnected = 5;
CRDHostEnded ended = 6;
}
optional bool is_kiosk_session = 7; // true if CRD session runs on Kiosk
}