// 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.

// DISCLAIMER: Please keep messages and enums in this file in sync with
// http://google3/chrome/cros/dpanel/data/devices/proto/requests.proto file.

syntax = "proto3";

option optimize_for = LITE_RUNTIME;

package support_tool;

// DataCollectorType represent each DataCollector that can be added to
// SupportToolHandler to collect data.
enum DataCollectorType {
  DATA_COLLECTOR_TYPE_UNSPECIFIED = 0;
  CHROME_INTERNAL = 1;
  CRASH_IDS = 2;
  MEMORY_DETAILS = 3;
  CHROMEOS_UI_HIERARCHY = 4;
  CHROMEOS_COMMAND_LINE = 5;
  CHROMEOS_DEVICE_EVENT = 6;
  CHROMEOS_IWL_WIFI_DUMP = 7;
  CHROMEOS_TOUCH_EVENTS = 8;
  reserved 9, 10;
  CHROMEOS_REVEN = 11;
  CHROMEOS_DBUS = 12;
  CHROMEOS_NETWORK_ROUTES = 13;
  CHROMEOS_SHILL = 14;
  POLICIES = 15;
  CHROMEOS_SYSTEM_STATE = 16;
  CHROMEOS_SYSTEM_LOGS = 17;
  CHROMEOS_CHROME_USER_LOGS = 18;
  CHROMEOS_BLUETOOTH_FLOSS = 19;
  CHROMEOS_CONNECTED_INPUT_DEVICES = 20;
  CHROMEOS_TRAFFIC_COUNTERS = 21;
  CHROMEOS_VIRTUAL_KEYBOARD = 22;
  CHROMEOS_NETWORK_HEALTH = 23;
  PERFORMANCE = 24;
  SIGN_IN_STATE = 25;
  CHROMEOS_APP_SERVICE = 26;
  CHROMEOS_PERIODIC_LOG_UPLOAD_SYSTEM_LOGS = 27;
  CHROMEOS_KIOSK_APP_LEVEL_LOGS = 28;
  CHROME_UPDATER = 29;
}

// PiiType represent the different known categories of PII that can exist in
// logs. The types here are based on PII types listed in
// components/feedback/pii_types.h.
enum PiiType {
  PII_TYPE_UNSPECIFIED = 0;
  ANDROID_APP_STORAGE_PATH = 1;
  EMAIL = 2;
  GAIA_ID = 3;
  IPP_ADDRESS = 4;
  IP_ADDRESS = 5;
  CELLULAR_LOCATION_INFO = 6;
  MAC_ADDRESS = 7;
  UI_HIEARCHY_WINDOW_TITLE = 8;
  URL = 9;
  SERIAL = 10;
  SSID = 11;
  STABLE_IDENTIFIER = 12;
  VOLUME_LABEL = 13;
  EAP = 14;
}

// Used for storing the information about which data colllectors will be used
// when Support Tool creates the support packet.
message DataCollectionModule {
  // List of DataCollectors that will be used when Support Tool collects data.
  repeated DataCollectorType included_data_collectors = 1;
}
