chromium/components/segmentation_platform/internal/proto/signal_storage_config.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.

syntax = "proto2";
option optimize_for = LITE_RUNTIME;

package segmentation_platform.proto;

import "components/segmentation_platform/public/proto/types.proto";

// Contains storage related information about a particular signal useful for
// determining eligibility for model evaluation and DB cleanups.
message SignalStorageConfig {
  // The name hash of the user action/histogram or the metric hash of the ukm
  // event.
  optional uint64 name_hash = 1;

  // The event hash of the ukm event. Only filled if signal type is UKM_EVENT.
  optional uint64 event_hash = 5;

  // The type of the signal.
  optional SignalType signal_type = 2;

  // Number of seconds to store a particular signal.
  optional int64 storage_length_s = 3;

  // Set to the first time we received a model that required collecting this
  // signal, in seconds from windows epoch.
  optional int64 collection_start_time_s = 4;
}

// Top level message for the signal storage config containing all signals across
// different models.
message SignalStorageConfigs {
  // The list of all signal configs.
  repeated SignalStorageConfig signals = 1;
}