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 groups the information about the NeoFS storage group.
// The storage group consists of objects from single container.
message StorageGroup {
  // validation_data_size carries the total size of the payloads of the storage
  // group members.
  uint64 validation_data_size = 1;

  // validation_hash carries 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.
  bytes validation_hash = 2;

  // expiration_epoch carries last NeoFS epoch number of the storage group
  // lifetime.
  uint64 expiration_epoch = 3;

  // Members carries the list of identifiers of the object storage group members.
  // The list is strictly ordered.
  repeated neo.fs.v2.refs.ObjectID members = 4;
}