syntax = "proto3"; package session; option go_package = "github.com/nspcc-dev/neofs-api-go/session"; option csharp_namespace = "NeoFS.API.Session"; import "service/meta.proto"; import "service/verify.proto"; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; option (gogoproto.stable_marshaler_all) = true; service Session { // Create opens new session between the client and the server rpc Create (CreateRequest) returns (CreateResponse); } // CreateRequest carries an information necessary for opening a session message CreateRequest { // OwnerID carries an identifier of a session initiator bytes OwnerID = 1 [(gogoproto.nullable) = false, (gogoproto.customtype) = "OwnerID"]; // Lifetime carries a lifetime of the session service.TokenLifetime Lifetime = 2 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; // RequestMetaHeader contains information about request meta headers (should be embedded into message) service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; } // CreateResponse carries an information about the opened session message CreateResponse { // ID carries an identifier of session token bytes ID = 1 [(gogoproto.customtype) = "TokenID", (gogoproto.nullable) = false]; // SessionKey carries a session public key bytes SessionKey = 2; }