[#68] Ensure compatibility of different API versions with each other.

Remove unnecessary language options.
Update linters.
Signed-off-by: Ori Bruk <o.bruk@yadro.com>
This commit is contained in:
Ori Bruk 2024-10-08 17:30:50 +03:00
parent 5bfbd249bc
commit 527fe93e5d
41 changed files with 1036 additions and 942 deletions

View file

@ -22,3 +22,13 @@ repos:
entry: make fmt entry: make fmt
language: system language: system
pass_filenames: false pass_filenames: false
- id: make-version
name: Run make version
entry: make version
language: system
pass_filenames: false
- id: make-compatibility
name: Run make compatibility
entry: make compatibility
language: system
pass_filenames: false

View file

@ -1,5 +1,19 @@
# Changelog # Changelog
## [3.0] - 2024-10-08 - Oryukdo (오륙도, 五六島)
### Added
- Version compatibility information
- Linter for checking version update
- Linter for checking json files for version compatibility
### Changed
- Proto package path
- Versioning (semver like 2.14.0 to milestone with patch like 3.0)
### Removed
- Proto options for all languages
## [Unreleased] ## [Unreleased]
### Changed ### Changed

View file

@ -53,6 +53,13 @@ changes. Maybe you will find it convenient to name branch in the
$ git checkout -b feature/123-something_awesome $ git checkout -b feature/123-something_awesome
``` ```
### Maintain version compatibility
After your code changes, make sure
- Increment the milestone version or patch version in case of bug fixes [Version information](version.json).
- To add information about compatibility with previous versions of the api for the new code
[Compatibility files](compatibility).
### Test your changes ### Test your changes
After your code changes, make sure After your code changes, make sure

View file

@ -3,7 +3,7 @@ SHELL=bash
include help.mk include help.mk
.PHONY: doc fmt pre-commit unpre-commit pre-commit-run .PHONY: doc fmt version compatibility pre-commit unpre-commit pre-commit-run
# Regenerate documentation for proto files: # Regenerate documentation for proto files:
doc: doc:
@ -22,6 +22,28 @@ fmt:
clang-format -i $$f; \ clang-format -i $$f; \
done done
# Run version update check
version:
@diff=$$(git diff-index master version.json); \
if [[ -z "$$diff" ]]; then \
echo "⇒ You need to update the api version in the version.json file"; \
exit 1;\
fi
# Run compatibility information check
compatibility:
@version=$$(jq -r '.milestone' version.json).$$(jq -r '.patch' version.json); \
conflicts=0; \
for f in `ls **/*.json`; do \
for rpc in $$(jq -r '.[] | to_entries | .[].key' $$f); do \
if $$(jq -r '.[].'$$rpc' | has("v'$$version'") | not' $$f); then \
echo "⇒ No compatibility information found for version" $$version "in file" $$f "for rpc" $$rpc; \
conflicts=$$(($conflicts+1)); \
fi \
done \
done; \
exit $$conflicts;
# Activate pre-commit hooks # Activate pre-commit hooks
pre-commit: pre-commit:
pre-commit install --hook-type pre-commit pre-commit install --hook-type pre-commit

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.accounting; package frost.fs.accounting;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/accounting/grpc;accounting";
option csharp_namespace = "Neo.FileStorage.API.Accounting";
import "accounting/types.proto"; import "accounting/types.proto";
import "refs/types.proto"; import "refs/types.proto";
@ -33,19 +30,19 @@ message BalanceRequest {
message Body { message Body {
// Valid user identifier in `OwnerID` format for which the balance is // Valid user identifier in `OwnerID` format for which the balance is
// requested. Required field. // requested. Required field.
neo.fs.v2.refs.OwnerID owner_id = 1; frost.fs.refs.OwnerID owner_id = 1;
} }
// Body of the balance request message. // Body of the balance request message.
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// BalanceResponse message // BalanceResponse message
@ -62,10 +59,10 @@ message BalanceResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.accounting; package frost.fs.accounting;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/accounting/grpc;accounting";
option csharp_namespace = "Neo.FileStorage.API.Accounting";
// Standard floating point data type can't be used in FrostFS due to inexactness // Standard floating point data type can't be used in FrostFS due to inexactness
// of the result when doing lots of small number operations. To solve the lost // of the result when doing lots of small number operations. To solve the lost

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.acl; package frost.fs.acl;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc;acl";
option csharp_namespace = "Neo.FileStorage.API.Acl";
import "refs/types.proto"; import "refs/types.proto";
import "ape/types.proto"; import "ape/types.proto";
@ -169,10 +166,10 @@ message EACLRecord {
message EACLTable { message EACLTable {
// eACL format version. Effectively, the version of API library used to create // eACL format version. Effectively, the version of API library used to create
// eACL Table. // eACL Table.
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ]; frost.fs.refs.Version version = 1 [ json_name = "version" ];
// Identifier of the container that should use given access control rules // Identifier of the container that should use given access control rules
neo.fs.v2.refs.ContainerID container_id = 2 [ json_name = "containerID" ]; frost.fs.refs.ContainerID container_id = 2 [ json_name = "containerID" ];
// List of Extended ACL rules // List of Extended ACL rules
repeated EACLRecord records = 3 [ json_name = "records" ]; repeated EACLRecord records = 3 [ json_name = "records" ];
@ -202,7 +199,7 @@ message BearerToken {
// `OwnerID` defines to whom the token was issued. It must match the request // `OwnerID` defines to whom the token was issued. It must match the request
// originator's `OwnerID`. If empty, any token bearer will be accepted. // originator's `OwnerID`. If empty, any token bearer will be accepted.
neo.fs.v2.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ]; frost.fs.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
// Lifetime parameters of the token. Field names taken from // Lifetime parameters of the token. Field names taken from
// [rfc7519](https://tools.ietf.org/html/rfc7519). // [rfc7519](https://tools.ietf.org/html/rfc7519).
@ -232,10 +229,10 @@ message BearerToken {
// preventing unauthorized access through the APE mechanism. // preventing unauthorized access through the APE mechanism.
message APEOverride { message APEOverride {
// Target for which chains are applied. // Target for which chains are applied.
frostfs.v2.ape.ChainTarget target = 1 [ json_name = "target" ]; frost.fs.ape.ChainTarget target = 1 [ json_name = "target" ];
// The list of APE chains. // The list of APE chains.
repeated frostfs.v2.ape.Chain chains = 2 [ json_name = "chains" ]; repeated frost.fs.ape.Chain chains = 2 [ json_name = "chains" ];
} }
// APE override for the target. // APE override for the target.
@ -245,5 +242,5 @@ message BearerToken {
Body body = 1 [ json_name = "body" ]; Body body = 1 [ json_name = "body" ];
// Signature of BearerToken body // Signature of BearerToken body
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ]; frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
} }

View file

@ -1,8 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package frostfs.v2.ape; package frost.fs.ape;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc;ape";
// TargetType is a type target to which a rule chain is defined. // TargetType is a type target to which a rule chain is defined.
enum TargetType { enum TargetType {

View file

@ -1,12 +1,10 @@
syntax = "proto3"; syntax = "proto3";
package frostfs.v2.apemanager; package frost.fs.apemanager;
import "ape/types.proto"; import "ape/types.proto";
import "session/types.proto"; import "session/types.proto";
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager/grpc;apemanager";
// `APEManagerService` provides API to manage rule chains within sidechain's // `APEManagerService` provides API to manage rule chains within sidechain's
// `Policy` smart contract. // `Policy` smart contract.
service APEManagerService { service APEManagerService {
@ -52,10 +50,10 @@ service APEManagerService {
message AddChainRequest { message AddChainRequest {
message Body { message Body {
// A target for which a rule chain is added. // A target for which a rule chain is added.
frostfs.v2.ape.ChainTarget target = 1; frost.fs.ape.ChainTarget target = 1;
// The chain to set for the target. // The chain to set for the target.
frostfs.v2.ape.Chain chain = 2; frost.fs.ape.Chain chain = 2;
} }
// The request's body. // The request's body.
@ -63,12 +61,12 @@ message AddChainRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
message AddChainResponse { message AddChainResponse {
@ -84,18 +82,18 @@ message AddChainResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
message RemoveChainRequest { message RemoveChainRequest {
message Body { message Body {
// Target for which a rule chain is removed. // Target for which a rule chain is removed.
frostfs.v2.ape.ChainTarget target = 1; frost.fs.ape.ChainTarget target = 1;
// Chain ID assigned for the rule chain. // Chain ID assigned for the rule chain.
bytes chain_id = 2; bytes chain_id = 2;
@ -106,12 +104,12 @@ message RemoveChainRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
message RemoveChainResponse { message RemoveChainResponse {
@ -124,18 +122,18 @@ message RemoveChainResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
message ListChainsRequest { message ListChainsRequest {
message Body { message Body {
// Target for which rule chains are listed. // Target for which rule chains are listed.
frostfs.v2.ape.ChainTarget target = 1; frost.fs.ape.ChainTarget target = 1;
} }
// The request's body. // The request's body.
@ -143,18 +141,18 @@ message ListChainsRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
message ListChainsResponse { message ListChainsResponse {
message Body { message Body {
// The list of chains defined for the reqeusted target. // The list of chains defined for the reqeusted target.
repeated frostfs.v2.ape.Chain chains = 1; repeated frost.fs.ape.Chain chains = 1;
} }
// The response's body. // The response's body.
@ -162,10 +160,10 @@ message ListChainsResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }

View file

@ -0,0 +1,9 @@
{
"compatibilityInfo": {
"Balance": {
"v3.0": {
"compatibility": "SUPPORTED"
}
}
}
}

View file

@ -0,0 +1,19 @@
{
"compatibilityInfo": {
"AddChain": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"RemoveChain": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"ListChains": {
"v3.0": {
"compatibility": "SUPPORTED"
}
}
}
}

View file

@ -0,0 +1,24 @@
{
"compatibilityInfo": {
"Put": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Delete": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Get": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"List": {
"v3.0": {
"compatibility": "SUPPORTED"
}
}
}
}

19
compatibility/netmap.json Normal file
View file

@ -0,0 +1,19 @@
{
"compatibilityInfo": {
"LocalNodeInfo": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"NetworkInfo": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"NetmapSnapshot": {
"v3.0": {
"compatibility": "SUPPORTED"
}
}
}
}

49
compatibility/object.json Normal file
View file

@ -0,0 +1,49 @@
{
"compatibilityInfo": {
"Get": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Put": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Delete": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Head": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Search": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"GetRange": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"GetRangeHash": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"PutSingle": {
"v3.0": {
"compatibility": "SUPPORTED"
}
},
"Patch": {
"v3.0": {
"compatibility": "SUPPORTED"
}
}
}
}

View file

@ -0,0 +1,9 @@
{
"compatibilityInfo": {
"Create": {
"v3.0": {
"compatibility": "SUPPORTED"
}
}
}
}

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.container; package frost.fs.container;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
option csharp_namespace = "Neo.FileStorage.API.Container";
import "container/types.proto"; import "container/types.proto";
import "refs/types.proto"; import "refs/types.proto";
@ -75,19 +72,19 @@ message PutRequest {
container.Container container = 1; container.Container container = 1;
// Signature of a stable-marshalled container according to RFC-6979. // Signature of a stable-marshalled container according to RFC-6979.
neo.fs.v2.refs.SignatureRFC6979 signature = 2; frost.fs.refs.SignatureRFC6979 signature = 2;
} }
// Body of container put request message. // Body of container put request message.
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// New FrostFS Container creation response // New FrostFS Container creation response
@ -98,19 +95,19 @@ message PutResponse {
// returned here to make sure everything has been done as expected. // returned here to make sure everything has been done as expected.
message Body { message Body {
// Unique identifier of the newly created container // Unique identifier of the newly created container
neo.fs.v2.refs.ContainerID container_id = 1; frost.fs.refs.ContainerID container_id = 1;
} }
// Body of container put response message. // Body of container put response message.
Body body = 1; Body body = 1;
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Container removal request // Container removal request
@ -120,23 +117,23 @@ message DeleteRequest {
// smart contract, so signing algorithm must be supported by NeoVM. // smart contract, so signing algorithm must be supported by NeoVM.
message Body { message Body {
// Identifier of the container to delete from FrostFS // Identifier of the container to delete from FrostFS
neo.fs.v2.refs.ContainerID container_id = 1; frost.fs.refs.ContainerID container_id = 1;
// `ContainerID` signed with the container owner's key according to // `ContainerID` signed with the container owner's key according to
// RFC-6979. // RFC-6979.
neo.fs.v2.refs.SignatureRFC6979 signature = 2; frost.fs.refs.SignatureRFC6979 signature = 2;
} }
// Body of container delete request message. // Body of container delete request message.
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// `DeleteResponse` has an empty body because delete operation is asynchronous // `DeleteResponse` has an empty body because delete operation is asynchronous
@ -150,12 +147,12 @@ message DeleteResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Get container structure // Get container structure
@ -163,19 +160,19 @@ message GetRequest {
// Get container structure request body. // Get container structure request body.
message Body { message Body {
// Identifier of the container to get // Identifier of the container to get
neo.fs.v2.refs.ContainerID container_id = 1; frost.fs.refs.ContainerID container_id = 1;
} }
// Body of container get request message. // Body of container get request message.
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Get container structure // Get container structure
@ -187,22 +184,22 @@ message GetResponse {
Container container = 1; Container container = 1;
// Signature of a stable-marshalled container according to RFC-6979. // Signature of a stable-marshalled container according to RFC-6979.
neo.fs.v2.refs.SignatureRFC6979 signature = 2; frost.fs.refs.SignatureRFC6979 signature = 2;
// Session token if the container has been created within the session // Session token if the container has been created within the session
neo.fs.v2.session.SessionToken session_token = 3; frost.fs.session.SessionToken session_token = 3;
} }
// Body of container get response message. // Body of container get response message.
Body body = 1; Body body = 1;
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// List containers // List containers
@ -210,19 +207,19 @@ message ListRequest {
// List containers request body. // List containers request body.
message Body { message Body {
// Identifier of the container owner // Identifier of the container owner
neo.fs.v2.refs.OwnerID owner_id = 1; frost.fs.refs.OwnerID owner_id = 1;
} }
// Body of list containers request message // Body of list containers request message
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// List containers // List containers
@ -238,10 +235,10 @@ message ListResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.container; package frost.fs.container;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
option csharp_namespace = "Neo.FileStorage.API.Container";
import "netmap/types.proto"; import "netmap/types.proto";
import "refs/types.proto"; import "refs/types.proto";
@ -15,10 +12,10 @@ import "refs/types.proto";
message Container { message Container {
// Container format version. Effectively, the version of API library used to // Container format version. Effectively, the version of API library used to
// create the container. // create the container.
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ]; frost.fs.refs.Version version = 1 [ json_name = "version" ];
// Identifier of the container owner // Identifier of the container owner
neo.fs.v2.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ]; frost.fs.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
// Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s // Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s
bytes nonce = 3 [ json_name = "nonce" ]; bytes nonce = 3 [ json_name = "nonce" ];
@ -38,16 +35,13 @@ message Container {
// There are some "well-known" attributes affecting system behaviour: // There are some "well-known" attributes affecting system behaviour:
// //
// * [ __SYSTEM__NAME ] \ // * [ __SYSTEM__NAME ] \
// (`__NEOFS__NAME` is deprecated) \
// String of a human-friendly container name registered as a domain in // String of a human-friendly container name registered as a domain in
// NNS contract. // NNS contract.
// * [ __SYSTEM__ZONE ] \ // * [ __SYSTEM__ZONE ] \
// (`__NEOFS__ZONE` is deprecated) \ // String of a zone for `__SYSTEM__NAME`.
// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
// Used as a TLD of a domain name in NNS contract. If no zone is specified, // Used as a TLD of a domain name in NNS contract. If no zone is specified,
// use default zone: `container`. // use default zone: `container`.
// * [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \ // * [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
// (`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
// Disables homomorphic hashing for the container if the value equals "true" // Disables homomorphic hashing for the container if the value equals "true"
// string. Any other values are interpreted as missing attribute. Container // string. Any other values are interpreted as missing attribute. Container
// could be accepted in a FrostFS network only if the global network hashing // could be accepted in a FrostFS network only if the global network hashing
@ -71,6 +65,6 @@ message Container {
repeated Attribute attributes = 5 [ json_name = "attributes" ]; repeated Attribute attributes = 5 [ json_name = "attributes" ];
// Placement policy for the object inside the container // Placement policy for the object inside the container
neo.fs.v2.netmap.PlacementPolicy placement_policy = 6 frost.fs.netmap.PlacementPolicy placement_policy = 6
[ json_name = "placementPolicy" ]; [ json_name = "placementPolicy" ];
} }

View file

@ -3,15 +3,17 @@
This documents outlines the frostfs-api release process and can be used as a TODO This documents outlines the frostfs-api release process and can be used as a TODO
list for a new release. list for a new release.
## Pre-release actions
Increment the milestone version or patch version in case of bug fixes.
To add information about compatibility with previous versions of the api for the new code.
This must be run:
* `make doc`
## Pre-release checks ## Pre-release checks
This should run successfully: This should run successfully:
* `make lint` * `make pre-commit-run`
## Pre-release actions
This must be run:
* `make doc`
## Writing CHANGELOG ## Writing CHANGELOG
@ -30,13 +32,13 @@ Release commit summary should follow the template:
`Release v<Version> - <Codename island> (<Hangeul>, <Hanja>)`, e.g.: `Release v<Version> - <Codename island> (<Hangeul>, <Hanja>)`, e.g.:
``` ```
Release v2.9.0 - Anmyeondo (안면도, 安眠島) Release v3.0 - Anmyeondo (안면도, 安眠島)
``` ```
## Tag the release ## Tag the release
Use `vX.Y.Z` tag following the semantic versioning standard. For pre-release Use `vX.Y` tag (milestone version with patch). For pre-release
versions use `vX.Y.Z-rc.N` scheme. versions use `vX.Y-rc.N` scheme.
## Push changes and release tag to Github ## Push changes and release tag to Github
@ -45,7 +47,7 @@ that releasing requires admin privileges for the project), both the `master`
branch update and tag must be pushed simultaneously like this: branch update and tag must be pushed simultaneously like this:
``` ```
$ git push origin master v2.7.0 $ git push origin master v2.7
``` ```
## Make a proper Github release ## Make a proper Github release
@ -58,5 +60,5 @@ releases.
## Post-release actions ## Post-release actions
* Close corresponding X.Y.Z Github milestone * Close corresponding X.Y Github milestone
* Make announcements in Matrix and Discord channels * Make announcements in Matrix and Discord channels

View file

@ -1,19 +1,16 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.lock; package frost.fs.lock;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/lock/grpc;lock";
option csharp_namespace = "Neo.FileStorage.API.Lock";
import "refs/types.proto"; import "refs/types.proto";
// Lock objects protects a list of objects from being deleted. The lifetime of a // Lock objects protects a list of objects from being deleted. The lifetime of a
// lock object is limited similar to regular objects in // lock object is limited similar to regular objects in
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated) // `__SYSTEM__EXPIRATION_EPOCH`
// attribute. Lock object MUST have expiration epoch. It is impossible to delete // attribute. Lock object MUST have expiration epoch. It is impossible to delete
// a lock object via ObjectService.Delete RPC call. // a lock object via ObjectService.Delete RPC call.
message Lock { message Lock {
// List of objects to lock. Must not be empty or carry empty IDs. // List of objects to lock. Must not be empty or carry empty IDs.
// All members must be of the `REGULAR` type. // All members must be of the `REGULAR` type.
repeated neo.fs.v2.refs.ObjectID members = 1 [ json_name = "members" ]; repeated frost.fs.refs.ObjectID members = 1 [ json_name = "members" ];
} }

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.netmap; package frost.fs.netmap;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc;netmap";
option csharp_namespace = "Neo.FileStorage.API.Netmap";
import "netmap/types.proto"; import "netmap/types.proto";
import "refs/types.proto"; import "refs/types.proto";
@ -53,12 +50,12 @@ message LocalNodeInfoRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Local Node Info, including API Version in use // Local Node Info, including API Version in use
@ -66,7 +63,7 @@ message LocalNodeInfoResponse {
// Local Node Info, including API Version in use. // Local Node Info, including API Version in use.
message Body { message Body {
// Latest FrostFS API version in use // Latest FrostFS API version in use
neo.fs.v2.refs.Version version = 1; frost.fs.refs.Version version = 1;
// NodeInfo structure with recent information from node itself // NodeInfo structure with recent information from node itself
NodeInfo node_info = 2; NodeInfo node_info = 2;
@ -76,12 +73,12 @@ message LocalNodeInfoResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect response execution. // message transport and does not affect response execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Get NetworkInfo structure with the network view from a particular node. // Get NetworkInfo structure with the network view from a particular node.
@ -93,12 +90,12 @@ message NetworkInfoRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Response with NetworkInfo structure including current epoch and // Response with NetworkInfo structure including current epoch and
@ -114,12 +111,12 @@ message NetworkInfoResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect response execution. // message transport and does not affect response execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Get netmap snapshot request // Get netmap snapshot request
@ -132,12 +129,12 @@ message NetmapSnapshotRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Response with current netmap snapshot // Response with current netmap snapshot
@ -153,10 +150,10 @@ message NetmapSnapshotResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect response execution. // message transport and does not affect response execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.netmap; package frost.fs.netmap;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc;netmap";
option csharp_namespace = "Neo.FileStorage.API.Netmap";
// Operations on filters // Operations on filters
enum Operation { enum Operation {

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.object; package frost.fs.object;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object/grpc;object";
option csharp_namespace = "Neo.FileStorage.API.Object";
import "object/types.proto"; import "object/types.proto";
import "refs/types.proto"; import "refs/types.proto";
@ -21,15 +18,12 @@ service ObjectService {
// //
// Extended headers can change `Get` behaviour: // Extended headers can change `Get` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requsted version of Network Map for object placement // Will use the requsted version of Network Map for object placement
// calculation. // calculation.
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \ // * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
// Will try older versions (starting from `__SYSTEM__NETMAP_EPOCH` // Will try older versions (starting from `__SYSTEM__NETMAP_EPOCH`
// (`__NEOFS__NETMAP_EPOCH` is deprecated) if specified or the latest one // if specified or the latest one otherwise) of Network Map
// otherwise) of Network Map to find an object until the depth limit is // to find an object until the depth limit is reached.
// reached.
// //
// Please refer to detailed `XHeader` description. // Please refer to detailed `XHeader` description.
// //
@ -60,7 +54,6 @@ service ObjectService {
// //
// Extended headers can change `Put` behaviour: // Extended headers can change `Put` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH \ // * [ __SYSTEM__NETMAP_EPOCH \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requsted version of Network Map for object placement // Will use the requsted version of Network Map for object placement
// calculation. // calculation.
// //
@ -95,7 +88,6 @@ service ObjectService {
// //
// Extended headers can change `Delete` behaviour: // Extended headers can change `Delete` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requested version of Network Map for object placement // Will use the requested version of Network Map for object placement
// calculation. // calculation.
// //
@ -126,7 +118,6 @@ service ObjectService {
// //
// Extended headers can change `Head` behaviour: // Extended headers can change `Head` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requested version of Network Map for object placement // Will use the requested version of Network Map for object placement
// calculation. // calculation.
// //
@ -156,7 +147,6 @@ service ObjectService {
// //
// Extended headers can change `Search` behaviour: // Extended headers can change `Search` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requested version of Network Map for object placement // Will use the requested version of Network Map for object placement
// calculation. // calculation.
// //
@ -183,11 +173,9 @@ service ObjectService {
// //
// Extended headers can change `GetRange` behaviour: // Extended headers can change `GetRange` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requested version of Network Map for object placement // Will use the requested version of Network Map for object placement
// calculation. // calculation.
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \ // * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
// Will try older versions of Network Map to find an object until the depth // Will try older versions of Network Map to find an object until the depth
// limit is reached. // limit is reached.
// //
@ -220,11 +208,9 @@ service ObjectService {
// //
// Extended headers can change `GetRangeHash` behaviour: // Extended headers can change `GetRangeHash` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requested version of Network Map for object placement // Will use the requested version of Network Map for object placement
// calculation. // calculation.
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \ // * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
// Will try older versions of Network Map to find an object until the depth // Will try older versions of Network Map to find an object until the depth
// limit is reached. // limit is reached.
// //
@ -254,7 +240,6 @@ service ObjectService {
// //
// Extended headers can change `Put` behaviour: // Extended headers can change `Put` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH \ // * [ __SYSTEM__NETMAP_EPOCH \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requested version of Network Map for object placement // Will use the requested version of Network Map for object placement
// calculation. // calculation.
// //
@ -304,7 +289,6 @@ service ObjectService {
// //
// Extended headers can change `Patch` behaviour: // Extended headers can change `Patch` behaviour:
// * [ __SYSTEM__NETMAP_EPOCH \ // * [ __SYSTEM__NETMAP_EPOCH \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Will use the requsted version of Network Map for object placement // Will use the requsted version of Network Map for object placement
// calculation. // calculation.
// //
@ -339,7 +323,7 @@ message GetRequest {
// GET Object request body // GET Object request body
message Body { message Body {
// Address of the requested object // Address of the requested object
neo.fs.v2.refs.Address address = 1; frost.fs.refs.Address address = 1;
// If `raw` flag is set, request will work only with objects that are // If `raw` flag is set, request will work only with objects that are
// physically stored on the peer node // physically stored on the peer node
@ -350,12 +334,12 @@ message GetRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// GET object response // GET object response
@ -366,10 +350,10 @@ message GetResponse {
// set of all `Object` structure's fields except `payload`. // set of all `Object` structure's fields except `payload`.
message Init { message Init {
// Object's unique identifier. // Object's unique identifier.
neo.fs.v2.refs.ObjectID object_id = 1; frost.fs.refs.ObjectID object_id = 1;
// Signed `ObjectID` // Signed `ObjectID`
neo.fs.v2.refs.Signature signature = 2; frost.fs.refs.Signature signature = 2;
// Object metadata headers // Object metadata headers
Header header = 3; Header header = 3;
@ -394,12 +378,12 @@ message GetResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// PUT object request // PUT object request
@ -410,10 +394,10 @@ message PutRequest {
// are not set, they will be calculated by a peer node. // are not set, they will be calculated by a peer node.
message Init { message Init {
// ObjectID if available. // ObjectID if available.
neo.fs.v2.refs.ObjectID object_id = 1; frost.fs.refs.ObjectID object_id = 1;
// Object signature if available // Object signature if available
neo.fs.v2.refs.Signature signature = 2; frost.fs.refs.Signature signature = 2;
// Object's Header // Object's Header
Header header = 3; Header header = 3;
@ -444,12 +428,12 @@ message PutRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// PUT Object response // PUT Object response
@ -457,19 +441,19 @@ message PutResponse {
// PUT Object response body // PUT Object response body
message Body { message Body {
// Identifier of the saved object // Identifier of the saved object
neo.fs.v2.refs.ObjectID object_id = 1; frost.fs.refs.ObjectID object_id = 1;
} }
// Body of put object response message. // Body of put object response message.
Body body = 1; Body body = 1;
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Object DELETE request // Object DELETE request
@ -477,19 +461,19 @@ message DeleteRequest {
// Object DELETE request body // Object DELETE request body
message Body { message Body {
// Address of the object to be deleted // Address of the object to be deleted
neo.fs.v2.refs.Address address = 1; frost.fs.refs.Address address = 1;
} }
// Body of delete object request message. // Body of delete object request message.
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// DeleteResponse body is empty because we cannot guarantee permanent object // DeleteResponse body is empty because we cannot guarantee permanent object
@ -498,7 +482,7 @@ message DeleteResponse {
// Object DELETE Response has an empty body. // Object DELETE Response has an empty body.
message Body { message Body {
// Address of the tombstone created for the deleted object // Address of the tombstone created for the deleted object
neo.fs.v2.refs.Address tombstone = 1; frost.fs.refs.Address tombstone = 1;
} }
// Body of delete object response message. // Body of delete object response message.
@ -506,12 +490,12 @@ message DeleteResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Object HEAD request // Object HEAD request
@ -519,7 +503,7 @@ message HeadRequest {
// Object HEAD request body // Object HEAD request body
message Body { message Body {
// Address of the object with the requested Header // Address of the object with the requested Header
neo.fs.v2.refs.Address address = 1; frost.fs.refs.Address address = 1;
// Return only minimal header subset // Return only minimal header subset
bool main_only = 2; bool main_only = 2;
@ -533,12 +517,12 @@ message HeadRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Tuple of a full object header and signature of an `ObjectID`. \ // Tuple of a full object header and signature of an `ObjectID`. \
@ -553,7 +537,7 @@ message HeaderWithSignature {
Header header = 1 [ json_name = "header" ]; Header header = 1 [ json_name = "header" ];
// Signed `ObjectID` to verify full header's authenticity // Signed `ObjectID` to verify full header's authenticity
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ]; frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
} }
// Object HEAD response // Object HEAD response
@ -581,12 +565,12 @@ message HeadResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Object Search request // Object Search request
@ -594,7 +578,7 @@ message SearchRequest {
// Object Search request body // Object Search request body
message Body { message Body {
// Container identifier were to search // Container identifier were to search
neo.fs.v2.refs.ContainerID container_id = 1; frost.fs.refs.ContainerID container_id = 1;
// Version of the Query Language used // Version of the Query Language used
uint32 version = 2; uint32 version = 2;
@ -673,12 +657,12 @@ message SearchRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Search response // Search response
@ -686,19 +670,19 @@ message SearchResponse {
// Object Search response body // Object Search response body
message Body { message Body {
// List of `ObjectID`s that match the search query // List of `ObjectID`s that match the search query
repeated neo.fs.v2.refs.ObjectID id_list = 1; repeated frost.fs.refs.ObjectID id_list = 1;
} }
// Body of search object response message. // Body of search object response message.
Body body = 1; Body body = 1;
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Object payload range.Ranges of zero length SHOULD be considered as invalid. // Object payload range.Ranges of zero length SHOULD be considered as invalid.
@ -715,7 +699,7 @@ message GetRangeRequest {
// Byte range of object's payload request body // Byte range of object's payload request body
message Body { message Body {
// Address of the object containing the requested payload range // Address of the object containing the requested payload range
neo.fs.v2.refs.Address address = 1; frost.fs.refs.Address address = 1;
// Requested payload range // Requested payload range
Range range = 2; Range range = 2;
@ -730,12 +714,12 @@ message GetRangeRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Get part of object's payload // Get part of object's payload
@ -763,12 +747,12 @@ message GetRangeResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Get hash of object's payload part // Get hash of object's payload part
@ -776,7 +760,7 @@ message GetRangeHashRequest {
// Get hash of object's payload part request body. // Get hash of object's payload part request body.
message Body { message Body {
// Address of the object that containing the requested payload range // Address of the object that containing the requested payload range
neo.fs.v2.refs.Address address = 1; frost.fs.refs.Address address = 1;
// List of object's payload ranges to calculate homomorphic hash // List of object's payload ranges to calculate homomorphic hash
repeated Range ranges = 2; repeated Range ranges = 2;
@ -785,19 +769,19 @@ message GetRangeHashRequest {
bytes salt = 3; bytes salt = 3;
// Checksum algorithm type // Checksum algorithm type
neo.fs.v2.refs.ChecksumType type = 4; frost.fs.refs.ChecksumType type = 4;
} }
// Body of get range hash object request message. // Body of get range hash object request message.
Body body = 1; Body body = 1;
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Get hash of object's payload part // Get hash of object's payload part
@ -805,7 +789,7 @@ message GetRangeHashResponse {
// Get hash of object's payload part response body. // Get hash of object's payload part response body.
message Body { message Body {
// Checksum algorithm type // Checksum algorithm type
neo.fs.v2.refs.ChecksumType type = 1; frost.fs.refs.ChecksumType type = 1;
// List of range hashes in a binary format // List of range hashes in a binary format
repeated bytes hash_list = 2; repeated bytes hash_list = 2;
@ -815,12 +799,12 @@ message GetRangeHashResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Object PUT Single request // Object PUT Single request
@ -842,12 +826,12 @@ message PutSingleRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Object PUT Single response // Object PUT Single response
@ -859,12 +843,12 @@ message PutSingleResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }
// Object PATCH request // Object PATCH request
@ -872,11 +856,11 @@ message PatchRequest {
// PATCH request body // PATCH request body
message Body { message Body {
// The address of the object that is requested to get patched. // The address of the object that is requested to get patched.
neo.fs.v2.refs.Address address = 1; frost.fs.refs.Address address = 1;
// New attributes for the object. See `replace_attributes` flag usage to // New attributes for the object. See `replace_attributes` flag usage to
// define how new attributes should be set. // define how new attributes should be set.
repeated neo.fs.v2.object.Header.Attribute new_attributes = 2; repeated frost.fs.object.Header.Attribute new_attributes = 2;
// If this flag is set, then the object's attributes will be entirely // If this flag is set, then the object's attributes will be entirely
// replaced by `new_attributes` list. The empty `new_attributes` list with // replaced by `new_attributes` list. The empty `new_attributes` list with
@ -909,12 +893,12 @@ message PatchRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Object PATCH response // Object PATCH response
@ -922,7 +906,7 @@ message PatchResponse {
// PATCH response body // PATCH response body
message Body { message Body {
// The object ID of the saved patched object. // The object ID of the saved patched object.
neo.fs.v2.refs.ObjectID object_id = 1; frost.fs.refs.ObjectID object_id = 1;
} }
// Body for patch response message. // Body for patch response message.
@ -930,10 +914,10 @@ message PatchResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.object; package frost.fs.object;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object/grpc;object";
option csharp_namespace = "Neo.FileStorage.API.Object";
import "refs/types.proto"; import "refs/types.proto";
import "session/types.proto"; import "session/types.proto";
@ -52,13 +49,13 @@ enum MatchType {
message ShortHeader { message ShortHeader {
// Object format version. Effectively, the version of API library used to // Object format version. Effectively, the version of API library used to
// create particular object. // create particular object.
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ]; frost.fs.refs.Version version = 1 [ json_name = "version" ];
// Epoch when the object was created // Epoch when the object was created
uint64 creation_epoch = 2 [ json_name = "creationEpoch" ]; uint64 creation_epoch = 2 [ json_name = "creationEpoch" ];
// Object's owner // Object's owner
neo.fs.v2.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ]; frost.fs.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ];
// Type of the object payload content // Type of the object payload content
ObjectType object_type = 4 [ json_name = "objectType" ]; ObjectType object_type = 4 [ json_name = "objectType" ];
@ -68,24 +65,23 @@ message ShortHeader {
uint64 payload_length = 5 [ json_name = "payloadLength" ]; uint64 payload_length = 5 [ json_name = "payloadLength" ];
// Hash of payload bytes // Hash of payload bytes
neo.fs.v2.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ]; frost.fs.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ];
// Homomorphic hash of the object payload // Homomorphic hash of the object payload
neo.fs.v2.refs.Checksum homomorphic_hash = 7 frost.fs.refs.Checksum homomorphic_hash = 7 [ json_name = "homomorphicHash" ];
[ json_name = "homomorphicHash" ];
} }
// Object Header // Object Header
message Header { message Header {
// Object format version. Effectively, the version of API library used to // Object format version. Effectively, the version of API library used to
// create particular object // create particular object
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ]; frost.fs.refs.Version version = 1 [ json_name = "version" ];
// Object's container // Object's container
neo.fs.v2.refs.ContainerID container_id = 2 [ json_name = "containerID" ]; frost.fs.refs.ContainerID container_id = 2 [ json_name = "containerID" ];
// Object's owner // Object's owner
neo.fs.v2.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ]; frost.fs.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ];
// Object creation Epoch // Object creation Epoch
uint64 creation_epoch = 4 [ json_name = "creationEpoch" ]; uint64 creation_epoch = 4 [ json_name = "creationEpoch" ];
@ -95,18 +91,17 @@ message Header {
uint64 payload_length = 5 [ json_name = "payloadLength" ]; uint64 payload_length = 5 [ json_name = "payloadLength" ];
// Hash of payload bytes // Hash of payload bytes
neo.fs.v2.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ]; frost.fs.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ];
// Type of the object payload content // Type of the object payload content
ObjectType object_type = 7 [ json_name = "objectType" ]; ObjectType object_type = 7 [ json_name = "objectType" ];
// Homomorphic hash of the object payload // Homomorphic hash of the object payload
neo.fs.v2.refs.Checksum homomorphic_hash = 8 frost.fs.refs.Checksum homomorphic_hash = 8 [ json_name = "homomorphicHash" ];
[ json_name = "homomorphicHash" ];
// Session token, if it was used during Object creation. Need it to verify // Session token, if it was used during Object creation. Need it to verify
// integrity and authenticity out of Request scope. // integrity and authenticity out of Request scope.
neo.fs.v2.session.SessionToken session_token = 9 frost.fs.session.SessionToken session_token = 9
[ json_name = "sessionToken" ]; [ json_name = "sessionToken" ];
// `Attribute` is a user-defined Key-Value metadata pair attached to an // `Attribute` is a user-defined Key-Value metadata pair attached to an
@ -117,23 +112,19 @@ message Header {
// will be considered invalid. // will be considered invalid.
// //
// There are some "well-known" attributes starting with `__SYSTEM__` // There are some "well-known" attributes starting with `__SYSTEM__`
// (`__NEOFS__` is deprecated) prefix that affect system behaviour: // prefix that affect system behaviour:
// //
// * [ __SYSTEM__UPLOAD_ID ] \ // * [ __SYSTEM__UPLOAD_ID ] \
// (`__NEOFS__UPLOAD_ID` is deprecated) \
// Marks smaller parts of a split bigger object // Marks smaller parts of a split bigger object
// * [ __SYSTEM__EXPIRATION_EPOCH ] \ // * [ __SYSTEM__EXPIRATION_EPOCH ] \
// (`__NEOFS__EXPIRATION_EPOCH` is deprecated) \
// The epoch after which object with no LOCKs on it becomes unavailable. // The epoch after which object with no LOCKs on it becomes unavailable.
// Locked object continues to be available until each of the LOCKs expire. // Locked object continues to be available until each of the LOCKs expire.
// * [ __SYSTEM__TICK_EPOCH ] \ // * [ __SYSTEM__TICK_EPOCH ] \
// (`__NEOFS__TICK_EPOCH` is deprecated) \
// Decimal number that defines what epoch must produce // Decimal number that defines what epoch must produce
// object notification with UTF-8 object address in a // object notification with UTF-8 object address in a
// body (`0` value produces notification right after // body (`0` value produces notification right after
// object put) // object put)
// * [ __SYSTEM__TICK_TOPIC ] \ // * [ __SYSTEM__TICK_TOPIC ] \
// (`__NEOFS__TICK_TOPIC` is deprecated) \
// UTF-8 string topic ID that is used for object notification // UTF-8 string topic ID that is used for object notification
// //
// And some well-known attributes used by applications only: // And some well-known attributes used by applications only:
@ -171,20 +162,20 @@ message Header {
// must be within the same container. // must be within the same container.
message Split { message Split {
// Identifier of the origin object. Known only to the minor child. // Identifier of the origin object. Known only to the minor child.
neo.fs.v2.refs.ObjectID parent = 1 [ json_name = "parent" ]; frost.fs.refs.ObjectID parent = 1 [ json_name = "parent" ];
// Identifier of the left split neighbor // Identifier of the left split neighbor
neo.fs.v2.refs.ObjectID previous = 2 [ json_name = "previous" ]; frost.fs.refs.ObjectID previous = 2 [ json_name = "previous" ];
// `signature` field of the parent object. Used to reconstruct parent. // `signature` field of the parent object. Used to reconstruct parent.
neo.fs.v2.refs.Signature parent_signature = 3 frost.fs.refs.Signature parent_signature = 3
[ json_name = "parentSignature" ]; [ json_name = "parentSignature" ];
// `header` field of the parent object. Used to reconstruct parent. // `header` field of the parent object. Used to reconstruct parent.
Header parent_header = 4 [ json_name = "parentHeader" ]; Header parent_header = 4 [ json_name = "parentHeader" ];
// List of identifiers of the objects generated by splitting current one. // List of identifiers of the objects generated by splitting current one.
repeated neo.fs.v2.refs.ObjectID children = 5 [ json_name = "children" ]; repeated frost.fs.refs.ObjectID children = 5 [ json_name = "children" ];
// 16 byte UUIDv4 used to identify the split object hierarchy parts. Must be // 16 byte UUIDv4 used to identify the split object hierarchy parts. Must be
// unique inside container. All objects participating in the split must have // unique inside container. All objects participating in the split must have
@ -199,7 +190,7 @@ message Header {
// All objects belonging to a single EC group have the same `parent` field. // All objects belonging to a single EC group have the same `parent` field.
message EC { message EC {
// Identifier of the origin object. Known to all chunks. // Identifier of the origin object. Known to all chunks.
neo.fs.v2.refs.ObjectID parent = 1 [ json_name = "parent" ]; frost.fs.refs.ObjectID parent = 1 [ json_name = "parent" ];
// Index of this chunk. // Index of this chunk.
uint32 index = 2 [ json_name = "index" ]; uint32 index = 2 [ json_name = "index" ];
// Total number of chunks in this split. // Total number of chunks in this split.
@ -216,7 +207,7 @@ message Header {
// itself, is a part of Split and if an object ID of its parent is // itself, is a part of Split and if an object ID of its parent is
// presented. The field allows to determine how EC-chunk is placed in Split // presented. The field allows to determine how EC-chunk is placed in Split
// hierarchy. // hierarchy.
neo.fs.v2.refs.ObjectID parent_split_parent_id = 7 frost.fs.refs.ObjectID parent_split_parent_id = 7
[ json_name = "parentSplitParentID" ]; [ json_name = "parentSplitParentID" ];
// EC parent's attributes. // EC parent's attributes.
repeated Attribute parent_attributes = 8 [ json_name = "parentAttributes" ]; repeated Attribute parent_attributes = 8 [ json_name = "parentAttributes" ];
@ -233,10 +224,10 @@ message Header {
// in the header. // in the header.
message Object { message Object {
// Object's unique identifier. // Object's unique identifier.
neo.fs.v2.refs.ObjectID object_id = 1 [ json_name = "objectID" ]; frost.fs.refs.ObjectID object_id = 1 [ json_name = "objectID" ];
// Signed object_id // Signed object_id
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ]; frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
// Object metadata headers // Object metadata headers
Header header = 3 [ json_name = "header" ]; Header header = 3 [ json_name = "header" ];
@ -255,19 +246,19 @@ message SplitInfo {
// The identifier of the last object in split hierarchy parts. It contains // The identifier of the last object in split hierarchy parts. It contains
// split header with the original object header. // split header with the original object header.
neo.fs.v2.refs.ObjectID last_part = 2; frost.fs.refs.ObjectID last_part = 2;
// The identifier of a linking object for split hierarchy parts. It contains // The identifier of a linking object for split hierarchy parts. It contains
// split header with the original object header and a sorted list of // split header with the original object header and a sorted list of
// object parts. // object parts.
neo.fs.v2.refs.ObjectID link = 3; frost.fs.refs.ObjectID link = 3;
} }
// Meta information for the erasure-encoded object. // Meta information for the erasure-encoded object.
message ECInfo { message ECInfo {
message Chunk { message Chunk {
// Object ID of the chunk. // Object ID of the chunk.
neo.fs.v2.refs.ObjectID id = 1; frost.fs.refs.ObjectID id = 1;
// Index of the chunk. // Index of the chunk.
uint32 index = 2; uint32 index = 2;
// Total number of chunks in this split. // Total number of chunks in this split.

View file

@ -5,19 +5,19 @@
- [accounting/service.proto](#accounting/service.proto) - [accounting/service.proto](#accounting/service.proto)
- Services - Services
- [AccountingService](#neo.fs.v2.accounting.AccountingService) - [AccountingService](#frost.fs.accounting.AccountingService)
- Messages - Messages
- [BalanceRequest](#neo.fs.v2.accounting.BalanceRequest) - [BalanceRequest](#frost.fs.accounting.BalanceRequest)
- [BalanceRequest.Body](#neo.fs.v2.accounting.BalanceRequest.Body) - [BalanceRequest.Body](#frost.fs.accounting.BalanceRequest.Body)
- [BalanceResponse](#neo.fs.v2.accounting.BalanceResponse) - [BalanceResponse](#frost.fs.accounting.BalanceResponse)
- [BalanceResponse.Body](#neo.fs.v2.accounting.BalanceResponse.Body) - [BalanceResponse.Body](#frost.fs.accounting.BalanceResponse.Body)
- [accounting/types.proto](#accounting/types.proto) - [accounting/types.proto](#accounting/types.proto)
- Messages - Messages
- [Decimal](#neo.fs.v2.accounting.Decimal) - [Decimal](#frost.fs.accounting.Decimal)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -32,9 +32,9 @@
<a name="neo.fs.v2.accounting.AccountingService"></a> <a name="frost.fs.accounting.AccountingService"></a>
### Service "neo.fs.v2.accounting.AccountingService" ### Service "frost.fs.accounting.AccountingService"
Accounting service provides methods for interaction with FrostFS sidechain Accounting service provides methods for interaction with FrostFS sidechain
via other FrostFS nodes to get information about the account balance. Deposit via other FrostFS nodes to get information about the account balance. Deposit
and Withdraw operations can't be implemented here, as they require Mainnet and Withdraw operations can't be implemented here, as they require Mainnet
@ -57,11 +57,11 @@ balance has been successfully read;
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| Balance | [BalanceRequest](#neo.fs.v2.accounting.BalanceRequest) | [BalanceResponse](#neo.fs.v2.accounting.BalanceResponse) | | Balance | [BalanceRequest](#frost.fs.accounting.BalanceRequest) | [BalanceResponse](#frost.fs.accounting.BalanceResponse) |
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.accounting.BalanceRequest"></a> <a name="frost.fs.accounting.BalanceRequest"></a>
### Message BalanceRequest ### Message BalanceRequest
BalanceRequest message BalanceRequest message
@ -69,12 +69,12 @@ BalanceRequest message
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [BalanceRequest.Body](#neo.fs.v2.accounting.BalanceRequest.Body) | | Body of the balance request message. | | body | [BalanceRequest.Body](#frost.fs.accounting.BalanceRequest.Body) | | Body of the balance request message. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.accounting.BalanceRequest.Body"></a> <a name="frost.fs.accounting.BalanceRequest.Body"></a>
### Message BalanceRequest.Body ### Message BalanceRequest.Body
To indicate the account for which the balance is requested, its identifier To indicate the account for which the balance is requested, its identifier
@ -85,10 +85,10 @@ request's signer `OwnerID`.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Valid user identifier in `OwnerID` format for which the balance is requested. Required field. | | owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Valid user identifier in `OwnerID` format for which the balance is requested. Required field. |
<a name="neo.fs.v2.accounting.BalanceResponse"></a> <a name="frost.fs.accounting.BalanceResponse"></a>
### Message BalanceResponse ### Message BalanceResponse
BalanceResponse message BalanceResponse message
@ -96,12 +96,12 @@ BalanceResponse message
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [BalanceResponse.Body](#neo.fs.v2.accounting.BalanceResponse.Body) | | Body of the balance response message. | | body | [BalanceResponse.Body](#frost.fs.accounting.BalanceResponse.Body) | | Body of the balance response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.accounting.BalanceResponse.Body"></a> <a name="frost.fs.accounting.BalanceResponse.Body"></a>
### Message BalanceResponse.Body ### Message BalanceResponse.Body
The amount of funds in GAS token for the `OwnerID`'s account requested. The amount of funds in GAS token for the `OwnerID`'s account requested.
@ -111,7 +111,7 @@ rounding.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| balance | [Decimal](#neo.fs.v2.accounting.Decimal) | | Amount of funds in GAS token for the requested account. | | balance | [Decimal](#frost.fs.accounting.Decimal) | | Amount of funds in GAS token for the requested account. |
<!-- end messages --> <!-- end messages -->
@ -128,7 +128,7 @@ rounding.
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.accounting.Decimal"></a> <a name="frost.fs.accounting.Decimal"></a>
### Message Decimal ### Message Decimal
Standard floating point data type can't be used in FrostFS due to inexactness Standard floating point data type can't be used in FrostFS due to inexactness

View file

@ -6,14 +6,14 @@
- [acl/types.proto](#acl/types.proto) - [acl/types.proto](#acl/types.proto)
- Messages - Messages
- [BearerToken](#neo.fs.v2.acl.BearerToken) - [BearerToken](#frost.fs.acl.BearerToken)
- [BearerToken.Body](#neo.fs.v2.acl.BearerToken.Body) - [BearerToken.Body](#frost.fs.acl.BearerToken.Body)
- [BearerToken.Body.APEOverride](#neo.fs.v2.acl.BearerToken.Body.APEOverride) - [BearerToken.Body.APEOverride](#frost.fs.acl.BearerToken.Body.APEOverride)
- [BearerToken.Body.TokenLifetime](#neo.fs.v2.acl.BearerToken.Body.TokenLifetime) - [BearerToken.Body.TokenLifetime](#frost.fs.acl.BearerToken.Body.TokenLifetime)
- [EACLRecord](#neo.fs.v2.acl.EACLRecord) - [EACLRecord](#frost.fs.acl.EACLRecord)
- [EACLRecord.Filter](#neo.fs.v2.acl.EACLRecord.Filter) - [EACLRecord.Filter](#frost.fs.acl.EACLRecord.Filter)
- [EACLRecord.Target](#neo.fs.v2.acl.EACLRecord.Target) - [EACLRecord.Target](#frost.fs.acl.EACLRecord.Target)
- [EACLTable](#neo.fs.v2.acl.EACLTable) - [EACLTable](#frost.fs.acl.EACLTable)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -29,7 +29,7 @@
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.acl.BearerToken"></a> <a name="frost.fs.acl.BearerToken"></a>
### Message BearerToken ### Message BearerToken
BearerToken allows to attach signed Extended ACL rules to the request in BearerToken allows to attach signed Extended ACL rules to the request in
@ -45,11 +45,11 @@ using the key associated with the container's `OwnerID`.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [BearerToken.Body](#neo.fs.v2.acl.BearerToken.Body) | | Bearer Token body | | body | [BearerToken.Body](#frost.fs.acl.BearerToken.Body) | | Bearer Token body |
| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of BearerToken body | | signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of BearerToken body |
<a name="neo.fs.v2.acl.BearerToken.Body"></a> <a name="frost.fs.acl.BearerToken.Body"></a>
### Message BearerToken.Body ### Message BearerToken.Body
Bearer Token body structure contains Extended ACL table issued by the Bearer Token body structure contains Extended ACL table issued by the
@ -58,16 +58,16 @@ container owner with additional information preventing token abuse.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| eacl_table | [EACLTable](#neo.fs.v2.acl.EACLTable) | | Table of Extended ACL rules to use instead of the ones attached to the container. If it contains `container_id` field, bearer token is only valid for this specific container. Otherwise, any container of the same owner is allowed. | eacl_table | [EACLTable](#frost.fs.acl.EACLTable) | | Table of Extended ACL rules to use instead of the ones attached to the container. If it contains `container_id` field, bearer token is only valid for this specific container. Otherwise, any container of the same owner is allowed.
Deprecated: eACL tables are no longer relevant - `APEOverrides` should be used instead. | Deprecated: eACL tables are no longer relevant - `APEOverrides` should be used instead. |
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | `OwnerID` defines to whom the token was issued. It must match the request originator's `OwnerID`. If empty, any token bearer will be accepted. | | owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | `OwnerID` defines to whom the token was issued. It must match the request originator's `OwnerID`. If empty, any token bearer will be accepted. |
| lifetime | [BearerToken.Body.TokenLifetime](#neo.fs.v2.acl.BearerToken.Body.TokenLifetime) | | Token expiration and valid time period parameters | | lifetime | [BearerToken.Body.TokenLifetime](#frost.fs.acl.BearerToken.Body.TokenLifetime) | | Token expiration and valid time period parameters |
| allow_impersonate | [bool](#bool) | | AllowImpersonate flag to consider token signer as request owner. If this field is true extended ACL table in token body isn't processed. | | allow_impersonate | [bool](#bool) | | AllowImpersonate flag to consider token signer as request owner. If this field is true extended ACL table in token body isn't processed. |
| ape_override | [BearerToken.Body.APEOverride](#neo.fs.v2.acl.BearerToken.Body.APEOverride) | | APE override for the target. | | ape_override | [BearerToken.Body.APEOverride](#frost.fs.acl.BearerToken.Body.APEOverride) | | APE override for the target. |
<a name="neo.fs.v2.acl.BearerToken.Body.APEOverride"></a> <a name="frost.fs.acl.BearerToken.Body.APEOverride"></a>
### Message BearerToken.Body.APEOverride ### Message BearerToken.Body.APEOverride
APEOverride is the list of APE chains defined for a target. APEOverride is the list of APE chains defined for a target.
@ -81,11 +81,11 @@ preventing unauthorized access through the APE mechanism.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | Target for which chains are applied. | | target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | Target for which chains are applied. |
| chains | [frostfs.v2.ape.Chain](#frostfs.v2.ape.Chain) | repeated | The list of APE chains. | | chains | [frost.fs.ape.Chain](#frost.fs.ape.Chain) | repeated | The list of APE chains. |
<a name="neo.fs.v2.acl.BearerToken.Body.TokenLifetime"></a> <a name="frost.fs.acl.BearerToken.Body.TokenLifetime"></a>
### Message BearerToken.Body.TokenLifetime ### Message BearerToken.Body.TokenLifetime
Lifetime parameters of the token. Field names taken from Lifetime parameters of the token. Field names taken from
@ -99,7 +99,7 @@ Lifetime parameters of the token. Field names taken from
| iat | [uint64](#uint64) | | Issued at Epoch | | iat | [uint64](#uint64) | | Issued at Epoch |
<a name="neo.fs.v2.acl.EACLRecord"></a> <a name="frost.fs.acl.EACLRecord"></a>
### Message EACLRecord ### Message EACLRecord
Describes a single eACL rule. Describes a single eACL rule.
@ -107,13 +107,13 @@ Describes a single eACL rule.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| operation | [Operation](#neo.fs.v2.acl.Operation) | | FrostFS request Verb to match | | operation | [Operation](#frost.fs.acl.Operation) | | FrostFS request Verb to match |
| action | [Action](#neo.fs.v2.acl.Action) | | Rule execution result. Either allows or denies access if filters match. | | action | [Action](#frost.fs.acl.Action) | | Rule execution result. Either allows or denies access if filters match. |
| filters | [EACLRecord.Filter](#neo.fs.v2.acl.EACLRecord.Filter) | repeated | List of filters to match and see if rule is applicable | | filters | [EACLRecord.Filter](#frost.fs.acl.EACLRecord.Filter) | repeated | List of filters to match and see if rule is applicable |
| targets | [EACLRecord.Target](#neo.fs.v2.acl.EACLRecord.Target) | repeated | List of target subjects to apply ACL rule to | | targets | [EACLRecord.Target](#frost.fs.acl.EACLRecord.Target) | repeated | List of target subjects to apply ACL rule to |
<a name="neo.fs.v2.acl.EACLRecord.Filter"></a> <a name="frost.fs.acl.EACLRecord.Filter"></a>
### Message EACLRecord.Filter ### Message EACLRecord.Filter
Filter to check particular properties of the request or the object. Filter to check particular properties of the request or the object.
@ -150,13 +150,13 @@ it's possible to take that information from the requested address.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| header_type | [HeaderType](#neo.fs.v2.acl.HeaderType) | | Define if Object or Request header will be used | | header_type | [HeaderType](#frost.fs.acl.HeaderType) | | Define if Object or Request header will be used |
| match_type | [MatchType](#neo.fs.v2.acl.MatchType) | | Match operation type | | match_type | [MatchType](#frost.fs.acl.MatchType) | | Match operation type |
| key | [string](#string) | | Name of the Header to use | | key | [string](#string) | | Name of the Header to use |
| value | [string](#string) | | Expected Header Value or pattern to match | | value | [string](#string) | | Expected Header Value or pattern to match |
<a name="neo.fs.v2.acl.EACLRecord.Target"></a> <a name="frost.fs.acl.EACLRecord.Target"></a>
### Message EACLRecord.Target ### Message EACLRecord.Target
Target to apply ACL rule. Can be a subject's role class or a list of public Target to apply ACL rule. Can be a subject's role class or a list of public
@ -165,11 +165,11 @@ keys to match.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| role | [Role](#neo.fs.v2.acl.Role) | | Target subject's role class | | role | [Role](#frost.fs.acl.Role) | | Target subject's role class |
| keys | [bytes](#bytes) | repeated | List of public keys to identify target subject | | keys | [bytes](#bytes) | repeated | List of public keys to identify target subject |
<a name="neo.fs.v2.acl.EACLTable"></a> <a name="frost.fs.acl.EACLTable"></a>
### Message EACLTable ### Message EACLTable
Extended ACL rules table. A list of ACL rules defined additionally to Basic Extended ACL rules table. A list of ACL rules defined additionally to Basic
@ -180,14 +180,14 @@ FrostFS Technical Specification section for detailed description.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | eACL format version. Effectively, the version of API library used to create eACL Table. | | version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | eACL format version. Effectively, the version of API library used to create eACL Table. |
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Identifier of the container that should use given access control rules | | container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Identifier of the container that should use given access control rules |
| records | [EACLRecord](#neo.fs.v2.acl.EACLRecord) | repeated | List of Extended ACL rules | | records | [EACLRecord](#frost.fs.acl.EACLRecord) | repeated | List of Extended ACL rules |
<!-- end messages --> <!-- end messages -->
<a name="neo.fs.v2.acl.Action"></a> <a name="frost.fs.acl.Action"></a>
### Action ### Action
Rule execution result action. Either allows or denies access if the rule's Rule execution result action. Either allows or denies access if the rule's
@ -201,7 +201,7 @@ filters match.
<a name="neo.fs.v2.acl.HeaderType"></a> <a name="frost.fs.acl.HeaderType"></a>
### HeaderType ### HeaderType
Enumeration of possible sources of Headers to apply filters. Enumeration of possible sources of Headers to apply filters.
@ -215,7 +215,7 @@ Enumeration of possible sources of Headers to apply filters.
<a name="neo.fs.v2.acl.MatchType"></a> <a name="frost.fs.acl.MatchType"></a>
### MatchType ### MatchType
MatchType is an enumeration of match types. MatchType is an enumeration of match types.
@ -228,7 +228,7 @@ MatchType is an enumeration of match types.
<a name="neo.fs.v2.acl.Operation"></a> <a name="frost.fs.acl.Operation"></a>
### Operation ### Operation
Request's operation type to match if the rule is applicable to a particular Request's operation type to match if the rule is applicable to a particular
@ -247,7 +247,7 @@ request.
<a name="neo.fs.v2.acl.Role"></a> <a name="frost.fs.acl.Role"></a>
### Role ### Role
Target role of the access control rule in access control list. Target role of the access control rule in access control list.

View file

@ -6,8 +6,8 @@
- [ape/types.proto](#ape/types.proto) - [ape/types.proto](#ape/types.proto)
- Messages - Messages
- [Chain](#frostfs.v2.ape.Chain) - [Chain](#frost.fs.ape.Chain)
- [ChainTarget](#frostfs.v2.ape.ChainTarget) - [ChainTarget](#frost.fs.ape.ChainTarget)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -23,7 +23,7 @@
<!-- end services --> <!-- end services -->
<a name="frostfs.v2.ape.Chain"></a> <a name="frost.fs.ape.Chain"></a>
### Message Chain ### Message Chain
Chain is a chain of rules defined for a specific target. Chain is a chain of rules defined for a specific target.
@ -34,7 +34,7 @@ Chain is a chain of rules defined for a specific target.
| raw | [bytes](#bytes) | | Raw representation of a serizalized rule chain. | | raw | [bytes](#bytes) | | Raw representation of a serizalized rule chain. |
<a name="frostfs.v2.ape.ChainTarget"></a> <a name="frost.fs.ape.ChainTarget"></a>
### Message ChainTarget ### Message ChainTarget
ChainTarget is an object to which a rule chain is defined. ChainTarget is an object to which a rule chain is defined.
@ -42,13 +42,13 @@ ChainTarget is an object to which a rule chain is defined.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| type | [TargetType](#frostfs.v2.ape.TargetType) | | | | type | [TargetType](#frost.fs.ape.TargetType) | | |
| name | [string](#string) | | | | name | [string](#string) | | |
<!-- end messages --> <!-- end messages -->
<a name="frostfs.v2.ape.TargetType"></a> <a name="frost.fs.ape.TargetType"></a>
### TargetType ### TargetType
TargetType is a type target to which a rule chain is defined. TargetType is a type target to which a rule chain is defined.

View file

@ -5,21 +5,21 @@
- [apemanager/service.proto](#apemanager/service.proto) - [apemanager/service.proto](#apemanager/service.proto)
- Services - Services
- [APEManagerService](#frostfs.v2.apemanager.APEManagerService) - [APEManagerService](#frost.fs.apemanager.APEManagerService)
- Messages - Messages
- [AddChainRequest](#frostfs.v2.apemanager.AddChainRequest) - [AddChainRequest](#frost.fs.apemanager.AddChainRequest)
- [AddChainRequest.Body](#frostfs.v2.apemanager.AddChainRequest.Body) - [AddChainRequest.Body](#frost.fs.apemanager.AddChainRequest.Body)
- [AddChainResponse](#frostfs.v2.apemanager.AddChainResponse) - [AddChainResponse](#frost.fs.apemanager.AddChainResponse)
- [AddChainResponse.Body](#frostfs.v2.apemanager.AddChainResponse.Body) - [AddChainResponse.Body](#frost.fs.apemanager.AddChainResponse.Body)
- [ListChainsRequest](#frostfs.v2.apemanager.ListChainsRequest) - [ListChainsRequest](#frost.fs.apemanager.ListChainsRequest)
- [ListChainsRequest.Body](#frostfs.v2.apemanager.ListChainsRequest.Body) - [ListChainsRequest.Body](#frost.fs.apemanager.ListChainsRequest.Body)
- [ListChainsResponse](#frostfs.v2.apemanager.ListChainsResponse) - [ListChainsResponse](#frost.fs.apemanager.ListChainsResponse)
- [ListChainsResponse.Body](#frostfs.v2.apemanager.ListChainsResponse.Body) - [ListChainsResponse.Body](#frost.fs.apemanager.ListChainsResponse.Body)
- [RemoveChainRequest](#frostfs.v2.apemanager.RemoveChainRequest) - [RemoveChainRequest](#frost.fs.apemanager.RemoveChainRequest)
- [RemoveChainRequest.Body](#frostfs.v2.apemanager.RemoveChainRequest.Body) - [RemoveChainRequest.Body](#frost.fs.apemanager.RemoveChainRequest.Body)
- [RemoveChainResponse](#frostfs.v2.apemanager.RemoveChainResponse) - [RemoveChainResponse](#frost.fs.apemanager.RemoveChainResponse)
- [RemoveChainResponse.Body](#frostfs.v2.apemanager.RemoveChainResponse.Body) - [RemoveChainResponse.Body](#frost.fs.apemanager.RemoveChainResponse.Body)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -34,9 +34,9 @@
<a name="frostfs.v2.apemanager.APEManagerService"></a> <a name="frost.fs.apemanager.APEManagerService"></a>
### Service "frostfs.v2.apemanager.APEManagerService" ### Service "frost.fs.apemanager.APEManagerService"
`APEManagerService` provides API to manage rule chains within sidechain's `APEManagerService` provides API to manage rule chains within sidechain's
`Policy` smart contract. `Policy` smart contract.
@ -62,7 +62,7 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| AddChain | [AddChainRequest](#frostfs.v2.apemanager.AddChainRequest) | [AddChainResponse](#frostfs.v2.apemanager.AddChainResponse) | | AddChain | [AddChainRequest](#frost.fs.apemanager.AddChainRequest) | [AddChainResponse](#frost.fs.apemanager.AddChainResponse) |
#### Method RemoveChain #### Method RemoveChain
Remove a rule chain for a specific target from `Policy` smart contract. Remove a rule chain for a specific target from `Policy` smart contract.
@ -80,7 +80,7 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| RemoveChain | [RemoveChainRequest](#frostfs.v2.apemanager.RemoveChainRequest) | [RemoveChainResponse](#frostfs.v2.apemanager.RemoveChainResponse) | | RemoveChain | [RemoveChainRequest](#frost.fs.apemanager.RemoveChainRequest) | [RemoveChainResponse](#frost.fs.apemanager.RemoveChainResponse) |
#### Method ListChains #### Method ListChains
List chains defined for a specific target from `Policy` smart contract. List chains defined for a specific target from `Policy` smart contract.
@ -96,11 +96,11 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| ListChains | [ListChainsRequest](#frostfs.v2.apemanager.ListChainsRequest) | [ListChainsResponse](#frostfs.v2.apemanager.ListChainsResponse) | | ListChains | [ListChainsRequest](#frost.fs.apemanager.ListChainsRequest) | [ListChainsResponse](#frost.fs.apemanager.ListChainsResponse) |
<!-- end services --> <!-- end services -->
<a name="frostfs.v2.apemanager.AddChainRequest"></a> <a name="frost.fs.apemanager.AddChainRequest"></a>
### Message AddChainRequest ### Message AddChainRequest
@ -108,12 +108,12 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [AddChainRequest.Body](#frostfs.v2.apemanager.AddChainRequest.Body) | | The request's body. | | body | [AddChainRequest.Body](#frost.fs.apemanager.AddChainRequest.Body) | | The request's body. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="frostfs.v2.apemanager.AddChainRequest.Body"></a> <a name="frost.fs.apemanager.AddChainRequest.Body"></a>
### Message AddChainRequest.Body ### Message AddChainRequest.Body
@ -121,11 +121,11 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | A target for which a rule chain is added. | | target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | A target for which a rule chain is added. |
| chain | [frostfs.v2.ape.Chain](#frostfs.v2.ape.Chain) | | The chain to set for the target. | | chain | [frost.fs.ape.Chain](#frost.fs.ape.Chain) | | The chain to set for the target. |
<a name="frostfs.v2.apemanager.AddChainResponse"></a> <a name="frost.fs.apemanager.AddChainResponse"></a>
### Message AddChainResponse ### Message AddChainResponse
@ -133,12 +133,12 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [AddChainResponse.Body](#frostfs.v2.apemanager.AddChainResponse.Body) | | The response's body. | | body | [AddChainResponse.Body](#frost.fs.apemanager.AddChainResponse.Body) | | The response's body. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="frostfs.v2.apemanager.AddChainResponse.Body"></a> <a name="frost.fs.apemanager.AddChainResponse.Body"></a>
### Message AddChainResponse.Body ### Message AddChainResponse.Body
@ -149,7 +149,7 @@ Statuses:
| chain_id | [bytes](#bytes) | | Chain ID assigned for the added rule chain. If chain ID is left empty in the request, then it will be generated. | | chain_id | [bytes](#bytes) | | Chain ID assigned for the added rule chain. If chain ID is left empty in the request, then it will be generated. |
<a name="frostfs.v2.apemanager.ListChainsRequest"></a> <a name="frost.fs.apemanager.ListChainsRequest"></a>
### Message ListChainsRequest ### Message ListChainsRequest
@ -157,12 +157,12 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [ListChainsRequest.Body](#frostfs.v2.apemanager.ListChainsRequest.Body) | | The request's body. | | body | [ListChainsRequest.Body](#frost.fs.apemanager.ListChainsRequest.Body) | | The request's body. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="frostfs.v2.apemanager.ListChainsRequest.Body"></a> <a name="frost.fs.apemanager.ListChainsRequest.Body"></a>
### Message ListChainsRequest.Body ### Message ListChainsRequest.Body
@ -170,10 +170,10 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | Target for which rule chains are listed. | | target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | Target for which rule chains are listed. |
<a name="frostfs.v2.apemanager.ListChainsResponse"></a> <a name="frost.fs.apemanager.ListChainsResponse"></a>
### Message ListChainsResponse ### Message ListChainsResponse
@ -181,12 +181,12 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [ListChainsResponse.Body](#frostfs.v2.apemanager.ListChainsResponse.Body) | | The response's body. | | body | [ListChainsResponse.Body](#frost.fs.apemanager.ListChainsResponse.Body) | | The response's body. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="frostfs.v2.apemanager.ListChainsResponse.Body"></a> <a name="frost.fs.apemanager.ListChainsResponse.Body"></a>
### Message ListChainsResponse.Body ### Message ListChainsResponse.Body
@ -194,10 +194,10 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| chains | [frostfs.v2.ape.Chain](#frostfs.v2.ape.Chain) | repeated | The list of chains defined for the reqeusted target. | | chains | [frost.fs.ape.Chain](#frost.fs.ape.Chain) | repeated | The list of chains defined for the reqeusted target. |
<a name="frostfs.v2.apemanager.RemoveChainRequest"></a> <a name="frost.fs.apemanager.RemoveChainRequest"></a>
### Message RemoveChainRequest ### Message RemoveChainRequest
@ -205,12 +205,12 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [RemoveChainRequest.Body](#frostfs.v2.apemanager.RemoveChainRequest.Body) | | The request's body. | | body | [RemoveChainRequest.Body](#frost.fs.apemanager.RemoveChainRequest.Body) | | The request's body. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="frostfs.v2.apemanager.RemoveChainRequest.Body"></a> <a name="frost.fs.apemanager.RemoveChainRequest.Body"></a>
### Message RemoveChainRequest.Body ### Message RemoveChainRequest.Body
@ -218,11 +218,11 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | Target for which a rule chain is removed. | | target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | Target for which a rule chain is removed. |
| chain_id | [bytes](#bytes) | | Chain ID assigned for the rule chain. | | chain_id | [bytes](#bytes) | | Chain ID assigned for the rule chain. |
<a name="frostfs.v2.apemanager.RemoveChainResponse"></a> <a name="frost.fs.apemanager.RemoveChainResponse"></a>
### Message RemoveChainResponse ### Message RemoveChainResponse
@ -230,12 +230,12 @@ Statuses:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [RemoveChainResponse.Body](#frostfs.v2.apemanager.RemoveChainResponse.Body) | | The response's body. | | body | [RemoveChainResponse.Body](#frost.fs.apemanager.RemoveChainResponse.Body) | | The response's body. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="frostfs.v2.apemanager.RemoveChainResponse.Body"></a> <a name="frost.fs.apemanager.RemoveChainResponse.Body"></a>
### Message RemoveChainResponse.Body ### Message RemoveChainResponse.Body
Since RemoveChain is an idempotent operation, then the only indicator that Since RemoveChain is an idempotent operation, then the only indicator that

View file

@ -5,32 +5,32 @@
- [container/service.proto](#container/service.proto) - [container/service.proto](#container/service.proto)
- Services - Services
- [ContainerService](#neo.fs.v2.container.ContainerService) - [ContainerService](#frost.fs.container.ContainerService)
- Messages - Messages
- [DeleteRequest](#neo.fs.v2.container.DeleteRequest) - [DeleteRequest](#frost.fs.container.DeleteRequest)
- [DeleteRequest.Body](#neo.fs.v2.container.DeleteRequest.Body) - [DeleteRequest.Body](#frost.fs.container.DeleteRequest.Body)
- [DeleteResponse](#neo.fs.v2.container.DeleteResponse) - [DeleteResponse](#frost.fs.container.DeleteResponse)
- [DeleteResponse.Body](#neo.fs.v2.container.DeleteResponse.Body) - [DeleteResponse.Body](#frost.fs.container.DeleteResponse.Body)
- [GetRequest](#neo.fs.v2.container.GetRequest) - [GetRequest](#frost.fs.container.GetRequest)
- [GetRequest.Body](#neo.fs.v2.container.GetRequest.Body) - [GetRequest.Body](#frost.fs.container.GetRequest.Body)
- [GetResponse](#neo.fs.v2.container.GetResponse) - [GetResponse](#frost.fs.container.GetResponse)
- [GetResponse.Body](#neo.fs.v2.container.GetResponse.Body) - [GetResponse.Body](#frost.fs.container.GetResponse.Body)
- [ListRequest](#neo.fs.v2.container.ListRequest) - [ListRequest](#frost.fs.container.ListRequest)
- [ListRequest.Body](#neo.fs.v2.container.ListRequest.Body) - [ListRequest.Body](#frost.fs.container.ListRequest.Body)
- [ListResponse](#neo.fs.v2.container.ListResponse) - [ListResponse](#frost.fs.container.ListResponse)
- [ListResponse.Body](#neo.fs.v2.container.ListResponse.Body) - [ListResponse.Body](#frost.fs.container.ListResponse.Body)
- [PutRequest](#neo.fs.v2.container.PutRequest) - [PutRequest](#frost.fs.container.PutRequest)
- [PutRequest.Body](#neo.fs.v2.container.PutRequest.Body) - [PutRequest.Body](#frost.fs.container.PutRequest.Body)
- [PutResponse](#neo.fs.v2.container.PutResponse) - [PutResponse](#frost.fs.container.PutResponse)
- [PutResponse.Body](#neo.fs.v2.container.PutResponse.Body) - [PutResponse.Body](#frost.fs.container.PutResponse.Body)
- [container/types.proto](#container/types.proto) - [container/types.proto](#container/types.proto)
- Messages - Messages
- [Container](#neo.fs.v2.container.Container) - [Container](#frost.fs.container.Container)
- [Container.Attribute](#neo.fs.v2.container.Container.Attribute) - [Container.Attribute](#frost.fs.container.Container.Attribute)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -45,9 +45,9 @@
<a name="neo.fs.v2.container.ContainerService"></a> <a name="frost.fs.container.ContainerService"></a>
### Service "neo.fs.v2.container.ContainerService" ### Service "frost.fs.container.ContainerService"
`ContainerService` provides API to interact with `Container` smart contract `ContainerService` provides API to interact with `Container` smart contract
in FrostFS sidechain via other FrostFS nodes. All of those actions can be in FrostFS sidechain via other FrostFS nodes. All of those actions can be
done equivalently by directly issuing transactions and RPC calls to sidechain done equivalently by directly issuing transactions and RPC calls to sidechain
@ -77,7 +77,7 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| Put | [PutRequest](#neo.fs.v2.container.PutRequest) | [PutResponse](#neo.fs.v2.container.PutResponse) | | Put | [PutRequest](#frost.fs.container.PutRequest) | [PutResponse](#frost.fs.container.PutResponse) |
#### Method Delete #### Method Delete
`Delete` invokes `Container` smart contract's `Delete` method and returns `Delete` invokes `Container` smart contract's `Delete` method and returns
@ -94,7 +94,7 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| Delete | [DeleteRequest](#neo.fs.v2.container.DeleteRequest) | [DeleteResponse](#neo.fs.v2.container.DeleteResponse) | | Delete | [DeleteRequest](#frost.fs.container.DeleteRequest) | [DeleteResponse](#frost.fs.container.DeleteResponse) |
#### Method Get #### Method Get
Returns container structure from `Container` smart contract storage. Returns container structure from `Container` smart contract storage.
@ -110,7 +110,7 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| Get | [GetRequest](#neo.fs.v2.container.GetRequest) | [GetResponse](#neo.fs.v2.container.GetResponse) | | Get | [GetRequest](#frost.fs.container.GetRequest) | [GetResponse](#frost.fs.container.GetResponse) |
#### Method List #### Method List
Returns all owner's containers from 'Container` smart contract' storage. Returns all owner's containers from 'Container` smart contract' storage.
@ -124,11 +124,11 @@ Statuses:
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| List | [ListRequest](#neo.fs.v2.container.ListRequest) | [ListResponse](#neo.fs.v2.container.ListResponse) | | List | [ListRequest](#frost.fs.container.ListRequest) | [ListResponse](#frost.fs.container.ListResponse) |
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.container.DeleteRequest"></a> <a name="frost.fs.container.DeleteRequest"></a>
### Message DeleteRequest ### Message DeleteRequest
Container removal request Container removal request
@ -136,12 +136,12 @@ Container removal request
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [DeleteRequest.Body](#neo.fs.v2.container.DeleteRequest.Body) | | Body of container delete request message. | | body | [DeleteRequest.Body](#frost.fs.container.DeleteRequest.Body) | | Body of container delete request message. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.DeleteRequest.Body"></a> <a name="frost.fs.container.DeleteRequest.Body"></a>
### Message DeleteRequest.Body ### Message DeleteRequest.Body
Container removal request body has signed `ContainerID` as a proof of Container removal request body has signed `ContainerID` as a proof of
@ -151,11 +151,11 @@ smart contract, so signing algorithm must be supported by NeoVM.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Identifier of the container to delete from FrostFS | | container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Identifier of the container to delete from FrostFS |
| signature | [neo.fs.v2.refs.SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) | | `ContainerID` signed with the container owner's key according to RFC-6979. | | signature | [frost.fs.refs.SignatureRFC6979](#frost.fs.refs.SignatureRFC6979) | | `ContainerID` signed with the container owner's key according to RFC-6979. |
<a name="neo.fs.v2.container.DeleteResponse"></a> <a name="frost.fs.container.DeleteResponse"></a>
### Message DeleteResponse ### Message DeleteResponse
`DeleteResponse` has an empty body because delete operation is asynchronous `DeleteResponse` has an empty body because delete operation is asynchronous
@ -164,12 +164,12 @@ and done via consensus in Inner Ring nodes.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [DeleteResponse.Body](#neo.fs.v2.container.DeleteResponse.Body) | | Body of container delete response message. | | body | [DeleteResponse.Body](#frost.fs.container.DeleteResponse.Body) | | Body of container delete response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.DeleteResponse.Body"></a> <a name="frost.fs.container.DeleteResponse.Body"></a>
### Message DeleteResponse.Body ### Message DeleteResponse.Body
`DeleteResponse` has an empty body because delete operation is asynchronous `DeleteResponse` has an empty body because delete operation is asynchronous
@ -177,7 +177,7 @@ and done via consensus in Inner Ring nodes.
<a name="neo.fs.v2.container.GetRequest"></a> <a name="frost.fs.container.GetRequest"></a>
### Message GetRequest ### Message GetRequest
Get container structure Get container structure
@ -185,12 +185,12 @@ Get container structure
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [GetRequest.Body](#neo.fs.v2.container.GetRequest.Body) | | Body of container get request message. | | body | [GetRequest.Body](#frost.fs.container.GetRequest.Body) | | Body of container get request message. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.GetRequest.Body"></a> <a name="frost.fs.container.GetRequest.Body"></a>
### Message GetRequest.Body ### Message GetRequest.Body
Get container structure request body. Get container structure request body.
@ -198,10 +198,10 @@ Get container structure request body.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Identifier of the container to get | | container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Identifier of the container to get |
<a name="neo.fs.v2.container.GetResponse"></a> <a name="frost.fs.container.GetResponse"></a>
### Message GetResponse ### Message GetResponse
Get container structure Get container structure
@ -209,12 +209,12 @@ Get container structure
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [GetResponse.Body](#neo.fs.v2.container.GetResponse.Body) | | Body of container get response message. | | body | [GetResponse.Body](#frost.fs.container.GetResponse.Body) | | Body of container get response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.GetResponse.Body"></a> <a name="frost.fs.container.GetResponse.Body"></a>
### Message GetResponse.Body ### Message GetResponse.Body
Get container response body does not have container structure signature. It Get container response body does not have container structure signature. It
@ -223,12 +223,12 @@ has been already verified upon container creation.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container | [Container](#neo.fs.v2.container.Container) | | Requested container structure | | container | [Container](#frost.fs.container.Container) | | Requested container structure |
| signature | [neo.fs.v2.refs.SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. | | signature | [frost.fs.refs.SignatureRFC6979](#frost.fs.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. |
| session_token | [neo.fs.v2.session.SessionToken](#neo.fs.v2.session.SessionToken) | | Session token if the container has been created within the session | | session_token | [frost.fs.session.SessionToken](#frost.fs.session.SessionToken) | | Session token if the container has been created within the session |
<a name="neo.fs.v2.container.ListRequest"></a> <a name="frost.fs.container.ListRequest"></a>
### Message ListRequest ### Message ListRequest
List containers List containers
@ -236,12 +236,12 @@ List containers
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [ListRequest.Body](#neo.fs.v2.container.ListRequest.Body) | | Body of list containers request message | | body | [ListRequest.Body](#frost.fs.container.ListRequest.Body) | | Body of list containers request message |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.ListRequest.Body"></a> <a name="frost.fs.container.ListRequest.Body"></a>
### Message ListRequest.Body ### Message ListRequest.Body
List containers request body. List containers request body.
@ -249,10 +249,10 @@ List containers request body.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the container owner | | owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Identifier of the container owner |
<a name="neo.fs.v2.container.ListResponse"></a> <a name="frost.fs.container.ListResponse"></a>
### Message ListResponse ### Message ListResponse
List containers List containers
@ -260,12 +260,12 @@ List containers
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [ListResponse.Body](#neo.fs.v2.container.ListResponse.Body) | | Body of list containers response message. | | body | [ListResponse.Body](#frost.fs.container.ListResponse.Body) | | Body of list containers response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.ListResponse.Body"></a> <a name="frost.fs.container.ListResponse.Body"></a>
### Message ListResponse.Body ### Message ListResponse.Body
List containers response body. List containers response body.
@ -273,10 +273,10 @@ List containers response body.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container_ids | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | repeated | List of `ContainerID`s belonging to the requested `OwnerID` | | container_ids | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | repeated | List of `ContainerID`s belonging to the requested `OwnerID` |
<a name="neo.fs.v2.container.PutRequest"></a> <a name="frost.fs.container.PutRequest"></a>
### Message PutRequest ### Message PutRequest
New FrostFS Container creation request New FrostFS Container creation request
@ -284,12 +284,12 @@ New FrostFS Container creation request
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [PutRequest.Body](#neo.fs.v2.container.PutRequest.Body) | | Body of container put request message. | | body | [PutRequest.Body](#frost.fs.container.PutRequest.Body) | | Body of container put request message. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.PutRequest.Body"></a> <a name="frost.fs.container.PutRequest.Body"></a>
### Message PutRequest.Body ### Message PutRequest.Body
Container creation request has container structure's signature as a Container creation request has container structure's signature as a
@ -301,11 +301,11 @@ additional signature checks.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container | [Container](#neo.fs.v2.container.Container) | | Container structure to register in FrostFS | | container | [Container](#frost.fs.container.Container) | | Container structure to register in FrostFS |
| signature | [neo.fs.v2.refs.SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. | | signature | [frost.fs.refs.SignatureRFC6979](#frost.fs.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. |
<a name="neo.fs.v2.container.PutResponse"></a> <a name="frost.fs.container.PutResponse"></a>
### Message PutResponse ### Message PutResponse
New FrostFS Container creation response New FrostFS Container creation response
@ -313,12 +313,12 @@ New FrostFS Container creation response
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [PutResponse.Body](#neo.fs.v2.container.PutResponse.Body) | | Body of container put response message. | | body | [PutResponse.Body](#frost.fs.container.PutResponse.Body) | | Body of container put response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.container.PutResponse.Body"></a> <a name="frost.fs.container.PutResponse.Body"></a>
### Message PutResponse.Body ### Message PutResponse.Body
Container put response body contains information about the newly registered Container put response body contains information about the newly registered
@ -329,7 +329,7 @@ returned here to make sure everything has been done as expected.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Unique identifier of the newly created container | | container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Unique identifier of the newly created container |
<!-- end messages --> <!-- end messages -->
@ -346,7 +346,7 @@ returned here to make sure everything has been done as expected.
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.container.Container"></a> <a name="frost.fs.container.Container"></a>
### Message Container ### Message Container
Container is a structure that defines object placement behaviour. Objects can Container is a structure that defines object placement behaviour. Objects can
@ -357,15 +357,15 @@ hash of stable-marshalled container message.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Container format version. Effectively, the version of API library used to create the container. | | version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Container format version. Effectively, the version of API library used to create the container. |
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the container owner | | owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Identifier of the container owner |
| nonce | [bytes](#bytes) | | Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s | | nonce | [bytes](#bytes) | | Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s |
| basic_acl | [uint32](#uint32) | | `BasicACL` contains access control rules for the owner, system and others groups, as well as permission bits for `BearerToken` and `Extended ACL` | | basic_acl | [uint32](#uint32) | | `BasicACL` contains access control rules for the owner, system and others groups, as well as permission bits for `BearerToken` and `Extended ACL` |
| attributes | [Container.Attribute](#neo.fs.v2.container.Container.Attribute) | repeated | Attributes represent immutable container's meta data | | attributes | [Container.Attribute](#frost.fs.container.Container.Attribute) | repeated | Attributes represent immutable container's meta data |
| placement_policy | [neo.fs.v2.netmap.PlacementPolicy](#neo.fs.v2.netmap.PlacementPolicy) | | Placement policy for the object inside the container | | placement_policy | [frost.fs.netmap.PlacementPolicy](#frost.fs.netmap.PlacementPolicy) | | Placement policy for the object inside the container |
<a name="neo.fs.v2.container.Container.Attribute"></a> <a name="frost.fs.container.Container.Attribute"></a>
### Message Container.Attribute ### Message Container.Attribute
`Attribute` is a user-defined Key-Value metadata pair attached to the `Attribute` is a user-defined Key-Value metadata pair attached to the
@ -379,16 +379,13 @@ values will be considered invalid.
There are some "well-known" attributes affecting system behaviour: There are some "well-known" attributes affecting system behaviour:
* [ __SYSTEM__NAME ] \ * [ __SYSTEM__NAME ] \
(`__NEOFS__NAME` is deprecated) \
String of a human-friendly container name registered as a domain in String of a human-friendly container name registered as a domain in
NNS contract. NNS contract.
* [ __SYSTEM__ZONE ] \ * [ __SYSTEM__ZONE ] \
(`__NEOFS__ZONE` is deprecated) \ String of a zone for `__SYSTEM__NAME`.
String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
Used as a TLD of a domain name in NNS contract. If no zone is specified, Used as a TLD of a domain name in NNS contract. If no zone is specified,
use default zone: `container`. use default zone: `container`.
* [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \ * [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
(`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
Disables homomorphic hashing for the container if the value equals "true" Disables homomorphic hashing for the container if the value equals "true"
string. Any other values are interpreted as missing attribute. Container string. Any other values are interpreted as missing attribute. Container
could be accepted in a FrostFS network only if the global network hashing could be accepted in a FrostFS network only if the global network hashing

View file

@ -6,7 +6,7 @@
- [lock/types.proto](#lock/types.proto) - [lock/types.proto](#lock/types.proto)
- Messages - Messages
- [Lock](#neo.fs.v2.lock.Lock) - [Lock](#frost.fs.lock.Lock)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -22,19 +22,19 @@
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.lock.Lock"></a> <a name="frost.fs.lock.Lock"></a>
### Message Lock ### Message Lock
Lock objects protects a list of objects from being deleted. The lifetime of a Lock objects protects a list of objects from being deleted. The lifetime of a
lock object is limited similar to regular objects in lock object is limited similar to regular objects in
`__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated) `__SYSTEM__EXPIRATION_EPOCH`
attribute. Lock object MUST have expiration epoch. It is impossible to delete attribute. Lock object MUST have expiration epoch. It is impossible to delete
a lock object via ObjectService.Delete RPC call. a lock object via ObjectService.Delete RPC call.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| members | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of objects to lock. Must not be empty or carry empty IDs. All members must be of the `REGULAR` type. | | members | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | List of objects to lock. Must not be empty or carry empty IDs. All members must be of the `REGULAR` type. |
<!-- end messages --> <!-- end messages -->

View file

@ -5,36 +5,36 @@
- [netmap/service.proto](#netmap/service.proto) - [netmap/service.proto](#netmap/service.proto)
- Services - Services
- [NetmapService](#neo.fs.v2.netmap.NetmapService) - [NetmapService](#frost.fs.netmap.NetmapService)
- Messages - Messages
- [LocalNodeInfoRequest](#neo.fs.v2.netmap.LocalNodeInfoRequest) - [LocalNodeInfoRequest](#frost.fs.netmap.LocalNodeInfoRequest)
- [LocalNodeInfoRequest.Body](#neo.fs.v2.netmap.LocalNodeInfoRequest.Body) - [LocalNodeInfoRequest.Body](#frost.fs.netmap.LocalNodeInfoRequest.Body)
- [LocalNodeInfoResponse](#neo.fs.v2.netmap.LocalNodeInfoResponse) - [LocalNodeInfoResponse](#frost.fs.netmap.LocalNodeInfoResponse)
- [LocalNodeInfoResponse.Body](#neo.fs.v2.netmap.LocalNodeInfoResponse.Body) - [LocalNodeInfoResponse.Body](#frost.fs.netmap.LocalNodeInfoResponse.Body)
- [NetmapSnapshotRequest](#neo.fs.v2.netmap.NetmapSnapshotRequest) - [NetmapSnapshotRequest](#frost.fs.netmap.NetmapSnapshotRequest)
- [NetmapSnapshotRequest.Body](#neo.fs.v2.netmap.NetmapSnapshotRequest.Body) - [NetmapSnapshotRequest.Body](#frost.fs.netmap.NetmapSnapshotRequest.Body)
- [NetmapSnapshotResponse](#neo.fs.v2.netmap.NetmapSnapshotResponse) - [NetmapSnapshotResponse](#frost.fs.netmap.NetmapSnapshotResponse)
- [NetmapSnapshotResponse.Body](#neo.fs.v2.netmap.NetmapSnapshotResponse.Body) - [NetmapSnapshotResponse.Body](#frost.fs.netmap.NetmapSnapshotResponse.Body)
- [NetworkInfoRequest](#neo.fs.v2.netmap.NetworkInfoRequest) - [NetworkInfoRequest](#frost.fs.netmap.NetworkInfoRequest)
- [NetworkInfoRequest.Body](#neo.fs.v2.netmap.NetworkInfoRequest.Body) - [NetworkInfoRequest.Body](#frost.fs.netmap.NetworkInfoRequest.Body)
- [NetworkInfoResponse](#neo.fs.v2.netmap.NetworkInfoResponse) - [NetworkInfoResponse](#frost.fs.netmap.NetworkInfoResponse)
- [NetworkInfoResponse.Body](#neo.fs.v2.netmap.NetworkInfoResponse.Body) - [NetworkInfoResponse.Body](#frost.fs.netmap.NetworkInfoResponse.Body)
- [netmap/types.proto](#netmap/types.proto) - [netmap/types.proto](#netmap/types.proto)
- Messages - Messages
- [Filter](#neo.fs.v2.netmap.Filter) - [Filter](#frost.fs.netmap.Filter)
- [Netmap](#neo.fs.v2.netmap.Netmap) - [Netmap](#frost.fs.netmap.Netmap)
- [NetworkConfig](#neo.fs.v2.netmap.NetworkConfig) - [NetworkConfig](#frost.fs.netmap.NetworkConfig)
- [NetworkConfig.Parameter](#neo.fs.v2.netmap.NetworkConfig.Parameter) - [NetworkConfig.Parameter](#frost.fs.netmap.NetworkConfig.Parameter)
- [NetworkInfo](#neo.fs.v2.netmap.NetworkInfo) - [NetworkInfo](#frost.fs.netmap.NetworkInfo)
- [NodeInfo](#neo.fs.v2.netmap.NodeInfo) - [NodeInfo](#frost.fs.netmap.NodeInfo)
- [NodeInfo.Attribute](#neo.fs.v2.netmap.NodeInfo.Attribute) - [NodeInfo.Attribute](#frost.fs.netmap.NodeInfo.Attribute)
- [PlacementPolicy](#neo.fs.v2.netmap.PlacementPolicy) - [PlacementPolicy](#frost.fs.netmap.PlacementPolicy)
- [Replica](#neo.fs.v2.netmap.Replica) - [Replica](#frost.fs.netmap.Replica)
- [Selector](#neo.fs.v2.netmap.Selector) - [Selector](#frost.fs.netmap.Selector)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -49,9 +49,9 @@
<a name="neo.fs.v2.netmap.NetmapService"></a> <a name="frost.fs.netmap.NetmapService"></a>
### Service "neo.fs.v2.netmap.NetmapService" ### Service "frost.fs.netmap.NetmapService"
`NetmapService` provides methods to work with `Network Map` and the `NetmapService` provides methods to work with `Network Map` and the
information required to build it. The resulting `Network Map` is stored in information required to build it. The resulting `Network Map` is stored in
sidechain `Netmap` smart contract, while related information can be obtained sidechain `Netmap` smart contract, while related information can be obtained
@ -80,7 +80,7 @@ information about the server has been successfully read;
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| LocalNodeInfo | [LocalNodeInfoRequest](#neo.fs.v2.netmap.LocalNodeInfoRequest) | [LocalNodeInfoResponse](#neo.fs.v2.netmap.LocalNodeInfoResponse) | | LocalNodeInfo | [LocalNodeInfoRequest](#frost.fs.netmap.LocalNodeInfoRequest) | [LocalNodeInfoResponse](#frost.fs.netmap.LocalNodeInfoResponse) |
#### Method NetworkInfo #### Method NetworkInfo
Read recent information about the FrostFS network. Read recent information about the FrostFS network.
@ -92,7 +92,7 @@ information about the current network state has been successfully read;
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| NetworkInfo | [NetworkInfoRequest](#neo.fs.v2.netmap.NetworkInfoRequest) | [NetworkInfoResponse](#neo.fs.v2.netmap.NetworkInfoResponse) | | NetworkInfo | [NetworkInfoRequest](#frost.fs.netmap.NetworkInfoRequest) | [NetworkInfoResponse](#frost.fs.netmap.NetworkInfoResponse) |
#### Method NetmapSnapshot #### Method NetmapSnapshot
Returns network map snapshot of the current FrostFS epoch. Returns network map snapshot of the current FrostFS epoch.
@ -104,11 +104,11 @@ information about the current network map has been successfully read;
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| NetmapSnapshot | [NetmapSnapshotRequest](#neo.fs.v2.netmap.NetmapSnapshotRequest) | [NetmapSnapshotResponse](#neo.fs.v2.netmap.NetmapSnapshotResponse) | | NetmapSnapshot | [NetmapSnapshotRequest](#frost.fs.netmap.NetmapSnapshotRequest) | [NetmapSnapshotResponse](#frost.fs.netmap.NetmapSnapshotResponse) |
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.netmap.LocalNodeInfoRequest"></a> <a name="frost.fs.netmap.LocalNodeInfoRequest"></a>
### Message LocalNodeInfoRequest ### Message LocalNodeInfoRequest
Get NodeInfo structure directly from a particular node Get NodeInfo structure directly from a particular node
@ -116,19 +116,19 @@ Get NodeInfo structure directly from a particular node
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [LocalNodeInfoRequest.Body](#neo.fs.v2.netmap.LocalNodeInfoRequest.Body) | | Body of the LocalNodeInfo request message | | body | [LocalNodeInfoRequest.Body](#frost.fs.netmap.LocalNodeInfoRequest.Body) | | Body of the LocalNodeInfo request message |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.netmap.LocalNodeInfoRequest.Body"></a> <a name="frost.fs.netmap.LocalNodeInfoRequest.Body"></a>
### Message LocalNodeInfoRequest.Body ### Message LocalNodeInfoRequest.Body
LocalNodeInfo request body is empty. LocalNodeInfo request body is empty.
<a name="neo.fs.v2.netmap.LocalNodeInfoResponse"></a> <a name="frost.fs.netmap.LocalNodeInfoResponse"></a>
### Message LocalNodeInfoResponse ### Message LocalNodeInfoResponse
Local Node Info, including API Version in use Local Node Info, including API Version in use
@ -136,12 +136,12 @@ Local Node Info, including API Version in use
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [LocalNodeInfoResponse.Body](#neo.fs.v2.netmap.LocalNodeInfoResponse.Body) | | Body of the balance response message. | | body | [LocalNodeInfoResponse.Body](#frost.fs.netmap.LocalNodeInfoResponse.Body) | | Body of the balance response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.netmap.LocalNodeInfoResponse.Body"></a> <a name="frost.fs.netmap.LocalNodeInfoResponse.Body"></a>
### Message LocalNodeInfoResponse.Body ### Message LocalNodeInfoResponse.Body
Local Node Info, including API Version in use. Local Node Info, including API Version in use.
@ -149,11 +149,11 @@ Local Node Info, including API Version in use.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Latest FrostFS API version in use | | version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Latest FrostFS API version in use |
| node_info | [NodeInfo](#neo.fs.v2.netmap.NodeInfo) | | NodeInfo structure with recent information from node itself | | node_info | [NodeInfo](#frost.fs.netmap.NodeInfo) | | NodeInfo structure with recent information from node itself |
<a name="neo.fs.v2.netmap.NetmapSnapshotRequest"></a> <a name="frost.fs.netmap.NetmapSnapshotRequest"></a>
### Message NetmapSnapshotRequest ### Message NetmapSnapshotRequest
Get netmap snapshot request Get netmap snapshot request
@ -161,19 +161,19 @@ Get netmap snapshot request
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [NetmapSnapshotRequest.Body](#neo.fs.v2.netmap.NetmapSnapshotRequest.Body) | | Body of get netmap snapshot request message. | | body | [NetmapSnapshotRequest.Body](#frost.fs.netmap.NetmapSnapshotRequest.Body) | | Body of get netmap snapshot request message. |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.netmap.NetmapSnapshotRequest.Body"></a> <a name="frost.fs.netmap.NetmapSnapshotRequest.Body"></a>
### Message NetmapSnapshotRequest.Body ### Message NetmapSnapshotRequest.Body
Get netmap snapshot request body. Get netmap snapshot request body.
<a name="neo.fs.v2.netmap.NetmapSnapshotResponse"></a> <a name="frost.fs.netmap.NetmapSnapshotResponse"></a>
### Message NetmapSnapshotResponse ### Message NetmapSnapshotResponse
Response with current netmap snapshot Response with current netmap snapshot
@ -181,12 +181,12 @@ Response with current netmap snapshot
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [NetmapSnapshotResponse.Body](#neo.fs.v2.netmap.NetmapSnapshotResponse.Body) | | Body of get netmap snapshot response message. | | body | [NetmapSnapshotResponse.Body](#frost.fs.netmap.NetmapSnapshotResponse.Body) | | Body of get netmap snapshot response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.netmap.NetmapSnapshotResponse.Body"></a> <a name="frost.fs.netmap.NetmapSnapshotResponse.Body"></a>
### Message NetmapSnapshotResponse.Body ### Message NetmapSnapshotResponse.Body
Get netmap snapshot response body Get netmap snapshot response body
@ -194,10 +194,10 @@ Get netmap snapshot response body
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| netmap | [Netmap](#neo.fs.v2.netmap.Netmap) | | Structure of the requested network map. | | netmap | [Netmap](#frost.fs.netmap.Netmap) | | Structure of the requested network map. |
<a name="neo.fs.v2.netmap.NetworkInfoRequest"></a> <a name="frost.fs.netmap.NetworkInfoRequest"></a>
### Message NetworkInfoRequest ### Message NetworkInfoRequest
Get NetworkInfo structure with the network view from a particular node. Get NetworkInfo structure with the network view from a particular node.
@ -205,19 +205,19 @@ Get NetworkInfo structure with the network view from a particular node.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [NetworkInfoRequest.Body](#neo.fs.v2.netmap.NetworkInfoRequest.Body) | | Body of the NetworkInfo request message | | body | [NetworkInfoRequest.Body](#frost.fs.netmap.NetworkInfoRequest.Body) | | Body of the NetworkInfo request message |
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.netmap.NetworkInfoRequest.Body"></a> <a name="frost.fs.netmap.NetworkInfoRequest.Body"></a>
### Message NetworkInfoRequest.Body ### Message NetworkInfoRequest.Body
NetworkInfo request body is empty. NetworkInfo request body is empty.
<a name="neo.fs.v2.netmap.NetworkInfoResponse"></a> <a name="frost.fs.netmap.NetworkInfoResponse"></a>
### Message NetworkInfoResponse ### Message NetworkInfoResponse
Response with NetworkInfo structure including current epoch and Response with NetworkInfo structure including current epoch and
@ -226,12 +226,12 @@ sidechain magic number.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [NetworkInfoResponse.Body](#neo.fs.v2.netmap.NetworkInfoResponse.Body) | | Body of the NetworkInfo response message. | | body | [NetworkInfoResponse.Body](#frost.fs.netmap.NetworkInfoResponse.Body) | | Body of the NetworkInfo response message. |
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. | | meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.netmap.NetworkInfoResponse.Body"></a> <a name="frost.fs.netmap.NetworkInfoResponse.Body"></a>
### Message NetworkInfoResponse.Body ### Message NetworkInfoResponse.Body
Information about the network. Information about the network.
@ -239,7 +239,7 @@ Information about the network.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| network_info | [NetworkInfo](#neo.fs.v2.netmap.NetworkInfo) | | NetworkInfo structure with recent information. | | network_info | [NetworkInfo](#frost.fs.netmap.NetworkInfo) | | NetworkInfo structure with recent information. |
<!-- end messages --> <!-- end messages -->
@ -256,7 +256,7 @@ Information about the network.
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.netmap.Filter"></a> <a name="frost.fs.netmap.Filter"></a>
### Message Filter ### Message Filter
This filter will return the subset of nodes from `NetworkMap` or another This filter will return the subset of nodes from `NetworkMap` or another
@ -267,12 +267,12 @@ filter's results that will satisfy filter's conditions.
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| name | [string](#string) | | Name of the filter or a reference to a 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](#string) | | Name of the filter or a reference to a 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 |
| key | [string](#string) | | Key to filter | | key | [string](#string) | | Key to filter |
| op | [Operation](#neo.fs.v2.netmap.Operation) | | Filtering operation | | op | [Operation](#frost.fs.netmap.Operation) | | Filtering operation |
| value | [string](#string) | | Value to match | | value | [string](#string) | | Value to match |
| filters | [Filter](#neo.fs.v2.netmap.Filter) | repeated | List of inner filters. Top level operation will be applied to the whole list. | | filters | [Filter](#frost.fs.netmap.Filter) | repeated | List of inner filters. Top level operation will be applied to the whole list. |
<a name="neo.fs.v2.netmap.Netmap"></a> <a name="frost.fs.netmap.Netmap"></a>
### Message Netmap ### Message Netmap
Network map structure Network map structure
@ -281,10 +281,10 @@ Network map structure
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| epoch | [uint64](#uint64) | | Network map revision number. | | epoch | [uint64](#uint64) | | Network map revision number. |
| nodes | [NodeInfo](#neo.fs.v2.netmap.NodeInfo) | repeated | Nodes presented in network. | | nodes | [NodeInfo](#frost.fs.netmap.NodeInfo) | repeated | Nodes presented in network. |
<a name="neo.fs.v2.netmap.NetworkConfig"></a> <a name="frost.fs.netmap.NetworkConfig"></a>
### Message NetworkConfig ### Message NetworkConfig
FrostFS network configuration FrostFS network configuration
@ -292,10 +292,10 @@ FrostFS network configuration
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| parameters | [NetworkConfig.Parameter](#neo.fs.v2.netmap.NetworkConfig.Parameter) | repeated | List of parameter values | | parameters | [NetworkConfig.Parameter](#frost.fs.netmap.NetworkConfig.Parameter) | repeated | List of parameter values |
<a name="neo.fs.v2.netmap.NetworkConfig.Parameter"></a> <a name="frost.fs.netmap.NetworkConfig.Parameter"></a>
### Message NetworkConfig.Parameter ### Message NetworkConfig.Parameter
Single configuration parameter. Key MUST be network-unique. Single configuration parameter. Key MUST be network-unique.
@ -377,7 +377,7 @@ System parameters:
| value | [bytes](#bytes) | | Parameter value | | value | [bytes](#bytes) | | Parameter value |
<a name="neo.fs.v2.netmap.NetworkInfo"></a> <a name="frost.fs.netmap.NetworkInfo"></a>
### Message NetworkInfo ### Message NetworkInfo
Information about FrostFS network Information about FrostFS network
@ -388,10 +388,10 @@ Information about FrostFS network
| current_epoch | [uint64](#uint64) | | Number of the current epoch in the FrostFS network | | current_epoch | [uint64](#uint64) | | Number of the current epoch in the FrostFS network |
| magic_number | [uint64](#uint64) | | Magic number of the sidechain of the FrostFS network | | magic_number | [uint64](#uint64) | | Magic number of the sidechain of the FrostFS network |
| ms_per_block | [int64](#int64) | | MillisecondsPerBlock network parameter of the sidechain of the FrostFS network | | ms_per_block | [int64](#int64) | | MillisecondsPerBlock network parameter of the sidechain of the FrostFS network |
| network_config | [NetworkConfig](#neo.fs.v2.netmap.NetworkConfig) | | FrostFS network configuration | | network_config | [NetworkConfig](#frost.fs.netmap.NetworkConfig) | | FrostFS network configuration |
<a name="neo.fs.v2.netmap.NodeInfo"></a> <a name="frost.fs.netmap.NodeInfo"></a>
### Message NodeInfo ### Message NodeInfo
FrostFS node description FrostFS node description
@ -401,11 +401,11 @@ FrostFS node description
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| public_key | [bytes](#bytes) | | Public key of the FrostFS node in a binary format | | public_key | [bytes](#bytes) | | Public key of the FrostFS node in a binary format |
| addresses | [string](#string) | repeated | Ways to connect to a node | | addresses | [string](#string) | repeated | Ways to connect to a node |
| attributes | [NodeInfo.Attribute](#neo.fs.v2.netmap.NodeInfo.Attribute) | repeated | Carries list of the FrostFS node attributes in a key-value form. Key name must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo structures with duplicated attribute names or attributes with empty values will be considered invalid. | | attributes | [NodeInfo.Attribute](#frost.fs.netmap.NodeInfo.Attribute) | repeated | Carries list of the FrostFS node attributes in a key-value form. Key name must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo structures with duplicated attribute names or attributes with empty values will be considered invalid. |
| state | [NodeInfo.State](#neo.fs.v2.netmap.NodeInfo.State) | | Carries state of the FrostFS node | | state | [NodeInfo.State](#frost.fs.netmap.NodeInfo.State) | | Carries state of the FrostFS node |
<a name="neo.fs.v2.netmap.NodeInfo.Attribute"></a> <a name="frost.fs.netmap.NodeInfo.Attribute"></a>
### Message NodeInfo.Attribute ### Message NodeInfo.Attribute
Administrator-defined Attributes of the FrostFS Storage Node. Administrator-defined Attributes of the FrostFS Storage Node.
@ -484,7 +484,7 @@ corresponding section in FrostFS Technical Specification.
| parents | [string](#string) | repeated | Parent keys, if any. For example for `City` it could be `Region` and `Country`. | | parents | [string](#string) | repeated | Parent keys, if any. For example for `City` it could be `Region` and `Country`. |
<a name="neo.fs.v2.netmap.PlacementPolicy"></a> <a name="frost.fs.netmap.PlacementPolicy"></a>
### Message PlacementPolicy ### Message PlacementPolicy
Set of rules to select a subset of nodes from `NetworkMap` able to store Set of rules to select a subset of nodes from `NetworkMap` able to store
@ -494,14 +494,14 @@ storage policy definition languages.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| replicas | [Replica](#neo.fs.v2.netmap.Replica) | repeated | Rules to set number of object replicas and place each one into a named bucket | | replicas | [Replica](#frost.fs.netmap.Replica) | repeated | Rules to set number of object replicas and place each one into a named bucket |
| container_backup_factor | [uint32](#uint32) | | Container backup factor controls how deep FrostFS will search for nodes alternatives to include into container's nodes subset | | container_backup_factor | [uint32](#uint32) | | Container backup factor controls how deep FrostFS will search for nodes alternatives to include into container's nodes subset |
| selectors | [Selector](#neo.fs.v2.netmap.Selector) | repeated | Set of Selectors to form the container's nodes subset | | selectors | [Selector](#frost.fs.netmap.Selector) | repeated | Set of Selectors to form the container's nodes subset |
| filters | [Filter](#neo.fs.v2.netmap.Filter) | repeated | List of named filters to reference in selectors | | filters | [Filter](#frost.fs.netmap.Filter) | repeated | List of named filters to reference in selectors |
| unique | [bool](#bool) | | Unique flag defines non-overlapping application for replicas | | unique | [bool](#bool) | | Unique flag defines non-overlapping application for replicas |
<a name="neo.fs.v2.netmap.Replica"></a> <a name="frost.fs.netmap.Replica"></a>
### Message Replica ### Message Replica
Number of object replicas in a set of nodes from the defined selector. If no Number of object replicas in a set of nodes from the defined selector. If no
@ -517,7 +517,7 @@ default.
| ec_parity_count | [uint32](#uint32) | | Parity shards count | | ec_parity_count | [uint32](#uint32) | | Parity shards count |
<a name="neo.fs.v2.netmap.Selector"></a> <a name="frost.fs.netmap.Selector"></a>
### Message Selector ### Message Selector
Selector chooses a number of nodes from the bucket taking the nearest nodes Selector chooses a number of nodes from the bucket taking the nearest nodes
@ -528,14 +528,14 @@ to the provided `ContainerID` by hash distance.
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| name | [string](#string) | | Selector name to reference in object placement section | | name | [string](#string) | | Selector name to reference in object placement section |
| count | [uint32](#uint32) | | How many nodes to select from the bucket | | count | [uint32](#uint32) | | How many nodes to select from the bucket |
| clause | [Clause](#neo.fs.v2.netmap.Clause) | | Selector modifier showing how to form a bucket | | clause | [Clause](#frost.fs.netmap.Clause) | | Selector modifier showing how to form a bucket |
| attribute | [string](#string) | | Bucket attribute to select from | | attribute | [string](#string) | | Bucket attribute to select from |
| filter | [string](#string) | | Filter reference to select from | | filter | [string](#string) | | Filter reference to select from |
<!-- end messages --> <!-- end messages -->
<a name="neo.fs.v2.netmap.Clause"></a> <a name="frost.fs.netmap.Clause"></a>
### Clause ### Clause
Selector modifier shows how the node set will be formed. By default selector Selector modifier shows how the node set will be formed. By default selector
@ -550,7 +550,7 @@ hash distance.
<a name="neo.fs.v2.netmap.NodeInfo.State"></a> <a name="frost.fs.netmap.NodeInfo.State"></a>
### NodeInfo.State ### NodeInfo.State
Represents the enumeration of various states of the FrostFS node. Represents the enumeration of various states of the FrostFS node.
@ -564,7 +564,7 @@ Represents the enumeration of various states of the FrostFS node.
<a name="neo.fs.v2.netmap.Operation"></a> <a name="frost.fs.netmap.Operation"></a>
### Operation ### Operation
Operations on filters Operations on filters

File diff suppressed because it is too large Load diff

View file

@ -6,14 +6,14 @@
- [refs/types.proto](#refs/types.proto) - [refs/types.proto](#refs/types.proto)
- Messages - Messages
- [Address](#neo.fs.v2.refs.Address) - [Address](#frost.fs.refs.Address)
- [Checksum](#neo.fs.v2.refs.Checksum) - [Checksum](#frost.fs.refs.Checksum)
- [ContainerID](#neo.fs.v2.refs.ContainerID) - [ContainerID](#frost.fs.refs.ContainerID)
- [ObjectID](#neo.fs.v2.refs.ObjectID) - [ObjectID](#frost.fs.refs.ObjectID)
- [OwnerID](#neo.fs.v2.refs.OwnerID) - [OwnerID](#frost.fs.refs.OwnerID)
- [Signature](#neo.fs.v2.refs.Signature) - [Signature](#frost.fs.refs.Signature)
- [SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) - [SignatureRFC6979](#frost.fs.refs.SignatureRFC6979)
- [Version](#neo.fs.v2.refs.Version) - [Version](#frost.fs.refs.Version)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -29,7 +29,7 @@
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.refs.Address"></a> <a name="frost.fs.refs.Address"></a>
### Message Address ### Message Address
Objects in FrostFS are addressed by their ContainerID and ObjectID. Objects in FrostFS are addressed by their ContainerID and ObjectID.
@ -40,11 +40,11 @@ String presentation of `Address` is a concatenation of string encoded
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container_id | [ContainerID](#neo.fs.v2.refs.ContainerID) | | Container identifier | | container_id | [ContainerID](#frost.fs.refs.ContainerID) | | Container identifier |
| object_id | [ObjectID](#neo.fs.v2.refs.ObjectID) | | Object identifier | | object_id | [ObjectID](#frost.fs.refs.ObjectID) | | Object identifier |
<a name="neo.fs.v2.refs.Checksum"></a> <a name="frost.fs.refs.Checksum"></a>
### Message Checksum ### Message Checksum
Checksum message. Checksum message.
@ -58,11 +58,11 @@ Depending on checksum algorithm type, the string presentation may vary:
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| type | [ChecksumType](#neo.fs.v2.refs.ChecksumType) | | Checksum algorithm type | | type | [ChecksumType](#frost.fs.refs.ChecksumType) | | Checksum algorithm type |
| sum | [bytes](#bytes) | | Checksum itself | | sum | [bytes](#bytes) | | Checksum itself |
<a name="neo.fs.v2.refs.ContainerID"></a> <a name="frost.fs.refs.ContainerID"></a>
### Message ContainerID ### Message ContainerID
FrostFS container identifier. Container structures are immutable and FrostFS container identifier. Container structures are immutable and
@ -87,7 +87,7 @@ with/without paddings are accepted.
| value | [bytes](#bytes) | | Container identifier in a binary format. | | value | [bytes](#bytes) | | Container identifier in a binary format. |
<a name="neo.fs.v2.refs.ObjectID"></a> <a name="frost.fs.refs.ObjectID"></a>
### Message ObjectID ### Message ObjectID
FrostFS Object unique identifier. Objects are immutable and FrostFS Object unique identifier. Objects are immutable and
@ -114,7 +114,7 @@ with/without paddings are accepted.
| value | [bytes](#bytes) | | Object identifier in a binary format | | value | [bytes](#bytes) | | Object identifier in a binary format |
<a name="neo.fs.v2.refs.OwnerID"></a> <a name="frost.fs.refs.OwnerID"></a>
### Message OwnerID ### Message OwnerID
`OwnerID` is a derivative of a user's main public key. The transformation `OwnerID` is a derivative of a user's main public key. The transformation
@ -139,7 +139,7 @@ with/without paddings are accepted.
| value | [bytes](#bytes) | | Identifier of the container owner in a binary format | | value | [bytes](#bytes) | | Identifier of the container owner in a binary format |
<a name="neo.fs.v2.refs.Signature"></a> <a name="frost.fs.refs.Signature"></a>
### Message Signature ### Message Signature
Signature of something in FrostFS. Signature of something in FrostFS.
@ -149,10 +149,10 @@ Signature of something in FrostFS.
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| key | [bytes](#bytes) | | Public key used for signing | | key | [bytes](#bytes) | | Public key used for signing |
| sign | [bytes](#bytes) | | Signature | | sign | [bytes](#bytes) | | Signature |
| scheme | [SignatureScheme](#neo.fs.v2.refs.SignatureScheme) | | Scheme contains digital signature scheme identifier | | scheme | [SignatureScheme](#frost.fs.refs.SignatureScheme) | | Scheme contains digital signature scheme identifier |
<a name="neo.fs.v2.refs.SignatureRFC6979"></a> <a name="frost.fs.refs.SignatureRFC6979"></a>
### Message SignatureRFC6979 ### Message SignatureRFC6979
RFC 6979 signature. RFC 6979 signature.
@ -164,7 +164,7 @@ RFC 6979 signature.
| sign | [bytes](#bytes) | | Deterministic ECDSA with SHA-256 hashing | | sign | [bytes](#bytes) | | Deterministic ECDSA with SHA-256 hashing |
<a name="neo.fs.v2.refs.Version"></a> <a name="frost.fs.refs.Version"></a>
### Message Version ### Message Version
API version used by a node. API version used by a node.
@ -182,7 +182,7 @@ number.
<!-- end messages --> <!-- end messages -->
<a name="neo.fs.v2.refs.ChecksumType"></a> <a name="frost.fs.refs.ChecksumType"></a>
### ChecksumType ### ChecksumType
Checksum algorithm type. Checksum algorithm type.
@ -195,7 +195,7 @@ Checksum algorithm type.
<a name="neo.fs.v2.refs.SignatureScheme"></a> <a name="frost.fs.refs.SignatureScheme"></a>
### SignatureScheme ### SignatureScheme
Signature scheme describes digital signing scheme used for (key, signature) Signature scheme describes digital signing scheme used for (key, signature)

View file

@ -5,29 +5,29 @@
- [session/service.proto](#session/service.proto) - [session/service.proto](#session/service.proto)
- Services - Services
- [SessionService](#neo.fs.v2.session.SessionService) - [SessionService](#frost.fs.session.SessionService)
- Messages - Messages
- [CreateRequest](#neo.fs.v2.session.CreateRequest) - [CreateRequest](#frost.fs.session.CreateRequest)
- [CreateRequest.Body](#neo.fs.v2.session.CreateRequest.Body) - [CreateRequest.Body](#frost.fs.session.CreateRequest.Body)
- [CreateResponse](#neo.fs.v2.session.CreateResponse) - [CreateResponse](#frost.fs.session.CreateResponse)
- [CreateResponse.Body](#neo.fs.v2.session.CreateResponse.Body) - [CreateResponse.Body](#frost.fs.session.CreateResponse.Body)
- [session/types.proto](#session/types.proto) - [session/types.proto](#session/types.proto)
- Messages - Messages
- [ContainerSessionContext](#neo.fs.v2.session.ContainerSessionContext) - [ContainerSessionContext](#frost.fs.session.ContainerSessionContext)
- [ObjectSessionContext](#neo.fs.v2.session.ObjectSessionContext) - [ObjectSessionContext](#frost.fs.session.ObjectSessionContext)
- [ObjectSessionContext.Target](#neo.fs.v2.session.ObjectSessionContext.Target) - [ObjectSessionContext.Target](#frost.fs.session.ObjectSessionContext.Target)
- [RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) - [RequestMetaHeader](#frost.fs.session.RequestMetaHeader)
- [RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) - [RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader)
- [ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) - [ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader)
- [ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) - [ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader)
- [SessionToken](#neo.fs.v2.session.SessionToken) - [SessionToken](#frost.fs.session.SessionToken)
- [SessionToken.Body](#neo.fs.v2.session.SessionToken.Body) - [SessionToken.Body](#frost.fs.session.SessionToken.Body)
- [SessionToken.Body.TokenLifetime](#neo.fs.v2.session.SessionToken.Body.TokenLifetime) - [SessionToken.Body.TokenLifetime](#frost.fs.session.SessionToken.Body.TokenLifetime)
- [XHeader](#neo.fs.v2.session.XHeader) - [XHeader](#frost.fs.session.XHeader)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -42,9 +42,9 @@
<a name="neo.fs.v2.session.SessionService"></a> <a name="frost.fs.session.SessionService"></a>
### Service "neo.fs.v2.session.SessionService" ### Service "frost.fs.session.SessionService"
`SessionService` allows to establish a temporary trust relationship between `SessionService` allows to establish a temporary trust relationship between
two peer nodes and generate a `SessionToken` as the proof of trust to be two peer nodes and generate a `SessionToken` as the proof of trust to be
attached in requests for further verification. Please see corresponding attached in requests for further verification. Please see corresponding
@ -66,11 +66,11 @@ session has been successfully opened;
| Name | Input | Output | | Name | Input | Output |
| ---- | ----- | ------ | | ---- | ----- | ------ |
| Create | [CreateRequest](#neo.fs.v2.session.CreateRequest) | [CreateResponse](#neo.fs.v2.session.CreateResponse) | | Create | [CreateRequest](#frost.fs.session.CreateRequest) | [CreateResponse](#frost.fs.session.CreateResponse) |
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.session.CreateRequest"></a> <a name="frost.fs.session.CreateRequest"></a>
### Message CreateRequest ### Message CreateRequest
Information necessary for opening a session. Information necessary for opening a session.
@ -78,12 +78,12 @@ Information necessary for opening a session.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [CreateRequest.Body](#neo.fs.v2.session.CreateRequest.Body) | | Body of a create session token request message. | | body | [CreateRequest.Body](#frost.fs.session.CreateRequest.Body) | | Body of a create session token request message. |
| meta_header | [RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.session.CreateRequest.Body"></a> <a name="frost.fs.session.CreateRequest.Body"></a>
### Message CreateRequest.Body ### Message CreateRequest.Body
Session creation request body Session creation request body
@ -91,11 +91,11 @@ Session creation request body
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Session initiating user's or node's key derived `OwnerID` | | owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Session initiating user's or node's key derived `OwnerID` |
| expiration | [uint64](#uint64) | | Session expiration `Epoch` | | expiration | [uint64](#uint64) | | Session expiration `Epoch` |
<a name="neo.fs.v2.session.CreateResponse"></a> <a name="frost.fs.session.CreateResponse"></a>
### Message CreateResponse ### Message CreateResponse
Information about the opened session. Information about the opened session.
@ -103,12 +103,12 @@ Information about the opened session.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [CreateResponse.Body](#neo.fs.v2.session.CreateResponse.Body) | | Body of create session token response message. | | body | [CreateResponse.Body](#frost.fs.session.CreateResponse.Body) | | Body of create session token response message. |
| meta_header | [ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | | meta_header | [ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
| verify_header | [ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | | verify_header | [ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
<a name="neo.fs.v2.session.CreateResponse.Body"></a> <a name="frost.fs.session.CreateResponse.Body"></a>
### Message CreateResponse.Body ### Message CreateResponse.Body
Session creation response body Session creation response body
@ -134,7 +134,7 @@ Session creation response body
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.session.ContainerSessionContext"></a> <a name="frost.fs.session.ContainerSessionContext"></a>
### Message ContainerSessionContext ### Message ContainerSessionContext
Context information for Session Tokens related to ContainerService requests. Context information for Session Tokens related to ContainerService requests.
@ -142,12 +142,12 @@ Context information for Session Tokens related to ContainerService requests.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| verb | [ContainerSessionContext.Verb](#neo.fs.v2.session.ContainerSessionContext.Verb) | | Type of request for which the token is issued | | verb | [ContainerSessionContext.Verb](#frost.fs.session.ContainerSessionContext.Verb) | | Type of request for which the token is issued |
| wildcard | [bool](#bool) | | Spreads the action to all owner containers. If set, container_id field is ignored. | | wildcard | [bool](#bool) | | Spreads the action to all owner containers. If set, container_id field is ignored. |
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Particular container to which the action applies. Ignored if wildcard flag is set. | | container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Particular container to which the action applies. Ignored if wildcard flag is set. |
<a name="neo.fs.v2.session.ObjectSessionContext"></a> <a name="frost.fs.session.ObjectSessionContext"></a>
### Message ObjectSessionContext ### Message ObjectSessionContext
Context information for Session Tokens related to ObjectService requests Context information for Session Tokens related to ObjectService requests
@ -155,11 +155,11 @@ Context information for Session Tokens related to ObjectService requests
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| verb | [ObjectSessionContext.Verb](#neo.fs.v2.session.ObjectSessionContext.Verb) | | Type of request for which the token is issued | | verb | [ObjectSessionContext.Verb](#frost.fs.session.ObjectSessionContext.Verb) | | Type of request for which the token is issued |
| target | [ObjectSessionContext.Target](#neo.fs.v2.session.ObjectSessionContext.Target) | | Object session target. MUST be correctly formed and set. If `objects` field is not empty, then the session applies only to these elements, otherwise, to all objects from the specified container. | | target | [ObjectSessionContext.Target](#frost.fs.session.ObjectSessionContext.Target) | | Object session target. MUST be correctly formed and set. If `objects` field is not empty, then the session applies only to these elements, otherwise, to all objects from the specified container. |
<a name="neo.fs.v2.session.ObjectSessionContext.Target"></a> <a name="frost.fs.session.ObjectSessionContext.Target"></a>
### Message ObjectSessionContext.Target ### Message ObjectSessionContext.Target
Carries objects involved in the object session. Carries objects involved in the object session.
@ -167,11 +167,11 @@ Carries objects involved in the object session.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| container | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Indicates which container the session is spread to. Field MUST be set and correct. | | container | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Indicates which container the session is spread to. Field MUST be set and correct. |
| objects | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | Indicates which objects the session is spread to. Objects are expected to be stored in the FrostFS container referenced by `container` field. Each element MUST have correct format. | | objects | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | Indicates which objects the session is spread to. Objects are expected to be stored in the FrostFS container referenced by `container` field. Each element MUST have correct format. |
<a name="neo.fs.v2.session.RequestMetaHeader"></a> <a name="frost.fs.session.RequestMetaHeader"></a>
### Message RequestMetaHeader ### Message RequestMetaHeader
Meta information attached to the request. When forwarded between peers, Meta information attached to the request. When forwarded between peers,
@ -180,17 +180,17 @@ request meta headers are folded in matryoshka style.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Peer's API version used | | version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Peer's API version used |
| epoch | [uint64](#uint64) | | Peer's local epoch number. Set to 0 if unknown. | | epoch | [uint64](#uint64) | | Peer's local epoch number. Set to 0 if unknown. |
| ttl | [uint32](#uint32) | | Maximum number of intermediate nodes in the request route | | ttl | [uint32](#uint32) | | Maximum number of intermediate nodes in the request route |
| x_headers | [XHeader](#neo.fs.v2.session.XHeader) | repeated | Request X-Headers | | x_headers | [XHeader](#frost.fs.session.XHeader) | repeated | Request X-Headers |
| session_token | [SessionToken](#neo.fs.v2.session.SessionToken) | | Session token within which the request is sent | | session_token | [SessionToken](#frost.fs.session.SessionToken) | | Session token within which the request is sent |
| bearer_token | [neo.fs.v2.acl.BearerToken](#neo.fs.v2.acl.BearerToken) | | `BearerToken` with eACL overrides for the request | | bearer_token | [frost.fs.acl.BearerToken](#frost.fs.acl.BearerToken) | | `BearerToken` with eACL overrides for the request |
| origin | [RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | `RequestMetaHeader` of the origin request | | origin | [RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | `RequestMetaHeader` of the origin request |
| magic_number | [uint64](#uint64) | | FrostFS network magic. Must match the value for the network that the server belongs to. | | magic_number | [uint64](#uint64) | | FrostFS network magic. Must match the value for the network that the server belongs to. |
<a name="neo.fs.v2.session.RequestVerificationHeader"></a> <a name="frost.fs.session.RequestVerificationHeader"></a>
### Message RequestVerificationHeader ### Message RequestVerificationHeader
Verification info for the request signed by all intermediate nodes. Verification info for the request signed by all intermediate nodes.
@ -198,13 +198,13 @@ Verification info for the request signed by all intermediate nodes.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Request Body signature. Should be generated once by the request initiator. | | body_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Request Body signature. Should be generated once by the request initiator. |
| meta_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Request Meta signature is added and signed by each intermediate node | | meta_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Request Meta signature is added and signed by each intermediate node |
| origin_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of previous hops | | origin_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of previous hops |
| origin | [RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Chain of previous hops signatures | | origin | [RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Chain of previous hops signatures |
<a name="neo.fs.v2.session.ResponseMetaHeader"></a> <a name="frost.fs.session.ResponseMetaHeader"></a>
### Message ResponseMetaHeader ### Message ResponseMetaHeader
Information about the response Information about the response
@ -212,15 +212,15 @@ Information about the response
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Peer's API version used | | version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Peer's API version used |
| epoch | [uint64](#uint64) | | Peer's local epoch number | | epoch | [uint64](#uint64) | | Peer's local epoch number |
| ttl | [uint32](#uint32) | | Maximum number of intermediate nodes in the request route | | ttl | [uint32](#uint32) | | Maximum number of intermediate nodes in the request route |
| x_headers | [XHeader](#neo.fs.v2.session.XHeader) | repeated | Response X-Headers | | x_headers | [XHeader](#frost.fs.session.XHeader) | repeated | Response X-Headers |
| origin | [ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | `ResponseMetaHeader` of the origin request | | origin | [ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | `ResponseMetaHeader` of the origin request |
| status | [neo.fs.v2.status.Status](#neo.fs.v2.status.Status) | | Status return | | status | [frost.fs.status.Status](#frost.fs.status.Status) | | Status return |
<a name="neo.fs.v2.session.ResponseVerificationHeader"></a> <a name="frost.fs.session.ResponseVerificationHeader"></a>
### Message ResponseVerificationHeader ### Message ResponseVerificationHeader
Verification info for the response signed by all intermediate nodes Verification info for the response signed by all intermediate nodes
@ -228,13 +228,13 @@ Verification info for the response signed by all intermediate nodes
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Response Body signature. Should be generated once by an answering node. | | body_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Response Body signature. Should be generated once by an answering node. |
| meta_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Response Meta signature is added and signed by each intermediate node | | meta_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Response Meta signature is added and signed by each intermediate node |
| origin_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of previous hops | | origin_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of previous hops |
| origin | [ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Chain of previous hops signatures | | origin | [ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Chain of previous hops signatures |
<a name="neo.fs.v2.session.SessionToken"></a> <a name="frost.fs.session.SessionToken"></a>
### Message SessionToken ### Message SessionToken
FrostFS Session Token. FrostFS Session Token.
@ -242,11 +242,11 @@ FrostFS Session Token.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| body | [SessionToken.Body](#neo.fs.v2.session.SessionToken.Body) | | Session Token contains the proof of trust between peers to be attached in requests for further verification. Please see corresponding section of FrostFS Technical Specification for details. | | body | [SessionToken.Body](#frost.fs.session.SessionToken.Body) | | Session Token contains the proof of trust between peers to be attached in requests for further verification. Please see corresponding section of FrostFS Technical Specification for details. |
| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of `SessionToken` information | | signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of `SessionToken` information |
<a name="neo.fs.v2.session.SessionToken.Body"></a> <a name="frost.fs.session.SessionToken.Body"></a>
### Message SessionToken.Body ### Message SessionToken.Body
Session Token body Session Token body
@ -255,14 +255,14 @@ Session Token body
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| id | [bytes](#bytes) | | Token identifier is a valid UUIDv4 in binary form | | id | [bytes](#bytes) | | Token identifier is a valid UUIDv4 in binary form |
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the session initiator | | owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Identifier of the session initiator |
| lifetime | [SessionToken.Body.TokenLifetime](#neo.fs.v2.session.SessionToken.Body.TokenLifetime) | | Lifetime of the session | | lifetime | [SessionToken.Body.TokenLifetime](#frost.fs.session.SessionToken.Body.TokenLifetime) | | Lifetime of the session |
| session_key | [bytes](#bytes) | | Public key used in session | | session_key | [bytes](#bytes) | | Public key used in session |
| object | [ObjectSessionContext](#neo.fs.v2.session.ObjectSessionContext) | | ObjectService session context | | object | [ObjectSessionContext](#frost.fs.session.ObjectSessionContext) | | ObjectService session context |
| container | [ContainerSessionContext](#neo.fs.v2.session.ContainerSessionContext) | | ContainerService session context | | container | [ContainerSessionContext](#frost.fs.session.ContainerSessionContext) | | ContainerService session context |
<a name="neo.fs.v2.session.SessionToken.Body.TokenLifetime"></a> <a name="frost.fs.session.SessionToken.Body.TokenLifetime"></a>
### Message SessionToken.Body.TokenLifetime ### Message SessionToken.Body.TokenLifetime
Lifetime parameters of the token. Field names taken from rfc7519. Lifetime parameters of the token. Field names taken from rfc7519.
@ -275,7 +275,7 @@ Lifetime parameters of the token. Field names taken from rfc7519.
| iat | [uint64](#uint64) | | Issued at Epoch | | iat | [uint64](#uint64) | | Issued at Epoch |
<a name="neo.fs.v2.session.XHeader"></a> <a name="frost.fs.session.XHeader"></a>
### Message XHeader ### Message XHeader
Extended headers for Request/Response. They may contain any user-defined Extended headers for Request/Response. They may contain any user-defined
@ -285,16 +285,14 @@ Key name must be a unique valid UTF-8 string. Value can't be empty. Requests
or Responses with duplicated header names or headers with empty values will or Responses with duplicated header names or headers with empty values will
be considered invalid. be considered invalid.
There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__` There are some "well-known" headers starting with
is deprecated) prefix that affect system behaviour: `__SYSTEM__` prefix that affect system behaviour:
* [ __SYSTEM__NETMAP_EPOCH ] \ * [ __SYSTEM__NETMAP_EPOCH ] \
(`__NEOFS__NETMAP_EPOCH` is deprecated) \
Netmap epoch to use for object placement calculation. The `value` is string Netmap epoch to use for object placement calculation. The `value` is string
encoded `uint64` in decimal presentation. If set to '0' or not set, the encoded `uint64` in decimal presentation. If set to '0' or not set, the
current epoch only will be used. current epoch only will be used.
* [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \ * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
(`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
If object can't be found using current epoch's netmap, this header limits If object can't be found using current epoch's netmap, this header limits
how many past epochs the node can look up through. The `value` is string how many past epochs the node can look up through. The `value` is string
encoded `uint64` in decimal presentation. If set to '0' or not set, only encoded `uint64` in decimal presentation. If set to '0' or not set, only
@ -309,7 +307,7 @@ is deprecated) prefix that affect system behaviour:
<!-- end messages --> <!-- end messages -->
<a name="neo.fs.v2.session.ContainerSessionContext.Verb"></a> <a name="frost.fs.session.ContainerSessionContext.Verb"></a>
### ContainerSessionContext.Verb ### ContainerSessionContext.Verb
Container request verbs Container request verbs
@ -323,7 +321,7 @@ Container request verbs
<a name="neo.fs.v2.session.ObjectSessionContext.Verb"></a> <a name="frost.fs.session.ObjectSessionContext.Verb"></a>
### ObjectSessionContext.Verb ### ObjectSessionContext.Verb
Object request verbs Object request verbs

View file

@ -6,8 +6,8 @@
- [status/types.proto](#status/types.proto) - [status/types.proto](#status/types.proto)
- Messages - Messages
- [Status](#neo.fs.v2.status.Status) - [Status](#frost.fs.status.Status)
- [Status.Detail](#neo.fs.v2.status.Status.Detail) - [Status.Detail](#frost.fs.status.Status.Detail)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -23,7 +23,7 @@
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.status.Status"></a> <a name="frost.fs.status.Status"></a>
### Message Status ### Message Status
Declares the general format of the status returns of the FrostFS RPC Declares the general format of the status returns of the FrostFS RPC
@ -59,10 +59,10 @@ should make the return more detailed.
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| code | [uint32](#uint32) | | The status code | | code | [uint32](#uint32) | | The status code |
| message | [string](#string) | | Developer-facing error message | | message | [string](#string) | | Developer-facing error message |
| details | [Status.Detail](#neo.fs.v2.status.Status.Detail) | repeated | Data detailing the outcome of the operation. Must be unique by ID. | | details | [Status.Detail](#frost.fs.status.Status.Detail) | repeated | Data detailing the outcome of the operation. Must be unique by ID. |
<a name="neo.fs.v2.status.Status.Detail"></a> <a name="frost.fs.status.Status.Detail"></a>
### Message Status.Detail ### Message Status.Detail
Return detail. It contains additional information that can be used to Return detail. It contains additional information that can be used to
@ -79,7 +79,7 @@ covered by the code.
<!-- end messages --> <!-- end messages -->
<a name="neo.fs.v2.status.APEManager"></a> <a name="frost.fs.status.APEManager"></a>
### APEManager ### APEManager
Section of status for APE manager related operations. Section of status for APE manager related operations.
@ -90,7 +90,7 @@ Section of status for APE manager related operations.
<a name="neo.fs.v2.status.CommonFail"></a> <a name="frost.fs.status.CommonFail"></a>
### CommonFail ### CommonFail
Section of failed statuses independent of the operation. Section of failed statuses independent of the operation.
@ -105,7 +105,7 @@ Section of failed statuses independent of the operation.
<a name="neo.fs.v2.status.Container"></a> <a name="frost.fs.status.Container"></a>
### Container ### Container
Section of statuses for container-related operations. Section of statuses for container-related operations.
@ -118,7 +118,7 @@ Section of statuses for container-related operations.
<a name="neo.fs.v2.status.Object"></a> <a name="frost.fs.status.Object"></a>
### Object ### Object
Section of statuses for object-related operations. Section of statuses for object-related operations.
@ -134,7 +134,7 @@ Section of statuses for object-related operations.
<a name="neo.fs.v2.status.Section"></a> <a name="frost.fs.status.Section"></a>
### Section ### Section
Section identifiers. Section identifiers.
@ -150,7 +150,7 @@ Section identifiers.
<a name="neo.fs.v2.status.Session"></a> <a name="frost.fs.status.Session"></a>
### Session ### Session
Section of statuses for session-related operations. Section of statuses for session-related operations.
@ -162,7 +162,7 @@ Section of statuses for session-related operations.
<a name="neo.fs.v2.status.Success"></a> <a name="frost.fs.status.Success"></a>
### Success ### Success
Section of FrostFS successful return codes. Section of FrostFS successful return codes.

View file

@ -6,7 +6,7 @@
- [tombstone/types.proto](#tombstone/types.proto) - [tombstone/types.proto](#tombstone/types.proto)
- Messages - Messages
- [Tombstone](#neo.fs.v2.tombstone.Tombstone) - [Tombstone](#frost.fs.tombstone.Tombstone)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -22,7 +22,7 @@
<!-- end services --> <!-- end services -->
<a name="neo.fs.v2.tombstone.Tombstone"></a> <a name="frost.fs.tombstone.Tombstone"></a>
### Message Tombstone ### Message Tombstone
Tombstone keeps record of deleted objects for a few epochs until they are Tombstone keeps record of deleted objects for a few epochs until they are
@ -31,9 +31,9 @@ purged from the FrostFS network.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| expiration_epoch | [uint64](#uint64) | | Last FrostFS epoch number of the tombstone lifetime. It's set by the tombstone creator depending on the current FrostFS network settings. A tombstone object must have the same expiration epoch value in `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated) attribute. Otherwise, the tombstone will be rejected by a storage node. | | expiration_epoch | [uint64](#uint64) | | Last FrostFS epoch number of the tombstone lifetime. It's set by the tombstone creator depending on the current FrostFS network settings. A tombstone object must have the same expiration epoch value in `__SYSTEM__EXPIRATION_EPOCH` attribute. Otherwise, the tombstone will be rejected by a storage node. |
| split_id | [bytes](#bytes) | | 16 byte UUID used to identify the split object hierarchy parts. Must be unique inside a container. All objects participating in the split must have the same `split_id` value. | | split_id | [bytes](#bytes) | | 16 byte UUID used to identify the split object hierarchy parts. Must be unique inside a container. All objects participating in the split must have the same `split_id` value. |
| members | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of objects to be deleted. | | members | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | List of objects to be deleted. |
<!-- end messages --> <!-- end messages -->

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.refs; package frost.fs.refs;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc;refs";
option csharp_namespace = "Neo.FileStorage.API.Refs";
// Objects in FrostFS are addressed by their ContainerID and ObjectID. // Objects in FrostFS are addressed by their ContainerID and ObjectID.
// //

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.session; package frost.fs.session;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc;session";
option csharp_namespace = "Neo.FileStorage.API.Session";
import "refs/types.proto"; import "refs/types.proto";
import "session/types.proto"; import "session/types.proto";
@ -27,7 +24,7 @@ message CreateRequest {
// Session creation request body // Session creation request body
message Body { message Body {
// Session initiating user's or node's key derived `OwnerID` // Session initiating user's or node's key derived `OwnerID`
neo.fs.v2.refs.OwnerID owner_id = 1; frost.fs.refs.OwnerID owner_id = 1;
// Session expiration `Epoch` // Session expiration `Epoch`
uint64 expiration = 2; uint64 expiration = 2;
} }
@ -36,12 +33,12 @@ message CreateRequest {
// Carries request meta information. Header data is used only to regulate // Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2; frost.fs.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to // Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3; frost.fs.session.RequestVerificationHeader verify_header = 3;
} }
// Information about the opened session. // Information about the opened session.
@ -60,10 +57,10 @@ message CreateResponse {
// Carries response meta information. Header data is used only to regulate // Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution. // message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2; frost.fs.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to // Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of // authenticate the nodes of the message route and check the correctness of
// transmission. // transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; frost.fs.session.ResponseVerificationHeader verify_header = 3;
} }

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.session; package frost.fs.session;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc;session";
option csharp_namespace = "Neo.FileStorage.API.Session";
import "refs/types.proto"; import "refs/types.proto";
import "acl/types.proto"; import "acl/types.proto";
@ -96,7 +93,7 @@ message SessionToken {
bytes id = 1 [ json_name = "id" ]; bytes id = 1 [ json_name = "id" ];
// Identifier of the session initiator // Identifier of the session initiator
neo.fs.v2.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ]; frost.fs.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
// Lifetime parameters of the token. Field names taken from rfc7519. // Lifetime parameters of the token. Field names taken from rfc7519.
message TokenLifetime { message TokenLifetime {
@ -130,7 +127,7 @@ message SessionToken {
Body body = 1 [ json_name = "body" ]; Body body = 1 [ json_name = "body" ];
// Signature of `SessionToken` information // Signature of `SessionToken` information
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ]; frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
} }
// Extended headers for Request/Response. They may contain any user-defined // Extended headers for Request/Response. They may contain any user-defined
@ -140,16 +137,14 @@ message SessionToken {
// or Responses with duplicated header names or headers with empty values will // or Responses with duplicated header names or headers with empty values will
// be considered invalid. // be considered invalid.
// //
// There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__` // There are some "well-known" headers starting with
// is deprecated) prefix that affect system behaviour: // `__SYSTEM__` prefix that affect system behaviour:
// //
// * [ __SYSTEM__NETMAP_EPOCH ] \ // * [ __SYSTEM__NETMAP_EPOCH ] \
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
// Netmap epoch to use for object placement calculation. The `value` is string // Netmap epoch to use for object placement calculation. The `value` is string
// encoded `uint64` in decimal presentation. If set to '0' or not set, the // encoded `uint64` in decimal presentation. If set to '0' or not set, the
// current epoch only will be used. // current epoch only will be used.
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \ // * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
// If object can't be found using current epoch's netmap, this header limits // If object can't be found using current epoch's netmap, this header limits
// how many past epochs the node can look up through. The `value` is string // how many past epochs the node can look up through. The `value` is string
// encoded `uint64` in decimal presentation. If set to '0' or not set, only // encoded `uint64` in decimal presentation. If set to '0' or not set, only
@ -166,7 +161,7 @@ message XHeader {
// request meta headers are folded in matryoshka style. // request meta headers are folded in matryoshka style.
message RequestMetaHeader { message RequestMetaHeader {
// Peer's API version used // Peer's API version used
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ]; frost.fs.refs.Version version = 1 [ json_name = "version" ];
// Peer's local epoch number. Set to 0 if unknown. // Peer's local epoch number. Set to 0 if unknown.
uint64 epoch = 2 [ json_name = "epoch" ]; uint64 epoch = 2 [ json_name = "epoch" ];
@ -181,7 +176,7 @@ message RequestMetaHeader {
SessionToken session_token = 5 [ json_name = "sessionToken" ]; SessionToken session_token = 5 [ json_name = "sessionToken" ];
// `BearerToken` with eACL overrides for the request // `BearerToken` with eACL overrides for the request
neo.fs.v2.acl.BearerToken bearer_token = 6 [ json_name = "bearerToken" ]; frost.fs.acl.BearerToken bearer_token = 6 [ json_name = "bearerToken" ];
// `RequestMetaHeader` of the origin request // `RequestMetaHeader` of the origin request
RequestMetaHeader origin = 7 [ json_name = "origin" ]; RequestMetaHeader origin = 7 [ json_name = "origin" ];
@ -194,7 +189,7 @@ message RequestMetaHeader {
// Information about the response // Information about the response
message ResponseMetaHeader { message ResponseMetaHeader {
// Peer's API version used // Peer's API version used
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ]; frost.fs.refs.Version version = 1 [ json_name = "version" ];
// Peer's local epoch number // Peer's local epoch number
uint64 epoch = 2 [ json_name = "epoch" ]; uint64 epoch = 2 [ json_name = "epoch" ];
@ -209,17 +204,17 @@ message ResponseMetaHeader {
ResponseMetaHeader origin = 5 [ json_name = "origin" ]; ResponseMetaHeader origin = 5 [ json_name = "origin" ];
// Status return // Status return
neo.fs.v2.status.Status status = 6 [ json_name = "status" ]; frost.fs.status.Status status = 6 [ json_name = "status" ];
} }
// Verification info for the request signed by all intermediate nodes. // Verification info for the request signed by all intermediate nodes.
message RequestVerificationHeader { message RequestVerificationHeader {
// Request Body signature. Should be generated once by the request initiator. // Request Body signature. Should be generated once by the request initiator.
neo.fs.v2.refs.Signature body_signature = 1 [ json_name = "bodySignature" ]; frost.fs.refs.Signature body_signature = 1 [ json_name = "bodySignature" ];
// Request Meta signature is added and signed by each intermediate node // Request Meta signature is added and signed by each intermediate node
neo.fs.v2.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ]; frost.fs.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ];
// Signature of previous hops // Signature of previous hops
neo.fs.v2.refs.Signature origin_signature = 3 frost.fs.refs.Signature origin_signature = 3
[ json_name = "originSignature" ]; [ json_name = "originSignature" ];
// Chain of previous hops signatures // Chain of previous hops signatures
@ -229,11 +224,11 @@ message RequestVerificationHeader {
// Verification info for the response signed by all intermediate nodes // Verification info for the response signed by all intermediate nodes
message ResponseVerificationHeader { message ResponseVerificationHeader {
// Response Body signature. Should be generated once by an answering node. // Response Body signature. Should be generated once by an answering node.
neo.fs.v2.refs.Signature body_signature = 1 [ json_name = "bodySignature" ]; frost.fs.refs.Signature body_signature = 1 [ json_name = "bodySignature" ];
// Response Meta signature is added and signed by each intermediate node // Response Meta signature is added and signed by each intermediate node
neo.fs.v2.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ]; frost.fs.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ];
// Signature of previous hops // Signature of previous hops
neo.fs.v2.refs.Signature origin_signature = 3 frost.fs.refs.Signature origin_signature = 3
[ json_name = "originSignature" ]; [ json_name = "originSignature" ];
// Chain of previous hops signatures // Chain of previous hops signatures

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.status; package frost.fs.status;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc;status";
option csharp_namespace = "Neo.FileStorage.API.Status";
// Declares the general format of the status returns of the FrostFS RPC // Declares the general format of the status returns of the FrostFS RPC
// protocol. Status is present in all response messages. Each RPC of FrostFS // protocol. Status is present in all response messages. Each RPC of FrostFS

View file

@ -1,9 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package neo.fs.v2.tombstone; package frost.fs.tombstone;
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/tombstone/grpc;tombstone";
option csharp_namespace = "Neo.FileStorage.API.Tombstone";
import "refs/types.proto"; import "refs/types.proto";
@ -13,7 +10,7 @@ message Tombstone {
// Last FrostFS epoch number of the tombstone lifetime. It's set by the // Last FrostFS epoch number of the tombstone lifetime. It's set by the
// tombstone creator depending on the current FrostFS network settings. A // tombstone creator depending on the current FrostFS network settings. A
// tombstone object must have the same expiration epoch value in // tombstone object must have the same expiration epoch value in
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated) // `__SYSTEM__EXPIRATION_EPOCH`
// attribute. Otherwise, the tombstone will be rejected by a storage node. // attribute. Otherwise, the tombstone will be rejected by a storage node.
uint64 expiration_epoch = 1 [ json_name = "expirationEpoch" ]; uint64 expiration_epoch = 1 [ json_name = "expirationEpoch" ];
@ -23,5 +20,5 @@ message Tombstone {
bytes split_id = 2 [ json_name = "splitID" ]; bytes split_id = 2 [ json_name = "splitID" ];
// List of objects to be deleted. // List of objects to be deleted.
repeated neo.fs.v2.refs.ObjectID members = 3 [ json_name = "members" ]; repeated frost.fs.refs.ObjectID members = 3 [ json_name = "members" ];
} }

5
version.json Normal file
View file

@ -0,0 +1,5 @@
{
"milestone": 3,
"patch": 0,
"date": "2024-10-08"
}