// Copyright 2022 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 the OS of a device.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
import "components/reporting/proto/synced/session_affiliated_user.proto";
package ash.reporting;
enum OsOperationType {
OS_OPERATION_TYPE_UNKNOWN = 0;
// To be reported when the process is initiated.
INITIATED = 1;
// To be reported when the process ended successfully.
SUCCESS = 2;
// To be reported when the process has failed.
FAILURE = 3;
}
// Chrome OS update event.
message UpdateEvent {
optional string error = 1;
}
// Chrome OS rollback event.
message RollbackEvent {
optional string error = 1;
}
// Chrome OS powerwash event.
message PowerwashEvent {
optional bool remote_request = 1;
}
message OsEventsRecord {
// Seconds since epoch.
optional int64 event_timestamp_sec = 1;
optional .reporting.SessionAffiliatedUser affiliated_user =
2; // Omitted if not affiliated.
optional string current_os_version = 3;
optional string target_os_version = 4;
optional string current_channel = 5;
optional string target_channel = 6;
oneof event {
UpdateEvent update_event = 7;
RollbackEvent rollback_event = 8;
PowerwashEvent powerwash_event = 9;
}
optional OsOperationType os_operation_type = 10;
// The event based log upload ID related to this event.
optional string log_upload_id = 11;
}