// Copyright 2020 The Chromium OS 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 arc.data_snapshotd;

// Holds all files in snapshot directory.
message SnapshotDirectory {
  // Lexicographically sorted files by name.
  repeated SnapshotFile files = 1;
}

// Holds file information required for integrity.
message SnapshotFile {
  // File name.
  string name = 1;
  // Selinux context from getfilecon().
  bytes selinux_context = 2;
  // File statistics from stat().
  Stat stat = 3;
  // SHA256 hash of file content.
  bytes content_hash = 5;
}

// Holds information from stat() required to ensure integrity.
message Stat {
  // Inode number.
  uint64 ino = 1;
  // Protection mode.
  uint32 mode = 2;
  // User ID of owner.
  uint32 uid = 3;
  // Group ID of owner.
  uint32 gid = 4;
  // Total size in bytes.
  int64 size = 5;
  // Time of last modification.
  int64 modification_time = 6;
  // Do not add time of last access & change, because these values change
  // when the file is open or copied.
}
