chromium/chrome/browser/policy/messaging_layer/proto/synced/os_events.proto

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