//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/trace/chrome/chrome_metadata.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace/chrome/chrome_metadata.proto.
 */
export const file_protos_perfetto_trace_chrome_chrome_metadata: GenFile = /*@__PURE__*/
  fileDesc("CjJwcm90b3MvcGVyZmV0dG8vdHJhY2UvY2hyb21lL2Nocm9tZV9tZXRhZGF0YS5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIpcCChRDaHJvbWVNZXRhZGF0YVBhY2tldBJPChtiYWNrZ3JvdW5kX3RyYWNpbmdfbWV0YWRhdGEYASABKAsyKi5wZXJmZXR0by5wcm90b3MuQmFja2dyb3VuZFRyYWNpbmdNZXRhZGF0YRIbChNjaHJvbWVfdmVyc2lvbl9jb2RlGAIgASgFEhoKEmVuYWJsZWRfY2F0ZWdvcmllcxgDIAEoCRJLChJmaWVsZF90cmlhbF9oYXNoZXMYBCADKAsyLy5wZXJmZXR0by5wcm90b3MuQ2hyb21lTWV0YWRhdGFQYWNrZXQuRmluY2hIYXNoGigKCUZpbmNoSGFzaBIMCgRuYW1lGAEgASgNEg0KBWdyb3VwGAIgASgNIpUIChlCYWNrZ3JvdW5kVHJhY2luZ01ldGFkYXRhEk4KDnRyaWdnZXJlZF9ydWxlGAEgASgLMjYucGVyZmV0dG8ucHJvdG9zLkJhY2tncm91bmRUcmFjaW5nTWV0YWRhdGEuVHJpZ2dlclJ1bGUSTAoMYWN0aXZlX3J1bGVzGAIgAygLMjYucGVyZmV0dG8ucHJvdG9zLkJhY2tncm91bmRUcmFjaW5nTWV0YWRhdGEuVHJpZ2dlclJ1bGUSGgoSc2NlbmFyaW9fbmFtZV9oYXNoGAMgASgHGr0GCgtUcmlnZ2VyUnVsZRJYCgx0cmlnZ2VyX3R5cGUYASABKA4yQi5wZXJmZXR0by5wcm90b3MuQmFja2dyb3VuZFRyYWNpbmdNZXRhZGF0YS5UcmlnZ2VyUnVsZS5UcmlnZ2VyVHlwZRJcCg5oaXN0b2dyYW1fcnVsZRgCIAEoCzJELnBlcmZldHRvLnByb3Rvcy5CYWNrZ3JvdW5kVHJhY2luZ01ldGFkYXRhLlRyaWdnZXJSdWxlLkhpc3RvZ3JhbVJ1bGUSVAoKbmFtZWRfcnVsZRgDIAEoCzJALnBlcmZldHRvLnByb3Rvcy5CYWNrZ3JvdW5kVHJhY2luZ01ldGFkYXRhLlRyaWdnZXJSdWxlLk5hbWVkUnVsZRIRCgluYW1lX2hhc2gYBCABKAcaagoNSGlzdG9ncmFtUnVsZRIbChNoaXN0b2dyYW1fbmFtZV9oYXNoGAEgASgGEh0KFWhpc3RvZ3JhbV9taW5fdHJpZ2dlchgCIAEoAxIdChVoaXN0b2dyYW1fbWF4X3RyaWdnZXIYAyABKAMalgIKCU5hbWVkUnVsZRJeCgpldmVudF90eXBlGAEgASgOMkoucGVyZmV0dG8ucHJvdG9zLkJhY2tncm91bmRUcmFjaW5nTWV0YWRhdGEuVHJpZ2dlclJ1bGUuTmFtZWRSdWxlLkV2ZW50VHlwZRIhChljb250ZW50X3RyaWdnZXJfbmFtZV9oYXNoGAIgASgGIoUBCglFdmVudFR5cGUSDwoLVU5TUEVDSUZJRUQQABITCg9TRVNTSU9OX1JFU1RPUkUQARIOCgpOQVZJR0FUSU9OEAISCwoHU1RBUlRVUBADEhAKDFJFQUNIRURfQ09ERRAEEhMKD0NPTlRFTlRfVFJJR0dFUhAFEg4KCVRFU1RfUlVMRRDoByKHAQoLVHJpZ2dlclR5cGUSFwoTVFJJR0dFUl9VTlNQRUNJRklFRBAAEjYKMk1PTklUT1JfQU5EX0RVTVBfV0hFTl9TUEVDSUZJQ19ISVNUT0dSQU1fQU5EX1ZBTFVFEAESJwojTU9OSVRPUl9BTkRfRFVNUF9XSEVOX1RSSUdHRVJfTkFNRUQQAg");

/**
 * Metadata for chrome traces.
 *
 * @generated from message perfetto.protos.ChromeMetadataPacket
 */
export type ChromeMetadataPacket = Message<"perfetto.protos.ChromeMetadataPacket"> & {
  /**
   * @generated from field: optional perfetto.protos.BackgroundTracingMetadata background_tracing_metadata = 1;
   */
  backgroundTracingMetadata?: BackgroundTracingMetadata;

  /**
   * Version code of Chrome used by Android's Play Store. This field is only set
   * on Android.
   *
   * @generated from field: optional int32 chrome_version_code = 2;
   */
  chromeVersionCode: number;

  /**
   * Comma separated list of enabled categories for tracing. The list of
   * possible category strings are listed in code
   * base/trace_event/builtin_categories.h.
   *
   * @generated from field: optional string enabled_categories = 3;
   */
  enabledCategories: string;

  /**
   * List of Finch study/groups that apply to this trace.
   *
   * @generated from field: repeated perfetto.protos.ChromeMetadataPacket.FinchHash field_trial_hashes = 4;
   */
  fieldTrialHashes: ChromeMetadataPacket_FinchHash[];
};

/**
 * Describes the message perfetto.protos.ChromeMetadataPacket.
 * Use `create(ChromeMetadataPacketSchema)` to create a new message.
 */
export const ChromeMetadataPacketSchema: GenMessage<ChromeMetadataPacket> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 0);

/**
 * Finch name and group based on the ActiveGroupId.
 *
 * @generated from message perfetto.protos.ChromeMetadataPacket.FinchHash
 */
export type ChromeMetadataPacket_FinchHash = Message<"perfetto.protos.ChromeMetadataPacket.FinchHash"> & {
  /**
   * @generated from field: optional uint32 name = 1;
   */
  name: number;

  /**
   * @generated from field: optional uint32 group = 2;
   */
  group: number;
};

/**
 * Describes the message perfetto.protos.ChromeMetadataPacket.FinchHash.
 * Use `create(ChromeMetadataPacket_FinchHashSchema)` to create a new message.
 */
export const ChromeMetadataPacket_FinchHashSchema: GenMessage<ChromeMetadataPacket_FinchHash> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 0, 0);

/**
 * Metadata related to background tracing scenarios, states and triggers.
 *
 * @generated from message perfetto.protos.BackgroundTracingMetadata
 */
export type BackgroundTracingMetadata = Message<"perfetto.protos.BackgroundTracingMetadata"> & {
  /**
   * Specifies the rule that caused the trace to be uploaded.
   *
   * @generated from field: optional perfetto.protos.BackgroundTracingMetadata.TriggerRule triggered_rule = 1;
   */
  triggeredRule?: BackgroundTracingMetadata_TriggerRule;

  /**
   * List of all active triggers in current session, when trace was triggered.
   *
   * @generated from field: repeated perfetto.protos.BackgroundTracingMetadata.TriggerRule active_rules = 2;
   */
  activeRules: BackgroundTracingMetadata_TriggerRule[];

  /**
   * Hash of the scenario name.
   *
   * @generated from field: optional fixed32 scenario_name_hash = 3;
   */
  scenarioNameHash: number;
};

/**
 * Describes the message perfetto.protos.BackgroundTracingMetadata.
 * Use `create(BackgroundTracingMetadataSchema)` to create a new message.
 */
export const BackgroundTracingMetadataSchema: GenMessage<BackgroundTracingMetadata> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 1);

/**
 * Information about a trigger rule defined in the experiment config.
 *
 * @generated from message perfetto.protos.BackgroundTracingMetadata.TriggerRule
 */
export type BackgroundTracingMetadata_TriggerRule = Message<"perfetto.protos.BackgroundTracingMetadata.TriggerRule"> & {
  /**
   * @generated from field: optional perfetto.protos.BackgroundTracingMetadata.TriggerRule.TriggerType trigger_type = 1;
   */
  triggerType: BackgroundTracingMetadata_TriggerRule_TriggerType;

  /**
   * @generated from field: optional perfetto.protos.BackgroundTracingMetadata.TriggerRule.HistogramRule histogram_rule = 2;
   */
  histogramRule?: BackgroundTracingMetadata_TriggerRule_HistogramRule;

  /**
   * @generated from field: optional perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule named_rule = 3;
   */
  namedRule?: BackgroundTracingMetadata_TriggerRule_NamedRule;

  /**
   * Hash of the rule name.
   *
   * @generated from field: optional fixed32 name_hash = 4;
   */
  nameHash: number;
};

/**
 * Describes the message perfetto.protos.BackgroundTracingMetadata.TriggerRule.
 * Use `create(BackgroundTracingMetadata_TriggerRuleSchema)` to create a new message.
 */
export const BackgroundTracingMetadata_TriggerRuleSchema: GenMessage<BackgroundTracingMetadata_TriggerRule> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 1, 0);

/**
 * Configuration of histogram trigger.
 *
 * @generated from message perfetto.protos.BackgroundTracingMetadata.TriggerRule.HistogramRule
 */
export type BackgroundTracingMetadata_TriggerRule_HistogramRule = Message<"perfetto.protos.BackgroundTracingMetadata.TriggerRule.HistogramRule"> & {
  /**
   * UMA histogram name hash, same as HistogramEventProto.name_hash.
   *
   * @generated from field: optional fixed64 histogram_name_hash = 1;
   */
  histogramNameHash: bigint;

  /**
   * Range of values of the histogram that activates trigger.
   *
   * @generated from field: optional int64 histogram_min_trigger = 2;
   */
  histogramMinTrigger: bigint;

  /**
   * @generated from field: optional int64 histogram_max_trigger = 3;
   */
  histogramMaxTrigger: bigint;
};

/**
 * Describes the message perfetto.protos.BackgroundTracingMetadata.TriggerRule.HistogramRule.
 * Use `create(BackgroundTracingMetadata_TriggerRule_HistogramRuleSchema)` to create a new message.
 */
export const BackgroundTracingMetadata_TriggerRule_HistogramRuleSchema: GenMessage<BackgroundTracingMetadata_TriggerRule_HistogramRule> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 1, 0, 0);

/**
 * Configuration of named trigger.
 *
 * @generated from message perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule
 */
export type BackgroundTracingMetadata_TriggerRule_NamedRule = Message<"perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule"> & {
  /**
   * @generated from field: optional perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule.EventType event_type = 1;
   */
  eventType: BackgroundTracingMetadata_TriggerRule_NamedRule_EventType;

  /**
   * If |event_type| is CONTENT_TRIGGER, then this stores the hash of the
   * content-trigger that actually fired.
   *
   * @generated from field: optional fixed64 content_trigger_name_hash = 2;
   */
  contentTriggerNameHash: bigint;
};

/**
 * Describes the message perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule.
 * Use `create(BackgroundTracingMetadata_TriggerRule_NamedRuleSchema)` to create a new message.
 */
export const BackgroundTracingMetadata_TriggerRule_NamedRuleSchema: GenMessage<BackgroundTracingMetadata_TriggerRule_NamedRule> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 1, 0, 1);

/**
 * @generated from enum perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule.EventType
 */
export enum BackgroundTracingMetadata_TriggerRule_NamedRule_EventType {
  /**
   * @generated from enum value: UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: SESSION_RESTORE = 1;
   */
  SESSION_RESTORE = 1,

  /**
   * @generated from enum value: NAVIGATION = 2;
   */
  NAVIGATION = 2,

  /**
   * @generated from enum value: STARTUP = 3;
   */
  STARTUP = 3,

  /**
   * @generated from enum value: REACHED_CODE = 4;
   */
  REACHED_CODE = 4,

  /**
   * @generated from enum value: CONTENT_TRIGGER = 5;
   */
  CONTENT_TRIGGER = 5,

  /**
   * @generated from enum value: TEST_RULE = 1000;
   */
  TEST_RULE = 1000,
}

/**
 * Describes the enum perfetto.protos.BackgroundTracingMetadata.TriggerRule.NamedRule.EventType.
 */
export const BackgroundTracingMetadata_TriggerRule_NamedRule_EventTypeSchema: GenEnum<BackgroundTracingMetadata_TriggerRule_NamedRule_EventType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 1, 0, 1, 0);

/**
 * @generated from enum perfetto.protos.BackgroundTracingMetadata.TriggerRule.TriggerType
 */
export enum BackgroundTracingMetadata_TriggerRule_TriggerType {
  /**
   * @generated from enum value: TRIGGER_UNSPECIFIED = 0;
   */
  TRIGGER_UNSPECIFIED = 0,

  /**
   * Traces are triggered by specific range of values of an UMA histogram.
   *
   * @generated from enum value: MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE = 1;
   */
  MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE = 1,

  /**
   * Traces are triggered by specific named events in chromium codebase,
   * like "second-update-failure".
   *
   * @generated from enum value: MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED = 2;
   */
  MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED = 2,
}

/**
 * Describes the enum perfetto.protos.BackgroundTracingMetadata.TriggerRule.TriggerType.
 */
export const BackgroundTracingMetadata_TriggerRule_TriggerTypeSchema: GenEnum<BackgroundTracingMetadata_TriggerRule_TriggerType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_chrome_chrome_metadata, 1, 0, 0);

