// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package cobalt;

import "src/pb/common.proto";

message SystemProfileHistory {
  repeated SystemProfileSnapshot snapshots = 1;
}

message SystemProfileSnapshot {
  uint32 day_index_utc = 1;
  uint32 day_index_local = 2;

  uint32 hour_id_utc = 3;
  uint32 hour_id_local = 4;

  // The exact unix timestamp at which this snapshot was made. This is used to distinguish multiple
  // SystemProfile changes within the same day/hour.
  uint32 timestamp = 5;

  SystemProfile system_profile = 6;
}
