[#172] Update neofs-api with rich docs and JSON attributes

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
remotes/KirillovDenis/feature/refactor-sig-rpc
Alex Vanin 2020-10-19 15:34:51 +03:00 committed by Alex Vanin
parent 6a69a896e5
commit 80b7033606
13 changed files with 819 additions and 692 deletions

View File

@ -28,13 +28,7 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Message defines the request body of Balance method.
//
// To indicate the account for which the balance is requested, it's identifier
// is used.
//
// To gain access to the requested information, the request body must be formed
// according to the requirements from the system specification.
// BalanceRequest message
type BalanceRequest struct {
// Body of the balance request message.
Body *BalanceRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -42,8 +36,8 @@ type BalanceRequest struct {
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -104,10 +98,13 @@ func (m *BalanceRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
//Request body
// To indicate the account for which the balance is requested, it's identifier
// is used. It can be any existing account in NeoFS sidechain `Balance` smart
// contract. If omitted, client implementation MUST set it to the request's
// signer `OwnerID`.
type BalanceRequest_Body struct {
// Carries user identifier in NeoFS system for which the balance
// is requested.
// Valid user identifier in `OwnerID` format for which the balance is
// requested. Required field.
OwnerId *grpc1.OwnerID `protobuf:"bytes,1,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -154,9 +151,7 @@ func (m *BalanceRequest_Body) GetOwnerId() *grpc1.OwnerID {
return nil
}
// Message defines the response body of Balance method.
//
// The amount of funds is calculated in decimal numbers.
// BalanceResponse message
type BalanceResponse struct {
// Body of the balance response message.
Body *BalanceResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -164,8 +159,8 @@ type BalanceResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -226,9 +221,10 @@ func (m *BalanceResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
//Request body
// The amount of funds in GAS token for the `OwnerID`'s account requested.
// Balance is `Decimal` format to avoid precision issues with rounding.
type BalanceResponse_Body struct {
// Carries the amount of funds on the account.
// Amount of funds in GAS token for the requested account.
Balance *Decimal `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -328,7 +324,7 @@ const _ = grpc2.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AccountingServiceClient interface {
// Returns the amount of funds for the requested NeoFS account.
// Returns the amount of funds in GAS token for the requested NeoFS account.
Balance(ctx context.Context, in *BalanceRequest, opts ...grpc2.CallOption) (*BalanceResponse, error)
}
@ -351,7 +347,7 @@ func (c *accountingServiceClient) Balance(ctx context.Context, in *BalanceReques
// AccountingServiceServer is the server API for AccountingService service.
type AccountingServiceServer interface {
// Returns the amount of funds for the requested NeoFS account.
// Returns the amount of funds in GAS token for the requested NeoFS account.
Balance(context.Context, *BalanceRequest) (*BalanceResponse, error)
}

View File

@ -22,11 +22,18 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Decimal represents the decimal numbers.
// Standard floating point data type can't be used in NeoFS due to inexactness
// of the result when doing lots of small number operations. To solve the lost
// precision issue, special `Decimal` format is used for monetary computations.
//
// Please see [The General Decimal Arithmetic
// Specification](http://speleotrove.com/decimal/) for detailed problem
// description.
type Decimal struct {
// value carries number value.
// Number in smallest Token fractions.
Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
// precision carries value precision.
// Precision value indicating how many smallest fractions can be in one
// integer.
Precision uint32 `protobuf:"varint,2,opt,name=precision,proto3" json:"precision,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`

242
v2/acl/grpc/types.pb.go generated
View File

@ -27,14 +27,14 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type Role int32
const (
// Unspecified role, default value.
// Unspecified role, default value
Role_ROLE_UNSPECIFIED Role = 0
// User target rule is applied if sender is the owner of the container.
// User target rule is applied if sender is the owner of the container
Role_USER Role = 1
// System target rule is applied if sender is the storage node within the
// container or inner ring node.
// container or inner ring node
Role_SYSTEM Role = 2
// Others target rule is applied if sender is not user or system target.
// Others target rule is applied if sender is not user nor system target
Role_OTHERS Role = 3
)
@ -92,11 +92,12 @@ func (MatchType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_8233b6696fb3e24f, []int{1}
}
// Operation is an enumeration of operation types.
// Request's operation type to match if the rule is applicable to a particular
// request.
type Operation int32
const (
// Unspecified operation, default value.
// Unspecified operation, default value
Operation_OPERATION_UNSPECIFIED Operation = 0
// Get
Operation_GET Operation = 1
@ -144,11 +145,12 @@ func (Operation) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_8233b6696fb3e24f, []int{2}
}
// Action is an enumeration of EACL actions.
// Rule execution result action. Either allows or denies access if the rule's
// filters match.
type Action int32
const (
// Unspecified action, default value.
// Unspecified action, default value
Action_ACTION_UNSPECIFIED Action = 0
// Allow action
Action_ALLOW Action = 1
@ -176,7 +178,7 @@ func (Action) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_8233b6696fb3e24f, []int{3}
}
// Header is an enumeration of filtering header types.
// Enumeration of possible sources of Headers to apply filters.
type HeaderType int32
const (
@ -208,16 +210,16 @@ func (HeaderType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_8233b6696fb3e24f, []int{4}
}
// EACLRecord groups information about extended ACL rule.
// Describes a single eACL rule.
type EACLRecord struct {
// Operation carries type of operation.
Operation Operation `protobuf:"varint,1,opt,name=operation,json=Operation,proto3,enum=neo.fs.v2.acl.Operation" json:"operation,omitempty"`
// Action carries ACL target action.
Action Action `protobuf:"varint,2,opt,name=action,json=Action,proto3,enum=neo.fs.v2.acl.Action" json:"action,omitempty"`
// filters carries set of filters.
Filters []*EACLRecord_Filter `protobuf:"bytes,3,rep,name=filters,json=Filters,proto3" json:"filters,omitempty"`
// targets carries information about extended ACL target list.
Targets []*EACLRecord_Target `protobuf:"bytes,4,rep,name=targets,json=Targets,proto3" json:"targets,omitempty"`
// NeoFS request Verb to match
Operation Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=neo.fs.v2.acl.Operation" json:"operation,omitempty"`
// Rule execution result. Either allows or denies access if filters match.
Action Action `protobuf:"varint,2,opt,name=action,proto3,enum=neo.fs.v2.acl.Action" json:"action,omitempty"`
// List of filters to match and see if rule is applicable
Filters []*EACLRecord_Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
// List of target subjects to apply ACL rule to
Targets []*EACLRecord_Target `protobuf:"bytes,4,rep,name=targets,proto3" json:"targets,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -284,16 +286,16 @@ func (m *EACLRecord) GetTargets() []*EACLRecord_Target {
return nil
}
// Filter definition
// Filter to check particular properties of the request or object.
type EACLRecord_Filter struct {
// Header carries type of header.
HeaderType HeaderType `protobuf:"varint,1,opt,name=header_type,json=HeaderType,proto3,enum=neo.fs.v2.acl.HeaderType" json:"header_type,omitempty"`
// MatchType carries type of match.
MatchType MatchType `protobuf:"varint,2,opt,name=match_type,json=MatchType,proto3,enum=neo.fs.v2.acl.MatchType" json:"match_type,omitempty"`
// header_name carries name of filtering header.
HeaderName string `protobuf:"bytes,3,opt,name=header_name,json=Name,proto3" json:"header_name,omitempty"`
// header_val carries value of filtering header.
HeaderVal string `protobuf:"bytes,4,opt,name=header_val,json=Value,proto3" json:"header_val,omitempty"`
// Define if Object or Request header will be used
HeaderType HeaderType `protobuf:"varint,1,opt,name=header_type,json=headerType,proto3,enum=neo.fs.v2.acl.HeaderType" json:"header_type,omitempty"`
// Match operation type
MatchType MatchType `protobuf:"varint,2,opt,name=match_type,json=matchType,proto3,enum=neo.fs.v2.acl.MatchType" json:"match_type,omitempty"`
// Name of the Header to use
HeaderName string `protobuf:"bytes,3,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"`
// Expected Header Value or pattern to match
HeaderVal string `protobuf:"bytes,4,opt,name=header_val,json=value,proto3" json:"header_val,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -360,12 +362,13 @@ func (m *EACLRecord_Filter) GetHeaderVal() string {
return ""
}
// Information about extended ACL target.
// Target to apply ACL rule. Can be a subject's role class or a list of public
// keys to match.
type EACLRecord_Target struct {
// target carries target of ACL rule.
Role Role `protobuf:"varint,1,opt,name=role,json=Role,proto3,enum=neo.fs.v2.acl.Role" json:"role,omitempty"`
// key_list carries public keys of ACL target.
KeyList [][]byte `protobuf:"bytes,2,rep,name=key_list,json=Keys,proto3" json:"key_list,omitempty"`
// Target subject's role class
Role Role `protobuf:"varint,1,opt,name=role,proto3,enum=neo.fs.v2.acl.Role" json:"role,omitempty"`
// List of public keys to identify target subject
Keys [][]byte `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -411,23 +414,25 @@ func (m *EACLRecord_Target) GetRole() Role {
return Role_ROLE_UNSPECIFIED
}
func (m *EACLRecord_Target) GetKeyList() [][]byte {
func (m *EACLRecord_Target) GetKeys() [][]byte {
if m != nil {
return m.KeyList
return m.Keys
}
return nil
}
// EACLRecord carries the information about extended ACL rules.
// Extended ACL rules table. Defined a list of ACL rules additionally to Basic
// ACL. Extended ACL rules can be attached to the container and can be updated
// or may be defined in `BearerToken` structure. Please see the corresponding
// NeoFS Technical Specification's section for detailed description.
type EACLTable struct {
// eACL format version.
// Effectively the version of API library used to create eACL Table
// eACL format version. Effectively the version of API library used to create
// eACL Table.
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// Carries identifier of the container that should use given
// access control rules.
ContainerId *grpc.ContainerID `protobuf:"bytes,2,opt,name=container_id,json=ContainerID,proto3" json:"container_id,omitempty"`
// Records carries list of extended ACL rule records.
Records []*EACLRecord `protobuf:"bytes,3,rep,name=records,json=Records,proto3" json:"records,omitempty"`
// Identifier of the container that should use given access control rules
ContainerId *grpc.ContainerID `protobuf:"bytes,2,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
// List of Extended ACL rules
Records []*EACLRecord `protobuf:"bytes,3,rep,name=records,proto3" json:"records,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -487,7 +492,12 @@ func (m *EACLTable) GetRecords() []*EACLRecord {
return nil
}
// BearerToken has information about request ACL rules with limited lifetime
// BearerToken allows to attach signed Extended ACL rules to the request in
// `RequestMetaHeader`. If container's Basic ACL rules allow, the attached rule
// set will be checked instead of one attached to the container itself. Just
// like [JWT](https://jwt.io), it has a limited lifetime and scope, hence can be
// used in the similar use cases, like providing authorisation to externally
// authenticated party.
type BearerToken struct {
// Bearer Token body
Body *BearerToken_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -545,12 +555,15 @@ func (m *BearerToken) GetSignature() *grpc.Signature {
return nil
}
// Bearer Token body
// Bearer Token body structure contains Extended ACL table issued by container
// owner with additional information preventing token's abuse.
type BearerToken_Body struct {
// EACLTable carries table of extended ACL rules
// Table of Extended ACL rules to use instead of the ones attached to the
// container
EaclTable *EACLTable `protobuf:"bytes,1,opt,name=eacl_table,json=eaclTable,proto3" json:"eacl_table,omitempty"`
// OwnerID carries identifier of the token owner
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
// `OwnerID` to whom the token was issued. MUST match with the request
// originator's `OwnerID`
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
// Token expiration and valid time period parameters
Lifetime *BearerToken_Body_TokenLifetime `protobuf:"bytes,3,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -612,7 +625,8 @@ func (m *BearerToken_Body) GetLifetime() *BearerToken_Body_TokenLifetime {
return nil
}
// Lifetime parameters of the token. Filed names taken from rfc7519.
// Lifetime parameters of the token. Filed names taken from
// [rfc7519](https://tools.ietf.org/html/rfc7519).
type BearerToken_Body_TokenLifetime struct {
// Expiration Epoch
Exp uint64 `protobuf:"varint,1,opt,name=exp,proto3" json:"exp,omitempty"`
@ -697,62 +711,62 @@ func init() {
func init() { proto.RegisterFile("v2/acl/grpc/types.proto", fileDescriptor_8233b6696fb3e24f) }
var fileDescriptor_8233b6696fb3e24f = []byte{
// 869 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0xdd, 0x6e, 0xe2, 0x46,
0x14, 0x5e, 0xff, 0x04, 0xc3, 0x21, 0x5b, 0x59, 0xd3, 0x6e, 0x16, 0xa8, 0x94, 0xa2, 0xdc, 0x34,
0x42, 0xc2, 0x68, 0x89, 0xda, 0x95, 0xb6, 0xea, 0x4a, 0x06, 0x26, 0x81, 0x96, 0x60, 0x76, 0x6c,
0x52, 0xa5, 0x37, 0x68, 0x30, 0x03, 0xb1, 0xd6, 0xb1, 0x91, 0xed, 0xb0, 0xa5, 0xb7, 0x55, 0xdf,
0xa1, 0xcf, 0xd0, 0xdb, 0x7d, 0x89, 0x5e, 0xf6, 0x11, 0xaa, 0xf4, 0xb6, 0x0f, 0x51, 0xcd, 0x18,
0x27, 0xc4, 0x9b, 0xd5, 0xde, 0x30, 0xc7, 0x73, 0xbe, 0xef, 0x9c, 0xef, 0x7c, 0x33, 0xd8, 0xf0,
0x7c, 0xdd, 0x6e, 0x51, 0xd7, 0x6f, 0x2d, 0xa3, 0x95, 0xdb, 0x4a, 0x36, 0x2b, 0x16, 0x1b, 0xab,
0x28, 0x4c, 0x42, 0xf4, 0x34, 0x60, 0xa1, 0xb1, 0x88, 0x8d, 0x75, 0xdb, 0xa0, 0xae, 0x5f, 0xab,
0xac, 0xdb, 0xad, 0x88, 0x2d, 0xe2, 0x0f, 0x80, 0x47, 0xff, 0x29, 0x00, 0xd8, 0xec, 0x0e, 0x09,
0x73, 0xc3, 0x68, 0x8e, 0xbe, 0x85, 0x52, 0xb8, 0x62, 0x11, 0x4d, 0xbc, 0x30, 0xa8, 0x48, 0x75,
0xe9, 0xf8, 0xb3, 0x76, 0xc5, 0x78, 0x50, 0xcb, 0xb0, 0xb2, 0x3c, 0x29, 0xdd, 0x85, 0xa8, 0x09,
0x05, 0xea, 0x0a, 0x92, 0x2c, 0x48, 0xcf, 0x72, 0x24, 0x53, 0x24, 0x49, 0x21, 0x5d, 0xd1, 0x2b,
0xd0, 0x16, 0x9e, 0x9f, 0xb0, 0x28, 0xae, 0x28, 0x75, 0xe5, 0xb8, 0xdc, 0xae, 0xe7, 0xf0, 0xf7,
0x92, 0x8c, 0x53, 0x01, 0x24, 0x5a, 0xba, 0xc6, 0x9c, 0x9b, 0xd0, 0x68, 0xc9, 0x92, 0xb8, 0xa2,
0x7e, 0x8a, 0xeb, 0x08, 0x20, 0xd1, 0xd2, 0x35, 0xae, 0xbd, 0x97, 0xa0, 0x90, 0xd6, 0x41, 0xaf,
0xa0, 0x7c, 0xc5, 0xe8, 0x9c, 0x45, 0x53, 0x6e, 0xc7, 0x76, 0xd6, 0x6a, 0xae, 0x54, 0x5f, 0x20,
0x9c, 0xcd, 0x8a, 0x11, 0xb8, 0x8f, 0xd1, 0x4b, 0x80, 0x6b, 0x9a, 0xb8, 0x57, 0x29, 0x55, 0x7e,
0xd4, 0xa6, 0x73, 0x0e, 0x10, 0xcc, 0xd2, 0x5d, 0x88, 0xaa, 0x77, 0x4d, 0x03, 0x7a, 0xcd, 0x2a,
0x4a, 0x5d, 0x3a, 0x2e, 0x11, 0x75, 0x44, 0xaf, 0x79, 0x0a, 0xb6, 0xa9, 0x35, 0xf5, 0x2b, 0xaa,
0xc8, 0xec, 0x5d, 0x50, 0xff, 0x86, 0xd5, 0x06, 0x50, 0x48, 0x07, 0x40, 0x5f, 0x83, 0x1a, 0x85,
0x7e, 0xa6, 0xf6, 0xf3, 0x5c, 0x4b, 0x12, 0xfa, 0x8c, 0xa8, 0xfc, 0x17, 0x1d, 0x40, 0xf1, 0x2d,
0xdb, 0x4c, 0x7d, 0x2f, 0x4e, 0x2a, 0x72, 0x5d, 0x39, 0xde, 0x27, 0xea, 0x8f, 0x6c, 0x13, 0x1f,
0xbd, 0x97, 0xa0, 0xc4, 0xfd, 0x71, 0xe8, 0xcc, 0x67, 0xe8, 0x05, 0x68, 0x6b, 0x16, 0xc5, 0xd9,
0x59, 0x97, 0xdb, 0xcf, 0x77, 0x2a, 0xf2, 0xfb, 0x62, 0x5c, 0xa4, 0x69, 0x92, 0xe1, 0xd0, 0x6b,
0xd8, 0x77, 0xc3, 0x20, 0xa1, 0x5e, 0xc0, 0xa2, 0xa9, 0x37, 0x17, 0xc3, 0x97, 0xdb, 0x5f, 0xe6,
0x79, 0xdd, 0x0c, 0x33, 0xe8, 0x91, 0xf2, 0xce, 0x03, 0x3a, 0x01, 0x2d, 0x12, 0x67, 0x93, 0x9d,
0x7c, 0xf5, 0xa3, 0xa7, 0x47, 0xb4, 0x74, 0x8d, 0x8f, 0x7e, 0x53, 0xa0, 0xdc, 0x61, 0x34, 0x62,
0x91, 0x13, 0xbe, 0x65, 0x01, 0x3a, 0x01, 0x75, 0x16, 0xce, 0x37, 0x5b, 0xd1, 0x5f, 0xe5, 0x2a,
0xec, 0x20, 0x8d, 0x4e, 0x38, 0xdf, 0x10, 0x01, 0x46, 0x2f, 0xa1, 0x14, 0x7b, 0xcb, 0x80, 0x26,
0x37, 0x11, 0xdb, 0xca, 0xae, 0xe6, 0x65, 0xdb, 0x19, 0x80, 0xdc, 0x63, 0x6b, 0xbf, 0xcb, 0xa0,
0x76, 0xd2, 0x0a, 0xc0, 0xa8, 0xeb, 0x4f, 0x13, 0x6e, 0xde, 0xb6, 0x79, 0xe5, 0x11, 0xf9, 0xc2,
0x5c, 0x52, 0xe2, 0xd8, 0xd4, 0xe7, 0x36, 0x14, 0xc3, 0x77, 0x0f, 0x0c, 0xfb, 0xc0, 0x68, 0xeb,
0x5d, 0x6a, 0x96, 0x26, 0x80, 0x83, 0x39, 0x1a, 0x40, 0xd1, 0xf7, 0x16, 0x2c, 0xf1, 0xb6, 0xf7,
0xa4, 0xdc, 0x6e, 0x7e, 0x62, 0x4e, 0x43, 0x84, 0xc3, 0x2d, 0x89, 0xdc, 0xd1, 0x6b, 0x18, 0x9e,
0x3e, 0x48, 0x21, 0x1d, 0x14, 0xf6, 0xcb, 0x4a, 0x4c, 0xa0, 0x12, 0x1e, 0xf2, 0x9d, 0x60, 0xb6,
0x10, 0xe2, 0x54, 0xc2, 0x43, 0xbe, 0xe3, 0xd1, 0x44, 0xb4, 0x56, 0x09, 0x0f, 0x1b, 0xaf, 0x21,
0xbd, 0x5b, 0x5f, 0x80, 0x4e, 0xac, 0x21, 0x9e, 0x4e, 0x46, 0xf6, 0x18, 0x77, 0x07, 0xa7, 0x03,
0xdc, 0xd3, 0x9f, 0xa0, 0x22, 0xa8, 0x13, 0x1b, 0x13, 0x5d, 0x42, 0x00, 0x05, 0xfb, 0xd2, 0x76,
0xf0, 0xb9, 0x2e, 0xf3, 0xd8, 0x72, 0xfa, 0x98, 0xd8, 0xba, 0xd2, 0xb0, 0x60, 0xe7, 0x9f, 0x50,
0x83, 0x83, 0x73, 0xd3, 0xe9, 0xf6, 0xa7, 0xce, 0xe5, 0x38, 0x5f, 0x4a, 0x87, 0x7d, 0xdb, 0x21,
0x83, 0xd1, 0xd9, 0x14, 0xbf, 0x99, 0x98, 0x43, 0x5d, 0xe2, 0x2d, 0xb7, 0x3b, 0x23, 0xcb, 0xd9,
0xee, 0xca, 0x8d, 0x5f, 0x61, 0xe7, 0x0d, 0x54, 0x85, 0x67, 0xd6, 0x18, 0x13, 0xd3, 0x19, 0x58,
0xa3, 0x5c, 0x3d, 0x0d, 0x94, 0x33, 0xec, 0xe8, 0x12, 0xd7, 0xd8, 0xc7, 0x66, 0x4f, 0x97, 0xf9,
0xd6, 0x78, 0xe2, 0xe8, 0x0a, 0x17, 0xd8, 0xc3, 0x43, 0xec, 0x60, 0x5d, 0x15, 0xc2, 0xb1, 0x49,
0xba, 0x7d, 0x7d, 0x0f, 0xed, 0x43, 0xf1, 0x0c, 0x3b, 0xc4, 0x1c, 0x9d, 0x61, 0xbd, 0xc0, 0x15,
0x65, 0x4f, 0x7d, 0xd3, 0xee, 0xeb, 0x5a, 0xe3, 0x1b, 0xc8, 0xde, 0x65, 0x07, 0x80, 0xcc, 0xee,
0x23, 0x5d, 0x4b, 0xb0, 0x67, 0x0e, 0x87, 0xd6, 0x4f, 0x69, 0xdf, 0x1e, 0x1e, 0x5d, 0xea, 0x72,
0xe3, 0x7b, 0xd8, 0x7d, 0x8f, 0x1c, 0x00, 0xe2, 0x7a, 0x30, 0xc9, 0x51, 0xcb, 0xa0, 0x11, 0xfc,
0x66, 0x82, 0x6d, 0x27, 0xb5, 0xd3, 0xea, 0xfc, 0x80, 0xbb, 0x8e, 0x2e, 0x77, 0x2e, 0xfe, 0xba,
0x3d, 0x94, 0xfe, 0xbe, 0x3d, 0x94, 0xfe, 0xb9, 0x3d, 0x94, 0xfe, 0xf8, 0xf7, 0xf0, 0xc9, 0xcf,
0x2f, 0x96, 0x5e, 0x72, 0x75, 0x33, 0x33, 0xdc, 0xf0, 0xba, 0x15, 0xc4, 0x2b, 0xd7, 0x6d, 0xce,
0xd9, 0xba, 0x15, 0xb0, 0x70, 0x11, 0x37, 0xe9, 0xca, 0x6b, 0x2e, 0xc3, 0xd6, 0xce, 0x37, 0xe2,
0x3b, 0xea, 0xfa, 0x7f, 0xca, 0xfa, 0x88, 0x85, 0xa7, 0xb6, 0x61, 0x8e, 0x07, 0xfc, 0x2a, 0x99,
0xae, 0x3f, 0x2b, 0x88, 0x8f, 0xc1, 0xc9, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x66, 0x66, 0x9c,
0x8f, 0x50, 0x06, 0x00, 0x00,
// 865 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0xdd, 0x8e, 0xda, 0x46,
0x14, 0x8e, 0x7f, 0x16, 0x96, 0xc3, 0xa6, 0xb2, 0xa6, 0x4d, 0x02, 0x54, 0xda, 0xa0, 0xbd, 0xe9,
0x0a, 0x09, 0xa3, 0xb0, 0x6a, 0x23, 0xa5, 0x6a, 0x24, 0x03, 0xb3, 0x0b, 0x15, 0x8b, 0xc9, 0xd8,
0xa4, 0xda, 0xde, 0xa0, 0xc1, 0x0c, 0xac, 0x15, 0x63, 0x23, 0xdb, 0x4b, 0x4a, 0x6f, 0xab, 0xbe,
0x43, 0x9f, 0xa1, 0xb7, 0xbd, 0xea, 0x1b, 0xf4, 0xb2, 0x8f, 0x50, 0x6d, 0xef, 0xfb, 0x0c, 0xd5,
0x8c, 0x6d, 0xd8, 0x75, 0x36, 0xca, 0xdd, 0x99, 0x39, 0xdf, 0x77, 0xce, 0x77, 0xbe, 0x19, 0x8f,
0xe1, 0xd9, 0xa6, 0xdd, 0xa2, 0x8e, 0xd7, 0x5a, 0x86, 0x6b, 0xa7, 0x15, 0x6f, 0xd7, 0x2c, 0xd2,
0xd7, 0x61, 0x10, 0x07, 0xe8, 0xb1, 0xcf, 0x02, 0x7d, 0x11, 0xe9, 0x9b, 0xb6, 0x4e, 0x1d, 0xaf,
0x56, 0xd9, 0xb4, 0x5b, 0x21, 0x5b, 0x44, 0x1f, 0x00, 0x4f, 0xfe, 0x53, 0x00, 0xb0, 0xd1, 0x1d,
0x12, 0xe6, 0x04, 0xe1, 0x1c, 0x7d, 0x03, 0xa5, 0x60, 0xcd, 0x42, 0x1a, 0xbb, 0x81, 0x5f, 0x91,
0xea, 0xd2, 0xe9, 0x67, 0xed, 0x8a, 0x7e, 0xaf, 0x96, 0x6e, 0x66, 0x79, 0xb2, 0x87, 0xa2, 0x26,
0x14, 0xa8, 0x23, 0x48, 0xb2, 0x20, 0x3d, 0xc9, 0x91, 0x0c, 0x91, 0x24, 0x29, 0x08, 0xbd, 0x82,
0xe2, 0xc2, 0xf5, 0x62, 0x16, 0x46, 0x15, 0xa5, 0xae, 0x9c, 0x96, 0xdb, 0xf5, 0x1c, 0x7e, 0x2f,
0x49, 0x3f, 0x17, 0x40, 0x92, 0x11, 0x38, 0x37, 0xa6, 0xe1, 0x92, 0xc5, 0x51, 0x45, 0xfd, 0x14,
0xd7, 0x16, 0x40, 0x92, 0x11, 0x6a, 0x7f, 0x4a, 0x50, 0x48, 0xea, 0xa1, 0x57, 0x50, 0xbe, 0x66,
0x74, 0xce, 0xc2, 0x29, 0xb7, 0x23, 0x9d, 0xb5, 0x9a, 0x2b, 0xd5, 0x17, 0x08, 0x7b, 0xbb, 0x66,
0x04, 0xae, 0x77, 0x31, 0x7a, 0x09, 0xb0, 0xa2, 0xb1, 0x73, 0x9d, 0x50, 0xe5, 0x07, 0x6d, 0xba,
0xe4, 0x00, 0xc1, 0x2c, 0xad, 0xb2, 0x10, 0x3d, 0xdf, 0x35, 0xf5, 0xe9, 0x8a, 0x55, 0x94, 0xba,
0x74, 0x5a, 0xca, 0x2a, 0x8f, 0xe8, 0x8a, 0xa1, 0x2a, 0xa4, 0xab, 0xe9, 0x86, 0x7a, 0x15, 0x55,
0xe4, 0x0f, 0x36, 0xd4, 0xbb, 0x61, 0x35, 0x0c, 0x85, 0x64, 0x1c, 0xf4, 0x15, 0xa8, 0x61, 0xe0,
0x65, 0x9a, 0x3f, 0xcf, 0x35, 0x26, 0x81, 0xc7, 0x88, 0x00, 0x20, 0x04, 0xea, 0x3b, 0xb6, 0x8d,
0x2a, 0x72, 0x5d, 0x39, 0x3d, 0x22, 0x22, 0x3e, 0xf9, 0x43, 0x82, 0x12, 0x77, 0xc8, 0xa6, 0x33,
0x8f, 0xa1, 0x17, 0x50, 0xdc, 0xb0, 0x30, 0xca, 0x4e, 0xbb, 0xdc, 0x7e, 0x76, 0xa7, 0x1a, 0xbf,
0x31, 0xfa, 0xdb, 0x24, 0x4d, 0x32, 0x1c, 0x7a, 0x0d, 0x47, 0x4e, 0xe0, 0xc7, 0xd4, 0xf5, 0x59,
0x38, 0x75, 0xe7, 0x62, 0xfc, 0x72, 0xfb, 0xcb, 0x3c, 0xaf, 0x9b, 0x61, 0x06, 0x3d, 0x52, 0x76,
0xf6, 0x0b, 0x74, 0x06, 0xc5, 0x50, 0x9c, 0x4e, 0x76, 0xf6, 0xd5, 0x8f, 0x9e, 0x1f, 0xc9, 0x90,
0x27, 0xbf, 0x28, 0x50, 0xee, 0x30, 0x1a, 0xb2, 0xd0, 0x0e, 0xde, 0x31, 0x1f, 0x9d, 0x81, 0x3a,
0x0b, 0xe6, 0xdb, 0x54, 0xf4, 0xf3, 0x5c, 0x85, 0x3b, 0x48, 0xbd, 0x13, 0xcc, 0xb7, 0x44, 0x80,
0xd1, 0x4b, 0x28, 0x45, 0xee, 0xd2, 0xa7, 0xf1, 0x4d, 0xc8, 0x52, 0xd9, 0xd5, 0xbc, 0x6c, 0x2b,
0x03, 0x90, 0x3d, 0xb6, 0xf6, 0xab, 0x0c, 0x6a, 0x27, 0xa9, 0x00, 0x8c, 0x3a, 0xde, 0x34, 0xe6,
0xe6, 0xa5, 0xcd, 0x2b, 0x0f, 0xc8, 0x17, 0xe6, 0x92, 0x12, 0xc7, 0x26, 0x3e, 0xb7, 0xe1, 0x30,
0x78, 0x7f, 0xcf, 0xb0, 0x0f, 0x8c, 0x36, 0xdf, 0x27, 0x66, 0x15, 0x83, 0x24, 0x40, 0x03, 0x38,
0xf4, 0xdc, 0x05, 0x8b, 0xdd, 0xf4, 0xa6, 0x94, 0xdb, 0xcd, 0x4f, 0xcc, 0xa9, 0x8b, 0x70, 0x98,
0x92, 0xc8, 0x8e, 0x5e, 0xc3, 0xf0, 0xf8, 0x5e, 0x0a, 0x69, 0xa0, 0xb0, 0x9f, 0xd6, 0x62, 0x02,
0x95, 0xf0, 0x90, 0xef, 0xf8, 0xb3, 0x85, 0x10, 0xa7, 0x12, 0x1e, 0xf2, 0x1d, 0x97, 0xc6, 0xa2,
0xb5, 0x4a, 0x78, 0xd8, 0x78, 0x0d, 0x2a, 0xbf, 0x5d, 0xe8, 0x0b, 0xd0, 0x88, 0x39, 0xc4, 0xd3,
0xc9, 0xc8, 0x1a, 0xe3, 0xee, 0xe0, 0x7c, 0x80, 0x7b, 0xda, 0x23, 0x74, 0x08, 0xea, 0xc4, 0xc2,
0x44, 0x93, 0x10, 0x40, 0xc1, 0xba, 0xb2, 0x6c, 0x7c, 0xa9, 0xc9, 0x3c, 0x36, 0xed, 0x3e, 0x26,
0x96, 0xa6, 0x34, 0x4c, 0x28, 0xed, 0x3e, 0x0b, 0x54, 0x83, 0xa7, 0x97, 0x86, 0xdd, 0xed, 0x4f,
0xed, 0xab, 0x71, 0xbe, 0x94, 0x06, 0x47, 0x96, 0x4d, 0x06, 0xa3, 0x8b, 0x29, 0x7e, 0x33, 0x31,
0x86, 0x9a, 0xc4, 0x5b, 0xa6, 0x3b, 0x23, 0xd3, 0x4e, 0x77, 0xe5, 0xc6, 0xcf, 0x50, 0xda, 0x3d,
0x47, 0xa8, 0x0a, 0x4f, 0xcc, 0x31, 0x26, 0x86, 0x3d, 0x30, 0x47, 0xb9, 0x7a, 0x45, 0x50, 0x2e,
0xb0, 0xad, 0x49, 0x5c, 0x63, 0x1f, 0x1b, 0x3d, 0x4d, 0xe6, 0x5b, 0xe3, 0x89, 0xad, 0x29, 0x5c,
0x60, 0x0f, 0x0f, 0xb1, 0x8d, 0x35, 0x55, 0x08, 0xc7, 0x06, 0xe9, 0xf6, 0xb5, 0x03, 0x74, 0x04,
0x87, 0x17, 0xd8, 0x26, 0xc6, 0xe8, 0x02, 0x6b, 0x05, 0xae, 0x28, 0x5b, 0xf5, 0x0d, 0xab, 0xaf,
0x15, 0x1b, 0x5f, 0x43, 0x21, 0x79, 0xd5, 0xd0, 0x53, 0x40, 0x46, 0xf7, 0x81, 0xae, 0x25, 0x38,
0x30, 0x86, 0x43, 0xf3, 0x87, 0xa4, 0x6f, 0x0f, 0x8f, 0xae, 0x34, 0xb9, 0xf1, 0x1d, 0xc0, 0xfe,
0x55, 0xe1, 0x54, 0xae, 0x07, 0x93, 0x1c, 0xb5, 0x0c, 0x45, 0x82, 0xdf, 0x4c, 0xb0, 0x65, 0x27,
0x76, 0x9a, 0x9d, 0xef, 0x71, 0xd7, 0xd6, 0xe4, 0xce, 0xdb, 0xbf, 0x6e, 0x8f, 0xa5, 0xbf, 0x6f,
0x8f, 0xa5, 0x7f, 0x6e, 0x8f, 0xa5, 0xdf, 0xfe, 0x3d, 0x7e, 0xf4, 0xe3, 0x8b, 0xa5, 0x1b, 0x5f,
0xdf, 0xcc, 0x74, 0x27, 0x58, 0xb5, 0xfc, 0x68, 0xed, 0x38, 0xcd, 0x39, 0xdb, 0xb4, 0x7c, 0x16,
0x2c, 0xa2, 0x26, 0x5d, 0xbb, 0xcd, 0x65, 0xd0, 0xba, 0xf3, 0x97, 0xf8, 0x96, 0x3a, 0xde, 0xef,
0xb2, 0x36, 0x62, 0xc1, 0xb9, 0xa5, 0x1b, 0xe3, 0x01, 0xbf, 0x4a, 0x86, 0xe3, 0xcd, 0x0a, 0xe2,
0x77, 0x70, 0xf6, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x54, 0x26, 0xa8, 0x52, 0x06, 0x00,
0x00,
}
func (m *EACLRecord) Marshal() (dAtA []byte, err error) {
@ -895,11 +909,11 @@ func (m *EACLRecord_Target) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if len(m.KeyList) > 0 {
for iNdEx := len(m.KeyList) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.KeyList[iNdEx])
copy(dAtA[i:], m.KeyList[iNdEx])
i = encodeVarintTypes(dAtA, i, uint64(len(m.KeyList[iNdEx])))
if len(m.Keys) > 0 {
for iNdEx := len(m.Keys) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.Keys[iNdEx])
copy(dAtA[i:], m.Keys[iNdEx])
i = encodeVarintTypes(dAtA, i, uint64(len(m.Keys[iNdEx])))
i--
dAtA[i] = 0x12
}
@ -1209,8 +1223,8 @@ func (m *EACLRecord_Target) Size() (n int) {
if m.Role != 0 {
n += 1 + sovTypes(uint64(m.Role))
}
if len(m.KeyList) > 0 {
for _, b := range m.KeyList {
if len(m.Keys) > 0 {
for _, b := range m.Keys {
l = len(b)
n += 1 + l + sovTypes(uint64(l))
}
@ -1684,7 +1698,7 @@ func (m *EACLRecord_Target) Unmarshal(dAtA []byte) error {
}
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field KeyList", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
@ -1711,8 +1725,8 @@ func (m *EACLRecord_Target) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.KeyList = append(m.KeyList, make([]byte, postIndex-iNdEx))
copy(m.KeyList[len(m.KeyList)-1], dAtA[iNdEx:postIndex])
m.Keys = append(m.Keys, make([]byte, postIndex-iNdEx))
copy(m.Keys[len(m.Keys)-1], dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex

View File

@ -37,8 +37,8 @@ type PutRequest struct {
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -99,11 +99,15 @@ func (m *PutRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// Container creation request has container structure's signature as a
// separate field. It's not stored in sidechain, just verified on container
// creation by `Container` smart contract. `ContainerID` is a SHA256 hash of
// the stable-marshalled container strucutre, hence there is no need for
// additional signature checks.
type PutRequest_Body struct {
// Container to create in NeoFS.
// Container structure to register in NeoFS
Container *Container `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"`
//Signature of stable-marshalled container according to RFC-6979.
// Signature of a stable-marshalled container according to RFC-6979
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -165,8 +169,8 @@ type PutResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -227,9 +231,12 @@ func (m *PutResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// Container put response body contains information about the newly registered
// container as seen by `Container` smart contract. `ContainerID` can be
// calculated beforehand from the container structure and compared to the one
// returned here to make sure everything was done as expected.
type PutResponse_Body struct {
// container_id carries identifier of the new container.
// Unique identifier of the newly created container
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -284,8 +291,8 @@ type DeleteRequest struct {
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -346,12 +353,13 @@ func (m *DeleteRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// Container removal request body has a signed `ContainerID` as a proof of
// container owner's intent. The signature will be verified by `Container`
// smart contract, so signing algorithm must be supported by NeoVM.
type DeleteRequest_Body struct {
// container_id carries identifier of the container to delete
// from NeoFS.
// Identifier of the container to delete from NeoFS
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
// Signature of container id according to RFC-6979.
// `ContainerID` signed with the container owner's key according to RFC-6979
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -405,8 +413,8 @@ func (m *DeleteRequest_Body) GetSignature() *grpc1.Signature {
return nil
}
// DeleteResponse is empty because delete operation is asynchronous and done
// via consensus in inner ring nodes
// `DeleteResponse` has an empty body because delete operation is asynchronous
// and done via consensus in Inner Ring nodes.
type DeleteResponse struct {
// Body of container delete response message.
Body *DeleteResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -414,8 +422,8 @@ type DeleteResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -476,7 +484,8 @@ func (m *DeleteResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// `DeleteResponse` has an empty body because delete operation is asynchronous
// and done via consensus in Inner Ring nodes.
type DeleteResponse_Body struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -524,8 +533,8 @@ type GetRequest struct {
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -586,9 +595,9 @@ func (m *GetRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// Get container structure request body.
type GetRequest_Body struct {
// container_id carries identifier of the container to get.
// Identifier of the container to get
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -643,8 +652,8 @@ type GetResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -705,9 +714,10 @@ func (m *GetResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// Get container response body does not have container structure signature. It
// was already verified on container creation.
type GetResponse_Body struct {
// Container that has been requested.
// Requested container structure
Container *Container `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -756,14 +766,14 @@ func (m *GetResponse_Body) GetContainer() *Container {
// List containers
type ListRequest struct {
// Body of list containers request message.
// Body of list containers request message
Body *ListRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -824,9 +834,9 @@ func (m *ListRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// List containers request body.
type ListRequest_Body struct {
// owner_id carries identifier of the container owner.
// Identifier of the container owner
OwnerId *grpc1.OwnerID `protobuf:"bytes,1,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -881,8 +891,8 @@ type ListResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -943,9 +953,9 @@ func (m *ListResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// List containers response body.
type ListResponse_Body struct {
// ContainerIDs carries list of identifiers of the containers that belong to the owner.
// List of `ContainerID`s belonging to the requested `OwnerID`
ContainerIds []*grpc1.ContainerID `protobuf:"bytes,1,rep,name=container_ids,json=containerIds,proto3" json:"container_ids,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1000,8 +1010,8 @@ type SetExtendedACLRequest struct {
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1062,11 +1072,12 @@ func (m *SetExtendedACLRequest) GetVerifyHeader() *grpc.RequestVerificationHeade
return nil
}
// Request body
// Set Extended ACL request body does not have separate `ContainerID`
// reference. It will be taken from `EACLTable.container_id` field.
type SetExtendedACLRequest_Body struct {
// Extended ACL to set for the container.
// Extended ACL table to set for container
Eacl *grpc2.EACLTable `protobuf:"bytes,1,opt,name=eacl,proto3" json:"eacl,omitempty"`
// Signature of stable-marshalled Extended ACL according to RFC-6979.
// Signature of stable-marshalled Extended ACL table according to RFC-6979
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1128,8 +1139,8 @@ type SetExtendedACLResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1190,7 +1201,9 @@ func (m *SetExtendedACLResponse) GetVerifyHeader() *grpc.ResponseVerificationHea
return nil
}
// Response body
// `SetExtendedACLResponse` has an empty body because the operation is
// asynchronous and update should be reflected in `Container` smart contract's
// storage after next block is issued in sidechain.
type SetExtendedACLResponse_Body struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1238,8 +1251,8 @@ type GetExtendedACLRequest struct {
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1300,9 +1313,9 @@ func (m *GetExtendedACLRequest) GetVerifyHeader() *grpc.RequestVerificationHeade
return nil
}
// Request body
// Get Extended ACL request body
type GetExtendedACLRequest_Body struct {
// container_id carries identifier of the container that has Extended ACL.
// Identifier of the container having Extended ACL
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1357,8 +1370,8 @@ type GetExtendedACLResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1419,11 +1432,13 @@ func (m *GetExtendedACLResponse) GetVerifyHeader() *grpc.ResponseVerificationHea
return nil
}
// Response body
// Get Extended ACL Response body can be empty if the requested container did
// not have Extended ACL Table attached or Extended ACL was not allowed at
// container creation.
type GetExtendedACLResponse_Body struct {
// Extended ACL that has been requested if it was set up.
// Extended ACL requested, if available
Eacl *grpc2.EACLTable `protobuf:"bytes,1,opt,name=eacl,proto3" json:"eacl,omitempty"`
// Signature of stable-marshalled Extended ACL according to RFC-6979.
// Signature of stable-marshalled Extended ACL according to RFC-6979
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1574,27 +1589,26 @@ const _ = grpc3.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ContainerServiceClient interface {
// Put invokes 'Put' method in container smart-contract and returns
// response immediately. After new block in morph chain, request is verified
// by inner ring nodes. After one more block in morph chain, container
// added into smart-contract storage.
// `Put` invokes `Container` smart contract's `Put` method and returns
// response immediately. After a new block is issued in sidechain, request is
// verified by Inner Ring nodes. After one more block in sidechain, container
// is added into smart contract storage.
Put(ctx context.Context, in *PutRequest, opts ...grpc3.CallOption) (*PutResponse, error)
// Delete invokes 'Delete' method in container smart-contract and returns
// response immediately. After new block in morph chain, request is verified
// by inner ring nodes. After one more block in morph chain, container
// removed from smart-contract storage.
// `Delete` invokes `Container` smart contract's `Delete` method and returns
// response immediately. After a new block is issued in sidechain, request is
// verified by Inner Ring nodes. After one more block in sidechain, container
// is added into smart contract storage.
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc3.CallOption) (*DeleteResponse, error)
// Get returns container from container smart-contract storage.
// Returns container structure from `Container` smart contract storage.
Get(ctx context.Context, in *GetRequest, opts ...grpc3.CallOption) (*GetResponse, error)
// List returns all owner's containers from container smart-contract
// storage.
// Returns all owner's containers from 'Container` smart contract' storage.
List(ctx context.Context, in *ListRequest, opts ...grpc3.CallOption) (*ListResponse, error)
// SetExtendedACL invokes 'SetEACL' method in container smart-contract and
// returns response immediately. After new block in morph chain,
// Extended ACL added into smart-contract storage.
// Invokes 'SetEACL' method of 'Container` smart contract and returns response
// immediately. After one more block in sidechain, Extended ACL changes are
// added into smart contract storage.
SetExtendedACL(ctx context.Context, in *SetExtendedACLRequest, opts ...grpc3.CallOption) (*SetExtendedACLResponse, error)
// GetExtendedACL returns Extended ACL table and signature from container
// smart-contract storage.
// Returns Extended ACL table and signature from `Container` smart contract
// storage.
GetExtendedACL(ctx context.Context, in *GetExtendedACLRequest, opts ...grpc3.CallOption) (*GetExtendedACLResponse, error)
}
@ -1662,27 +1676,26 @@ func (c *containerServiceClient) GetExtendedACL(ctx context.Context, in *GetExte
// ContainerServiceServer is the server API for ContainerService service.
type ContainerServiceServer interface {
// Put invokes 'Put' method in container smart-contract and returns
// response immediately. After new block in morph chain, request is verified
// by inner ring nodes. After one more block in morph chain, container
// added into smart-contract storage.
// `Put` invokes `Container` smart contract's `Put` method and returns
// response immediately. After a new block is issued in sidechain, request is
// verified by Inner Ring nodes. After one more block in sidechain, container
// is added into smart contract storage.
Put(context.Context, *PutRequest) (*PutResponse, error)
// Delete invokes 'Delete' method in container smart-contract and returns
// response immediately. After new block in morph chain, request is verified
// by inner ring nodes. After one more block in morph chain, container
// removed from smart-contract storage.
// `Delete` invokes `Container` smart contract's `Delete` method and returns
// response immediately. After a new block is issued in sidechain, request is
// verified by Inner Ring nodes. After one more block in sidechain, container
// is added into smart contract storage.
Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
// Get returns container from container smart-contract storage.
// Returns container structure from `Container` smart contract storage.
Get(context.Context, *GetRequest) (*GetResponse, error)
// List returns all owner's containers from container smart-contract
// storage.
// Returns all owner's containers from 'Container` smart contract' storage.
List(context.Context, *ListRequest) (*ListResponse, error)
// SetExtendedACL invokes 'SetEACL' method in container smart-contract and
// returns response immediately. After new block in morph chain,
// Extended ACL added into smart-contract storage.
// Invokes 'SetEACL' method of 'Container` smart contract and returns response
// immediately. After one more block in sidechain, Extended ACL changes are
// added into smart contract storage.
SetExtendedACL(context.Context, *SetExtendedACLRequest) (*SetExtendedACLResponse, error)
// GetExtendedACL returns Extended ACL table and signature from container
// smart-contract storage.
// Returns Extended ACL table and signature from `Container` smart contract
// storage.
GetExtendedACL(context.Context, *GetExtendedACLRequest) (*GetExtendedACLResponse, error)
}

View File

@ -24,24 +24,24 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Container is a structure that defines object placement behaviour. Objects
// can be stored only within containers. They define placement rule, attributes
// and access control information. ID of the container is a 32 byte long
// SHA256 hash of stable-marshalled container message.
// Container is a structure that defines object placement behaviour. Objects can
// be stored only within containers. They define placement rule, attributes and
// access control information. ID of the container is a 32 byte long SHA256 hash
// of stable-marshalled container message.
type Container struct {
// Container format version.
// Effectively the version of API library used to create container
// Container format version. Effectively the version of API library used to
// create container.
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// OwnerID carries identifier of the container owner.
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
// Nonce is a 16 byte UUID, used to avoid collisions of container id.
// Identifier of the container owner
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
// Nonce is a 16 byte UUID, used to avoid collisions of container id
Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
// BasicACL contains access control rules for owner, system, others groups and
// permission bits for bearer token and Extended ACL.
BasicAcl uint32 `protobuf:"varint,4,opt,name=basic_acl,json=basicAcl,proto3" json:"basic_acl,omitempty"`
// Attributes define any immutable characteristics of container.
// `BasicACL` contains access control rules for owner, system, others groups
// and permission bits for `BearerToken` and `Extended ACL`
BasicAcl uint32 `protobuf:"varint,4,opt,name=basic_acl,json=basicACL,proto3" json:"basic_acl,omitempty"`
// Attributes represent immutable container's meta data
Attributes []*Container_Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty"`
// Placement policy for the object inside the container.
// Placement policy for the object inside the container
PlacementPolicy *grpc1.PlacementPolicy `protobuf:"bytes,6,opt,name=placement_policy,json=placementPolicy,proto3" json:"placement_policy,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -123,11 +123,19 @@ func (m *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
return nil
}
// Attribute is a key-value pair of strings.
// `Attribute` is a user-defined Key-Value metadata pair attached to the
// container. Container attribute are immutable. They are set at container
// creation and cna never be added or updated.
//
// There are some "well-known" attributes affecting system behaviour:
//
// * Subnet \
// String ID of container's storage subnet. Container can be attached to
// only one subnet.
type Container_Attribute struct {
// Key of immutable container attribute.
// Attribute name key
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// Value of immutable container attribute.
// Attribute value
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -190,30 +198,30 @@ func init() { proto.RegisterFile("v2/container/grpc/types.proto", fileDescriptor
var fileDescriptor_3bfd95a81c72c35c = []byte{
// 383 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x52, 0x4d, 0xae, 0xd3, 0x30,
0x10, 0x26, 0x2d, 0xef, 0xb5, 0x71, 0x41, 0x54, 0x06, 0x41, 0x14, 0x44, 0x14, 0x58, 0x65, 0x53,
0x5b, 0xa4, 0x4b, 0xc4, 0xa2, 0x80, 0x10, 0x95, 0x10, 0x54, 0x46, 0x62, 0xc1, 0xa6, 0x72, 0xdc,
0x69, 0x6b, 0x91, 0xda, 0x56, 0xec, 0x06, 0xf5, 0x26, 0x9c, 0x81, 0x93, 0xb0, 0xe4, 0x08, 0xa8,
0xdc, 0x80, 0x13, 0xa0, 0x24, 0x4a, 0xe8, 0x53, 0xbb, 0xcb, 0xcc, 0xf7, 0x33, 0x33, 0x5f, 0x8c,
0x9e, 0x94, 0x29, 0x15, 0x5a, 0x39, 0x2e, 0x15, 0x14, 0x74, 0x53, 0x18, 0x41, 0xdd, 0xc1, 0x80,
0x25, 0xa6, 0xd0, 0x4e, 0xe3, 0xfb, 0x0a, 0x34, 0x59, 0x5b, 0x52, 0xa6, 0xa4, 0x63, 0x85, 0x61,
0x99, 0x52, 0x05, 0x6e, 0xc7, 0xcd, 0x99, 0x20, 0x0c, 0xca, 0x94, 0x16, 0xb0, 0xb6, 0x67, 0xc8,
0xb3, 0xbf, 0x3d, 0xe4, 0xbf, 0x6e, 0x3d, 0xf0, 0x73, 0x34, 0x28, 0xa1, 0xb0, 0x52, 0xab, 0xc0,
0x8b, 0xbd, 0x64, 0x94, 0x3e, 0x22, 0xff, 0x47, 0x55, 0x06, 0xe4, 0x73, 0x03, 0xb3, 0x96, 0x87,
0x53, 0x34, 0xd4, 0xdf, 0x14, 0x14, 0x4b, 0xb9, 0x0a, 0x7a, 0x97, 0x35, 0x1f, 0x2b, 0x7c, 0xfe,
0x86, 0x0d, 0x6a, 0xe2, 0x7c, 0x85, 0x1f, 0xa0, 0x2b, 0xa5, 0x95, 0x80, 0xa0, 0x1f, 0x7b, 0xc9,
0x1d, 0xd6, 0x14, 0xf8, 0x31, 0xf2, 0x33, 0x6e, 0xa5, 0x58, 0x72, 0x91, 0x07, 0xb7, 0x63, 0x2f,
0xb9, 0xcb, 0x86, 0x75, 0x63, 0x26, 0x72, 0xfc, 0x0e, 0x21, 0xee, 0x5c, 0x21, 0xb3, 0xbd, 0x03,
0x1b, 0x5c, 0xc5, 0xfd, 0x64, 0x94, 0x26, 0xe4, 0x42, 0x0e, 0xa4, 0xbb, 0x86, 0xcc, 0x5a, 0x01,
0x3b, 0xd1, 0xe2, 0xf7, 0x68, 0x6c, 0x72, 0x2e, 0x60, 0x07, 0xca, 0x2d, 0x8d, 0xce, 0xa5, 0x38,
0x04, 0xd7, 0xf5, 0xe2, 0x4f, 0x4f, 0xfc, 0x9a, 0x24, 0xc9, 0xa2, 0x65, 0x2e, 0x6a, 0x22, 0xbb,
0x67, 0x6e, 0x36, 0xc2, 0x29, 0xf2, 0xbb, 0x31, 0x78, 0x8c, 0xfa, 0x5f, 0xe1, 0x50, 0x47, 0xe7,
0xb3, 0xea, 0xb3, 0xba, 0xb4, 0xe4, 0xf9, 0x1e, 0xea, 0x68, 0x7c, 0xd6, 0x14, 0xaf, 0xb6, 0x3f,
0x8f, 0x91, 0xf7, 0xeb, 0x18, 0x79, 0xbf, 0x8f, 0x91, 0xf7, 0xfd, 0x4f, 0x74, 0xeb, 0xcb, 0xcb,
0x8d, 0x74, 0xdb, 0x7d, 0x46, 0x84, 0xde, 0x51, 0x65, 0x8d, 0x10, 0x93, 0x15, 0x94, 0x54, 0x81,
0x5e, 0xdb, 0x09, 0x37, 0x72, 0xb2, 0xd1, 0xf4, 0xec, 0x49, 0xbc, 0xe8, 0xca, 0x1f, 0xbd, 0x87,
0x1f, 0x40, 0xbf, 0xfd, 0x44, 0x66, 0x8b, 0x79, 0xb5, 0x7c, 0x17, 0x41, 0x76, 0x5d, 0xff, 0xe5,
0xe9, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x57, 0x93, 0x14, 0xb3, 0x51, 0x02, 0x00, 0x00,
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x52, 0x4d, 0xce, 0xd3, 0x30,
0x10, 0x25, 0x2d, 0xdf, 0x4f, 0xfc, 0x81, 0xa8, 0x0c, 0x82, 0x28, 0x88, 0x28, 0xb0, 0xca, 0xa6,
0xb6, 0x48, 0x97, 0x88, 0x45, 0x29, 0x42, 0x54, 0xaa, 0xa0, 0x32, 0x12, 0x0b, 0x36, 0x95, 0xe3,
0x4e, 0x5b, 0x8b, 0xd4, 0xb6, 0x62, 0x37, 0xa8, 0x37, 0xe1, 0x0c, 0x9c, 0x84, 0x25, 0x47, 0x40,
0xe5, 0x06, 0x9c, 0x00, 0x25, 0x51, 0x42, 0x3f, 0xb5, 0xbb, 0xf9, 0x79, 0xef, 0xcd, 0xcc, 0xb3,
0xd1, 0xb3, 0x32, 0xa5, 0x42, 0x2b, 0xc7, 0xa5, 0x82, 0x82, 0xae, 0x0b, 0x23, 0xa8, 0xdb, 0x1b,
0xb0, 0xc4, 0x14, 0xda, 0x69, 0xfc, 0x50, 0x81, 0x26, 0x2b, 0x4b, 0xca, 0x94, 0x74, 0xa8, 0x30,
0x2c, 0x53, 0xaa, 0xc0, 0x6d, 0xb9, 0x39, 0x21, 0x84, 0x41, 0x99, 0xd2, 0x02, 0x56, 0xf6, 0xa4,
0xf3, 0xe2, 0x6f, 0x0f, 0xf9, 0x93, 0x56, 0x03, 0xbf, 0x44, 0x57, 0x25, 0x14, 0x56, 0x6a, 0x15,
0x78, 0xb1, 0x97, 0xdc, 0xa4, 0x4f, 0xc8, 0xff, 0x51, 0x95, 0x00, 0xf9, 0xdc, 0xb4, 0x59, 0x8b,
0xc3, 0x29, 0xba, 0xd6, 0xdf, 0x14, 0x14, 0x0b, 0xb9, 0x0c, 0x7a, 0xe7, 0x39, 0x1f, 0xab, 0xfe,
0xf4, 0x2d, 0xbb, 0xd2, 0x4d, 0x80, 0x1f, 0xa1, 0x0b, 0xa5, 0x95, 0x80, 0xa0, 0x1f, 0x7b, 0xc9,
0x3d, 0xd6, 0x24, 0xf8, 0x29, 0xf2, 0x33, 0x6e, 0xa5, 0x58, 0x70, 0x91, 0x07, 0x77, 0x63, 0x2f,
0xb9, 0xcf, 0xae, 0xeb, 0xc2, 0x78, 0x32, 0xc3, 0xef, 0x11, 0xe2, 0xce, 0x15, 0x32, 0xdb, 0x39,
0xb0, 0xc1, 0x45, 0xdc, 0x4f, 0x6e, 0xd2, 0x84, 0x9c, 0xf1, 0x81, 0x74, 0xd7, 0x90, 0x71, 0x4b,
0x60, 0x47, 0x5c, 0x3c, 0x43, 0x03, 0x93, 0x73, 0x01, 0x5b, 0x50, 0x6e, 0x61, 0x74, 0x2e, 0xc5,
0x3e, 0xb8, 0xac, 0x17, 0x7f, 0x7e, 0xa4, 0xd7, 0x38, 0x49, 0xe6, 0x2d, 0x72, 0x5e, 0x03, 0xd9,
0x03, 0x73, 0xbb, 0x10, 0x8e, 0x90, 0xdf, 0x8d, 0xc1, 0x03, 0xd4, 0xff, 0x0a, 0xfb, 0xda, 0x3a,
0x9f, 0x55, 0x61, 0x75, 0x69, 0xc9, 0xf3, 0x1d, 0xd4, 0xd6, 0xf8, 0xac, 0x49, 0xde, 0x6c, 0x7e,
0x1e, 0x22, 0xef, 0xd7, 0x21, 0xf2, 0x7e, 0x1f, 0x22, 0xef, 0xfb, 0x9f, 0xe8, 0xce, 0x97, 0xd7,
0x6b, 0xe9, 0x36, 0xbb, 0x8c, 0x08, 0xbd, 0xa5, 0xca, 0x1a, 0x21, 0x86, 0x4b, 0x28, 0xa9, 0x02,
0xbd, 0xb2, 0x43, 0x6e, 0xe4, 0x70, 0xad, 0xe9, 0xc9, 0x97, 0x78, 0xd5, 0xa5, 0x3f, 0x7a, 0x8f,
0x3f, 0x80, 0x7e, 0xf7, 0x89, 0x8c, 0xe7, 0xd3, 0x6a, 0xf9, 0xce, 0x82, 0xec, 0xb2, 0x7e, 0xe5,
0xd1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x76, 0x8d, 0x00, 0xb0, 0x51, 0x02, 0x00, 0x00,
}
func (m *Container) Marshal() (dAtA []byte, err error) {

View File

@ -28,16 +28,16 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Get NodeInfo from the particular node directly
// Get NodeInfo structure from the particular node directly
type LocalNodeInfoRequest struct {
// Body of the balance request message.
// Body of the LocalNodeInfo request message
Body *LocalNodeInfoRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -98,7 +98,7 @@ func (m *LocalNodeInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader
return nil
}
//Request body
// LocalNodeInfo request body is empty.
type LocalNodeInfoRequest_Body struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -138,7 +138,7 @@ func (m *LocalNodeInfoRequest_Body) XXX_DiscardUnknown() {
var xxx_messageInfo_LocalNodeInfoRequest_Body proto.InternalMessageInfo
// Local nod Info, including API Version in use
// Local Node Info, including API Version in use
type LocalNodeInfoResponse struct {
// Body of the balance response message.
Body *LocalNodeInfoResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -146,8 +146,8 @@ type LocalNodeInfoResponse struct {
// message transport and does not affect response execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -208,11 +208,11 @@ func (m *LocalNodeInfoResponse) GetVerifyHeader() *grpc.ResponseVerificationHead
return nil
}
//Response body
// Local Node Info, including API Version in use.
type LocalNodeInfoResponse_Body struct {
// API version in use
// Latest NeoFS API version in use
Version *grpc1.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// NodeInfo from node itself
// NodeInfo structure with recent information from node itself
NodeInfo *NodeInfo `protobuf:"bytes,2,opt,name=node_info,json=nodeInfo,proto3" json:"node_info,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -319,7 +319,11 @@ const _ = grpc2.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type NetmapServiceClient interface {
// Return information about Node
// Get NodeInfo structure from the particular node directly. Node information
// can be taken from `Netmap` smart contract, but in some cases the one may
// want to get recent information directly, or to talk to the node not yet
// present in `Network Map` to find out what API version can be used for
// further communication. Can also be used to check if node is up and running.
LocalNodeInfo(ctx context.Context, in *LocalNodeInfoRequest, opts ...grpc2.CallOption) (*LocalNodeInfoResponse, error)
}
@ -342,7 +346,11 @@ func (c *netmapServiceClient) LocalNodeInfo(ctx context.Context, in *LocalNodeIn
// NetmapServiceServer is the server API for NetmapService service.
type NetmapServiceServer interface {
// Return information about Node
// Get NodeInfo structure from the particular node directly. Node information
// can be taken from `Netmap` smart contract, but in some cases the one may
// want to get recent information directly, or to talk to the node not yet
// present in `Network Map` to find out what API version can be used for
// further communication. Can also be used to check if node is up and running.
LocalNodeInfo(context.Context, *LocalNodeInfoRequest) (*LocalNodeInfoResponse, error)
}

View File

@ -78,9 +78,9 @@ func (Operation) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_91a1332b2376641a, []int{0}
}
// Selector modifier showing how the node set will be formed
// By default selector just groups by attribute into a bucket selecting nodes
// only by their hash distance.
// Selector modifier shows how the node set will be formed. By default selector
// just groups nodes into a bucket by attribute, selecting nodes only by their
// hash distance.
type Clause int32
const (
@ -144,12 +144,13 @@ func (NodeInfo_State) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_91a1332b2376641a, []int{4, 0}
}
// Filter
// Filter will return the subset of nodes from `NetworkMap` or another filter's
// results, that will satisfy filter's conditions.
type Filter struct {
// Name of the filter or a reference to the named filter.
// '*' means application to the whole unfiltered NetworkMap
// At top level it's used as a filter name. At lower levels it's considered to
// be a reference to another named filter
// Name of the filter or a reference to the named filter. '*' means
// application to the whole unfiltered NetworkMap. At top level it's used as a
// filter name. At lower levels it's considered to be a reference to another
// named filter
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Key to filter
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
@ -157,7 +158,8 @@ type Filter struct {
Op Operation `protobuf:"varint,3,opt,name=op,proto3,enum=neo.fs.v2.netmap.Operation" json:"op,omitempty"`
// Value to match
Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
// List of inner filters. Top level operation will be applied to the whole list.
// List of inner filters. Top level operation will be applied to the whole
// list.
Filters []*Filter `protobuf:"bytes,5,rep,name=filters,proto3" json:"filters,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -232,11 +234,12 @@ func (m *Filter) GetFilters() []*Filter {
return nil
}
// Selector
// Selector chooses a number of nodes from the bucket taking the nearest nodes
// to the provided `ContainerID` by hash distance.
type Selector struct {
// Selector name to reference in object placement section
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// How many nodes to select from bucket
// How many nodes to select from the bucket
Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
// Selector modifier showing how to form a bucket
Clause Clause `protobuf:"varint,3,opt,name=clause,proto3,enum=neo.fs.v2.netmap.Clause" json:"clause,omitempty"`
@ -317,11 +320,13 @@ func (m *Selector) GetFilter() string {
return ""
}
// Exact bucket for each replica
// Number of object replicas in a set of nodes from the defined selector. If no
// selector set the root bucket containing all possible nodes will be used by
// default.
type Replica struct {
// How many object replicas to put
Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
// Named selector bucket to put in
// Named selector bucket to put replicas
Selector string `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -375,12 +380,15 @@ func (m *Replica) GetSelector() string {
return ""
}
// Set of rules to select a subset of nodes able to store container's objects
// Set of rules to select a subset of nodes from `NetworkMap` able to store
// container's objects. The format is simple enough to transpile from different
// storage policy definition languages.
type PlacementPolicy struct {
// Rules to set number of object replicas and place each one into a particular bucket
// Rules to set number of object replicas and place each one into a named
// bucket
Replicas []*Replica `protobuf:"bytes,1,rep,name=replicas,proto3" json:"replicas,omitempty"`
// Container backup factor controls how deep NeoFS will search for nodes
// alternatives to include into container.
// alternatives to include into container's nodes subset
ContainerBackupFactor uint32 `protobuf:"varint,2,opt,name=container_backup_factor,json=containerBackupFactor,proto3" json:"container_backup_factor,omitempty"`
// Set of Selectors to form the container's nodes subset
Selectors []*Selector `protobuf:"bytes,3,rep,name=selectors,proto3" json:"selectors,omitempty"`
@ -528,14 +536,49 @@ func (m *NodeInfo) GetState() NodeInfo_State {
return NodeInfo_UNSPECIFIED
}
// Attributes of the NeoFS node.
// Administrator-defined Attributes of the NeoFS Storage Node.
//
// Node's attributes are mostly used during Storage Policy evaluation to
// calculate object's placement and find a set of nodes satisfying policy
// requirements. There are some "well-known" node attributes common to all the
// Storage Nodes in the network and used implicitly with default values if not
// explicitly set:
//
// * Capacity \
// Total available disk space in Gigabytes.
// * Price \
// Price in GAS tokens for storing one GB of data during one Epoch. In node
// attributes it's a string presenting floating point number with comma or
// point delimiter for decimal part. In the Network Map it will be saved as
// 64-bit unsigned integer representing number of minimal token fractions.
// * Subnet \
// String ID of Node's storage subnet. There can be only one subnet served
// by the Storage Node.
// * Locode \
// Node's geographic location in
// [UN/LOCODE](https://www.unece.org/cefact/codesfortrade/codes_index.html)
// format approximated to the nearest point defined in standard.
// * Country \
// Country code in
// [ISO 3166-1_alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
// format. Calculated automatically from `Locode` attribute
// * Region \
// Country's administative subdivision where node is located. Calculated
// automatically from `Locode` attribute based on `SubDiv` field. Presented
// in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.
// * City \
// City, town, village or rural area name where node is located written
// without diacritics . Calculated automatically from `Locode` attribute.
//
// For detailed description of each well-known attribute please see the
// corresponding section in NeoFS Technical specification.
type NodeInfo_Attribute struct {
// Key of the node attribute.
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// Value of the node attribute.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// Parent keys, if any
// Example: For City it can be Region or Country
// Parent keys, if any. For example for `City` it could be `Region` and
// `Country`.
Parents []string `protobuf:"bytes,3,rep,name=parents,proto3" json:"parents,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`

View File

@ -28,15 +28,16 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Get object request
// GET object request
type GetRequest struct {
// Body of get object request message.
Body *GetRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -97,13 +98,12 @@ func (m *GetRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// GET Object request body
type GetRequest_Body struct {
// Address of the requested object.
// Address of the requested object
Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Carries the raw option flag of the request.
// Raw request is sent to receive only the objects
// that are physically stored on the server.
// If `raw` flag is set, request will work only with objects that are
// physically stored on the peer node
Raw bool `protobuf:"varint,2,opt,name=raw,proto3" json:"raw,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -157,7 +157,7 @@ func (m *GetRequest_Body) GetRaw() bool {
return false
}
// get object response
// GET object response
type GetResponse struct {
// Body of get object response message.
Body *GetResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -165,8 +165,8 @@ type GetResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -227,9 +227,9 @@ func (m *GetResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// GET Object Response body
type GetResponse_Body struct {
// Carries the single message of the response stream.
// Single message in the response stream.
//
// Types that are valid to be assigned to ObjectPart:
// *GetResponse_Body_Init_
@ -318,13 +318,14 @@ func (*GetResponse_Body) XXX_OneofWrappers() []interface{} {
}
}
// Initialization parameters of the object got from NeoFS.
// Initial part of the `Object` structure stream. Technically it's a
// set of all `Object` structure's fields except `payload`.
type GetResponse_Body_Init struct {
// Object ID
// Object's unique identifier.
ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
// Object signature
// Signed `ObjectID`
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
// Object header.
// Object metadata headers
Header *Header `protobuf:"bytes,3,opt,name=header,proto3" json:"header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -385,15 +386,16 @@ func (m *GetResponse_Body_Init) GetHeader() *Header {
return nil
}
// Put object request
// PUT object request
type PutRequest struct {
// Body of put object request message.
Body *PutRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -454,9 +456,9 @@ func (m *PutRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// PUT request body
type PutRequest_Body struct {
// Carries the single part of the query stream.
// Single message in the request stream.
//
// Types that are valid to be assigned to ObjectPart:
// *PutRequest_Body_Init_
@ -545,17 +547,17 @@ func (*PutRequest_Body) XXX_OneofWrappers() []interface{} {
}
}
// Groups initialization parameters of object placement in NeoFS.
// Newly created object structure parameters. If some optional parameters
// are not set, they will be calculated by a peer node.
type PutRequest_Body_Init struct {
// Object ID, where available
// ObjectID if available.
ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
// Object signature, were available
// Object signature if available
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
// Header of the object to save in the system.
// Object's Header
Header *Header `protobuf:"bytes,3,opt,name=header,proto3" json:"header,omitempty"`
// Number of the object copies to store within the RPC call.
// Default zero value is processed according to the
// container placement rules.
// Number of the object copies to store within the RPC call. By default
// object is processed according to the container's placement policy.
CopiesNumber uint32 `protobuf:"varint,4,opt,name=copies_number,json=copiesNumber,proto3" json:"copies_number,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -623,7 +625,7 @@ func (m *PutRequest_Body_Init) GetCopiesNumber() uint32 {
return 0
}
// Put object response
// PUT Object response
type PutResponse struct {
// Body of put object response message.
Body *PutResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -631,8 +633,8 @@ type PutResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -693,10 +695,9 @@ func (m *PutResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// PUT Object response body
type PutResponse_Body struct {
// Carries identifier of the saved object.
// It is used to access an object in the container.
// Identifier of the saved object
ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -743,15 +744,16 @@ func (m *PutResponse_Body) GetObjectId() *grpc1.ObjectID {
return nil
}
// Object Delete request
// Object DELETE request
type DeleteRequest struct {
// Body of delete object request message.
Body *DeleteRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -812,9 +814,9 @@ func (m *DeleteRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// Object DELETE request body
type DeleteRequest_Body struct {
// Carries the address of the object to be deleted.
// Address of the object to be deleted
Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -861,8 +863,8 @@ func (m *DeleteRequest_Body) GetAddress() *grpc1.Address {
return nil
}
// DeleteResponse is empty because we cannot guarantee permanent object removal
// in distributed system.
// DeleteResponse body is empty because we cannot guarantee permanent object
// removal in distributed system.
type DeleteResponse struct {
// Body of delete object response message.
Body *DeleteResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -870,8 +872,8 @@ type DeleteResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -932,7 +934,7 @@ func (m *DeleteResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// Object DELETE Response has an empty body.
type DeleteResponse_Body struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -972,15 +974,16 @@ func (m *DeleteResponse_Body) XXX_DiscardUnknown() {
var xxx_messageInfo_DeleteResponse_Body proto.InternalMessageInfo
// Object head request
// Object HEAD request
type HeadRequest struct {
// Body of head object request message.
Body *HeadRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1041,15 +1044,14 @@ func (m *HeadRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// Object HEAD request body
type HeadRequest_Body struct {
// Address of the object with the requested header.
// Address of the object with the requested Header
Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Return only minimal header subset
MainOnly bool `protobuf:"varint,2,opt,name=main_only,json=mainOnly,proto3" json:"main_only,omitempty"`
// Carries the raw option flag of the request.
// Raw request is sent to receive only the headers of the objects
// that are physically stored on the server.
// If `raw` flag is set, request will work only with objects that are
// physically stored on the peer node
Raw bool `protobuf:"varint,3,opt,name=raw,proto3" json:"raw,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1110,14 +1112,17 @@ func (m *HeadRequest_Body) GetRaw() bool {
return false
}
// Tuple of full object header and signature of object ID.
// Tuple of full object header and signature of `ObjectID`. \
// Signed `ObjectID` is present to verify full header's authenticity through the
// following steps:
//
// 1. Calculate `SHA-256` of marshalled `Header` structure
// 2. Check if the resulting hash matched `ObjectID`
// 3. Check if `ObjectID` signature in `signature` field is correct
type HeaderWithSignature struct {
// Full object header
Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
// Signed object_id to verify full header's authenticity through following steps:
// 1. Calculate SHA-256 of marshalled Headers structure.
// 2. Check if the resulting hash matched ObjectID
// 3. Check if ObjectID's signature in signature field is correct.
// Signed `ObjectID` to verify full header's authenticity
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1171,7 +1176,7 @@ func (m *HeaderWithSignature) GetSignature() *grpc1.Signature {
return nil
}
// Head response
// Object HEAD response
type HeadResponse struct {
// Body of head object response message.
Body *HeadResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -1179,8 +1184,8 @@ type HeadResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1241,9 +1246,9 @@ func (m *HeadResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// Object HEAD response body
type HeadResponse_Body struct {
// Carries the requested object header or it's part
// Requested object header or it's part.
//
// Types that are valid to be assigned to Head:
// *HeadResponse_Body_Header
@ -1332,15 +1337,16 @@ func (*HeadResponse_Body) XXX_OneofWrappers() []interface{} {
}
}
// Search objects request
// Object Search request
type SearchRequest struct {
// Body of search object request message.
Body *SearchRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1401,9 +1407,9 @@ func (m *SearchRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request body
// Object Search request body
type SearchRequest_Body struct {
// Carries search container identifier.
// Container identifier were to search
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
// Version of the Query Language used
Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
@ -1543,8 +1549,8 @@ type SearchResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1605,9 +1611,9 @@ func (m *SearchResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// Object Search response body
type SearchResponse_Body struct {
// Carries list of object identifiers that match the search query
// List of `ObjectID`s that match the search query
IdList []*grpc1.ObjectID `protobuf:"bytes,1,rep,name=id_list,json=idList,proto3" json:"id_list,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1654,11 +1660,11 @@ func (m *SearchResponse_Body) GetIdList() []*grpc1.ObjectID {
return nil
}
// Range groups the parameters of object payload range.
// Object payload range.Ranges of zero length SHOULD be considered as invalid.
type Range struct {
// Carries the offset of the range from the object payload start.
// Offset of the range from the object payload start
Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
// Carries the length of the object payload range.
// Length in bytes of the object payload range
Length uint64 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1712,15 +1718,16 @@ func (m *Range) GetLength() uint64 {
return 0
}
// Request to get part of object's payload
// Request part of object's payload
type GetRangeRequest struct {
// Body of get range object request message.
Body *GetRangeRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1781,11 +1788,11 @@ func (m *GetRangeRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
return nil
}
// Request Body
// Byte range of object's payload request body
type GetRangeRequest_Body struct {
// Address carries address of the object that contains the requested payload range.
// Address of the object containing the requested payload range
Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Range carries the parameters of the requested payload range.
// Requested payload range
Range *Range `protobuf:"bytes,2,opt,name=range,proto3" json:"range,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1847,8 +1854,8 @@ type GetRangeResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1909,9 +1916,12 @@ func (m *GetRangeResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
return nil
}
// Response body
// Get Range response body uses streams to transfer the response. Because
// object payload considered a byte sequence, there is no need to have some
// initial preamble message. The requested byte range is sent as a series
// chunks.
type GetRangeResponse_Body struct {
// Carries part of the object payload.
// Chunked object payload's range
Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1962,11 +1972,12 @@ func (m *GetRangeResponse_Body) GetChunk() []byte {
type GetRangeHashRequest struct {
// Body of get range hash object request message.
Body *GetRangeHashRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -2027,13 +2038,13 @@ func (m *GetRangeHashRequest) GetVerifyHeader() *grpc.RequestVerificationHeader
return nil
}
// Request body
// Get hash of object's payload part request body.
type GetRangeHashRequest_Body struct {
// Carries address of the object that contains the requested payload range.
// Address of the object that containing the requested payload range
Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Carries the list of object payload range to calculate homomorphic hash.
// List of object's payload ranges to calculate homomorphic hash
Ranges []*Range `protobuf:"bytes,2,rep,name=ranges,proto3" json:"ranges,omitempty"`
// Carries binary salt to XOR object payload ranges before hash calculation.
// Binary salt to XOR object's payload ranges before hash calculation
Salt []byte `protobuf:"bytes,3,opt,name=salt,proto3" json:"salt,omitempty"`
// Checksum algorithm type
Type grpc1.ChecksumType `protobuf:"varint,4,opt,name=type,proto3,enum=neo.fs.v2.refs.ChecksumType" json:"type,omitempty"`
@ -2111,8 +2122,8 @@ type GetRangeHashResponse struct {
// message transport and does not affect request execution.
MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -2173,11 +2184,11 @@ func (m *GetRangeHashResponse) GetVerifyHeader() *grpc.ResponseVerificationHeade
return nil
}
// Response body
// Get hash of object's payload part response body.
type GetRangeHashResponse_Body struct {
// Checksum algorithm type
Type grpc1.ChecksumType `protobuf:"varint,1,opt,name=type,proto3,enum=neo.fs.v2.refs.ChecksumType" json:"type,omitempty"`
// List of range hashes in a binary format.
// List of range hashes in a binary format
HashList [][]byte `protobuf:"bytes,2,rep,name=hash_list,json=hashList,proto3" json:"hash_list,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -2366,37 +2377,40 @@ const _ = grpc2.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ObjectServiceClient interface {
// Get the object from container. Response uses gRPC stream. First response
// message carry object of requested address. Chunk messages are parts of
// the object's payload if it is needed. All messages except first carry
// chunks. Requested object can be restored by concatenation of object
// message payload and all chunks keeping receiving order.
// Receive full object structure, including Headers and payload. Response uses
// gRPC stream. First response message carries object with requested address.
// Chunk messages are parts of the object's payload if it is needed. All
// messages, except the first one, carry payload chunks. Requested object can
// be restored by concatenation of object message payload and all chunks
// keeping receiving order.
Get(ctx context.Context, in *GetRequest, opts ...grpc2.CallOption) (ObjectService_GetClient, error)
// Put the object into container. Request uses gRPC stream. First message
// SHOULD BE type of PutHeader. Container id and Owner id of object SHOULD
// BE set. Session token SHOULD BE obtained before put operation (see
// session package). Chunk messages considered by server as part of object
// payload. All messages except first SHOULD BE chunks. Chunk messages
// SHOULD BE sent in direct order of fragmentation.
// SHOULD be of PutHeader type. `ContainerID` and `OwnerID` of an object
// SHOULD be set. Session token SHOULD be obtained before `PUT` operation (see
// session package). Chunk messages are considered by server as a part of an
// object payload. All messages, except first one, SHOULD be payload chunks.
// Chunk messages SHOULD be sent in direct order of fragmentation.
Put(ctx context.Context, opts ...grpc2.CallOption) (ObjectService_PutClient, error)
// Delete the object from a container
// Delete the object from a container. There is no immediate removal
// guarantee. Object will be marked for removal and deleted eventually.
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc2.CallOption) (*DeleteResponse, error)
// Head returns the object without data payload. Object in the
// response has system header only. If full headers flag is set, extended
// headers are also present.
// Returns the object Headers without data payload. By default full header is
// returned. If `main_only` request field is set, the short header with only
// the very minimal information would be returned instead.
Head(ctx context.Context, in *HeadRequest, opts ...grpc2.CallOption) (*HeadResponse, error)
// Search objects in container. Version of query language format SHOULD BE
// set to 1. Search query represented in serialized format (see query
// package).
// Search objects in container. Search query allows to match by Object
// Header's filed values. Please see the corresponding NeoFS Technical
// Specification section for more details.
Search(ctx context.Context, in *SearchRequest, opts ...grpc2.CallOption) (ObjectService_SearchClient, error)
// GetRange of data payload. Range is a pair (offset, length).
// Requested range can be restored by concatenation of all chunks
// keeping receiving order.
// Get byte range of data payload. Range is set as an (offset, length) tuple.
// Like in `Get` method, the response uses gRPC stream. Requested range can be
// restored by concatenation of all received payload chunks keeping receiving
// order.
GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc2.CallOption) (ObjectService_GetRangeClient, error)
// GetRangeHash returns homomorphic hash of object payload range after XOR
// operation. Ranges are set of pairs (offset, length). Hashes order in
// response corresponds to ranges order in request. Homomorphic hash is
// calculated for XORed data.
// Returns homomorphic or regular hash of object's payload range after
// applying XOR operation with the provided `salt`. Ranges are set of (offset,
// length) tuples. Hashes order in response corresponds to ranges order in
// request. Note that hash is calculated for XORed data.
GetRangeHash(ctx context.Context, in *GetRangeHashRequest, opts ...grpc2.CallOption) (*GetRangeHashResponse, error)
}
@ -2567,37 +2581,40 @@ func (c *objectServiceClient) GetRangeHash(ctx context.Context, in *GetRangeHash
// ObjectServiceServer is the server API for ObjectService service.
type ObjectServiceServer interface {
// Get the object from container. Response uses gRPC stream. First response
// message carry object of requested address. Chunk messages are parts of
// the object's payload if it is needed. All messages except first carry
// chunks. Requested object can be restored by concatenation of object
// message payload and all chunks keeping receiving order.
// Receive full object structure, including Headers and payload. Response uses
// gRPC stream. First response message carries object with requested address.
// Chunk messages are parts of the object's payload if it is needed. All
// messages, except the first one, carry payload chunks. Requested object can
// be restored by concatenation of object message payload and all chunks
// keeping receiving order.
Get(*GetRequest, ObjectService_GetServer) error
// Put the object into container. Request uses gRPC stream. First message
// SHOULD BE type of PutHeader. Container id and Owner id of object SHOULD
// BE set. Session token SHOULD BE obtained before put operation (see
// session package). Chunk messages considered by server as part of object
// payload. All messages except first SHOULD BE chunks. Chunk messages
// SHOULD BE sent in direct order of fragmentation.
// SHOULD be of PutHeader type. `ContainerID` and `OwnerID` of an object
// SHOULD be set. Session token SHOULD be obtained before `PUT` operation (see
// session package). Chunk messages are considered by server as a part of an
// object payload. All messages, except first one, SHOULD be payload chunks.
// Chunk messages SHOULD be sent in direct order of fragmentation.
Put(ObjectService_PutServer) error
// Delete the object from a container
// Delete the object from a container. There is no immediate removal
// guarantee. Object will be marked for removal and deleted eventually.
Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
// Head returns the object without data payload. Object in the
// response has system header only. If full headers flag is set, extended
// headers are also present.
// Returns the object Headers without data payload. By default full header is
// returned. If `main_only` request field is set, the short header with only
// the very minimal information would be returned instead.
Head(context.Context, *HeadRequest) (*HeadResponse, error)
// Search objects in container. Version of query language format SHOULD BE
// set to 1. Search query represented in serialized format (see query
// package).
// Search objects in container. Search query allows to match by Object
// Header's filed values. Please see the corresponding NeoFS Technical
// Specification section for more details.
Search(*SearchRequest, ObjectService_SearchServer) error
// GetRange of data payload. Range is a pair (offset, length).
// Requested range can be restored by concatenation of all chunks
// keeping receiving order.
// Get byte range of data payload. Range is set as an (offset, length) tuple.
// Like in `Get` method, the response uses gRPC stream. Requested range can be
// restored by concatenation of all received payload chunks keeping receiving
// order.
GetRange(*GetRangeRequest, ObjectService_GetRangeServer) error
// GetRangeHash returns homomorphic hash of object payload range after XOR
// operation. Ranges are set of pairs (offset, length). Hashes order in
// response corresponds to ranges order in request. Homomorphic hash is
// calculated for XORed data.
// Returns homomorphic or regular hash of object's payload range after
// applying XOR operation with the provided `salt`. Ranges are set of (offset,
// length) tuples. Hashes order in response corresponds to ranges order in
// request. Note that hash is calculated for XORed data.
GetRangeHash(context.Context, *GetRangeHashRequest) (*GetRangeHashResponse, error)
}

View File

@ -24,7 +24,7 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Type of the object payload content
// Type of the object payload content.
type ObjectType int32
const (
@ -32,7 +32,7 @@ const (
ObjectType_REGULAR ObjectType = 0
// Used internally to identify deleted objects
ObjectType_TOMBSTONE ObjectType = 1
// Identifies that the object holds StorageGroup information
// StorageGroup information
ObjectType_STORAGE_GROUP ObjectType = 2
)
@ -86,16 +86,17 @@ func (MatchType) EnumDescriptor() ([]byte, []int) {
// Short header fields
type ShortHeader struct {
// Object format version.
// Object format version. Effectively the version of API library used to
// create particular object
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// Epoch when the object was created
CreationEpoch uint64 `protobuf:"varint,2,opt,name=creation_epoch,json=creationEpoch,proto3" json:"creation_epoch,omitempty"`
// Object's owner
OwnerId *grpc.OwnerID `protobuf:"bytes,3,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
OwnerId *grpc.OwnerID `protobuf:"bytes,3,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
// Type of the object payload content
ObjectType ObjectType `protobuf:"varint,4,opt,name=object_type,json=objectType,proto3,enum=neo.fs.v2.object.ObjectType" json:"object_type,omitempty"`
// Size of payload in bytes.
// 0xFFFFFFFFFFFFFFFF means `payload_length` is unknown
// `0xFFFFFFFFFFFFFFFF` means `payload_length` is unknown
PayloadLength uint64 `protobuf:"varint,5,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -170,32 +171,32 @@ func (m *ShortHeader) GetPayloadLength() uint64 {
return 0
}
// Object Headers
// Object Header
type Header struct {
// Object format version.
// Effectively the version of API library used to create particular object
// Object format version. Effectively the version of API library used to
// create particular object
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// Object's container
ContainerId *grpc.ContainerID `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
ContainerId *grpc.ContainerID `protobuf:"bytes,2,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
// Object's owner
OwnerId *grpc.OwnerID `protobuf:"bytes,3,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
OwnerId *grpc.OwnerID `protobuf:"bytes,3,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
// Object creation Epoch
CreationEpoch uint64 `protobuf:"varint,4,opt,name=creation_epoch,json=creationEpoch,proto3" json:"creation_epoch,omitempty"`
// Size of payload in bytes.
// 0xFFFFFFFFFFFFFFFF means `payload_length` is unknown
// `0xFFFFFFFFFFFFFFFF` means `payload_length` is unknown
PayloadLength uint64 `protobuf:"varint,5,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"`
// Hash of payload bytes
PayloadHash *grpc.Checksum `protobuf:"bytes,6,opt,name=payload_hash,json=payloadHash,proto3" json:"payload_hash,omitempty"`
// Special object type
// Type of the object payload content
ObjectType ObjectType `protobuf:"varint,7,opt,name=object_type,json=objectType,proto3,enum=neo.fs.v2.object.ObjectType" json:"object_type,omitempty"`
// Homomorphic hash of the object payload.
HomomorphicHash *grpc.Checksum `protobuf:"bytes,8,opt,name=homomorphic_hash,json=homomorphicHash,proto3" json:"homomorphic_hash,omitempty"`
// Session token, if it was used during Object creation.
// Need it to verify integrity and authenticity out of Request scope.
// Session token, if it was used during Object creation. Need it to verify
// integrity and authenticity out of Request scope.
SessionToken *grpc1.SessionToken `protobuf:"bytes,9,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
// User-defined object attributes
Attributes []*Header_Attribute `protobuf:"bytes,10,rep,name=attributes,proto3" json:"attributes,omitempty"`
// Position of the object in the split hierarchy.
// Position of the object in the split hierarchy
Split *Header_Split `protobuf:"bytes,11,opt,name=split,proto3" json:"split,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -312,7 +313,17 @@ func (m *Header) GetSplit() *Header_Split {
return nil
}
// Attribute groups the user-defined Key-Value pairs attached to the object
// `Attribute` is a user-defined Key-Value metadata pair attached to the
// object.
//
// There are some "well-known" attributes starting with `__NEOFS__` prefix
// that affect system behaviour:
//
// * __NEOFS__UPLOAD_ID
// * __NEOFS__EXPIRATION_EPOCH
//
// For detailed description of each well-known attribute please see the
// corresponding section in NeoFS Technical specification.
type Header_Attribute struct {
// string key to the object attribute
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
@ -370,19 +381,20 @@ func (m *Header_Attribute) GetValue() string {
return ""
}
// Information about spawning the objects through a payload splitting.
// Bigger objects can be split into a chain of smaller objects. Information
// about inter-dependencies between spawned objects and how to re-construct
// the original one is in the `Split` headers. Parent and children objects
// must be within the same container.
type Header_Split struct {
// Identifier of the origin object.
// Parent and children objects must be within the same container.
// Parent object_id is known only to the minor child.
// Identifier of the origin object. Known only to the minor child.
Parent *grpc.ObjectID `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Previous carries identifier of the left split neighbor.
// Identifier of the left split neighbor
Previous *grpc.ObjectID `protobuf:"bytes,2,opt,name=previous,proto3" json:"previous,omitempty"`
// `signature` field of the parent object. Used to reconstruct parent.
ParentSignature *grpc.Signature `protobuf:"bytes,3,opt,name=parent_signature,json=parentSignature,proto3" json:"parent_signature,omitempty"`
// `header` field of the parent object. Used to reconstruct parent.
ParentHeader *Header `protobuf:"bytes,4,opt,name=parent_header,json=parentHeader,proto3" json:"parent_header,omitempty"`
// Children carries list of identifiers of the objects generated by splitting the current.
// List of identifiers of the objects generated by splitting current one.
Children []*grpc.ObjectID `protobuf:"bytes,5,rep,name=children,proto3" json:"children,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -457,13 +469,12 @@ func (m *Header_Split) GetChildren() []*grpc.ObjectID {
return nil
}
// Object structure.
// Object structure. Object is immutable and content-addressed. It means
// `ObjectID` will change if header or payload changes. It's calculated as a
// hash of header field, which contains hash of object's payload.
type Object struct {
// Object's unique identifier.
// Object is content-addressed. It means id will change if header or payload
// changes. It's calculated as a hash of header field, which contains hash of
// object's payload
ObjectId *grpc.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
ObjectId *grpc.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectID,proto3" json:"object_id,omitempty"`
// Signed object_id
Signature *grpc.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
// Object metadata headers
@ -549,57 +560,57 @@ func init() {
func init() { proto.RegisterFile("v2/object/grpc/types.proto", fileDescriptor_545319325da7b9b1) }
var fileDescriptor_545319325da7b9b1 = []byte{
// 796 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x95, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0xc7, 0xeb, 0xb4, 0xf9, 0x3a, 0x4e, 0x76, 0xcd, 0x80, 0xc0, 0x64, 0x51, 0xa8, 0x2a, 0x21,
0x55, 0x2b, 0xd5, 0x06, 0x6f, 0xd1, 0x0a, 0x55, 0x8b, 0x94, 0x36, 0xde, 0xd6, 0x52, 0xdb, 0x94,
0xb1, 0x8b, 0x04, 0x37, 0x96, 0x6b, 0x4f, 0x63, 0xd3, 0xd4, 0x63, 0x79, 0x26, 0x46, 0xbd, 0xe4,
0x2d, 0x78, 0x86, 0x7d, 0x0e, 0x2e, 0xb8, 0xe4, 0x11, 0x56, 0xe5, 0x45, 0x90, 0x67, 0xec, 0xf4,
0x23, 0xbb, 0x04, 0xf6, 0xca, 0xf6, 0x99, 0xdf, 0xff, 0xcc, 0xf9, 0x9f, 0x39, 0x23, 0xc3, 0xa0,
0xb0, 0x4c, 0x7a, 0xf1, 0x0b, 0x09, 0xb9, 0x39, 0xcd, 0xb3, 0xd0, 0xe4, 0x37, 0x19, 0x61, 0x46,
0x96, 0x53, 0x4e, 0x91, 0x96, 0x12, 0x6a, 0x5c, 0x32, 0xa3, 0xb0, 0x0c, 0x89, 0x0c, 0xf4, 0xc2,
0x32, 0x73, 0x72, 0xc9, 0x96, 0xd8, 0xc1, 0xb3, 0xc2, 0x32, 0x19, 0x61, 0x2c, 0xa1, 0xe9, 0xd2,
0xe2, 0xd6, 0x6f, 0x0d, 0x50, 0xdd, 0x98, 0xe6, 0xfc, 0x88, 0x04, 0x11, 0xc9, 0xd1, 0x37, 0xd0,
0x2e, 0x48, 0x5e, 0xb2, 0xba, 0xb2, 0xa9, 0x6c, 0xab, 0xd6, 0x67, 0xc6, 0xdd, 0x56, 0x65, 0x7e,
0xe3, 0x47, 0xb9, 0x8c, 0x6b, 0x0e, 0x7d, 0x05, 0x4f, 0xc2, 0x9c, 0x04, 0x3c, 0xa1, 0xa9, 0x4f,
0x32, 0x1a, 0xc6, 0x7a, 0x63, 0x53, 0xd9, 0xde, 0xc0, 0xfd, 0x3a, 0x6a, 0x97, 0x41, 0x64, 0x41,
0x87, 0xfe, 0x9a, 0x92, 0xdc, 0x4f, 0x22, 0x7d, 0xfd, 0xdd, 0xa9, 0x27, 0xe5, 0xba, 0x33, 0xc6,
0x6d, 0x01, 0x3a, 0x11, 0x7a, 0x05, 0xaa, 0xb4, 0xe7, 0x97, 0x35, 0xeb, 0x1b, 0x9b, 0xca, 0xf6,
0x13, 0xeb, 0x0b, 0xe3, 0xb1, 0x79, 0x63, 0x22, 0x1e, 0xde, 0x4d, 0x46, 0x30, 0xd0, 0xc5, 0x7b,
0x59, 0x59, 0x16, 0xdc, 0xcc, 0x68, 0x10, 0xf9, 0x33, 0x92, 0x4e, 0x79, 0xac, 0x37, 0x65, 0x65,
0x55, 0xf4, 0x58, 0x04, 0xb7, 0xde, 0xb6, 0xa1, 0xf5, 0xe1, 0xf6, 0xbf, 0x87, 0x5e, 0x48, 0x53,
0x1e, 0x24, 0x95, 0xb7, 0x86, 0xd0, 0x3d, 0x7b, 0xac, 0x3b, 0xa8, 0x19, 0x67, 0x8c, 0xd5, 0x85,
0xc0, 0x89, 0x3e, 0xa8, 0x2f, 0xcb, 0x2d, 0xdf, 0x78, 0x57, 0xcb, 0xff, 0x9b, 0x7f, 0xb4, 0x07,
0xbd, 0x1a, 0x8b, 0x03, 0x16, 0xeb, 0x2d, 0x51, 0x85, 0xbe, 0xe4, 0x20, 0x26, 0xe1, 0x15, 0x9b,
0x5f, 0x63, 0xb5, 0xa2, 0x8f, 0x02, 0x16, 0x3f, 0x3e, 0xa2, 0xf6, 0xff, 0x3c, 0xa2, 0x03, 0xd0,
0x62, 0x7a, 0x4d, 0xaf, 0x69, 0x9e, 0xc5, 0x49, 0x28, 0xf7, 0xef, 0xac, 0xd8, 0xff, 0xe9, 0x3d,
0x85, 0xa8, 0x61, 0x0c, 0xfd, 0x6a, 0xc0, 0x7d, 0x4e, 0xaf, 0x48, 0xaa, 0x77, 0x45, 0x86, 0x2f,
0xef, 0x65, 0xa8, 0xd6, 0x0d, 0x57, 0x3e, 0xbd, 0x12, 0xc3, 0x3d, 0x76, 0xef, 0x0b, 0xed, 0x03,
0x04, 0x9c, 0xe7, 0xc9, 0xc5, 0x9c, 0x13, 0xa6, 0xc3, 0xe6, 0xfa, 0xb6, 0x6a, 0x6d, 0x2d, 0x1b,
0x91, 0x93, 0x62, 0x8c, 0x6a, 0x14, 0xdf, 0x53, 0xa1, 0x5d, 0x68, 0xb2, 0x6c, 0x96, 0x70, 0x5d,
0x15, 0x15, 0x0c, 0xdf, 0x2b, 0x77, 0x4b, 0x0a, 0x4b, 0x78, 0xf0, 0x02, 0xba, 0x8b, 0x74, 0x48,
0x83, 0xf5, 0x2b, 0x72, 0x23, 0xc6, 0xaf, 0x8b, 0xcb, 0x57, 0xf4, 0x09, 0x34, 0x8b, 0x60, 0x36,
0x27, 0x62, 0xb4, 0xba, 0x58, 0x7e, 0x0c, 0xde, 0x34, 0xa0, 0x29, 0xb2, 0xa0, 0xaf, 0xa1, 0x95,
0x05, 0x39, 0x49, 0x79, 0x35, 0xb3, 0x4b, 0x9d, 0x93, 0xbd, 0x77, 0xc6, 0xb8, 0xe2, 0xd0, 0x2e,
0x74, 0xb2, 0x9c, 0x14, 0x09, 0x9d, 0xb3, 0x6a, 0x5e, 0xdf, 0xaf, 0x59, 0x90, 0x68, 0x0c, 0x9a,
0xd4, 0xfb, 0x2c, 0x99, 0xa6, 0x01, 0x9f, 0xe7, 0xa4, 0x9a, 0xd8, 0xcf, 0x1f, 0xab, 0xdd, 0x1a,
0xc0, 0x4f, 0xa5, 0x64, 0x11, 0x40, 0xaf, 0xa0, 0x5f, 0x65, 0x89, 0x45, 0x2b, 0xc4, 0xe8, 0x3e,
0x2c, 0xe0, 0x41, 0xab, 0x70, 0x4f, 0xe2, 0xd5, 0x0d, 0xdd, 0x85, 0x4e, 0x18, 0x27, 0xb3, 0x28,
0x27, 0xa9, 0xde, 0x14, 0x67, 0xf4, 0x2f, 0xa5, 0xd7, 0xe4, 0xd6, 0x1f, 0x0a, 0xb4, 0x64, 0x18,
0x7d, 0x0b, 0xdd, 0x6a, 0x60, 0x93, 0x68, 0x65, 0xc3, 0x3a, 0x12, 0x75, 0x22, 0xf4, 0x12, 0xba,
0x77, 0xae, 0x1b, 0xab, 0x5c, 0xdf, 0xb1, 0xe5, 0xe9, 0x54, 0x46, 0xd7, 0x57, 0x18, 0xad, 0x38,
0xa4, 0x43, 0xbb, 0xba, 0x61, 0xa2, 0x37, 0x3d, 0x5c, 0x7f, 0x3e, 0xdf, 0x03, 0xb8, 0xbb, 0x47,
0x48, 0x85, 0x36, 0xb6, 0x0f, 0xcf, 0x8f, 0x47, 0x58, 0x5b, 0x43, 0x7d, 0xe8, 0x7a, 0x93, 0x93,
0x7d, 0xd7, 0x9b, 0x9c, 0xda, 0x9a, 0x82, 0x3e, 0x82, 0xbe, 0xeb, 0x4d, 0xf0, 0xe8, 0xd0, 0xf6,
0x0f, 0xf1, 0xe4, 0xfc, 0x4c, 0x6b, 0x3c, 0xff, 0x0e, 0xba, 0x27, 0x01, 0x0f, 0x63, 0xa1, 0x1d,
0xc0, 0xa7, 0x27, 0x23, 0xef, 0xe0, 0xc8, 0xf7, 0x7e, 0x3a, 0xb3, 0xfd, 0xf3, 0x53, 0xf7, 0xcc,
0x3e, 0x70, 0x5e, 0x3b, 0xf6, 0x58, 0x5b, 0x43, 0x1a, 0xf4, 0x5c, 0x0f, 0x3b, 0xa7, 0x87, 0xbe,
0xfd, 0xc3, 0xf9, 0xe8, 0x58, 0x53, 0xf6, 0xfd, 0x3f, 0x6f, 0x87, 0xca, 0x5f, 0xb7, 0x43, 0xe5,
0xed, 0xed, 0x50, 0xf9, 0xfd, 0xef, 0xe1, 0xda, 0xcf, 0x2f, 0xa7, 0x09, 0x8f, 0xe7, 0x17, 0x46,
0x48, 0xaf, 0xcd, 0x94, 0x65, 0x61, 0xb8, 0x13, 0x91, 0xc2, 0x4c, 0x09, 0xbd, 0x64, 0x3b, 0x41,
0x96, 0xec, 0x4c, 0xa9, 0xf9, 0xf0, 0xf7, 0xb5, 0x27, 0xdf, 0xdf, 0x34, 0x3e, 0x3e, 0x25, 0xf4,
0xb5, 0x6b, 0x8c, 0xce, 0x9c, 0xb2, 0x03, 0xd2, 0xce, 0x45, 0x4b, 0xfc, 0x8d, 0x5e, 0xfc, 0x13,
0x00, 0x00, 0xff, 0xff, 0x2c, 0x8c, 0x1d, 0x72, 0xf4, 0x06, 0x00, 0x00,
// 793 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0xae, 0xd3, 0xe6, 0xef, 0x38, 0xd9, 0x35, 0x03, 0x02, 0x93, 0x45, 0xa1, 0xaa, 0x84, 0x54,
0xad, 0x54, 0x1b, 0xbc, 0x45, 0x2b, 0x54, 0x2d, 0x52, 0xda, 0x78, 0xdb, 0x48, 0x6d, 0x53, 0xc6,
0x2e, 0x12, 0xdc, 0x58, 0xae, 0x33, 0x8d, 0x4d, 0x53, 0x8f, 0xe5, 0x99, 0x18, 0xf5, 0x92, 0xb7,
0xe0, 0x19, 0xf6, 0x39, 0xb8, 0xe0, 0x92, 0x47, 0x58, 0x95, 0x17, 0x41, 0x9e, 0x19, 0x37, 0x6d,
0xb3, 0x4b, 0x60, 0xaf, 0x7c, 0xe6, 0xcc, 0xf7, 0x9d, 0x39, 0xdf, 0x37, 0x67, 0x64, 0xe8, 0x15,
0x8e, 0x4d, 0x2f, 0x7e, 0x21, 0x11, 0xb7, 0xa7, 0x79, 0x16, 0xd9, 0xfc, 0x26, 0x23, 0xcc, 0xca,
0x72, 0xca, 0x29, 0x32, 0x52, 0x42, 0xad, 0x4b, 0x66, 0x15, 0x8e, 0x25, 0x21, 0x3d, 0xb3, 0x70,
0xec, 0x9c, 0x5c, 0xb2, 0x25, 0x6c, 0xef, 0x59, 0xe1, 0xd8, 0x8c, 0x30, 0x96, 0xd0, 0x74, 0x69,
0x73, 0xeb, 0xb7, 0x1a, 0xe8, 0x5e, 0x4c, 0x73, 0x7e, 0x44, 0xc2, 0x09, 0xc9, 0xd1, 0x37, 0xd0,
0x2c, 0x48, 0x5e, 0x62, 0x4d, 0x6d, 0x53, 0xdb, 0xd6, 0x9d, 0xcf, 0xac, 0xc5, 0x51, 0x65, 0x7d,
0xeb, 0x47, 0xb9, 0x8d, 0x2b, 0x1c, 0xfa, 0x0a, 0x9e, 0x44, 0x39, 0x09, 0x79, 0x42, 0xd3, 0x80,
0x64, 0x34, 0x8a, 0xcd, 0xda, 0xa6, 0xb6, 0xbd, 0x81, 0xbb, 0x55, 0xd6, 0x2d, 0x93, 0xc8, 0x81,
0x16, 0xfd, 0x35, 0x25, 0x79, 0x90, 0x4c, 0xcc, 0xf5, 0x77, 0x97, 0x1e, 0x97, 0xfb, 0xa3, 0x21,
0x6e, 0x52, 0x19, 0xa0, 0x57, 0xa0, 0x4b, 0x79, 0x41, 0xd9, 0xb3, 0xb9, 0xb1, 0xa9, 0x6d, 0x3f,
0x71, 0xbe, 0xb0, 0x1e, 0x8b, 0xb7, 0xc6, 0xe2, 0xe3, 0xdf, 0x64, 0x04, 0x03, 0xbd, 0x8b, 0xcb,
0xce, 0xb2, 0xf0, 0x66, 0x46, 0xc3, 0x49, 0x30, 0x23, 0xe9, 0x94, 0xc7, 0x66, 0x5d, 0x76, 0xa6,
0xb2, 0xc7, 0x22, 0xb9, 0xf5, 0xb6, 0x09, 0x8d, 0x0f, 0x97, 0xff, 0x3d, 0x74, 0x22, 0x9a, 0xf2,
0x30, 0x51, 0xda, 0x6a, 0x82, 0xf7, 0xec, 0x31, 0xef, 0xa0, 0xc2, 0x8c, 0x86, 0x58, 0x8f, 0x16,
0x8b, 0x0f, 0xf2, 0x65, 0xd9, 0xf2, 0x8d, 0x77, 0x59, 0xfe, 0xdf, 0xf4, 0xa3, 0x3d, 0xe8, 0x54,
0xb0, 0x38, 0x64, 0xb1, 0xd9, 0x10, 0x5d, 0x98, 0x4b, 0x0a, 0x62, 0x12, 0x5d, 0xb1, 0xf9, 0x35,
0xd6, 0x15, 0xfa, 0x28, 0x64, 0xf1, 0xe3, 0x2b, 0x6a, 0xfe, 0xcf, 0x2b, 0x3a, 0x00, 0x23, 0xa6,
0xd7, 0xf4, 0x9a, 0xe6, 0x59, 0x9c, 0x44, 0xf2, 0xfc, 0xd6, 0x8a, 0xf3, 0x9f, 0xde, 0x63, 0x88,
0x1e, 0x86, 0xd0, 0x55, 0x03, 0x1e, 0x70, 0x7a, 0x45, 0x52, 0xb3, 0x2d, 0x2a, 0x7c, 0x79, 0xaf,
0x82, 0xda, 0xb7, 0x3c, 0xf9, 0xf5, 0x4b, 0x18, 0xee, 0xb0, 0x7b, 0x2b, 0xb4, 0x0f, 0x10, 0x72,
0x9e, 0x27, 0x17, 0x73, 0x4e, 0x98, 0x09, 0x9b, 0xeb, 0xdb, 0xba, 0xb3, 0xb5, 0x2c, 0x44, 0x4e,
0x8a, 0x35, 0xa8, 0xa0, 0xf8, 0x1e, 0x0b, 0xed, 0x42, 0x9d, 0x65, 0xb3, 0x84, 0x9b, 0xba, 0xe8,
0xa0, 0xff, 0x5e, 0xba, 0x57, 0xa2, 0xb0, 0x04, 0xf7, 0x5e, 0x40, 0xfb, 0xae, 0x1c, 0x32, 0x60,
0xfd, 0x8a, 0xdc, 0x88, 0xf1, 0x6b, 0xe3, 0x32, 0x44, 0x9f, 0x40, 0xbd, 0x08, 0x67, 0x73, 0x22,
0x46, 0xab, 0x8d, 0xe5, 0xa2, 0xf7, 0xa6, 0x06, 0x75, 0x51, 0x05, 0x7d, 0x0d, 0x8d, 0x2c, 0xcc,
0x49, 0xca, 0xd5, 0xcc, 0x2e, 0x39, 0x27, 0xbd, 0x1f, 0x0d, 0xb1, 0xc2, 0xa1, 0x5d, 0x68, 0x65,
0x39, 0x29, 0x12, 0x3a, 0x67, 0x6a, 0x5e, 0xdf, 0xcf, 0xb9, 0x43, 0xa2, 0x21, 0x18, 0x92, 0x1f,
0xb0, 0x64, 0x9a, 0x86, 0x7c, 0x9e, 0x13, 0x35, 0xb1, 0x9f, 0x3f, 0x66, 0x7b, 0x15, 0x00, 0x3f,
0x95, 0x94, 0xbb, 0x04, 0x7a, 0x05, 0x5d, 0x55, 0x25, 0x16, 0x56, 0x88, 0xd1, 0x7d, 0xd8, 0xc0,
0x03, 0xab, 0x70, 0x47, 0xc2, 0xd5, 0x0b, 0xdd, 0x85, 0x56, 0x14, 0x27, 0xb3, 0x49, 0x4e, 0x52,
0xb3, 0x2e, 0xee, 0xe8, 0x5f, 0x5a, 0xaf, 0x90, 0x5b, 0x7f, 0x68, 0xd0, 0x90, 0x69, 0xf4, 0x2d,
0xb4, 0xd5, 0xc0, 0x26, 0x93, 0x95, 0x86, 0xb5, 0xa8, 0x8a, 0xd0, 0x4b, 0x68, 0x2f, 0x54, 0xd7,
0x56, 0xa9, 0x5e, 0x60, 0xcb, 0xdb, 0x51, 0x42, 0xd7, 0x57, 0x08, 0x55, 0x38, 0x64, 0x42, 0x53,
0xbd, 0x30, 0xe1, 0x4d, 0x07, 0x57, 0xcb, 0xe7, 0x7b, 0x00, 0x8b, 0x77, 0x84, 0x74, 0x68, 0x62,
0xf7, 0xf0, 0xfc, 0x78, 0x80, 0x8d, 0x35, 0xd4, 0x85, 0xb6, 0x3f, 0x3e, 0xd9, 0xf7, 0xfc, 0xf1,
0xa9, 0x6b, 0x68, 0xe8, 0x23, 0xe8, 0x7a, 0xfe, 0x18, 0x0f, 0x0e, 0xdd, 0xe0, 0x10, 0x8f, 0xcf,
0xcf, 0x8c, 0xda, 0xf3, 0xef, 0xa0, 0x7d, 0x12, 0xf2, 0x28, 0x16, 0xdc, 0x1e, 0x7c, 0x7a, 0x32,
0xf0, 0x0f, 0x8e, 0x02, 0xff, 0xa7, 0x33, 0x37, 0x38, 0x3f, 0xf5, 0xce, 0xdc, 0x83, 0xd1, 0xeb,
0x91, 0x3b, 0x34, 0xd6, 0x90, 0x01, 0x1d, 0xcf, 0xc7, 0xa3, 0xd3, 0xc3, 0xc0, 0xfd, 0xe1, 0x7c,
0x70, 0x6c, 0x68, 0xfb, 0xc1, 0x9f, 0xb7, 0x7d, 0xed, 0xaf, 0xdb, 0xbe, 0xf6, 0xf6, 0xb6, 0xaf,
0xfd, 0xfe, 0x77, 0x7f, 0xed, 0xe7, 0x97, 0xd3, 0x84, 0xc7, 0xf3, 0x0b, 0x2b, 0xa2, 0xd7, 0x76,
0xca, 0xb2, 0x28, 0xda, 0x99, 0x90, 0xc2, 0x4e, 0x09, 0xbd, 0x64, 0x3b, 0x61, 0x96, 0xec, 0x4c,
0xa9, 0xfd, 0xf0, 0xf7, 0xb5, 0x27, 0xe3, 0x37, 0xb5, 0x8f, 0x4f, 0x09, 0x7d, 0xed, 0x59, 0x83,
0xb3, 0x51, 0xe9, 0x80, 0x94, 0x73, 0xd1, 0x10, 0x7f, 0xa3, 0x17, 0xff, 0x04, 0x00, 0x00, 0xff,
0xff, 0x21, 0xf4, 0xc9, 0x66, 0xf4, 0x06, 0x00, 0x00,
}
func (m *ShortHeader) Marshal() (dAtA []byte, err error) {

104
v2/refs/grpc/types.pb.go generated
View File

@ -22,13 +22,13 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Checksum algorithm type
// Checksum algorithm type.
type ChecksumType int32
const (
// Unknown. Not used
ChecksumType_CHECKSUM_TYPE_UNSPECIFIED ChecksumType = 0
// Tillich-Zemor homomorphic hash funciton
// Tillich-Zemor homomorphic hash function
ChecksumType_TZ ChecksumType = 1
// SHA-256
ChecksumType_SHA256 ChecksumType = 2
@ -54,12 +54,13 @@ func (ChecksumType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_08f084e5f91ec87c, []int{0}
}
// Address of object (container id + object id)
// Object in NeoFS can be addressed by it's ContainerID and ObjectID. In string
// format there MUST be a '/' delimeter between them.
type Address struct {
// container_id carries container identifier.
ContainerId *ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
// object_id carries object identifier.
ObjectId *ObjectID `protobuf:"bytes,2,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
// Container identifier
ContainerId *ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
// Object identifier
ObjectId *ObjectID `protobuf:"bytes,2,opt,name=object_id,json=objectID,proto3" json:"object_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -112,9 +113,12 @@ func (m *Address) GetObjectId() *ObjectID {
return nil
}
// NeoFS object identifier.
// NeoFS Object unique identifier. Objects are immutable and content-addressed.
// It means `ObjectID` will change if `header` or `payload` changes. `ObjectID`
// is calculated as a hash of `header` field, which contains hash of object's
// payload.
type ObjectID struct {
// value carries the object identifier in a binary format.
// Object identifier in a binary format
Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -161,9 +165,11 @@ func (m *ObjectID) GetValue() []byte {
return nil
}
// NeoFS container identifier.
// NeoFS container identifier. Container structures are immutable and
// content-addressed. `ContainerID` is a 32 byte long SHA256 hash of
// stable-marshalled container message.
type ContainerID struct {
// value carries the container identifier in a binary format.
// Container identifier in a binary format.
Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -210,9 +216,11 @@ func (m *ContainerID) GetValue() []byte {
return nil
}
// OwnerID group information about the owner of the NeoFS container.
// OwnerID is a derivative of a user's main public key. The transformation
// algorithm is the same as for Neo3 wallet addresses. Neo3 wallet address can
// be directly used as `OwnerID`.
type OwnerID struct {
// value carries the identifier of the container owner in a binary format.
// Identifier of the container owner in a binary format
Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -259,11 +267,11 @@ func (m *OwnerID) GetValue() []byte {
return nil
}
// Represents API version used by node.
// API version used by a node.
type Version struct {
// Major API version.
// Major API version
Major uint32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
// Minor API version.
// Minor API version
Minor uint32 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -317,12 +325,12 @@ func (m *Version) GetMinor() uint32 {
return 0
}
// Signature of something in NeoFS
// Signature of something in NeoFS.
type Signature struct {
// Public key used for signing.
// Public key used for signing
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// Signature
Sign []byte `protobuf:"bytes,2,opt,name=sign,proto3" json:"sign,omitempty"`
Sign []byte `protobuf:"bytes,2,opt,name=sign,json=signature,proto3" json:"sign,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -375,7 +383,7 @@ func (m *Signature) GetSign() []byte {
return nil
}
// Checksum message
// Checksum message.
type Checksum struct {
// Checksum algorithm type
Type ChecksumType `protobuf:"varint,1,opt,name=type,proto3,enum=neo.fs.v2.refs.ChecksumType" json:"type,omitempty"`
@ -447,34 +455,34 @@ func init() {
func init() { proto.RegisterFile("v2/refs/grpc/types.proto", fileDescriptor_08f084e5f91ec87c) }
var fileDescriptor_08f084e5f91ec87c = []byte{
// 427 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0x6e, 0xd3, 0x40,
0x10, 0x86, 0xeb, 0x50, 0x92, 0x74, 0x12, 0xaa, 0xb0, 0xe2, 0x10, 0x04, 0x84, 0xca, 0x5c, 0x10,
0x52, 0xd6, 0xe0, 0x2a, 0x5c, 0x90, 0x90, 0x82, 0x93, 0xaa, 0x16, 0x22, 0x8d, 0xec, 0x14, 0xa9,
0xbd, 0x44, 0x8e, 0x3d, 0x71, 0xb7, 0x25, 0xbb, 0xd6, 0xae, 0x6d, 0x94, 0x1b, 0x8f, 0xc1, 0x33,
0xf0, 0x24, 0x1c, 0x79, 0x04, 0x14, 0x5e, 0x04, 0xed, 0x26, 0x41, 0x01, 0x04, 0xb7, 0x7f, 0x46,
0xdf, 0xb7, 0x63, 0x8f, 0x06, 0xda, 0xa5, 0xeb, 0x48, 0x9c, 0x2b, 0x27, 0x95, 0x59, 0xec, 0xe4,
0xcb, 0x0c, 0x15, 0xcd, 0xa4, 0xc8, 0x05, 0x39, 0xe4, 0x28, 0xe8, 0x5c, 0xd1, 0xd2, 0xa5, 0x1a,
0xb0, 0x3f, 0x59, 0x50, 0xeb, 0x27, 0x89, 0x44, 0xa5, 0xc8, 0x6b, 0x68, 0xc6, 0x82, 0xe7, 0x11,
0xe3, 0x28, 0xa7, 0x2c, 0x69, 0x5b, 0x47, 0xd6, 0xd3, 0x86, 0xfb, 0x80, 0xfe, 0xae, 0x50, 0x6f,
0xcb, 0xf8, 0x83, 0xa0, 0xf1, 0x4b, 0xf0, 0x13, 0xd2, 0x83, 0x03, 0x31, 0xbb, 0xc6, 0x38, 0xd7,
0x72, 0xc5, 0xc8, 0xed, 0x3f, 0xe5, 0x33, 0x03, 0xf8, 0x83, 0xa0, 0xbe, 0x46, 0xfd, 0xc4, 0x3e,
0x82, 0xfa, 0xb6, 0x4b, 0xee, 0xc1, 0xed, 0x32, 0xfa, 0x50, 0xa0, 0x99, 0xdd, 0x0c, 0xd6, 0x85,
0xfd, 0x04, 0x1a, 0x3b, 0x43, 0xff, 0x01, 0x3d, 0x86, 0xda, 0xd9, 0xc7, 0xff, 0x01, 0x3d, 0xa8,
0xbd, 0x47, 0xa9, 0x98, 0xe0, 0x1a, 0x58, 0x44, 0xd7, 0x42, 0x1a, 0xe0, 0x4e, 0xb0, 0x2e, 0x4c,
0x97, 0x71, 0x21, 0xcd, 0xb7, 0xeb, 0xae, 0x2e, 0xec, 0x17, 0x70, 0x10, 0xb2, 0x94, 0x47, 0x79,
0x21, 0x91, 0xb4, 0xe0, 0xd6, 0x0d, 0x2e, 0x37, 0xef, 0xea, 0x48, 0x08, 0xec, 0x2b, 0x96, 0x72,
0xe3, 0x34, 0x03, 0x93, 0xed, 0x11, 0xd4, 0xbd, 0x2b, 0x8c, 0x6f, 0x54, 0xb1, 0x20, 0xcf, 0x61,
0x5f, 0xef, 0xdf, 0x28, 0x87, 0xee, 0xc3, 0xbf, 0x96, 0xb9, 0xe1, 0x26, 0xcb, 0x0c, 0x03, 0x43,
0xea, 0x19, 0xaa, 0x58, 0x6c, 0x1e, 0xd4, 0xf1, 0x59, 0x1f, 0x9a, 0xbb, 0x1c, 0x79, 0x04, 0xf7,
0xbd, 0xd3, 0xa1, 0xf7, 0x36, 0x3c, 0x7f, 0x37, 0x9d, 0x5c, 0x8c, 0x87, 0xd3, 0xf3, 0x51, 0x38,
0x1e, 0x7a, 0xfe, 0x89, 0x3f, 0x1c, 0xb4, 0xf6, 0x48, 0x15, 0x2a, 0x93, 0xcb, 0x96, 0x45, 0x00,
0xaa, 0xe1, 0x69, 0xdf, 0xed, 0xbd, 0x6c, 0x55, 0xde, 0x5c, 0x7c, 0x5d, 0x75, 0xac, 0x6f, 0xab,
0x8e, 0xf5, 0x7d, 0xd5, 0xb1, 0x3e, 0xff, 0xe8, 0xec, 0x5d, 0x1e, 0xa7, 0x2c, 0xbf, 0x2a, 0x66,
0x34, 0x16, 0x0b, 0x87, 0xab, 0x2c, 0x8e, 0xbb, 0x09, 0x96, 0x0e, 0x47, 0x31, 0x57, 0xdd, 0x28,
0x63, 0xdd, 0x54, 0x38, 0xbb, 0x57, 0xf4, 0x4a, 0xa7, 0x2f, 0x95, 0xbb, 0x23, 0x14, 0x27, 0x21,
0xed, 0x8f, 0x7d, 0xfd, 0x0b, 0x01, 0xce, 0xd5, 0xac, 0x6a, 0x2e, 0xeb, 0xf8, 0x67, 0x00, 0x00,
0x00, 0xff, 0xff, 0xbb, 0x23, 0xc5, 0xde, 0x75, 0x02, 0x00, 0x00,
// 428 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xdf, 0x6a, 0x13, 0x41,
0x14, 0xc6, 0xbb, 0xb1, 0xe6, 0xcf, 0x49, 0x2c, 0x71, 0x10, 0x8c, 0xa8, 0xb1, 0xac, 0x37, 0x22,
0x64, 0x57, 0xb6, 0xa4, 0x37, 0x82, 0x10, 0x37, 0x29, 0x5d, 0xc4, 0x34, 0xec, 0xa6, 0x42, 0x7b,
0x13, 0x36, 0x93, 0x93, 0xed, 0xb4, 0x66, 0x66, 0x99, 0xd9, 0x8d, 0xe4, 0xce, 0xc7, 0xf0, 0x19,
0x7c, 0x12, 0x2f, 0x7d, 0x04, 0x89, 0x2f, 0x22, 0x33, 0xd9, 0x60, 0x54, 0xec, 0xdd, 0xf7, 0x1d,
0x7e, 0xdf, 0x39, 0xf3, 0xe7, 0x40, 0x6b, 0xe9, 0xb9, 0x12, 0xe7, 0xca, 0x4d, 0x64, 0x4a, 0xdd,
0x6c, 0x95, 0xa2, 0x72, 0x52, 0x29, 0x32, 0x41, 0x0e, 0x38, 0x0a, 0x67, 0xae, 0x9c, 0xa5, 0xe7,
0x68, 0xc0, 0xfe, 0x6c, 0x41, 0xa5, 0x37, 0x9b, 0x49, 0x54, 0x8a, 0xbc, 0x81, 0x06, 0x15, 0x3c,
0x8b, 0x19, 0x47, 0x39, 0x61, 0xb3, 0x96, 0x75, 0x68, 0xbd, 0xa8, 0x7b, 0x8f, 0x9d, 0x3f, 0x23,
0x8e, 0xbf, 0x65, 0x82, 0x7e, 0x58, 0xa7, 0xbf, 0x0d, 0xe9, 0x42, 0x4d, 0x4c, 0xaf, 0x91, 0x66,
0x3a, 0x5c, 0x32, 0xe1, 0xd6, 0xdf, 0xe1, 0x33, 0x03, 0x04, 0xfd, 0xb0, 0x2a, 0x0a, 0x65, 0x1f,
0x42, 0x75, 0x5b, 0x25, 0x0f, 0xe0, 0xee, 0x32, 0xfe, 0x98, 0xa3, 0x99, 0xdd, 0x08, 0x37, 0xc6,
0x7e, 0x0e, 0xf5, 0x9d, 0xa1, 0xff, 0x81, 0x9e, 0x41, 0xe5, 0xec, 0xd3, 0x6d, 0x40, 0x17, 0x2a,
0x1f, 0x50, 0x2a, 0x26, 0xb8, 0x06, 0x16, 0xf1, 0xb5, 0x90, 0x06, 0xb8, 0x17, 0x6e, 0x8c, 0xa9,
0x32, 0x2e, 0xa4, 0x39, 0xbb, 0xae, 0x6a, 0x63, 0x1f, 0x43, 0x2d, 0x62, 0x09, 0x8f, 0xb3, 0x5c,
0x22, 0x69, 0xc2, 0x9d, 0x1b, 0x5c, 0x15, 0x7d, 0xb5, 0x24, 0x0f, 0x61, 0x5f, 0xb1, 0x84, 0x9b,
0x4c, 0x23, 0xac, 0xa9, 0x2d, 0x6a, 0x0f, 0xa1, 0xea, 0x5f, 0x21, 0xbd, 0x51, 0xf9, 0x82, 0xbc,
0x82, 0x7d, 0xfd, 0x09, 0x26, 0x77, 0xe0, 0x3d, 0xf9, 0xe7, 0x45, 0x0b, 0x6e, 0xbc, 0x4a, 0x31,
0x34, 0xa4, 0x1e, 0xa4, 0xf2, 0x45, 0xd1, 0x55, 0xcb, 0x97, 0x3d, 0x68, 0xec, 0x72, 0xe4, 0x29,
0x3c, 0xf2, 0x4f, 0x07, 0xfe, 0xbb, 0xe8, 0xfc, 0xfd, 0x64, 0x7c, 0x31, 0x1a, 0x4c, 0xce, 0x87,
0xd1, 0x68, 0xe0, 0x07, 0x27, 0xc1, 0xa0, 0xdf, 0xdc, 0x23, 0x65, 0x28, 0x8d, 0x2f, 0x9b, 0x16,
0x01, 0x28, 0x47, 0xa7, 0x3d, 0xaf, 0x7b, 0xdc, 0x2c, 0xbd, 0xbd, 0xf8, 0xb6, 0x6e, 0x5b, 0xdf,
0xd7, 0x6d, 0xeb, 0xc7, 0xba, 0x6d, 0x7d, 0xf9, 0xd9, 0xde, 0xbb, 0x3c, 0x4a, 0x58, 0x76, 0x95,
0x4f, 0x1d, 0x2a, 0x16, 0x2e, 0x57, 0x29, 0xa5, 0x9d, 0x19, 0x2e, 0x5d, 0x8e, 0x62, 0xae, 0x3a,
0x71, 0xca, 0x3a, 0x89, 0x70, 0x77, 0x57, 0xe9, 0xb5, 0x56, 0x5f, 0x4b, 0xf7, 0x87, 0x28, 0x4e,
0x22, 0xa7, 0x37, 0x0a, 0xf4, 0x15, 0x42, 0x9c, 0xab, 0x69, 0xd9, 0xac, 0xd7, 0xd1, 0xaf, 0x00,
0x00, 0x00, 0xff, 0xff, 0xa0, 0xaf, 0x9d, 0x5e, 0x7a, 0x02, 0x00, 0x00,
}
func (m *Address) Marshal() (dAtA []byte, err error) {

View File

@ -27,15 +27,16 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// CreateRequest carries an information necessary for opening a session.
// Information necessary for opening a session.
type CreateRequest struct {
// Body of create session token request message.
Body *CreateRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Carries request meta information. Header data is used only to regulate message
// transport and does not affect request execution.
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
MetaHeader *RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries request verification information. This header is used to authenticate
// the nodes of the message route and check the correctness of transmission.
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -96,11 +97,11 @@ func (m *CreateRequest) GetVerifyHeader() *RequestVerificationHeader {
return nil
}
// Request body
// Session creation request body
type CreateRequest_Body struct {
// Carries an identifier of a session initiator.
// Dession initiating user's or node's key derived `OwnerID`.
OwnerId *grpc.OwnerID `protobuf:"bytes,1,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
// Expiration Epoch
// Session expiration `Epoch`
Expiration uint64 `protobuf:"varint,2,opt,name=expiration,proto3" json:"expiration,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -154,7 +155,7 @@ func (m *CreateRequest_Body) GetExpiration() uint64 {
return 0
}
// CreateResponse carries an information about the opened session.
// Information about the opened session.
type CreateResponse struct {
// Body of create session token response message.
Body *CreateResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
@ -162,8 +163,8 @@ type CreateResponse struct {
// message transport and does not affect request execution.
MetaHeader *ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness
// of transmission.
// authenticate the nodes of the message route and check the correctness of
// transmission.
VerifyHeader *ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -224,11 +225,11 @@ func (m *CreateResponse) GetVerifyHeader() *ResponseVerificationHeader {
return nil
}
// Response body
// Session creation response body
type CreateResponse_Body struct {
// id carries an identifier of session token.
// Identifier of a newly created session
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// session_key carries a session public key.
// Public key used for session
SessionKey []byte `protobuf:"bytes,2,opt,name=session_key,json=sessionKey,proto3" json:"session_key,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -335,7 +336,7 @@ const _ = grpc1.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type SessionServiceClient interface {
// Create opens new session between the client and the server.
// Opens a new session between two peers.
Create(ctx context.Context, in *CreateRequest, opts ...grpc1.CallOption) (*CreateResponse, error)
}
@ -358,7 +359,7 @@ func (c *sessionServiceClient) Create(ctx context.Context, in *CreateRequest, op
// SessionServiceServer is the server API for SessionService service.
type SessionServiceServer interface {
// Create opens new session between the client and the server.
// Opens a new session between two peers.
Create(context.Context, *CreateRequest) (*CreateResponse, error)
}

View File

@ -78,7 +78,7 @@ func (ObjectSessionContext_Verb) EnumDescriptor() ([]byte, []int) {
// Context information for Session Tokens related to ObjectService requests
type ObjectSessionContext struct {
// Verb is a type of request for which the token is issued
// Type of request for which the token is issued
Verb ObjectSessionContext_Verb `protobuf:"varint,1,opt,name=verb,proto3,enum=neo.fs.v2.session.ObjectSessionContext_Verb" json:"verb,omitempty"`
// Related Object address
Address *grpc.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
@ -134,11 +134,13 @@ func (m *ObjectSessionContext) GetAddress() *grpc.Address {
return nil
}
// NeoFS session token.
// NeoFS Session Token.
type SessionToken struct {
// Session Token body
// Session Token contains the proof of trust between peers to be attached in
// requests for further verification. Please see corresponding section of
// NeoFS Technical Specification for details.
Body *SessionToken_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
// Signature is a signature of session token information
// Signature of `SessionToken` information
Signature *grpc.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -192,17 +194,17 @@ func (m *SessionToken) GetSignature() *grpc.Signature {
return nil
}
// Session token body
// Session Token body
type SessionToken_Body struct {
// ID is a token identifier. valid UUIDv4 represented in bytes
// Token identifier is a valid UUIDv4 in binary form
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// OwnerID carries identifier of the session initiator.
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
// Lifetime is a lifetime of the session
// Identifier of the session initiator
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
// Lifetime of the session
Lifetime *SessionToken_Body_TokenLifetime `protobuf:"bytes,3,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
// SessionKey is a public key of session key
// Public key used in session
SessionKey []byte `protobuf:"bytes,4,opt,name=session_key,json=sessionKey,proto3" json:"session_key,omitempty"`
// Carries context of the session.
// Session Context information
//
// Types that are valid to be assigned to Context:
// *SessionToken_Body_Object
@ -373,11 +375,11 @@ func (m *SessionToken_Body_TokenLifetime) GetIat() uint64 {
return 0
}
// Extended headers for Request/Response
// Extended headers for Request/Response.
type XHeader struct {
// Key of the X-Header.
// Key of the X-Header
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// Value of the X-Header.
// Value of the X-Header
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -431,21 +433,22 @@ func (m *XHeader) GetValue() string {
return ""
}
// Information about the request
// Meta information attached to the request. When forwarded between peers,
// request meta headers are folded in matryoshka style.
type RequestMetaHeader struct {
// Client API version.
// Peer's API version used
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// Client local epoch number. Set to 0 if unknown.
// Peer's local epoch number. Set to 0 if unknown.
Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
// Maximum number of nodes in the request route.
// Maximum number of intermediate nodes in the request route
Ttl uint32 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
// Request X-Headers.
// Request X-Headers
XHeaders []*XHeader `protobuf:"bytes,4,rep,name=x_headers,json=xHeaders,proto3" json:"x_headers,omitempty"`
// Token is a token of the session within which the request is sent
// Session token within which the request is sent
SessionToken *SessionToken `protobuf:"bytes,5,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
// Bearer is a Bearer token of the request
// `BearerToken` with eACL overrides for the request
BearerToken *grpc1.BearerToken `protobuf:"bytes,6,opt,name=bearer_token,json=bearerToken,proto3" json:"bearer_token,omitempty"`
// RequestMetaHeader of the origin request.
// `RequestMetaHeader` of the origin request
Origin *RequestMetaHeader `protobuf:"bytes,7,opt,name=origin,proto3" json:"origin,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -536,15 +539,15 @@ func (m *RequestMetaHeader) GetOrigin() *RequestMetaHeader {
// Information about the response
type ResponseMetaHeader struct {
// Server API version.
// Peer's API version used
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
// Server local epoch number.
// Peer's local epoch number
Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
// Maximum number of nodes in the response route.
// Maximum number of intermediate nodes in the request route
Ttl uint32 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
// Response X-Headers.
// Response X-Headers
XHeaders []*XHeader `protobuf:"bytes,4,rep,name=x_headers,json=xHeaders,proto3" json:"x_headers,omitempty"`
// Carries response meta header of the origin response.
// `ResponseMetaHeader` of the origin request
Origin *ResponseMetaHeader `protobuf:"bytes,5,opt,name=origin,proto3" json:"origin,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -619,13 +622,13 @@ func (m *ResponseMetaHeader) GetOrigin() *ResponseMetaHeader {
return nil
}
// Verification info for request signed by all intermediate nodes
// Verification info for request signed by all intermediate nodes.
type RequestVerificationHeader struct {
// Request Body signature. Should be generated once by request initiator.
BodySignature *grpc.Signature `protobuf:"bytes,1,opt,name=body_signature,json=bodySignature,proto3" json:"body_signature,omitempty"`
// Request Meta signature is added and signed by any intermediate node
// Request Meta signature is added and signed by each intermediate node
MetaSignature *grpc.Signature `protobuf:"bytes,2,opt,name=meta_signature,json=metaSignature,proto3" json:"meta_signature,omitempty"`
// Sign previous hops
// Signature of previous hops
OriginSignature *grpc.Signature `protobuf:"bytes,3,opt,name=origin_signature,json=originSignature,proto3" json:"origin_signature,omitempty"`
// Chain of previous hops signatures
Origin *RequestVerificationHeader `protobuf:"bytes,4,opt,name=origin,proto3" json:"origin,omitempty"`
@ -699,9 +702,9 @@ func (m *RequestVerificationHeader) GetOrigin() *RequestVerificationHeader {
type ResponseVerificationHeader struct {
// Response Body signature. Should be generated once by answering node.
BodySignature *grpc.Signature `protobuf:"bytes,1,opt,name=body_signature,json=bodySignature,proto3" json:"body_signature,omitempty"`
// Response Meta signature is added and signed by any intermediate node
// Response Meta signature is added and signed by each intermediate node
MetaSignature *grpc.Signature `protobuf:"bytes,2,opt,name=meta_signature,json=metaSignature,proto3" json:"meta_signature,omitempty"`
// Sign previous hops
// Signature of previous hops
OriginSignature *grpc.Signature `protobuf:"bytes,3,opt,name=origin_signature,json=originSignature,proto3" json:"origin_signature,omitempty"`
// Chain of previous hops signatures
Origin *ResponseVerificationHeader `protobuf:"bytes,4,opt,name=origin,proto3" json:"origin,omitempty"`
@ -787,60 +790,60 @@ func init() {
func init() { proto.RegisterFile("v2/session/grpc/types.proto", fileDescriptor_6bbc551f310b2b05) }
var fileDescriptor_6bbc551f310b2b05 = []byte{
// 840 bytes of a gzipped FileDescriptorProto
// 839 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0xdd, 0x6e, 0x1b, 0x45,
0x14, 0xce, 0xae, 0x37, 0x76, 0x7c, 0x1c, 0x87, 0xed, 0x28, 0x52, 0x5d, 0x23, 0xa5, 0x91, 0x05,
0x22, 0x17, 0xcd, 0x5a, 0x59, 0x2e, 0x00, 0x41, 0xa5, 0xda, 0xf1, 0xb6, 0xb6, 0x28, 0x69, 0x34,
0x4e, 0x23, 0xc4, 0x8d, 0xb5, 0x3f, 0xc7, 0xce, 0xb6, 0xce, 0x8e, 0xd9, 0x99, 0x2c, 0xf1, 0x9b,
0xf0, 0x0c, 0x20, 0xde, 0x83, 0xcb, 0x5e, 0xf0, 0x00, 0x28, 0x5c, 0x20, 0xf1, 0x02, 0xdc, 0xa2,
0x99, 0x1d, 0x3b, 0x26, 0x8e, 0x49, 0xb8, 0x43, 0xdc, 0x9d, 0xd9, 0x39, 0xdf, 0x37, 0xdf, 0xf7,
0xcd, 0xf1, 0xc8, 0xf0, 0x7e, 0xe6, 0x36, 0x39, 0x72, 0x1e, 0xb3, 0xa4, 0x39, 0x4a, 0x27, 0x61,
0x53, 0x4c, 0x27, 0xc8, 0x9d, 0x49, 0xca, 0x04, 0x23, 0x0f, 0x12, 0x64, 0xce, 0x90, 0x3b, 0x99,
0xeb, 0xe8, 0x9e, 0x7a, 0x2d, 0x73, 0x9b, 0x29, 0x0e, 0xf9, 0x52, 0x73, 0xfd, 0x61, 0xe6, 0x36,
0xfd, 0x70, 0xbc, 0xb4, 0xd1, 0xf8, 0xd3, 0x80, 0xed, 0x57, 0xc1, 0x1b, 0x0c, 0x45, 0x3f, 0x27,
0x39, 0x64, 0x89, 0xc0, 0x4b, 0x41, 0x9e, 0x81, 0x95, 0x61, 0x1a, 0xd4, 0x8c, 0x5d, 0x63, 0x6f,
0xcb, 0x7d, 0xe2, 0x2c, 0x9d, 0xe6, 0xdc, 0x06, 0x73, 0x4e, 0x31, 0x0d, 0xa8, 0x42, 0x92, 0x03,
0x28, 0xf9, 0x51, 0x94, 0x22, 0xe7, 0x35, 0x73, 0xd7, 0xd8, 0xab, 0xb8, 0x0f, 0x17, 0x48, 0xa4,
0x4c, 0xa7, 0x95, 0x6f, 0xd3, 0x59, 0x5f, 0xe3, 0x0d, 0x58, 0x92, 0x80, 0x6c, 0x83, 0x7d, 0xea,
0xd1, 0xf6, 0xe0, 0xf5, 0x51, 0xff, 0xd8, 0x3b, 0xec, 0x3d, 0xef, 0x79, 0x1d, 0x7b, 0x8d, 0x94,
0xa0, 0x70, 0xfc, 0xfa, 0xc4, 0x36, 0x64, 0xf1, 0xc2, 0x3b, 0xb1, 0x4d, 0xb2, 0x01, 0x56, 0xd7,
0x6b, 0x75, 0xec, 0x02, 0x01, 0x28, 0xf6, 0xbd, 0x16, 0x3d, 0xec, 0xda, 0x96, 0xac, 0x3b, 0xde,
0x4b, 0xef, 0xc4, 0xb3, 0xd7, 0x49, 0x19, 0xd6, 0x69, 0xeb, 0xe8, 0x85, 0x67, 0x17, 0x49, 0x15,
0xca, 0xaa, 0xec, 0xb6, 0xfa, 0x5d, 0xbb, 0xd4, 0xf8, 0xa5, 0x00, 0x9b, 0x5a, 0xfc, 0x09, 0x7b,
0x8b, 0x09, 0xf9, 0x14, 0xac, 0x80, 0x45, 0x53, 0xe5, 0xb8, 0xe2, 0x7e, 0x70, 0x8b, 0xe3, 0xc5,
0x76, 0xa7, 0xcd, 0xa2, 0x29, 0x55, 0x08, 0xf2, 0x09, 0x94, 0x79, 0x3c, 0x4a, 0x7c, 0x71, 0x91,
0xa2, 0xf6, 0xfa, 0xe8, 0xa6, 0xd7, 0xfe, 0xac, 0x81, 0x5e, 0xf7, 0xd6, 0xdf, 0x99, 0x60, 0x49,
0x1e, 0xb2, 0x05, 0x66, 0x1c, 0xa9, 0x93, 0x37, 0xa9, 0x19, 0x47, 0xc4, 0x85, 0x0d, 0xf6, 0x5d,
0x82, 0xe9, 0x20, 0x8e, 0x56, 0x85, 0xf7, 0x4a, 0xee, 0xf7, 0x3a, 0xb4, 0xa4, 0x1a, 0x7b, 0x11,
0x39, 0x82, 0x8d, 0x71, 0x3c, 0x44, 0x11, 0x9f, 0x63, 0xad, 0xa0, 0x30, 0xee, 0x7d, 0x3c, 0x38,
0xaa, 0x7c, 0xa9, 0x91, 0x74, 0xce, 0x41, 0x1e, 0x43, 0x45, 0x83, 0x06, 0x6f, 0x71, 0x5a, 0xb3,
0x94, 0x38, 0xd0, 0x9f, 0xbe, 0xc4, 0x29, 0x69, 0x41, 0x91, 0xa9, 0x19, 0xa8, 0xad, 0xab, 0xe3,
0x3e, 0xba, 0xe7, 0x90, 0x74, 0xd7, 0xa8, 0x06, 0xd6, 0x3d, 0xa8, 0xfe, 0xed, 0x78, 0x62, 0x43,
0x01, 0x2f, 0x27, 0x2a, 0x09, 0x8b, 0xca, 0x52, 0x7e, 0x49, 0x82, 0xa1, 0x4a, 0xc1, 0xa2, 0xb2,
0x94, 0x5f, 0x62, 0x5f, 0x28, 0x8f, 0x16, 0x95, 0x65, 0xbb, 0x0c, 0xa5, 0x30, 0xe7, 0x6e, 0x1c,
0x40, 0xe9, 0xeb, 0x2e, 0xfa, 0x11, 0xa6, 0xb2, 0x4f, 0x0a, 0x97, 0x5c, 0x65, 0x2a, 0x4b, 0xb2,
0x0d, 0xeb, 0x99, 0x3f, 0xbe, 0xc8, 0x2f, 0xa9, 0x4c, 0xf3, 0x45, 0xe3, 0x0f, 0x13, 0x1e, 0x50,
0xfc, 0xf6, 0x02, 0xb9, 0xf8, 0x0a, 0x85, 0xaf, 0xd1, 0x07, 0x50, 0xca, 0x30, 0x95, 0xb2, 0xf5,
0x44, 0x2c, 0xdd, 0xc0, 0x69, 0xbe, 0x4d, 0x67, 0x7d, 0x92, 0x1e, 0x27, 0x2c, 0x3c, 0xd3, 0x62,
0xf3, 0x85, 0x94, 0x21, 0xc4, 0x58, 0xc9, 0xad, 0x52, 0x59, 0xca, 0x79, 0xb9, 0x1c, 0x9c, 0xa9,
0x63, 0x78, 0xcd, 0xda, 0x2d, 0xec, 0x55, 0xdc, 0xfa, 0x2d, 0xd9, 0x69, 0x1f, 0x74, 0xe3, 0x32,
0x2f, 0x38, 0xe9, 0x40, 0x75, 0x76, 0x25, 0x42, 0xc6, 0xa6, 0x83, 0x7f, 0x7c, 0xc7, 0x3d, 0xd3,
0x4d, 0xbe, 0x38, 0xe8, 0x4f, 0x61, 0x33, 0x40, 0x3f, 0xc5, 0x54, 0x93, 0x14, 0x15, 0xc9, 0xa2,
0x02, 0x3f, 0x1c, 0x3b, 0x6d, 0xd5, 0x92, 0xe3, 0x2b, 0xc1, 0xf5, 0x82, 0x7c, 0x01, 0x45, 0x96,
0xc6, 0xa3, 0x38, 0xa9, 0x95, 0x56, 0xfe, 0x52, 0x96, 0xe2, 0xa4, 0x1a, 0xd3, 0xf8, 0xdd, 0x00,
0x42, 0x91, 0x4f, 0x58, 0xc2, 0xf1, 0x3f, 0x9e, 0xf6, 0xd3, 0xb9, 0xd1, 0x3c, 0xe6, 0x0f, 0x6f,
0x35, 0x7a, 0xd3, 0xca, 0xdc, 0xe9, 0x8f, 0x26, 0x3c, 0xd2, 0x39, 0x9c, 0x62, 0x1a, 0x0f, 0xe3,
0xd0, 0x17, 0x31, 0x4b, 0xb4, 0xe1, 0x67, 0xb0, 0x25, 0xdf, 0x8e, 0xc1, 0xf5, 0xc3, 0x61, 0xdc,
0xf5, 0x70, 0x54, 0x25, 0x60, 0xbe, 0x94, 0x0c, 0xe7, 0x28, 0xfc, 0xc1, 0xbf, 0x78, 0x7a, 0xaa,
0x12, 0x70, 0xcd, 0xd0, 0x01, 0x3b, 0xd7, 0xba, 0xc0, 0x51, 0xb8, 0x8b, 0xe3, 0xbd, 0x1c, 0xb2,
0xc8, 0x32, 0x8b, 0xc9, 0x52, 0xd8, 0x27, 0xab, 0xe7, 0x61, 0x39, 0x87, 0x79, 0x5a, 0x3f, 0x99,
0x50, 0x9f, 0x85, 0xf9, 0xbf, 0x8e, 0xcb, 0xbb, 0x11, 0xd7, 0xfe, 0x3f, 0x4c, 0xd5, 0xea, 0xbc,
0xda, 0xc1, 0xcf, 0x57, 0x3b, 0xc6, 0xbb, 0xab, 0x1d, 0xe3, 0xd7, 0xab, 0x1d, 0xe3, 0xfb, 0xdf,
0x76, 0xd6, 0xbe, 0xf9, 0x6c, 0x14, 0x8b, 0xb3, 0x8b, 0xc0, 0x09, 0xd9, 0x79, 0x33, 0xe1, 0x93,
0x30, 0xdc, 0x8f, 0x30, 0x6b, 0x26, 0xc8, 0x86, 0x7c, 0xdf, 0x9f, 0xc4, 0xfb, 0x23, 0xd6, 0xbc,
0xf1, 0x7f, 0xe2, 0x73, 0xbd, 0xf8, 0xc1, 0xdc, 0x3e, 0x42, 0xf6, 0xbc, 0xef, 0xb4, 0x8e, 0x7b,
0x52, 0x86, 0x7e, 0x3b, 0x82, 0xa2, 0xfa, 0x8f, 0xf0, 0xf1, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff,
0x00, 0x73, 0x57, 0xf8, 0x88, 0x08, 0x00, 0x00,
0x22, 0x17, 0xcd, 0x5a, 0x59, 0x2e, 0x00, 0x41, 0xa5, 0xda, 0xf1, 0xb6, 0x8e, 0x28, 0x69, 0x34,
0x4e, 0x23, 0xc4, 0x8d, 0xb5, 0x3f, 0xc7, 0xce, 0xb6, 0xce, 0xce, 0xb2, 0x33, 0x59, 0xe2, 0x37,
0xe1, 0x19, 0x40, 0xbc, 0x07, 0x97, 0xbd, 0xe0, 0x01, 0x50, 0xb8, 0x40, 0xe2, 0x05, 0xb8, 0x45,
0x33, 0x3b, 0x76, 0x4c, 0x9c, 0x90, 0x70, 0x87, 0xb8, 0x3b, 0xb3, 0x73, 0xbe, 0x6f, 0xbe, 0xef,
0x9b, 0xe3, 0x91, 0xe1, 0xfd, 0xdc, 0x6d, 0x73, 0xe4, 0x3c, 0x66, 0x49, 0x7b, 0x9c, 0xa5, 0x61,
0x5b, 0x4c, 0x53, 0xe4, 0x4e, 0x9a, 0x31, 0xc1, 0xc8, 0x83, 0x04, 0x99, 0x33, 0xe2, 0x4e, 0xee,
0x3a, 0xba, 0xa7, 0xd9, 0xc8, 0xdd, 0x76, 0x86, 0x23, 0xbe, 0xd4, 0xdc, 0x7c, 0x98, 0xbb, 0x6d,
0x3f, 0x9c, 0x2c, 0x6d, 0xb4, 0xfe, 0x34, 0x60, 0xf3, 0x55, 0xf0, 0x06, 0x43, 0x31, 0x28, 0x48,
0xf6, 0x59, 0x22, 0xf0, 0x42, 0x90, 0x67, 0x60, 0xe5, 0x98, 0x05, 0x0d, 0x63, 0xdb, 0xd8, 0xd9,
0x70, 0x9f, 0x38, 0x4b, 0xa7, 0x39, 0x37, 0xc1, 0x9c, 0x13, 0xcc, 0x02, 0xaa, 0x90, 0x64, 0x0f,
0x2a, 0x7e, 0x14, 0x65, 0xc8, 0x79, 0xc3, 0xdc, 0x36, 0x76, 0x6a, 0xee, 0xc3, 0x05, 0x12, 0x29,
0xd3, 0xe9, 0x14, 0xdb, 0x74, 0xd6, 0xd7, 0x7a, 0x03, 0x96, 0x24, 0x20, 0x9b, 0x60, 0x9f, 0x78,
0xb4, 0x3b, 0x7c, 0x7d, 0x38, 0x38, 0xf2, 0xf6, 0x0f, 0x9e, 0x1f, 0x78, 0x3d, 0x7b, 0x85, 0x54,
0xa0, 0x74, 0xf4, 0xfa, 0xd8, 0x36, 0x64, 0xf1, 0xc2, 0x3b, 0xb6, 0x4d, 0xb2, 0x06, 0x56, 0xdf,
0xeb, 0xf4, 0xec, 0x12, 0x01, 0x28, 0x0f, 0xbc, 0x0e, 0xdd, 0xef, 0xdb, 0x96, 0xac, 0x7b, 0xde,
0x4b, 0xef, 0xd8, 0xb3, 0x57, 0x49, 0x15, 0x56, 0x69, 0xe7, 0xf0, 0x85, 0x67, 0x97, 0x49, 0x1d,
0xaa, 0xaa, 0xec, 0x77, 0x06, 0x7d, 0xbb, 0xd2, 0xfa, 0xa5, 0x04, 0xeb, 0x5a, 0xfc, 0x31, 0x7b,
0x8b, 0x09, 0xf9, 0x14, 0xac, 0x80, 0x45, 0x53, 0xe5, 0xb8, 0xe6, 0x7e, 0x70, 0x83, 0xe3, 0xc5,
0x76, 0xa7, 0xcb, 0xa2, 0x29, 0x55, 0x08, 0xf2, 0x09, 0x54, 0x79, 0x3c, 0x4e, 0x7c, 0x71, 0x9e,
0xa1, 0xf6, 0xfa, 0xe8, 0xba, 0xd7, 0xc1, 0xac, 0x81, 0x5e, 0xf5, 0x36, 0xdf, 0x99, 0x60, 0x49,
0x1e, 0xb2, 0x01, 0x66, 0x1c, 0xa9, 0x93, 0xd7, 0xa9, 0x19, 0x47, 0xc4, 0x85, 0x35, 0xf6, 0x5d,
0x82, 0xd9, 0x30, 0x8e, 0x6e, 0x0b, 0xef, 0x95, 0xdc, 0x3f, 0xe8, 0xd1, 0x0a, 0x2b, 0x0a, 0x72,
0x08, 0x6b, 0x93, 0x78, 0x84, 0x22, 0x3e, 0xc3, 0x46, 0x49, 0x61, 0xdc, 0xfb, 0x78, 0x70, 0x54,
0xf9, 0x52, 0x23, 0xe9, 0x9c, 0x83, 0x3c, 0x86, 0x9a, 0x06, 0x0d, 0xdf, 0xe2, 0xb4, 0x61, 0x29,
0x71, 0xa0, 0x3f, 0x7d, 0x89, 0x53, 0xd2, 0x81, 0x32, 0x53, 0x33, 0xd0, 0x58, 0x55, 0xc7, 0x7d,
0x74, 0xcf, 0x21, 0xe9, 0xaf, 0x50, 0x0d, 0x6c, 0x7a, 0x50, 0xff, 0xdb, 0xf1, 0xc4, 0x86, 0x12,
0x5e, 0xa4, 0x2a, 0x09, 0x8b, 0xca, 0x52, 0x7e, 0x49, 0x82, 0x91, 0x4a, 0xc1, 0xa2, 0xb2, 0x94,
0x5f, 0x62, 0x5f, 0x28, 0x8f, 0x16, 0x95, 0x65, 0xb7, 0x0a, 0x95, 0xb0, 0xe0, 0x6e, 0xed, 0x41,
0xe5, 0xeb, 0x3e, 0xfa, 0x11, 0x66, 0xb2, 0x4f, 0x0a, 0x97, 0x5c, 0x55, 0x2a, 0x4b, 0xb2, 0x09,
0xab, 0xb9, 0x3f, 0x39, 0x2f, 0x2e, 0xa9, 0x4a, 0x8b, 0x45, 0xeb, 0x0f, 0x13, 0x1e, 0x50, 0xfc,
0xf6, 0x1c, 0xb9, 0xf8, 0x0a, 0x85, 0xaf, 0xd1, 0x7b, 0x50, 0xc9, 0x31, 0x93, 0xb2, 0xf5, 0x44,
0x2c, 0xdd, 0xc0, 0x49, 0xb1, 0x4d, 0x67, 0x7d, 0x92, 0x1e, 0x53, 0x16, 0x9e, 0x6a, 0xb1, 0xc5,
0x42, 0xca, 0x10, 0x62, 0xa2, 0xe4, 0xd6, 0xa9, 0x2c, 0xe5, 0xbc, 0x5c, 0x0c, 0x4f, 0xd5, 0x31,
0xbc, 0x61, 0x6d, 0x97, 0x76, 0x6a, 0x6e, 0xf3, 0x86, 0xec, 0xb4, 0x0f, 0xba, 0x76, 0x51, 0x14,
0x9c, 0xf4, 0xa0, 0x3e, 0xbb, 0x12, 0x21, 0x63, 0xd3, 0xc1, 0x3f, 0xbe, 0xe3, 0x9e, 0xe9, 0x3a,
0x5f, 0x1c, 0xf4, 0xa7, 0xb0, 0x1e, 0xa0, 0x9f, 0x61, 0xa6, 0x49, 0xca, 0x8a, 0x64, 0x51, 0x81,
0x1f, 0x4e, 0x9c, 0xae, 0x6a, 0x29, 0xf0, 0xb5, 0xe0, 0x6a, 0x41, 0xbe, 0x80, 0x32, 0xcb, 0xe2,
0x71, 0x9c, 0x34, 0x2a, 0xb7, 0xfe, 0x52, 0x96, 0xe2, 0xa4, 0x1a, 0xd3, 0xfa, 0xdd, 0x00, 0x42,
0x91, 0xa7, 0x2c, 0xe1, 0xf8, 0x1f, 0x4f, 0xfb, 0xe9, 0xdc, 0x68, 0x11, 0xf3, 0x87, 0x37, 0x1a,
0xbd, 0x6e, 0x65, 0xee, 0xf4, 0x47, 0x13, 0x1e, 0xe9, 0x1c, 0x4e, 0x30, 0x8b, 0x47, 0x71, 0xe8,
0x8b, 0x98, 0x25, 0xda, 0xf0, 0x33, 0xd8, 0x90, 0x6f, 0xc7, 0xf0, 0xea, 0xe1, 0x30, 0xee, 0x7a,
0x38, 0xea, 0x12, 0x30, 0x5f, 0x4a, 0x86, 0x33, 0x14, 0xfe, 0xf0, 0x5f, 0x3c, 0x3d, 0x75, 0x09,
0xb8, 0x62, 0xe8, 0x81, 0x5d, 0x68, 0x5d, 0xe0, 0x28, 0xdd, 0xc5, 0xf1, 0x5e, 0x01, 0x59, 0x64,
0x99, 0xc5, 0x64, 0x29, 0xec, 0x93, 0xdb, 0xe7, 0x61, 0x39, 0x87, 0x79, 0x5a, 0x3f, 0x99, 0xd0,
0x9c, 0x85, 0xf9, 0xbf, 0x8e, 0xcb, 0xbb, 0x16, 0xd7, 0xee, 0x3f, 0x4c, 0xd5, 0xed, 0x79, 0x75,
0x83, 0x9f, 0x2f, 0xb7, 0x8c, 0x77, 0x97, 0x5b, 0xc6, 0xaf, 0x97, 0x5b, 0xc6, 0xf7, 0xbf, 0x6d,
0xad, 0x7c, 0xf3, 0xd9, 0x38, 0x16, 0xa7, 0xe7, 0x81, 0x13, 0xb2, 0xb3, 0x76, 0xc2, 0xd3, 0x30,
0xdc, 0x8d, 0x30, 0x6f, 0x27, 0xc8, 0x46, 0x7c, 0xd7, 0x4f, 0xe3, 0xdd, 0x31, 0x6b, 0x5f, 0xfb,
0x3f, 0xf1, 0xb9, 0x5e, 0xfc, 0x60, 0x6e, 0x1e, 0x22, 0x7b, 0x3e, 0x70, 0x3a, 0x47, 0x07, 0x52,
0x86, 0x7e, 0x3b, 0x82, 0xb2, 0xfa, 0x8f, 0xf0, 0xf1, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x18,
0x2f, 0x25, 0xb1, 0x88, 0x08, 0x00, 0x00,
}
func (m *ObjectSessionContext) Marshal() (dAtA []byte, err error) {

View File

@ -23,22 +23,20 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// StorageGroup groups the information about the NeoFS storage group.
// The storage group consists of objects from single container.
// 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.
type StorageGroup struct {
// validation_data_size carries the total size of the payloads of the storage
// group members.
// Total size of the payloads of objects in the storage group
ValidationDataSize uint64 `protobuf:"varint,1,opt,name=validation_data_size,json=validationDataSize,proto3" json:"validation_data_size,omitempty"`
// 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.
// 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.
ValidationHash *grpc.Checksum `protobuf:"bytes,2,opt,name=validation_hash,json=validationHash,proto3" json:"validation_hash,omitempty"`
// expiration_epoch carries last NeoFS epoch number of the storage group
// lifetime.
// Last NeoFS epoch number of the storage group lifetime
ExpirationEpoch uint64 `protobuf:"varint,3,opt,name=expiration_epoch,json=expirationEpoch,proto3" json:"expiration_epoch,omitempty"`
// Members carries the list of identifiers of the object storage group members.
// The list is strictly ordered.
// Strictly ordered list of storage group member objects
Members []*grpc.ObjectID `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`