github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/netmap/grpc/types.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.28.0
     4  // 	protoc        v3.21.9
     5  // source: netmap/grpc/types.proto
     6  
     7  package netmap
     8  
     9  import (
    10  	grpc "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
    11  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    12  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    13  	reflect "reflect"
    14  	sync "sync"
    15  )
    16  
    17  const (
    18  	// Verify that this generated code is sufficiently up-to-date.
    19  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    20  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    21  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    22  )
    23  
    24  // Operations on filters
    25  type Operation int32
    26  
    27  const (
    28  	// No Operation defined
    29  	Operation_OPERATION_UNSPECIFIED Operation = 0
    30  	// Equal
    31  	Operation_EQ Operation = 1
    32  	// Not Equal
    33  	Operation_NE Operation = 2
    34  	// Greater then
    35  	Operation_GT Operation = 3
    36  	// Greater or equal
    37  	Operation_GE Operation = 4
    38  	// Less then
    39  	Operation_LT Operation = 5
    40  	// Less or equal
    41  	Operation_LE Operation = 6
    42  	// Logical OR
    43  	Operation_OR Operation = 7
    44  	// Logical AND
    45  	Operation_AND Operation = 8
    46  )
    47  
    48  // Enum value maps for Operation.
    49  var (
    50  	Operation_name = map[int32]string{
    51  		0: "OPERATION_UNSPECIFIED",
    52  		1: "EQ",
    53  		2: "NE",
    54  		3: "GT",
    55  		4: "GE",
    56  		5: "LT",
    57  		6: "LE",
    58  		7: "OR",
    59  		8: "AND",
    60  	}
    61  	Operation_value = map[string]int32{
    62  		"OPERATION_UNSPECIFIED": 0,
    63  		"EQ":                    1,
    64  		"NE":                    2,
    65  		"GT":                    3,
    66  		"GE":                    4,
    67  		"LT":                    5,
    68  		"LE":                    6,
    69  		"OR":                    7,
    70  		"AND":                   8,
    71  	}
    72  )
    73  
    74  func (x Operation) Enum() *Operation {
    75  	p := new(Operation)
    76  	*p = x
    77  	return p
    78  }
    79  
    80  func (x Operation) String() string {
    81  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    82  }
    83  
    84  func (Operation) Descriptor() protoreflect.EnumDescriptor {
    85  	return file_netmap_grpc_types_proto_enumTypes[0].Descriptor()
    86  }
    87  
    88  func (Operation) Type() protoreflect.EnumType {
    89  	return &file_netmap_grpc_types_proto_enumTypes[0]
    90  }
    91  
    92  func (x Operation) Number() protoreflect.EnumNumber {
    93  	return protoreflect.EnumNumber(x)
    94  }
    95  
    96  // Deprecated: Use Operation.Descriptor instead.
    97  func (Operation) EnumDescriptor() ([]byte, []int) {
    98  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{0}
    99  }
   100  
   101  // Selector modifier shows how the node set will be formed. By default selector
   102  // just groups nodes into a bucket by attribute, selecting nodes only by their
   103  // hash distance.
   104  type Clause int32
   105  
   106  const (
   107  	// No modifier defined. Nodes will be selected from the bucket randomly
   108  	Clause_CLAUSE_UNSPECIFIED Clause = 0
   109  	// SAME will select only nodes having the same value of bucket attribute
   110  	Clause_SAME Clause = 1
   111  	// DISTINCT will select nodes having different values of bucket attribute
   112  	Clause_DISTINCT Clause = 2
   113  )
   114  
   115  // Enum value maps for Clause.
   116  var (
   117  	Clause_name = map[int32]string{
   118  		0: "CLAUSE_UNSPECIFIED",
   119  		1: "SAME",
   120  		2: "DISTINCT",
   121  	}
   122  	Clause_value = map[string]int32{
   123  		"CLAUSE_UNSPECIFIED": 0,
   124  		"SAME":               1,
   125  		"DISTINCT":           2,
   126  	}
   127  )
   128  
   129  func (x Clause) Enum() *Clause {
   130  	p := new(Clause)
   131  	*p = x
   132  	return p
   133  }
   134  
   135  func (x Clause) String() string {
   136  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   137  }
   138  
   139  func (Clause) Descriptor() protoreflect.EnumDescriptor {
   140  	return file_netmap_grpc_types_proto_enumTypes[1].Descriptor()
   141  }
   142  
   143  func (Clause) Type() protoreflect.EnumType {
   144  	return &file_netmap_grpc_types_proto_enumTypes[1]
   145  }
   146  
   147  func (x Clause) Number() protoreflect.EnumNumber {
   148  	return protoreflect.EnumNumber(x)
   149  }
   150  
   151  // Deprecated: Use Clause.Descriptor instead.
   152  func (Clause) EnumDescriptor() ([]byte, []int) {
   153  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{1}
   154  }
   155  
   156  // Represents the enumeration of various states of the NeoFS node.
   157  type NodeInfo_State int32
   158  
   159  const (
   160  	// Unknown state
   161  	NodeInfo_UNSPECIFIED NodeInfo_State = 0
   162  	// Active state in the network
   163  	NodeInfo_ONLINE NodeInfo_State = 1
   164  	// Network unavailable state
   165  	NodeInfo_OFFLINE NodeInfo_State = 2
   166  	// Maintenance state
   167  	NodeInfo_MAINTENANCE NodeInfo_State = 3
   168  )
   169  
   170  // Enum value maps for NodeInfo_State.
   171  var (
   172  	NodeInfo_State_name = map[int32]string{
   173  		0: "UNSPECIFIED",
   174  		1: "ONLINE",
   175  		2: "OFFLINE",
   176  		3: "MAINTENANCE",
   177  	}
   178  	NodeInfo_State_value = map[string]int32{
   179  		"UNSPECIFIED": 0,
   180  		"ONLINE":      1,
   181  		"OFFLINE":     2,
   182  		"MAINTENANCE": 3,
   183  	}
   184  )
   185  
   186  func (x NodeInfo_State) Enum() *NodeInfo_State {
   187  	p := new(NodeInfo_State)
   188  	*p = x
   189  	return p
   190  }
   191  
   192  func (x NodeInfo_State) String() string {
   193  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   194  }
   195  
   196  func (NodeInfo_State) Descriptor() protoreflect.EnumDescriptor {
   197  	return file_netmap_grpc_types_proto_enumTypes[2].Descriptor()
   198  }
   199  
   200  func (NodeInfo_State) Type() protoreflect.EnumType {
   201  	return &file_netmap_grpc_types_proto_enumTypes[2]
   202  }
   203  
   204  func (x NodeInfo_State) Number() protoreflect.EnumNumber {
   205  	return protoreflect.EnumNumber(x)
   206  }
   207  
   208  // Deprecated: Use NodeInfo_State.Descriptor instead.
   209  func (NodeInfo_State) EnumDescriptor() ([]byte, []int) {
   210  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4, 0}
   211  }
   212  
   213  // This filter will return the subset of nodes from `NetworkMap` or another filter's
   214  // results that will satisfy filter's conditions.
   215  type Filter struct {
   216  	state         protoimpl.MessageState
   217  	sizeCache     protoimpl.SizeCache
   218  	unknownFields protoimpl.UnknownFields
   219  
   220  	// Name of the filter or a reference to a named filter. '*' means
   221  	// application to the whole unfiltered NetworkMap. At top level it's used as a
   222  	// filter name. At lower levels it's considered to be a reference to another
   223  	// named filter
   224  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   225  	// Key to filter
   226  	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
   227  	// Filtering operation
   228  	Op Operation `protobuf:"varint,3,opt,name=op,proto3,enum=neo.fs.v2.netmap.Operation" json:"op,omitempty"`
   229  	// Value to match
   230  	Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
   231  	// List of inner filters. Top level operation will be applied to the whole
   232  	// list.
   233  	Filters []*Filter `protobuf:"bytes,5,rep,name=filters,proto3" json:"filters,omitempty"`
   234  }
   235  
   236  func (x *Filter) Reset() {
   237  	*x = Filter{}
   238  	if protoimpl.UnsafeEnabled {
   239  		mi := &file_netmap_grpc_types_proto_msgTypes[0]
   240  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   241  		ms.StoreMessageInfo(mi)
   242  	}
   243  }
   244  
   245  func (x *Filter) String() string {
   246  	return protoimpl.X.MessageStringOf(x)
   247  }
   248  
   249  func (*Filter) ProtoMessage() {}
   250  
   251  func (x *Filter) ProtoReflect() protoreflect.Message {
   252  	mi := &file_netmap_grpc_types_proto_msgTypes[0]
   253  	if protoimpl.UnsafeEnabled && x != nil {
   254  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   255  		if ms.LoadMessageInfo() == nil {
   256  			ms.StoreMessageInfo(mi)
   257  		}
   258  		return ms
   259  	}
   260  	return mi.MessageOf(x)
   261  }
   262  
   263  // Deprecated: Use Filter.ProtoReflect.Descriptor instead.
   264  func (*Filter) Descriptor() ([]byte, []int) {
   265  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{0}
   266  }
   267  
   268  func (x *Filter) GetName() string {
   269  	if x != nil {
   270  		return x.Name
   271  	}
   272  	return ""
   273  }
   274  
   275  func (x *Filter) GetKey() string {
   276  	if x != nil {
   277  		return x.Key
   278  	}
   279  	return ""
   280  }
   281  
   282  func (x *Filter) GetOp() Operation {
   283  	if x != nil {
   284  		return x.Op
   285  	}
   286  	return Operation_OPERATION_UNSPECIFIED
   287  }
   288  
   289  func (x *Filter) GetValue() string {
   290  	if x != nil {
   291  		return x.Value
   292  	}
   293  	return ""
   294  }
   295  
   296  func (x *Filter) GetFilters() []*Filter {
   297  	if x != nil {
   298  		return x.Filters
   299  	}
   300  	return nil
   301  }
   302  
   303  // Selector chooses a number of nodes from the bucket taking the nearest nodes
   304  // to the provided `ContainerID` by hash distance.
   305  type Selector struct {
   306  	state         protoimpl.MessageState
   307  	sizeCache     protoimpl.SizeCache
   308  	unknownFields protoimpl.UnknownFields
   309  
   310  	// Selector name to reference in object placement section
   311  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   312  	// How many nodes to select from the bucket
   313  	Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
   314  	// Selector modifier showing how to form a bucket
   315  	Clause Clause `protobuf:"varint,3,opt,name=clause,proto3,enum=neo.fs.v2.netmap.Clause" json:"clause,omitempty"`
   316  	// Bucket attribute to select from
   317  	Attribute string `protobuf:"bytes,4,opt,name=attribute,proto3" json:"attribute,omitempty"`
   318  	// Filter reference to select from
   319  	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
   320  }
   321  
   322  func (x *Selector) Reset() {
   323  	*x = Selector{}
   324  	if protoimpl.UnsafeEnabled {
   325  		mi := &file_netmap_grpc_types_proto_msgTypes[1]
   326  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   327  		ms.StoreMessageInfo(mi)
   328  	}
   329  }
   330  
   331  func (x *Selector) String() string {
   332  	return protoimpl.X.MessageStringOf(x)
   333  }
   334  
   335  func (*Selector) ProtoMessage() {}
   336  
   337  func (x *Selector) ProtoReflect() protoreflect.Message {
   338  	mi := &file_netmap_grpc_types_proto_msgTypes[1]
   339  	if protoimpl.UnsafeEnabled && x != nil {
   340  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   341  		if ms.LoadMessageInfo() == nil {
   342  			ms.StoreMessageInfo(mi)
   343  		}
   344  		return ms
   345  	}
   346  	return mi.MessageOf(x)
   347  }
   348  
   349  // Deprecated: Use Selector.ProtoReflect.Descriptor instead.
   350  func (*Selector) Descriptor() ([]byte, []int) {
   351  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{1}
   352  }
   353  
   354  func (x *Selector) GetName() string {
   355  	if x != nil {
   356  		return x.Name
   357  	}
   358  	return ""
   359  }
   360  
   361  func (x *Selector) GetCount() uint32 {
   362  	if x != nil {
   363  		return x.Count
   364  	}
   365  	return 0
   366  }
   367  
   368  func (x *Selector) GetClause() Clause {
   369  	if x != nil {
   370  		return x.Clause
   371  	}
   372  	return Clause_CLAUSE_UNSPECIFIED
   373  }
   374  
   375  func (x *Selector) GetAttribute() string {
   376  	if x != nil {
   377  		return x.Attribute
   378  	}
   379  	return ""
   380  }
   381  
   382  func (x *Selector) GetFilter() string {
   383  	if x != nil {
   384  		return x.Filter
   385  	}
   386  	return ""
   387  }
   388  
   389  // Number of object replicas in a set of nodes from the defined selector. If no
   390  // selector set, the root bucket containing all possible nodes will be used by
   391  // default.
   392  type Replica struct {
   393  	state         protoimpl.MessageState
   394  	sizeCache     protoimpl.SizeCache
   395  	unknownFields protoimpl.UnknownFields
   396  
   397  	// How many object replicas to put
   398  	Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
   399  	// Named selector bucket to put replicas
   400  	Selector string `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
   401  }
   402  
   403  func (x *Replica) Reset() {
   404  	*x = Replica{}
   405  	if protoimpl.UnsafeEnabled {
   406  		mi := &file_netmap_grpc_types_proto_msgTypes[2]
   407  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   408  		ms.StoreMessageInfo(mi)
   409  	}
   410  }
   411  
   412  func (x *Replica) String() string {
   413  	return protoimpl.X.MessageStringOf(x)
   414  }
   415  
   416  func (*Replica) ProtoMessage() {}
   417  
   418  func (x *Replica) ProtoReflect() protoreflect.Message {
   419  	mi := &file_netmap_grpc_types_proto_msgTypes[2]
   420  	if protoimpl.UnsafeEnabled && x != nil {
   421  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   422  		if ms.LoadMessageInfo() == nil {
   423  			ms.StoreMessageInfo(mi)
   424  		}
   425  		return ms
   426  	}
   427  	return mi.MessageOf(x)
   428  }
   429  
   430  // Deprecated: Use Replica.ProtoReflect.Descriptor instead.
   431  func (*Replica) Descriptor() ([]byte, []int) {
   432  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{2}
   433  }
   434  
   435  func (x *Replica) GetCount() uint32 {
   436  	if x != nil {
   437  		return x.Count
   438  	}
   439  	return 0
   440  }
   441  
   442  func (x *Replica) GetSelector() string {
   443  	if x != nil {
   444  		return x.Selector
   445  	}
   446  	return ""
   447  }
   448  
   449  // Set of rules to select a subset of nodes from `NetworkMap` able to store
   450  // container's objects. The format is simple enough to transpile from different
   451  // storage policy definition languages.
   452  type PlacementPolicy struct {
   453  	state         protoimpl.MessageState
   454  	sizeCache     protoimpl.SizeCache
   455  	unknownFields protoimpl.UnknownFields
   456  
   457  	// Rules to set number of object replicas and place each one into a named
   458  	// bucket
   459  	Replicas []*Replica `protobuf:"bytes,1,rep,name=replicas,proto3" json:"replicas,omitempty"`
   460  	// Container backup factor controls how deep NeoFS will search for nodes
   461  	// alternatives to include into container's nodes subset
   462  	ContainerBackupFactor uint32 `protobuf:"varint,2,opt,name=container_backup_factor,json=containerBackupFactor,proto3" json:"container_backup_factor,omitempty"`
   463  	// Set of Selectors to form the container's nodes subset
   464  	Selectors []*Selector `protobuf:"bytes,3,rep,name=selectors,proto3" json:"selectors,omitempty"`
   465  	// List of named filters to reference in selectors
   466  	Filters []*Filter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"`
   467  	// Subnetwork ID to select nodes from. Zero subnet (default) represents
   468  	// all of the nodes which didn't explicitly opt out of membership.
   469  	SubnetId *grpc.SubnetID `protobuf:"bytes,5,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
   470  }
   471  
   472  func (x *PlacementPolicy) Reset() {
   473  	*x = PlacementPolicy{}
   474  	if protoimpl.UnsafeEnabled {
   475  		mi := &file_netmap_grpc_types_proto_msgTypes[3]
   476  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   477  		ms.StoreMessageInfo(mi)
   478  	}
   479  }
   480  
   481  func (x *PlacementPolicy) String() string {
   482  	return protoimpl.X.MessageStringOf(x)
   483  }
   484  
   485  func (*PlacementPolicy) ProtoMessage() {}
   486  
   487  func (x *PlacementPolicy) ProtoReflect() protoreflect.Message {
   488  	mi := &file_netmap_grpc_types_proto_msgTypes[3]
   489  	if protoimpl.UnsafeEnabled && x != nil {
   490  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   491  		if ms.LoadMessageInfo() == nil {
   492  			ms.StoreMessageInfo(mi)
   493  		}
   494  		return ms
   495  	}
   496  	return mi.MessageOf(x)
   497  }
   498  
   499  // Deprecated: Use PlacementPolicy.ProtoReflect.Descriptor instead.
   500  func (*PlacementPolicy) Descriptor() ([]byte, []int) {
   501  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{3}
   502  }
   503  
   504  func (x *PlacementPolicy) GetReplicas() []*Replica {
   505  	if x != nil {
   506  		return x.Replicas
   507  	}
   508  	return nil
   509  }
   510  
   511  func (x *PlacementPolicy) GetContainerBackupFactor() uint32 {
   512  	if x != nil {
   513  		return x.ContainerBackupFactor
   514  	}
   515  	return 0
   516  }
   517  
   518  func (x *PlacementPolicy) GetSelectors() []*Selector {
   519  	if x != nil {
   520  		return x.Selectors
   521  	}
   522  	return nil
   523  }
   524  
   525  func (x *PlacementPolicy) GetFilters() []*Filter {
   526  	if x != nil {
   527  		return x.Filters
   528  	}
   529  	return nil
   530  }
   531  
   532  func (x *PlacementPolicy) GetSubnetId() *grpc.SubnetID {
   533  	if x != nil {
   534  		return x.SubnetId
   535  	}
   536  	return nil
   537  }
   538  
   539  // NeoFS node description
   540  type NodeInfo struct {
   541  	state         protoimpl.MessageState
   542  	sizeCache     protoimpl.SizeCache
   543  	unknownFields protoimpl.UnknownFields
   544  
   545  	// Public key of the NeoFS node in a binary format
   546  	PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
   547  	// Ways to connect to a node
   548  	Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"`
   549  	// Carries list of the NeoFS node attributes in a key-value form. Key name
   550  	// must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo
   551  	// structures with duplicated attribute names or attributes with empty values
   552  	// will be considered invalid.
   553  	Attributes []*NodeInfo_Attribute `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty"`
   554  	// Carries state of the NeoFS node
   555  	State NodeInfo_State `protobuf:"varint,4,opt,name=state,proto3,enum=neo.fs.v2.netmap.NodeInfo_State" json:"state,omitempty"`
   556  }
   557  
   558  func (x *NodeInfo) Reset() {
   559  	*x = NodeInfo{}
   560  	if protoimpl.UnsafeEnabled {
   561  		mi := &file_netmap_grpc_types_proto_msgTypes[4]
   562  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   563  		ms.StoreMessageInfo(mi)
   564  	}
   565  }
   566  
   567  func (x *NodeInfo) String() string {
   568  	return protoimpl.X.MessageStringOf(x)
   569  }
   570  
   571  func (*NodeInfo) ProtoMessage() {}
   572  
   573  func (x *NodeInfo) ProtoReflect() protoreflect.Message {
   574  	mi := &file_netmap_grpc_types_proto_msgTypes[4]
   575  	if protoimpl.UnsafeEnabled && x != nil {
   576  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   577  		if ms.LoadMessageInfo() == nil {
   578  			ms.StoreMessageInfo(mi)
   579  		}
   580  		return ms
   581  	}
   582  	return mi.MessageOf(x)
   583  }
   584  
   585  // Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead.
   586  func (*NodeInfo) Descriptor() ([]byte, []int) {
   587  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4}
   588  }
   589  
   590  func (x *NodeInfo) GetPublicKey() []byte {
   591  	if x != nil {
   592  		return x.PublicKey
   593  	}
   594  	return nil
   595  }
   596  
   597  func (x *NodeInfo) GetAddresses() []string {
   598  	if x != nil {
   599  		return x.Addresses
   600  	}
   601  	return nil
   602  }
   603  
   604  func (x *NodeInfo) GetAttributes() []*NodeInfo_Attribute {
   605  	if x != nil {
   606  		return x.Attributes
   607  	}
   608  	return nil
   609  }
   610  
   611  func (x *NodeInfo) GetState() NodeInfo_State {
   612  	if x != nil {
   613  		return x.State
   614  	}
   615  	return NodeInfo_UNSPECIFIED
   616  }
   617  
   618  // Network map structure
   619  type Netmap struct {
   620  	state         protoimpl.MessageState
   621  	sizeCache     protoimpl.SizeCache
   622  	unknownFields protoimpl.UnknownFields
   623  
   624  	// Network map revision number.
   625  	Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
   626  	// Nodes presented in network.
   627  	Nodes []*NodeInfo `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes,omitempty"`
   628  }
   629  
   630  func (x *Netmap) Reset() {
   631  	*x = Netmap{}
   632  	if protoimpl.UnsafeEnabled {
   633  		mi := &file_netmap_grpc_types_proto_msgTypes[5]
   634  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   635  		ms.StoreMessageInfo(mi)
   636  	}
   637  }
   638  
   639  func (x *Netmap) String() string {
   640  	return protoimpl.X.MessageStringOf(x)
   641  }
   642  
   643  func (*Netmap) ProtoMessage() {}
   644  
   645  func (x *Netmap) ProtoReflect() protoreflect.Message {
   646  	mi := &file_netmap_grpc_types_proto_msgTypes[5]
   647  	if protoimpl.UnsafeEnabled && x != nil {
   648  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   649  		if ms.LoadMessageInfo() == nil {
   650  			ms.StoreMessageInfo(mi)
   651  		}
   652  		return ms
   653  	}
   654  	return mi.MessageOf(x)
   655  }
   656  
   657  // Deprecated: Use Netmap.ProtoReflect.Descriptor instead.
   658  func (*Netmap) Descriptor() ([]byte, []int) {
   659  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{5}
   660  }
   661  
   662  func (x *Netmap) GetEpoch() uint64 {
   663  	if x != nil {
   664  		return x.Epoch
   665  	}
   666  	return 0
   667  }
   668  
   669  func (x *Netmap) GetNodes() []*NodeInfo {
   670  	if x != nil {
   671  		return x.Nodes
   672  	}
   673  	return nil
   674  }
   675  
   676  // NeoFS network configuration
   677  type NetworkConfig struct {
   678  	state         protoimpl.MessageState
   679  	sizeCache     protoimpl.SizeCache
   680  	unknownFields protoimpl.UnknownFields
   681  
   682  	// List of parameter values
   683  	Parameters []*NetworkConfig_Parameter `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty"`
   684  }
   685  
   686  func (x *NetworkConfig) Reset() {
   687  	*x = NetworkConfig{}
   688  	if protoimpl.UnsafeEnabled {
   689  		mi := &file_netmap_grpc_types_proto_msgTypes[6]
   690  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   691  		ms.StoreMessageInfo(mi)
   692  	}
   693  }
   694  
   695  func (x *NetworkConfig) String() string {
   696  	return protoimpl.X.MessageStringOf(x)
   697  }
   698  
   699  func (*NetworkConfig) ProtoMessage() {}
   700  
   701  func (x *NetworkConfig) ProtoReflect() protoreflect.Message {
   702  	mi := &file_netmap_grpc_types_proto_msgTypes[6]
   703  	if protoimpl.UnsafeEnabled && x != nil {
   704  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   705  		if ms.LoadMessageInfo() == nil {
   706  			ms.StoreMessageInfo(mi)
   707  		}
   708  		return ms
   709  	}
   710  	return mi.MessageOf(x)
   711  }
   712  
   713  // Deprecated: Use NetworkConfig.ProtoReflect.Descriptor instead.
   714  func (*NetworkConfig) Descriptor() ([]byte, []int) {
   715  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{6}
   716  }
   717  
   718  func (x *NetworkConfig) GetParameters() []*NetworkConfig_Parameter {
   719  	if x != nil {
   720  		return x.Parameters
   721  	}
   722  	return nil
   723  }
   724  
   725  // Information about NeoFS network
   726  type NetworkInfo struct {
   727  	state         protoimpl.MessageState
   728  	sizeCache     protoimpl.SizeCache
   729  	unknownFields protoimpl.UnknownFields
   730  
   731  	// Number of the current epoch in the NeoFS network
   732  	CurrentEpoch uint64 `protobuf:"varint,1,opt,name=current_epoch,json=currentEpoch,proto3" json:"current_epoch,omitempty"`
   733  	// Magic number of the sidechain of the NeoFS network
   734  	MagicNumber uint64 `protobuf:"varint,2,opt,name=magic_number,json=magicNumber,proto3" json:"magic_number,omitempty"`
   735  	// MillisecondsPerBlock network parameter of the sidechain of the NeoFS network
   736  	MsPerBlock int64 `protobuf:"varint,3,opt,name=ms_per_block,json=msPerBlock,proto3" json:"ms_per_block,omitempty"`
   737  	// NeoFS network configuration
   738  	NetworkConfig *NetworkConfig `protobuf:"bytes,4,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"`
   739  }
   740  
   741  func (x *NetworkInfo) Reset() {
   742  	*x = NetworkInfo{}
   743  	if protoimpl.UnsafeEnabled {
   744  		mi := &file_netmap_grpc_types_proto_msgTypes[7]
   745  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   746  		ms.StoreMessageInfo(mi)
   747  	}
   748  }
   749  
   750  func (x *NetworkInfo) String() string {
   751  	return protoimpl.X.MessageStringOf(x)
   752  }
   753  
   754  func (*NetworkInfo) ProtoMessage() {}
   755  
   756  func (x *NetworkInfo) ProtoReflect() protoreflect.Message {
   757  	mi := &file_netmap_grpc_types_proto_msgTypes[7]
   758  	if protoimpl.UnsafeEnabled && x != nil {
   759  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   760  		if ms.LoadMessageInfo() == nil {
   761  			ms.StoreMessageInfo(mi)
   762  		}
   763  		return ms
   764  	}
   765  	return mi.MessageOf(x)
   766  }
   767  
   768  // Deprecated: Use NetworkInfo.ProtoReflect.Descriptor instead.
   769  func (*NetworkInfo) Descriptor() ([]byte, []int) {
   770  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{7}
   771  }
   772  
   773  func (x *NetworkInfo) GetCurrentEpoch() uint64 {
   774  	if x != nil {
   775  		return x.CurrentEpoch
   776  	}
   777  	return 0
   778  }
   779  
   780  func (x *NetworkInfo) GetMagicNumber() uint64 {
   781  	if x != nil {
   782  		return x.MagicNumber
   783  	}
   784  	return 0
   785  }
   786  
   787  func (x *NetworkInfo) GetMsPerBlock() int64 {
   788  	if x != nil {
   789  		return x.MsPerBlock
   790  	}
   791  	return 0
   792  }
   793  
   794  func (x *NetworkInfo) GetNetworkConfig() *NetworkConfig {
   795  	if x != nil {
   796  		return x.NetworkConfig
   797  	}
   798  	return nil
   799  }
   800  
   801  // Administrator-defined Attributes of the NeoFS Storage Node.
   802  //
   803  // `Attribute` is a Key-Value metadata pair. Key name must be a valid UTF-8
   804  // string. Value can't be empty.
   805  //
   806  // Attributes can be constructed into a chain of attributes: any attribute can
   807  // have a parent attribute and a child attribute (except the first and the last
   808  // one). A string representation of the chain of attributes in NeoFS Storage
   809  // Node configuration uses ":" and "/" symbols, e.g.:
   810  //
   811  //	`NEOFS_NODE_ATTRIBUTE_1=key1:val1/key2:val2`
   812  //
   813  // Therefore the string attribute representation in the Node configuration must
   814  // use "\:", "\/" and "\\" escaped symbols if any of them appears in an attribute's
   815  // key or value.
   816  //
   817  // Node's attributes are mostly used during Storage Policy evaluation to
   818  // calculate object's placement and find a set of nodes satisfying policy
   819  // requirements. There are some "well-known" node attributes common to all the
   820  // Storage Nodes in the network and used implicitly with default values if not
   821  // explicitly set:
   822  //
   823  //   - Capacity \
   824  //     Total available disk space in Gigabytes.
   825  //   - Price \
   826  //     Price in GAS tokens for storing one GB of data during one Epoch. In node
   827  //     attributes it's a string presenting floating point number with comma or
   828  //     point delimiter for decimal part. In the Network Map it will be saved as
   829  //     64-bit unsigned integer representing number of minimal token fractions.
   830  //   - __NEOFS__SUBNET_%s \
   831  //     `True` or `False`. Defines if the node is included in the `%s` subnetwork
   832  //     or not. `%s` must be an existing subnetwork's ID (non-negative integer number).
   833  //     A node can be included in more than one subnetwork and, therefore, can contain
   834  //     more than one subnet attribute. A missing attribute is equivalent to the
   835  //     presence of the attribute with `False` value (except default zero subnetwork
   836  //     (with `%s` == 0) for which missing attribute means inclusion in that network).
   837  //   - UN-LOCODE \
   838  //     Node's geographic location in
   839  //     [UN/LOCODE](https://www.unece.org/cefact/codesfortrade/codes_index.html)
   840  //     format approximated to the nearest point defined in the standard.
   841  //   - CountryCode \
   842  //     Country code in
   843  //     [ISO 3166-1_alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
   844  //     format. Calculated automatically from `UN-LOCODE` attribute.
   845  //   - Country \
   846  //     Country short name in English, as defined in
   847  //     [ISO-3166](https://www.iso.org/obp/ui/#search). Calculated automatically
   848  //     from `UN-LOCODE` attribute.
   849  //   - Location \
   850  //     Place names are given, whenever possible, in their national language
   851  //     versions as expressed in the Roman alphabet using the 26 characters of
   852  //     the character set adopted for international trade data interchange,
   853  //     written without diacritics . Calculated automatically from `UN-LOCODE`
   854  //     attribute.
   855  //   - SubDivCode \
   856  //     Country's administrative subdivision where node is located. Calculated
   857  //     automatically from `UN-LOCODE` attribute based on `SubDiv` field.
   858  //     Presented in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)
   859  //     format.
   860  //   - SubDiv \
   861  //     Country's administrative subdivision name, as defined in
   862  //     [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). Calculated
   863  //     automatically from `UN-LOCODE` attribute.
   864  //   - Continent \
   865  //     Node's continent name according to the [Seven-Continent model]
   866  //     (https://en.wikipedia.org/wiki/Continent#Number). Calculated
   867  //     automatically from `UN-LOCODE` attribute.
   868  //   - ExternalAddr
   869  //     Node's preferred way for communications with external clients.
   870  //     Clients SHOULD use these addresses if possible.
   871  //     Must contain a comma-separated list of multi-addresses.
   872  //
   873  // For detailed description of each well-known attribute please see the
   874  // corresponding section in NeoFS Technical Specification.
   875  type NodeInfo_Attribute struct {
   876  	state         protoimpl.MessageState
   877  	sizeCache     protoimpl.SizeCache
   878  	unknownFields protoimpl.UnknownFields
   879  
   880  	// Key of the node attribute
   881  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   882  	// Value of the node attribute
   883  	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   884  	// Parent keys, if any. For example for `City` it could be `Region` and
   885  	// `Country`.
   886  	Parents []string `protobuf:"bytes,3,rep,name=parents,proto3" json:"parents,omitempty"`
   887  }
   888  
   889  func (x *NodeInfo_Attribute) Reset() {
   890  	*x = NodeInfo_Attribute{}
   891  	if protoimpl.UnsafeEnabled {
   892  		mi := &file_netmap_grpc_types_proto_msgTypes[8]
   893  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   894  		ms.StoreMessageInfo(mi)
   895  	}
   896  }
   897  
   898  func (x *NodeInfo_Attribute) String() string {
   899  	return protoimpl.X.MessageStringOf(x)
   900  }
   901  
   902  func (*NodeInfo_Attribute) ProtoMessage() {}
   903  
   904  func (x *NodeInfo_Attribute) ProtoReflect() protoreflect.Message {
   905  	mi := &file_netmap_grpc_types_proto_msgTypes[8]
   906  	if protoimpl.UnsafeEnabled && x != nil {
   907  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   908  		if ms.LoadMessageInfo() == nil {
   909  			ms.StoreMessageInfo(mi)
   910  		}
   911  		return ms
   912  	}
   913  	return mi.MessageOf(x)
   914  }
   915  
   916  // Deprecated: Use NodeInfo_Attribute.ProtoReflect.Descriptor instead.
   917  func (*NodeInfo_Attribute) Descriptor() ([]byte, []int) {
   918  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4, 0}
   919  }
   920  
   921  func (x *NodeInfo_Attribute) GetKey() string {
   922  	if x != nil {
   923  		return x.Key
   924  	}
   925  	return ""
   926  }
   927  
   928  func (x *NodeInfo_Attribute) GetValue() string {
   929  	if x != nil {
   930  		return x.Value
   931  	}
   932  	return ""
   933  }
   934  
   935  func (x *NodeInfo_Attribute) GetParents() []string {
   936  	if x != nil {
   937  		return x.Parents
   938  	}
   939  	return nil
   940  }
   941  
   942  // Single configuration parameter. Key MUST be network-unique.
   943  //
   944  // System parameters:
   945  //   - **AuditFee** \
   946  //     Fee paid by the storage group owner to the Inner Ring member.
   947  //     Value: little-endian integer. Default: 0.
   948  //   - **BasicIncomeRate** \
   949  //     Cost of storing one gigabyte of data for a period of one epoch. Paid by
   950  //     container owner to container nodes.
   951  //     Value: little-endian integer. Default: 0.
   952  //   - **ContainerAliasFee** \
   953  //     Fee paid for named container's creation by the container owner.
   954  //     Value: little-endian integer. Default: 0.
   955  //   - **ContainerFee** \
   956  //     Fee paid for container creation by the container owner.
   957  //     Value: little-endian integer. Default: 0.
   958  //   - **EigenTrustAlpha** \
   959  //     Alpha parameter of EigenTrust algorithm used in the Reputation system.
   960  //     Value: decimal floating-point number in UTF-8 string representation.
   961  //     Default: 0.
   962  //   - **EigenTrustIterations** \
   963  //     Number of EigenTrust algorithm iterations to pass in the Reputation system.
   964  //     Value: little-endian integer. Default: 0.
   965  //   - **EpochDuration** \
   966  //     NeoFS epoch duration measured in Sidechain blocks.
   967  //     Value: little-endian integer. Default: 0.
   968  //   - **HomomorphicHashingDisabled** \
   969  //     Flag of disabling the homomorphic hashing of objects' payload.
   970  //     Value: true if any byte != 0. Default: false.
   971  //   - **InnerRingCandidateFee** \
   972  //     Fee for entrance to the Inner Ring paid by the candidate.
   973  //     Value: little-endian integer. Default: 0.
   974  //   - **MaintenanceModeAllowed** \
   975  //     Flag allowing setting the MAINTENANCE state to storage nodes.
   976  //     Value: true if any byte != 0. Default: false.
   977  //   - **MaxObjectSize** \
   978  //     Maximum size of physically stored NeoFS object measured in bytes.
   979  //     Value: little-endian integer. Default: 0.
   980  //   - **WithdrawFee** \
   981  //     Fee paid for withdrawal of funds paid by the account owner.
   982  //     Value: little-endian integer. Default: 0.
   983  type NetworkConfig_Parameter struct {
   984  	state         protoimpl.MessageState
   985  	sizeCache     protoimpl.SizeCache
   986  	unknownFields protoimpl.UnknownFields
   987  
   988  	// Parameter key. UTF-8 encoded string
   989  	Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   990  	// Parameter value
   991  	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   992  }
   993  
   994  func (x *NetworkConfig_Parameter) Reset() {
   995  	*x = NetworkConfig_Parameter{}
   996  	if protoimpl.UnsafeEnabled {
   997  		mi := &file_netmap_grpc_types_proto_msgTypes[9]
   998  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   999  		ms.StoreMessageInfo(mi)
  1000  	}
  1001  }
  1002  
  1003  func (x *NetworkConfig_Parameter) String() string {
  1004  	return protoimpl.X.MessageStringOf(x)
  1005  }
  1006  
  1007  func (*NetworkConfig_Parameter) ProtoMessage() {}
  1008  
  1009  func (x *NetworkConfig_Parameter) ProtoReflect() protoreflect.Message {
  1010  	mi := &file_netmap_grpc_types_proto_msgTypes[9]
  1011  	if protoimpl.UnsafeEnabled && x != nil {
  1012  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1013  		if ms.LoadMessageInfo() == nil {
  1014  			ms.StoreMessageInfo(mi)
  1015  		}
  1016  		return ms
  1017  	}
  1018  	return mi.MessageOf(x)
  1019  }
  1020  
  1021  // Deprecated: Use NetworkConfig_Parameter.ProtoReflect.Descriptor instead.
  1022  func (*NetworkConfig_Parameter) Descriptor() ([]byte, []int) {
  1023  	return file_netmap_grpc_types_proto_rawDescGZIP(), []int{6, 0}
  1024  }
  1025  
  1026  func (x *NetworkConfig_Parameter) GetKey() []byte {
  1027  	if x != nil {
  1028  		return x.Key
  1029  	}
  1030  	return nil
  1031  }
  1032  
  1033  func (x *NetworkConfig_Parameter) GetValue() []byte {
  1034  	if x != nil {
  1035  		return x.Value
  1036  	}
  1037  	return nil
  1038  }
  1039  
  1040  var File_netmap_grpc_types_proto protoreflect.FileDescriptor
  1041  
  1042  var file_netmap_grpc_types_proto_rawDesc = []byte{
  1043  	0x0a, 0x17, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79,
  1044  	0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
  1045  	0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x1a, 0x15, 0x72, 0x65, 0x66,
  1046  	0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
  1047  	0x74, 0x6f, 0x22, 0xa5, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a,
  1048  	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
  1049  	0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
  1050  	0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
  1051  	0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d,
  1052  	0x61, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70,
  1053  	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
  1054  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
  1055  	0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
  1056  	0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65,
  1057  	0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x53,
  1058  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  1059  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63,
  1060  	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
  1061  	0x74, 0x12, 0x30, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
  1062  	0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65,
  1063  	0x74, 0x6d, 0x61, 0x70, 0x2e, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x52, 0x06, 0x63, 0x6c, 0x61,
  1064  	0x75, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
  1065  	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
  1066  	0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
  1067  	0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x3b, 0x0a, 0x07, 0x52, 0x65, 0x70,
  1068  	0x6c, 0x69, 0x63, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
  1069  	0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65,
  1070  	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65,
  1071  	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xa5, 0x02, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x63, 0x65,
  1072  	0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65,
  1073  	0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e,
  1074  	0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e,
  1075  	0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
  1076  	0x73, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x62,
  1077  	0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
  1078  	0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x61, 0x63,
  1079  	0x6b, 0x75, 0x70, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x65, 0x6c,
  1080  	0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e,
  1081  	0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e,
  1082  	0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
  1083  	0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04,
  1084  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
  1085  	0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07,
  1086  	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6e, 0x65,
  1087  	0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
  1088  	0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x6e,
  1089  	0x65, 0x74, 0x49, 0x44, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x22, 0xd8,
  1090  	0x02, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
  1091  	0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
  1092  	0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64,
  1093  	0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61,
  1094  	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72,
  1095  	0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e,
  1096  	0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e,
  1097  	0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
  1098  	0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x36,
  1099  	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e,
  1100  	0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70,
  1101  	0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
  1102  	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4d, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
  1103  	0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1104  	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
  1105  	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70,
  1106  	0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61,
  1107  	0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f,
  1108  	0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
  1109  	0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f,
  1110  	0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x49, 0x4e,
  1111  	0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x22, 0x50, 0x0a, 0x06, 0x4e, 0x65, 0x74,
  1112  	0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01,
  1113  	0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x05, 0x6e, 0x6f, 0x64,
  1114  	0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
  1115  	0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
  1116  	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x0d,
  1117  	0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a,
  1118  	0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
  1119  	0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65,
  1120  	0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66,
  1121  	0x69, 0x67, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61,
  1122  	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x33, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61,
  1123  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
  1124  	0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  1125  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbf, 0x01,
  1126  	0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a,
  1127  	0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01,
  1128  	0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f,
  1129  	0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62,
  1130  	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e,
  1131  	0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f,
  1132  	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x73, 0x50,
  1133  	0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x46, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f,
  1134  	0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1135  	0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d,
  1136  	0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1137  	0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2a,
  1138  	0x67, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15,
  1139  	0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  1140  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x01, 0x12,
  1141  	0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x54, 0x10, 0x03, 0x12,
  1142  	0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x54, 0x10, 0x05, 0x12,
  1143  	0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x07, 0x12,
  1144  	0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x08, 0x2a, 0x38, 0x0a, 0x06, 0x43, 0x6c, 0x61, 0x75,
  1145  	0x73, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4c, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53,
  1146  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x41,
  1147  	0x4d, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54,
  1148  	0x10, 0x02, 0x42, 0x5b, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
  1149  	0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72,
  1150  	0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f,
  1151  	0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6e, 0x65, 0x74, 0x6d,
  1152  	0x61, 0x70, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f,
  1153  	0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x62,
  1154  	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1155  }
  1156  
  1157  var (
  1158  	file_netmap_grpc_types_proto_rawDescOnce sync.Once
  1159  	file_netmap_grpc_types_proto_rawDescData = file_netmap_grpc_types_proto_rawDesc
  1160  )
  1161  
  1162  func file_netmap_grpc_types_proto_rawDescGZIP() []byte {
  1163  	file_netmap_grpc_types_proto_rawDescOnce.Do(func() {
  1164  		file_netmap_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_netmap_grpc_types_proto_rawDescData)
  1165  	})
  1166  	return file_netmap_grpc_types_proto_rawDescData
  1167  }
  1168  
  1169  var file_netmap_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
  1170  var file_netmap_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
  1171  var file_netmap_grpc_types_proto_goTypes = []interface{}{
  1172  	(Operation)(0),                  // 0: neo.fs.v2.netmap.Operation
  1173  	(Clause)(0),                     // 1: neo.fs.v2.netmap.Clause
  1174  	(NodeInfo_State)(0),             // 2: neo.fs.v2.netmap.NodeInfo.State
  1175  	(*Filter)(nil),                  // 3: neo.fs.v2.netmap.Filter
  1176  	(*Selector)(nil),                // 4: neo.fs.v2.netmap.Selector
  1177  	(*Replica)(nil),                 // 5: neo.fs.v2.netmap.Replica
  1178  	(*PlacementPolicy)(nil),         // 6: neo.fs.v2.netmap.PlacementPolicy
  1179  	(*NodeInfo)(nil),                // 7: neo.fs.v2.netmap.NodeInfo
  1180  	(*Netmap)(nil),                  // 8: neo.fs.v2.netmap.Netmap
  1181  	(*NetworkConfig)(nil),           // 9: neo.fs.v2.netmap.NetworkConfig
  1182  	(*NetworkInfo)(nil),             // 10: neo.fs.v2.netmap.NetworkInfo
  1183  	(*NodeInfo_Attribute)(nil),      // 11: neo.fs.v2.netmap.NodeInfo.Attribute
  1184  	(*NetworkConfig_Parameter)(nil), // 12: neo.fs.v2.netmap.NetworkConfig.Parameter
  1185  	(*grpc.SubnetID)(nil),           // 13: neo.fs.v2.refs.SubnetID
  1186  }
  1187  var file_netmap_grpc_types_proto_depIdxs = []int32{
  1188  	0,  // 0: neo.fs.v2.netmap.Filter.op:type_name -> neo.fs.v2.netmap.Operation
  1189  	3,  // 1: neo.fs.v2.netmap.Filter.filters:type_name -> neo.fs.v2.netmap.Filter
  1190  	1,  // 2: neo.fs.v2.netmap.Selector.clause:type_name -> neo.fs.v2.netmap.Clause
  1191  	5,  // 3: neo.fs.v2.netmap.PlacementPolicy.replicas:type_name -> neo.fs.v2.netmap.Replica
  1192  	4,  // 4: neo.fs.v2.netmap.PlacementPolicy.selectors:type_name -> neo.fs.v2.netmap.Selector
  1193  	3,  // 5: neo.fs.v2.netmap.PlacementPolicy.filters:type_name -> neo.fs.v2.netmap.Filter
  1194  	13, // 6: neo.fs.v2.netmap.PlacementPolicy.subnet_id:type_name -> neo.fs.v2.refs.SubnetID
  1195  	11, // 7: neo.fs.v2.netmap.NodeInfo.attributes:type_name -> neo.fs.v2.netmap.NodeInfo.Attribute
  1196  	2,  // 8: neo.fs.v2.netmap.NodeInfo.state:type_name -> neo.fs.v2.netmap.NodeInfo.State
  1197  	7,  // 9: neo.fs.v2.netmap.Netmap.nodes:type_name -> neo.fs.v2.netmap.NodeInfo
  1198  	12, // 10: neo.fs.v2.netmap.NetworkConfig.parameters:type_name -> neo.fs.v2.netmap.NetworkConfig.Parameter
  1199  	9,  // 11: neo.fs.v2.netmap.NetworkInfo.network_config:type_name -> neo.fs.v2.netmap.NetworkConfig
  1200  	12, // [12:12] is the sub-list for method output_type
  1201  	12, // [12:12] is the sub-list for method input_type
  1202  	12, // [12:12] is the sub-list for extension type_name
  1203  	12, // [12:12] is the sub-list for extension extendee
  1204  	0,  // [0:12] is the sub-list for field type_name
  1205  }
  1206  
  1207  func init() { file_netmap_grpc_types_proto_init() }
  1208  func file_netmap_grpc_types_proto_init() {
  1209  	if File_netmap_grpc_types_proto != nil {
  1210  		return
  1211  	}
  1212  	if !protoimpl.UnsafeEnabled {
  1213  		file_netmap_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1214  			switch v := v.(*Filter); i {
  1215  			case 0:
  1216  				return &v.state
  1217  			case 1:
  1218  				return &v.sizeCache
  1219  			case 2:
  1220  				return &v.unknownFields
  1221  			default:
  1222  				return nil
  1223  			}
  1224  		}
  1225  		file_netmap_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1226  			switch v := v.(*Selector); i {
  1227  			case 0:
  1228  				return &v.state
  1229  			case 1:
  1230  				return &v.sizeCache
  1231  			case 2:
  1232  				return &v.unknownFields
  1233  			default:
  1234  				return nil
  1235  			}
  1236  		}
  1237  		file_netmap_grpc_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1238  			switch v := v.(*Replica); i {
  1239  			case 0:
  1240  				return &v.state
  1241  			case 1:
  1242  				return &v.sizeCache
  1243  			case 2:
  1244  				return &v.unknownFields
  1245  			default:
  1246  				return nil
  1247  			}
  1248  		}
  1249  		file_netmap_grpc_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1250  			switch v := v.(*PlacementPolicy); i {
  1251  			case 0:
  1252  				return &v.state
  1253  			case 1:
  1254  				return &v.sizeCache
  1255  			case 2:
  1256  				return &v.unknownFields
  1257  			default:
  1258  				return nil
  1259  			}
  1260  		}
  1261  		file_netmap_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1262  			switch v := v.(*NodeInfo); i {
  1263  			case 0:
  1264  				return &v.state
  1265  			case 1:
  1266  				return &v.sizeCache
  1267  			case 2:
  1268  				return &v.unknownFields
  1269  			default:
  1270  				return nil
  1271  			}
  1272  		}
  1273  		file_netmap_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1274  			switch v := v.(*Netmap); i {
  1275  			case 0:
  1276  				return &v.state
  1277  			case 1:
  1278  				return &v.sizeCache
  1279  			case 2:
  1280  				return &v.unknownFields
  1281  			default:
  1282  				return nil
  1283  			}
  1284  		}
  1285  		file_netmap_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1286  			switch v := v.(*NetworkConfig); i {
  1287  			case 0:
  1288  				return &v.state
  1289  			case 1:
  1290  				return &v.sizeCache
  1291  			case 2:
  1292  				return &v.unknownFields
  1293  			default:
  1294  				return nil
  1295  			}
  1296  		}
  1297  		file_netmap_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1298  			switch v := v.(*NetworkInfo); i {
  1299  			case 0:
  1300  				return &v.state
  1301  			case 1:
  1302  				return &v.sizeCache
  1303  			case 2:
  1304  				return &v.unknownFields
  1305  			default:
  1306  				return nil
  1307  			}
  1308  		}
  1309  		file_netmap_grpc_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1310  			switch v := v.(*NodeInfo_Attribute); i {
  1311  			case 0:
  1312  				return &v.state
  1313  			case 1:
  1314  				return &v.sizeCache
  1315  			case 2:
  1316  				return &v.unknownFields
  1317  			default:
  1318  				return nil
  1319  			}
  1320  		}
  1321  		file_netmap_grpc_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1322  			switch v := v.(*NetworkConfig_Parameter); i {
  1323  			case 0:
  1324  				return &v.state
  1325  			case 1:
  1326  				return &v.sizeCache
  1327  			case 2:
  1328  				return &v.unknownFields
  1329  			default:
  1330  				return nil
  1331  			}
  1332  		}
  1333  	}
  1334  	type x struct{}
  1335  	out := protoimpl.TypeBuilder{
  1336  		File: protoimpl.DescBuilder{
  1337  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1338  			RawDescriptor: file_netmap_grpc_types_proto_rawDesc,
  1339  			NumEnums:      3,
  1340  			NumMessages:   10,
  1341  			NumExtensions: 0,
  1342  			NumServices:   0,
  1343  		},
  1344  		GoTypes:           file_netmap_grpc_types_proto_goTypes,
  1345  		DependencyIndexes: file_netmap_grpc_types_proto_depIdxs,
  1346  		EnumInfos:         file_netmap_grpc_types_proto_enumTypes,
  1347  		MessageInfos:      file_netmap_grpc_types_proto_msgTypes,
  1348  	}.Build()
  1349  	File_netmap_grpc_types_proto = out.File
  1350  	file_netmap_grpc_types_proto_rawDesc = nil
  1351  	file_netmap_grpc_types_proto_goTypes = nil
  1352  	file_netmap_grpc_types_proto_depIdxs = nil
  1353  }