frostfs-api-go/netmap/v2/types.proto
2020-09-18 10:39:50 +03:00

92 lines
No EOL
1.8 KiB
Protocol Buffer

syntax = "proto3";
package netmap.v2;
option go_package = "github.com/nspcc-dev/neofs-api-go/netmap/v2";
option csharp_namespace = "NeoFS.API.Netmap";
message PlacementRule {
uint32 repl_factor = 1;
message SFGroup {
message Filter {
string key = 1;
message SimpleFilters {
repeated SimpleFilter filters = 1;
}
message SimpleFilter {
enum Operation {
NP = 0;
EQ = 1;
NE = 2;
GT = 3;
GE = 4;
LT = 5;
LE = 6;
OR = 7;
AND = 8;
}
Operation op = 1;
oneof args {
string value = 2;
SimpleFilters f_args = 3;
}
}
SimpleFilter f = 2;
}
repeated Filter filters = 1;
message Selector {
uint32 count = 1;
string key = 2;
}
repeated Selector selectors = 2;
repeated uint32 exclude = 3;
}
repeated SFGroup sf_groups = 2;
}
// Groups the information about the NeoFS node.
message NodeInfo {
// Carries network address of the NeoFS node.
string address = 1;
// Carries public key of the NeoFS node in a binary format.
bytes public_key = 2;
// Groups attributes of the NeoFS node.
message Attribute {
// Carries string key to the node attribute.
string key = 1;
// Carries string value of the node attribute.
string value = 2;
}
// Carries list of the NeoFS node attributes in a string key-value format.
repeated Attribute attributes = 3;
// Represents the enumeration of various states of the NeoFS node.
enum State {
// Undefined state.
UNKNOWN = 0;
// Active state in the network.
ONLINE = 1;
// Network unavailable state.
OFFLINE = 2;
}
// Carries state of the NeoFS node.
State state = 4;
}