syntax = "proto3"; package netmap; option go_package = "github.com/nspcc-dev/neofs-api-go/netmap"; 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; }