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

// Copyright 2021 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 reporting;

enum UserRemovalReason {
  UNKNOWN = 0;
  LOCAL_USER_INITIATED = 1;
  REMOTE_ADMIN_INITIATED = 2;
  LOCAL_USER_INITIATED_ON_REQUIRED_UPDATE = 3;
  DEVICE_EPHEMERAL_USERS_ENABLED = 4;
  GAIA_REMOVED = 5;
  MISCONFIGURED_USER = 6;
}

// To be reported when a user is added.
message UserAddedEvent {}

// To be reported when a user is removed
message UserRemovedEvent {
  optional UserRemovalReason reason = 1;
}

message UserAddedRemovedRecord {
  // Seconds since epoch.
  optional int64 event_timestamp_sec = 1;

  // Omitted if the user is not affiliated.
  optional SessionAffiliatedUser affiliated_user = 2;

  oneof event {
    UserAddedEvent user_added_event = 3;
    UserRemovedEvent user_removed_event = 4;
  }
}