syntax = "proto3";
package service;
option go_package = "github.com/nspcc-dev/neofs-api-go/service";
option csharp_namespace = "NeoFS.API.Service";

import "github.com/gogo/protobuf/gogoproto/gogo.proto";

option (gogoproto.stable_marshaler_all) = true;

// RequestMetaHeader contains information about request meta headers
// (should be embedded into message)
message RequestMetaHeader {
    // TTL must be larger than zero, it decreased in every NeoFS Node
    uint32 TTL     = 1;
    // Epoch for user can be empty, because node sets epoch to the actual value
    uint64 Epoch   = 2;
    // Version defines protocol version
    // TODO: not used for now, should be implemented in future
    uint32 Version = 3;
    // Raw determines whether the request is raw or not
    bool Raw       = 4;
}

// ResponseMetaHeader contains meta information based on request processing by server
// (should be embedded into message)
message ResponseMetaHeader {
    // Current NeoFS epoch on server
    uint64 Epoch   = 1;
    // Version defines protocol version
    // TODO: not used for now, should be implemented in future
    uint32 Version = 2;
}