forked from TrueCloudLab/frostfs-api
[#45] Fix linter errors
- Changed package names adding version - Added documentation descriptions (sometimes useless) for all fields - Changed enum format - Made SessionToken and BearerToken field names more clear Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
This commit is contained in:
parent
35d1d34ee0
commit
42e35fefff
13 changed files with 393 additions and 224 deletions
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/make -f
|
||||
SHELL=bash
|
||||
|
||||
# BRanch to match for BRaking changes
|
||||
# BRanch to match for BReaking changes
|
||||
BRBR?=master
|
||||
|
||||
.PHONY: lint
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package accounting;
|
||||
package neo.fs.v2.accounting;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/accounting";
|
||||
option csharp_namespace = "NeoFS.API.Accounting";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/accounting;accounting";
|
||||
option csharp_namespace = "NeoFS.API.v2.Accounting";
|
||||
|
||||
import "refs/types.proto";
|
||||
import "service/meta.proto";
|
||||
|
@ -11,7 +11,7 @@ import "service/verify.proto";
|
|||
|
||||
// The service provides methods for obtaining information
|
||||
// about the account balance in NeoFS system.
|
||||
service Accounting {
|
||||
service AccountingService {
|
||||
// Returns the amount of funds for the requested NeoFS account.
|
||||
rpc Balance (BalanceRequest) returns (BalanceResponse);
|
||||
}
|
||||
|
@ -24,23 +24,23 @@ service Accounting {
|
|||
// To gain access to the requested information, the request body must be formed
|
||||
// according to the requirements from the system specification.
|
||||
message BalanceRequest {
|
||||
//Request body
|
||||
message Body {
|
||||
// Carries user identifier in NeoFS system for which the balance
|
||||
// is requested.
|
||||
refs.OwnerID owner_id = 1;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
}
|
||||
|
||||
// Body of the balance request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Decimal represents the decimal numbers.
|
||||
|
@ -56,20 +56,20 @@ message Decimal {
|
|||
//
|
||||
// The amount of funds is calculated in decimal numbers.
|
||||
message BalanceResponse {
|
||||
//Request body
|
||||
message Body {
|
||||
// Carries the amount of funds on the account.
|
||||
Decimal balance = 1;
|
||||
}
|
||||
|
||||
// Body of the balance response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package acl;
|
||||
package neo.fs.v2.acl;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/acl";
|
||||
option csharp_namespace = "NeoFS.API.Acl";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/acl;acl";
|
||||
option csharp_namespace = "NeoFS.API.v2.Acl";
|
||||
|
||||
import "refs/types.proto";
|
||||
|
||||
// Target of the access control rule in access control list.
|
||||
enum Target {
|
||||
// Unknown target, default value.
|
||||
UNKNOWN = 0;
|
||||
// Unspecified target, default value.
|
||||
TARGET_UNSPECIFIED= 0;
|
||||
|
||||
// User target rule is applied if sender is the owner of the container.
|
||||
USER = 1;
|
||||
|
@ -27,13 +27,28 @@ enum Target {
|
|||
message EACLRecord {
|
||||
// Operation is an enumeration of operation types.
|
||||
enum Operation {
|
||||
OPERATION_UNKNOWN = 0;
|
||||
// Unspecified operation, default value.
|
||||
OPERATION_UNSPECIFIED = 0;
|
||||
|
||||
// Get
|
||||
GET = 1;
|
||||
|
||||
// Head
|
||||
HEAD = 2;
|
||||
|
||||
// Put
|
||||
PUT = 3;
|
||||
|
||||
// Delete
|
||||
DELETE = 4;
|
||||
|
||||
// Search
|
||||
SEARCH = 5;
|
||||
|
||||
// GetRange
|
||||
GETRANGE = 6;
|
||||
|
||||
// GetRangeHash
|
||||
GETRANGEHASH = 7;
|
||||
}
|
||||
|
||||
|
@ -42,8 +57,13 @@ message EACLRecord {
|
|||
|
||||
// Action is an enumeration of EACL actions.
|
||||
enum Action {
|
||||
ACTION_UNKNOWN = 0;
|
||||
// Unspecified action, default value.
|
||||
ACTION_UNSPECIFIED = 0;
|
||||
|
||||
// Allow action
|
||||
ALLOW = 1;
|
||||
|
||||
// Deny action
|
||||
DENY = 2;
|
||||
}
|
||||
|
||||
|
@ -54,8 +74,13 @@ message EACLRecord {
|
|||
message FilterInfo {
|
||||
// Header is an enumeration of filtering header types.
|
||||
enum Header {
|
||||
HEADER_UNKNOWN = 0;
|
||||
// Unspecified header, default value.
|
||||
HEADER_UNSPECIFIED = 0;
|
||||
|
||||
// Filter request headers
|
||||
REQUEST = 1;
|
||||
|
||||
// Filter object headers
|
||||
OBJECT = 2;
|
||||
}
|
||||
|
||||
|
@ -64,11 +89,15 @@ message EACLRecord {
|
|||
|
||||
// MatchType is an enumeration of match types.
|
||||
enum MatchType {
|
||||
MATCH_UNKNOWN = 0;
|
||||
// Unspecified match type, default value.
|
||||
MATCH_TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// Return true if strings are equal
|
||||
STRING_EQUAL = 1;
|
||||
|
||||
// Return true if strings are different
|
||||
STRING_NOT_EQUAL = 2;
|
||||
}
|
||||
|
||||
// MatchType carries type of match.
|
||||
MatchType match_type = 2 [json_name = "MatchType"];
|
||||
|
||||
|
@ -90,7 +119,6 @@ message EACLRecord {
|
|||
// key_list carries public keys of ACL target.
|
||||
repeated bytes key_list = 2 [json_name="Keys"];
|
||||
}
|
||||
|
||||
// targets carries information about extended ACL target list.
|
||||
repeated TargetInfo targets = 4 [json_name="Targets"];
|
||||
}
|
||||
|
@ -99,7 +127,7 @@ message EACLRecord {
|
|||
message EACLTable {
|
||||
// Carries identifier of the container that should use given
|
||||
// access control rules.
|
||||
refs.ContainerID container_id = 1 [json_name="ContainerID"];
|
||||
neo.fs.v2.refs.ContainerID container_id = 1 [json_name="ContainerID"];
|
||||
|
||||
// Records carries list of extended ACL rule records.
|
||||
repeated EACLRecord records = 2 [json_name="Records"];
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package container;
|
||||
package neo.fs.v2.container;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/container";
|
||||
option csharp_namespace = "NeoFS.API.Container";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/container;container";
|
||||
option csharp_namespace = "NeoFS.API.v2.Container";
|
||||
|
||||
import "acl/types.proto";
|
||||
import "container/types.proto";
|
||||
|
@ -11,9 +11,9 @@ import "refs/types.proto";
|
|||
import "service/meta.proto";
|
||||
import "service/verify.proto";
|
||||
|
||||
// Service provides API to access container smart-contract in morph chain
|
||||
// ContainerService provides API to access container smart-contract in morph chain
|
||||
// via NeoFS node.
|
||||
service Service {
|
||||
service ContainerService {
|
||||
// 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
|
||||
|
@ -43,7 +43,9 @@ service Service {
|
|||
rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse);
|
||||
}
|
||||
|
||||
// New NeoFS Container creation request
|
||||
message PutRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Container to create in NeoFS.
|
||||
container.Container container = 1;
|
||||
|
@ -55,138 +57,144 @@ message PutRequest {
|
|||
// Signature of stable-marshalled container according to RFC-6979.
|
||||
bytes signature = 3;
|
||||
}
|
||||
|
||||
// Body of container put request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// New NeoFS Container creation response
|
||||
message PutResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// container_id carries identifier of the new container.
|
||||
refs.ContainerID container_id = 1;
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
}
|
||||
|
||||
// Body of container put response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Container removal request
|
||||
message DeleteRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// container_id carries identifier of the container to delete
|
||||
// from NeoFS.
|
||||
refs.ContainerID container_id = 1;
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
|
||||
// Signature of container id according to RFC-6979.
|
||||
bytes signature = 2;
|
||||
}
|
||||
|
||||
// Body of container delete request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// DeleteResponse is empty because delete operation is asynchronous and done
|
||||
// via consensus in inner ring nodes
|
||||
message DeleteResponse {
|
||||
// Response body
|
||||
message Body {}
|
||||
|
||||
// Body of container delete response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get container structure
|
||||
message GetRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// container_id carries identifier of the container to get.
|
||||
refs.ContainerID container_id = 1;
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
}
|
||||
|
||||
// Body of container get request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get container structure
|
||||
message GetResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Container that has been requested.
|
||||
container.Container container = 1;
|
||||
Container container = 1;
|
||||
}
|
||||
|
||||
// Body of container get response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// List containers
|
||||
message ListRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// owner_id carries identifier of the container owner.
|
||||
refs.OwnerID owner_id = 1;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
}
|
||||
|
||||
// Body of list containers request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// List containers
|
||||
message ListResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// ContainerIDs carries list of identifiers of the containers that belong to the owner.
|
||||
repeated refs.ContainerID container_ids = 1;
|
||||
|
@ -197,37 +205,40 @@ message ListResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Set Extended ACL
|
||||
message SetExtendedACLRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Extended ACL to set for the container.
|
||||
acl.EACLTable eacl = 1;
|
||||
neo.fs.v2.acl.EACLTable eacl = 1;
|
||||
|
||||
// Signature of stable-marshalled Extended ACL according to RFC-6979.
|
||||
bytes signature = 2;
|
||||
}
|
||||
|
||||
// Body of set extended acl request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Set Extended ACL
|
||||
message SetExtendedACLResponse {
|
||||
// Response body
|
||||
message Body { }
|
||||
|
||||
// Body of set extended acl response message.
|
||||
|
@ -235,18 +246,20 @@ message SetExtendedACLResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get Extended ACL
|
||||
message GetExtendedACLRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// container_id carries identifier of the container that has Extended ACL.
|
||||
refs.ContainerID container_id = 1;
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
}
|
||||
|
||||
// Body of get extended acl request message.
|
||||
|
@ -254,32 +267,33 @@ message GetExtendedACLRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get Extended ACL
|
||||
message GetExtendedACLResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Extended ACL that has been requested if it was set up.
|
||||
acl.EACLTable eacl = 1;
|
||||
neo.fs.v2.acl.EACLTable eacl = 1;
|
||||
|
||||
// Signature of stable-marshalled Extended ACL according to RFC-6979.
|
||||
bytes signature = 2;
|
||||
}
|
||||
|
||||
// Body of get extended acl response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package container;
|
||||
package neo.fs.v2.container;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/container";
|
||||
option csharp_namespace = "NeoFS.API.Container";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/container;container";
|
||||
option csharp_namespace = "NeoFS.API.v2.Container";
|
||||
|
||||
import "netmap/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -14,7 +14,7 @@ import "refs/types.proto";
|
|||
// SHA256 hash of stable-marshalled container message.
|
||||
message Container {
|
||||
// OwnerID carries identifier of the container owner.
|
||||
refs.OwnerID owner_id = 1;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
|
||||
// Nonce is a 16 byte UUID, used to avoid collisions of container id.
|
||||
bytes nonce = 2;
|
||||
|
@ -31,10 +31,9 @@ message Container {
|
|||
// Value of immutable container attribute.
|
||||
string value = 2;
|
||||
}
|
||||
|
||||
// Attributes define any immutable characteristics of container.
|
||||
repeated Attribute attributes = 4;
|
||||
|
||||
// Rules define storage policy for the object inside the container.
|
||||
netmap.PlacementRule rules = 5;
|
||||
// Placement policy for the object inside the container.
|
||||
neo.fs.v2.netmap.PlacementPolicy placement_policy = 5;
|
||||
}
|
||||
|
|
|
@ -1,84 +1,118 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package netmap;
|
||||
package neo.fs.v2.netmap;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/netmap";
|
||||
option csharp_namespace = "NeoFS.API.Netmap";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/netmap;netmap";
|
||||
option csharp_namespace = "NeoFS.API.v2.Netmap";
|
||||
|
||||
message PlacementRule {
|
||||
// Set of rules to select a subset of nodes able to store container's objects
|
||||
message PlacementPolicy {
|
||||
// Replication factor
|
||||
uint32 repl_factor = 1;
|
||||
|
||||
message SFGroup {
|
||||
// Filters to apply to Network Map
|
||||
message FilterGroup {
|
||||
// Filter definition
|
||||
message Filter {
|
||||
// Filter identifier
|
||||
string key = 1;
|
||||
|
||||
message SimpleFilters {
|
||||
repeated SimpleFilter filters = 1;
|
||||
}
|
||||
|
||||
// Minimal simple filter
|
||||
message SimpleFilter {
|
||||
// Filtering operation
|
||||
enum Operation {
|
||||
NP = 0;
|
||||
// No Operation defined
|
||||
OPERATION_UNSPECIFIED= 0;
|
||||
|
||||
// Equal
|
||||
EQ = 1;
|
||||
|
||||
// Not Equal
|
||||
NE = 2;
|
||||
|
||||
// Greater then
|
||||
GT = 3;
|
||||
|
||||
// Greater or equal
|
||||
GE = 4;
|
||||
|
||||
// Less then
|
||||
LT = 5;
|
||||
|
||||
// Less or equal
|
||||
LE = 6;
|
||||
|
||||
// Logical OR
|
||||
OR = 7;
|
||||
|
||||
// Logical AND
|
||||
AND = 8;
|
||||
}
|
||||
|
||||
// Filtering operation
|
||||
Operation op = 1;
|
||||
|
||||
// List of filters
|
||||
message SimpleFilters {
|
||||
// List of filters
|
||||
repeated SimpleFilter filters = 1;
|
||||
}
|
||||
|
||||
// Filtering operation argument
|
||||
oneof args {
|
||||
// Value
|
||||
string value = 2;
|
||||
// Result of other filter application
|
||||
SimpleFilters f_args = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// The rest of filter
|
||||
SimpleFilter f = 2;
|
||||
}
|
||||
|
||||
// Resulting filter list
|
||||
repeated Filter filters = 1;
|
||||
|
||||
// Selector
|
||||
message Selector {
|
||||
// How many to select
|
||||
uint32 count = 1;
|
||||
// Key to select
|
||||
string key = 2;
|
||||
}
|
||||
|
||||
// List of selectors
|
||||
repeated Selector selectors = 2;
|
||||
|
||||
// Parts of graph to exclude. Internal use.
|
||||
repeated uint32 exclude = 3;
|
||||
}
|
||||
|
||||
repeated SFGroup sf_groups = 2;
|
||||
// List of filter groups
|
||||
repeated FilterGroup filter_groups = 2;
|
||||
}
|
||||
|
||||
// Groups the information about the NeoFS node.
|
||||
// NeoFS node description
|
||||
message NodeInfo {
|
||||
// Carries network address of the NeoFS node.
|
||||
// Ways to connect to a node
|
||||
string address = 1;
|
||||
|
||||
// Carries public key of the NeoFS node in a binary format.
|
||||
// Public key of the NeoFS node in a binary format.
|
||||
bytes public_key = 2;
|
||||
|
||||
// Groups attributes of the NeoFS node.
|
||||
// Attributes of the NeoFS node.
|
||||
message Attribute {
|
||||
// Carries string key to the node attribute.
|
||||
// Key of the node attribute.
|
||||
string key = 1;
|
||||
|
||||
// Carries string value of the node attribute.
|
||||
// Value of the node attribute.
|
||||
string value = 2;
|
||||
}
|
||||
|
||||
// Carries list of the NeoFS node attributes in a string key-value format.
|
||||
repeated Attribute attributes = 3;
|
||||
|
||||
// Represents the enumeration of various states of the NeoFS node.
|
||||
enum State {
|
||||
// Undefined state.
|
||||
UNKNOWN = 0;
|
||||
// Unknown state.
|
||||
UNSPECIFIED = 0;
|
||||
|
||||
// Active state in the network.
|
||||
ONLINE = 1;
|
||||
|
@ -89,4 +123,4 @@ message NodeInfo {
|
|||
|
||||
// Carries state of the NeoFS node.
|
||||
State state = 4;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package object;
|
||||
package neo.fs.v2.object;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/object";
|
||||
option csharp_namespace = "NeoFS.API.Object";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/object;object";
|
||||
option csharp_namespace = "NeoFS.API.v2.Object";
|
||||
|
||||
import "object/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -11,7 +11,7 @@ import "service/meta.proto";
|
|||
import "service/verify.proto";
|
||||
|
||||
// Object service provides API for manipulating with the object.
|
||||
service Service {
|
||||
service ObjectService {
|
||||
// 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
|
||||
|
@ -52,10 +52,12 @@ service Service {
|
|||
rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse);
|
||||
}
|
||||
|
||||
// Get object request
|
||||
message GetRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Address of the requested object.
|
||||
refs.Address address = 1;
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
|
||||
// Carries the raw option flag of the request.
|
||||
// Raw request is sent to receive only the objects
|
||||
|
@ -67,21 +69,25 @@ message GetRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// get object response
|
||||
message GetResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Initialization parameters of the object got from NeoFS.
|
||||
message Init {
|
||||
// Object ID
|
||||
refs.ObjectID object_id = 1;
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
|
||||
// Object signature
|
||||
service.Signature signature =2;
|
||||
neo.fs.v2.service.Signature signature =2;
|
||||
|
||||
// Object header.
|
||||
Header header = 3;
|
||||
}
|
||||
|
@ -89,6 +95,7 @@ message GetResponse {
|
|||
oneof object_part {
|
||||
// Initialization parameters of the object stream.
|
||||
Init init =1;
|
||||
|
||||
// Part of the object payload.
|
||||
bytes chunk = 2;
|
||||
}
|
||||
|
@ -98,34 +105,39 @@ message GetResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Put object request
|
||||
message PutRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Groups initialization parameters of object placement in NeoFS.
|
||||
message Init {
|
||||
// Object ID, where available
|
||||
refs.ObjectID object_id = 1;
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
|
||||
// Object signature, were available
|
||||
service.Signature signature =2;
|
||||
neo.fs.v2.service.Signature signature =2;
|
||||
|
||||
// Header of the object to save in the system.
|
||||
Header header = 3;
|
||||
|
||||
// Number of the object copies to store within the RPC call.
|
||||
// Default zero value is processed according to the
|
||||
// container placement rules.
|
||||
uint32 copies_number = 4;
|
||||
}
|
||||
|
||||
// Carries the single part of the query stream.
|
||||
oneof object_part {
|
||||
// Carries the initialization parameters of the object stream.
|
||||
Init init = 1;
|
||||
|
||||
// Carries part of the object payload.
|
||||
bytes chunk = 2;
|
||||
}
|
||||
|
@ -135,54 +147,60 @@ message PutRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Put object response
|
||||
message PutResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Carries identifier of the saved object.
|
||||
// It is used to access an object in the container.
|
||||
refs.ObjectID object_id = 1;
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
}
|
||||
// Body of put object response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object Delete request
|
||||
message DeleteRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Carries the address of the object to be deleted.
|
||||
refs.Address address = 1;
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
|
||||
// Carries identifier the object owner.
|
||||
refs.OwnerID owner_id = 2;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2;
|
||||
}
|
||||
// Body of delete object request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// DeleteResponse is empty because we cannot guarantee permanent object removal
|
||||
// in distributed system.
|
||||
message DeleteResponse {
|
||||
// Response body
|
||||
message Body { }
|
||||
|
||||
// Body of delete object response message.
|
||||
|
@ -190,20 +208,24 @@ message DeleteResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object head request
|
||||
message HeadRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Address of the object with the requested header.
|
||||
refs.Address address = 1;
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
|
||||
// Return only minimal header subset
|
||||
bool main_only = 2;
|
||||
|
||||
// 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.
|
||||
|
@ -214,31 +236,41 @@ message HeadRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Head response
|
||||
message HeadResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Short header fields
|
||||
message ShortHeader {
|
||||
// Object format version.
|
||||
service.Version version = 1;
|
||||
neo.fs.v2.service.Version version = 1;
|
||||
|
||||
// Epoch when the object was created
|
||||
uint64 creation_epoch = 2;
|
||||
|
||||
// Object's owner
|
||||
refs.OwnerID owner_id = 3;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 3;
|
||||
|
||||
// Type of the object payload content
|
||||
ObjectType object_type = 4;
|
||||
|
||||
// Size of payload in bytes.
|
||||
// 0xFFFFFFFFFFFFFFFF means `payload_length` is unknown
|
||||
uint64 payload_length = 5;
|
||||
}
|
||||
// Carries the requested object header or it's part
|
||||
oneof head{
|
||||
// Full object header
|
||||
Header header = 1;
|
||||
|
||||
// Short object header
|
||||
ShortHeader short_header = 2;
|
||||
}
|
||||
}
|
||||
|
@ -247,70 +279,74 @@ message HeadResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Search objects request
|
||||
message SearchRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Carries search container identifier.
|
||||
refs.ContainerID container_id = 1;
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
|
||||
message Query {
|
||||
uint32 version = 1;
|
||||
|
||||
message Filter {
|
||||
enum MatchType {
|
||||
MATCH_UNKNOWN = 0;
|
||||
STRING_EQUAL = 1;
|
||||
}
|
||||
|
||||
MatchType match_type = 1;
|
||||
|
||||
string name = 2;
|
||||
|
||||
string value = 3;
|
||||
// Version of the Query Language used
|
||||
uint32 version = 2;
|
||||
// Filter structure
|
||||
message Filter {
|
||||
// Type of match expression
|
||||
enum MatchType {
|
||||
// Unknown. Not used
|
||||
MATCH_TYPE_UNSPECIFIED = 0;
|
||||
// Full string match
|
||||
STRING_EQUAL = 1;
|
||||
}
|
||||
// Match type to use
|
||||
MatchType match_type = 1;
|
||||
|
||||
repeated Filter filters = 2;
|
||||
// Header name to match
|
||||
string name = 2;
|
||||
|
||||
// Header value to match
|
||||
string value = 3;
|
||||
}
|
||||
|
||||
Query query = 2;
|
||||
// List of search expressions
|
||||
repeated Filter filters = 3;
|
||||
}
|
||||
|
||||
// Body of search object request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Search response
|
||||
message SearchResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Carries list of object identifiers that match the search query.
|
||||
repeated refs.ObjectID id_list = 1;
|
||||
// Carries list of object identifiers that match the search query
|
||||
repeated neo.fs.v2.refs.ObjectID id_list = 1;
|
||||
}
|
||||
|
||||
// Body of search object response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Range groups the parameters of object payload range.
|
||||
|
@ -322,10 +358,12 @@ message Range {
|
|||
uint64 length = 2;
|
||||
}
|
||||
|
||||
// Request to get part of object's payload
|
||||
message GetRangeRequest {
|
||||
// Request Body
|
||||
message Body {
|
||||
// Address carries address of the object that contains the requested payload range.
|
||||
refs.Address address = 1;
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
|
||||
// Range carries the parameters of the requested payload range.
|
||||
Range range = 2;
|
||||
|
@ -336,14 +374,16 @@ message GetRangeRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get part of object's payload
|
||||
message GetRangeResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Carries part of the object payload.
|
||||
bytes chunk = 1;
|
||||
|
@ -354,18 +394,20 @@ message GetRangeResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get hash of object's payload part
|
||||
message GetRangeHashRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Carries address of the object that contains the requested payload range.
|
||||
refs.Address address = 1;
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
|
||||
// Carries the list of object payload range to calculate homomorphic hash.
|
||||
repeated Range ranges = 2;
|
||||
|
@ -373,35 +415,34 @@ message GetRangeHashRequest {
|
|||
// Carries binary salt to XOR object payload ranges before hash calculation.
|
||||
bytes salt = 3;
|
||||
}
|
||||
|
||||
// Body of get range hash object request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get hash of object's payload part
|
||||
message GetRangeHashResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// Carries list of homomorphic hashes in a binary format.
|
||||
repeated bytes hash_list = 1;
|
||||
}
|
||||
|
||||
// Body of get range hash object response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package object;
|
||||
package neo.fs.v2.object;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/object";
|
||||
option csharp_namespace = "NeoFS.API.Object";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/object;object";
|
||||
option csharp_namespace = "NeoFS.API.v2.Object";
|
||||
|
||||
import "refs/types.proto";
|
||||
import "service/meta.proto";
|
||||
|
@ -13,33 +13,45 @@ import "service/verify.proto";
|
|||
enum ObjectType {
|
||||
// Just a normal object
|
||||
REGULAR = 0;
|
||||
|
||||
// Used internally to identify deleted objects
|
||||
TOMBSTONE = 1;
|
||||
|
||||
// Identifies that the object holds StorageGroup information
|
||||
STORAGE_GROUP = 2;
|
||||
}
|
||||
|
||||
// Object Headers
|
||||
message Header {
|
||||
// Object's container
|
||||
refs.ContainerID container_id = 1;
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
|
||||
// Object's owner
|
||||
refs.OwnerID owner_id = 2;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2;
|
||||
|
||||
// Epoch when the object was created
|
||||
uint64 creation_epoch = 3;
|
||||
|
||||
// Object format version.
|
||||
// Effectively the version of API library used to create particular object
|
||||
service.Version version = 4;
|
||||
neo.fs.v2.service.Version version = 4;
|
||||
|
||||
// Size of payload in bytes.
|
||||
// 0xFFFFFFFFFFFFFFFF means `payload_length` is unknown
|
||||
uint64 payload_length = 5;
|
||||
|
||||
// Hash of payload bytes
|
||||
bytes payload_hash = 6;
|
||||
|
||||
// Special object type
|
||||
ObjectType object_type = 7;
|
||||
|
||||
// Homomorphic hash of the object payload.
|
||||
bytes homomorphic_hash = 8;
|
||||
|
||||
// Session token, if it was used during Object creation.
|
||||
// Need it to verify integrity and authenticity out of Request scope.
|
||||
service.SessionToken session_token = 9;
|
||||
neo.fs.v2.service.SessionToken session_token = 9;
|
||||
|
||||
// Attribute groups the user-defined Key-Value pairs attached to the object
|
||||
message Attribute {
|
||||
|
@ -48,6 +60,7 @@ message Header {
|
|||
// string value of the object attribute
|
||||
string value = 2;
|
||||
}
|
||||
// User-defined object attributes
|
||||
repeated Attribute attributes = 10;
|
||||
|
||||
// Information about spawning the objects through a payload splitting.
|
||||
|
@ -55,15 +68,19 @@ message Header {
|
|||
// 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.
|
||||
refs.ObjectID parent = 1;
|
||||
neo.fs.v2.refs.ObjectID parent = 1;
|
||||
|
||||
// Previous carries identifier of the left split neighbor.
|
||||
refs.ObjectID previous = 2;
|
||||
neo.fs.v2.refs.ObjectID previous = 2;
|
||||
|
||||
// `signature` field of the parent object. Used to reconstruct parent.
|
||||
service.Signature parent_signature = 3;
|
||||
neo.fs.v2.service.Signature parent_signature = 3;
|
||||
|
||||
// `header` field of the parent object. Used to reconstruct parent.
|
||||
Header parent_header = 4;
|
||||
|
||||
// Children carries list of identifiers of the objects generated by splitting the current.
|
||||
repeated refs.ObjectID children = 5;
|
||||
repeated neo.fs.v2.refs.ObjectID children = 5;
|
||||
}
|
||||
// Position of the object in the split hierarchy.
|
||||
Split split = 11;
|
||||
|
@ -75,11 +92,14 @@ message Object {
|
|||
// 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
|
||||
refs.ObjectID object_id = 1;
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
|
||||
// Signed object_id
|
||||
service.Signature signature = 2;
|
||||
neo.fs.v2.service.Signature signature = 2;
|
||||
|
||||
// Object metadata headers
|
||||
Header header = 3;
|
||||
|
||||
// Payload bytes.
|
||||
bytes payload = 4;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package refs;
|
||||
package neo.fs.v2.refs;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/refs";
|
||||
option csharp_namespace = "NeoFS.API.Refs";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/refs;refs";
|
||||
option csharp_namespace = "NeoFS.API.v2.Refs";
|
||||
|
||||
// Address of object (container id + object id)
|
||||
message Address {
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package service;
|
||||
package neo.fs.v2.service;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/service";
|
||||
option csharp_namespace = "NeoFS.API.Service";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/service;service";
|
||||
option csharp_namespace = "NeoFS.API.v2.Service";
|
||||
|
||||
import "acl/types.proto";
|
||||
import "refs/types.proto";
|
||||
import "service/verify.proto";
|
||||
|
||||
// Extended headers for Request/Response
|
||||
message XHeader {
|
||||
// Key of the X-Header.
|
||||
string key = 1;
|
||||
|
||||
// Value of the X-Header.
|
||||
string value = 2;
|
||||
}
|
||||
|
@ -20,6 +22,7 @@ message XHeader {
|
|||
message Version {
|
||||
// Major API version.
|
||||
uint32 major = 1;
|
||||
|
||||
// Minor API version.
|
||||
uint32 minor = 2;
|
||||
}
|
||||
|
@ -28,50 +31,67 @@ message Version {
|
|||
message TokenLifetime {
|
||||
// Expiration Epoch
|
||||
uint64 exp = 1;
|
||||
|
||||
// Not valid before Epoch
|
||||
uint64 nbf = 2;
|
||||
|
||||
// Issued at Epoch
|
||||
uint64 iat = 3;
|
||||
}
|
||||
|
||||
// NeoFS session token.
|
||||
message SessionToken {
|
||||
// Session token body
|
||||
message Body {
|
||||
// ID is a token identifier. valid UUIDv4 represented in bytes
|
||||
bytes id = 1;
|
||||
|
||||
// OwnerID carries identifier of the session initiator.
|
||||
refs.OwnerID owner_id = 2;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2;
|
||||
|
||||
// Verb is an enumeration of session request types
|
||||
enum Verb {
|
||||
// Unknown verb
|
||||
VERB_UNSPECIFIED = 0;
|
||||
|
||||
// Refers to object.Put RPC call
|
||||
OBJECT_PUT = 0;
|
||||
OBJECT_PUT = 1;
|
||||
|
||||
// Refers to object.Get RPC call
|
||||
OBJECT_GET = 1;
|
||||
OBJECT_GET = 2;
|
||||
|
||||
// Refers to object.Head RPC call
|
||||
OBJECT_HEAD = 2;
|
||||
OBJECT_HEAD = 3;
|
||||
|
||||
// Refers to object.Search RPC call
|
||||
OBJECT_SEARCH = 3;
|
||||
OBJECT_SEARCH = 4;
|
||||
|
||||
// Refers to object.Delete RPC call
|
||||
OBJECT_DELETE = 4;
|
||||
OBJECT_DELETE = 5;
|
||||
|
||||
// Refers to object.GetRange RPC call
|
||||
OBJECT_RANGE = 5;
|
||||
OBJECT_RANGE = 6;
|
||||
|
||||
// Refers to object.GetRangeHash RPC call
|
||||
OBJECT_RANGEHASH = 6;
|
||||
OBJECT_RANGEHASH = 7;
|
||||
}
|
||||
// Verb is a type of request for which the token is issued
|
||||
Verb verb = 3;
|
||||
|
||||
// Lifetime is a lifetime of the session
|
||||
TokenLifetime lifetime = 4;
|
||||
|
||||
// SessionKey is a public key of session key
|
||||
bytes session_key = 5;
|
||||
|
||||
// Carries context of the session.
|
||||
oneof context {
|
||||
// object_address represents the object session context.
|
||||
refs.Address object_address = 6;
|
||||
neo.fs.v2.refs.Address object_address = 6;
|
||||
}
|
||||
}
|
||||
// Session Token body
|
||||
Body token = 1;
|
||||
Body body = 1;
|
||||
|
||||
// Signature is a signature of session token information
|
||||
Signature signature = 2;
|
||||
|
@ -79,16 +99,19 @@ message SessionToken {
|
|||
|
||||
// BearerToken has information about request ACL rules with limited lifetime
|
||||
message BearerToken {
|
||||
// Bearer Token body
|
||||
message Body {
|
||||
// EACLTable carries table of extended ACL rules
|
||||
acl.EACLTable eacl_table = 1;
|
||||
neo.fs.v2.acl.EACLTable eacl_table = 1;
|
||||
|
||||
// OwnerID carries identifier of the token owner
|
||||
refs.OwnerID owner_id = 2;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2;
|
||||
|
||||
// Token expiration and valid time period parameters
|
||||
TokenLifetime lifetime = 3;
|
||||
}
|
||||
// Bearer Token body
|
||||
Body token = 1;
|
||||
Body body = 1;
|
||||
|
||||
// Signature of BearerToken body
|
||||
Signature signature = 2;
|
||||
|
@ -98,16 +121,21 @@ message BearerToken {
|
|||
message RequestMetaHeader {
|
||||
// Client API version.
|
||||
Version version = 1;
|
||||
|
||||
// Client local epoch number. Set to 0 if unknown.
|
||||
uint64 epoch = 2;
|
||||
|
||||
// Maximum number of nodes in the request route.
|
||||
uint32 ttl = 3;
|
||||
|
||||
// Request X-Headers.
|
||||
repeated XHeader x_headers = 4;
|
||||
|
||||
// Token is a token of the session within which the request is sent
|
||||
SessionToken token = 5;
|
||||
SessionToken session_token = 5;
|
||||
|
||||
// Bearer is a Bearer token of the request
|
||||
BearerToken bearer = 6;
|
||||
BearerToken bearer_token = 6;
|
||||
|
||||
// RequestMetaHeader of the origin request.
|
||||
RequestMetaHeader origin = 7;
|
||||
|
@ -117,10 +145,13 @@ message RequestMetaHeader {
|
|||
message ResponseMetaHeader {
|
||||
// Server API version.
|
||||
Version version = 1;
|
||||
|
||||
// Server local epoch number.
|
||||
uint64 epoch = 2;
|
||||
|
||||
// Maximum number of nodes in the response route.
|
||||
uint32 ttl = 3;
|
||||
|
||||
// Response X-Headers.
|
||||
repeated XHeader x_headers = 4;
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package service;
|
||||
package neo.fs.v2.service;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/service";
|
||||
option csharp_namespace = "NeoFS.API.Service";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/service;service";
|
||||
option csharp_namespace = "NeoFS.API.v2.Service";
|
||||
|
||||
import "acl/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
|
|
@ -1,43 +1,45 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package session;
|
||||
package neo.fs.v2.session;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/session";
|
||||
option csharp_namespace = "NeoFS.API.Session";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/session;session";
|
||||
option csharp_namespace = "NeoFS.API.v2.Session";
|
||||
|
||||
import "refs/types.proto";
|
||||
import "service/meta.proto";
|
||||
import "service/verify.proto";
|
||||
|
||||
service Session {
|
||||
// Create Session record on Node side
|
||||
service SessionService {
|
||||
// Create opens new session between the client and the server.
|
||||
rpc Create (CreateRequest) returns (CreateResponse);
|
||||
}
|
||||
|
||||
// CreateRequest carries an information necessary for opening a session.
|
||||
message CreateRequest {
|
||||
// Request body
|
||||
message Body {
|
||||
// Carries an identifier of a session initiator.
|
||||
refs.OwnerID owner_id = 1;
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
|
||||
// Carries a lifetime of the session.
|
||||
service.TokenLifetime lifetime = 2;
|
||||
neo.fs.v2.service.TokenLifetime lifetime = 2;
|
||||
}
|
||||
|
||||
// Body of create session token request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate message
|
||||
// transport and does not affect request execution.
|
||||
service.RequestMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to authenticate
|
||||
// the nodes of the message route and check the correctness of transmission.
|
||||
service.RequestVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// CreateResponse carries an information about the opened session.
|
||||
message CreateResponse {
|
||||
// Response body
|
||||
message Body {
|
||||
// id carries an identifier of session token.
|
||||
bytes id = 1;
|
||||
|
@ -51,10 +53,10 @@ message CreateResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
service.ResponseMetaHeader meta_header = 2;
|
||||
neo.fs.v2.service.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness
|
||||
// of transmission.
|
||||
service.ResponseVerificationHeader verify_header = 3;
|
||||
neo.fs.v2.service.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package storagegroup;
|
||||
package neo.fs.v2.storagegroup;
|
||||
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/storagegroup";
|
||||
option csharp_namespace = "NeoFS.API.StorageGroup";
|
||||
option go_package = "github.com/nspcc-dev/neofs-api-go/v2/storagegroup;storagegroup";
|
||||
option csharp_namespace = "NeoFS.API.v2.StorageGroup";
|
||||
|
||||
import "refs/types.proto";
|
||||
|
||||
|
@ -26,5 +26,5 @@ message StorageGroup {
|
|||
|
||||
// Members carries the list of identifiers of the object storage group members.
|
||||
// The list is strictly ordered.
|
||||
repeated refs.ObjectID members = 4;
|
||||
repeated neo.fs.v2.refs.ObjectID members = 4;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue