syntax = "proto3";

package neo.fs.v2.storagegroup;

option go_package = "github.com/nspcc-dev/neofs-api-go/v2/storagegroup/grpc;storagegroup";
option csharp_namespace = "NeoFS.API.v2.StorageGroup";

import "refs/types.proto";

// StorageGroup keeps verification information for Data Audit sessions. Objects
// that require payed storage guaranties are gathered in `StorageGroups` with
// additional information used for proof of storage. `StorageGroup` only
// contains objects from the same container.
message StorageGroup {
  // Total size of the payloads of objects in the storage group
  uint64 validation_data_size = 1;

  // Homomorphic hash from the concatenation of the payloads of the storage
  // group members. The order of concatenation is the same as the order of the
  // members in the `members` field.
  neo.fs.v2.refs.Checksum validation_hash = 2;

  // Last NeoFS epoch number of the storage group lifetime
  uint64 expiration_epoch = 3;

  // Strictly ordered list of storage group member objects
  repeated neo.fs.v2.refs.ObjectID members = 4;
}