vitess.io/vitess@v0.16.2/go/vt/proto/topodata/topodata.pb.go (about) 1 // 2 //Copyright 2019 The Vitess Authors. 3 // 4 //Licensed under the Apache License, Version 2.0 (the "License"); 5 //you may not use this file except in compliance with the License. 6 //You may obtain a copy of the License at 7 // 8 //http://www.apache.org/licenses/LICENSE-2.0 9 // 10 //Unless required by applicable law or agreed to in writing, software 11 //distributed under the License is distributed on an "AS IS" BASIS, 12 //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 //See the License for the specific language governing permissions and 14 //limitations under the License. 15 16 // This file contains the Vitess topology related data structures. 17 // Very few of these structures are exchanged over the wire (only 18 // TabletType and KeyRange), but they are all used by the topology 19 // service. 20 21 // Code generated by protoc-gen-go. DO NOT EDIT. 22 // versions: 23 // protoc-gen-go v1.28.1 24 // protoc v3.21.3 25 // source: topodata.proto 26 27 package topodata 28 29 import ( 30 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 31 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 32 reflect "reflect" 33 sync "sync" 34 vttime "vitess.io/vitess/go/vt/proto/vttime" 35 ) 36 37 const ( 38 // Verify that this generated code is sufficiently up-to-date. 39 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 40 // Verify that runtime/protoimpl is sufficiently up-to-date. 41 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 42 ) 43 44 // KeyspaceType describes the type of the keyspace 45 type KeyspaceType int32 46 47 const ( 48 // NORMAL is the default value 49 KeyspaceType_NORMAL KeyspaceType = 0 50 // SNAPSHOT is when we are creating a snapshot keyspace 51 KeyspaceType_SNAPSHOT KeyspaceType = 1 52 ) 53 54 // Enum value maps for KeyspaceType. 55 var ( 56 KeyspaceType_name = map[int32]string{ 57 0: "NORMAL", 58 1: "SNAPSHOT", 59 } 60 KeyspaceType_value = map[string]int32{ 61 "NORMAL": 0, 62 "SNAPSHOT": 1, 63 } 64 ) 65 66 func (x KeyspaceType) Enum() *KeyspaceType { 67 p := new(KeyspaceType) 68 *p = x 69 return p 70 } 71 72 func (x KeyspaceType) String() string { 73 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 74 } 75 76 func (KeyspaceType) Descriptor() protoreflect.EnumDescriptor { 77 return file_topodata_proto_enumTypes[0].Descriptor() 78 } 79 80 func (KeyspaceType) Type() protoreflect.EnumType { 81 return &file_topodata_proto_enumTypes[0] 82 } 83 84 func (x KeyspaceType) Number() protoreflect.EnumNumber { 85 return protoreflect.EnumNumber(x) 86 } 87 88 // Deprecated: Use KeyspaceType.Descriptor instead. 89 func (KeyspaceType) EnumDescriptor() ([]byte, []int) { 90 return file_topodata_proto_rawDescGZIP(), []int{0} 91 } 92 93 // TabletType represents the type of a given tablet. 94 type TabletType int32 95 96 const ( 97 // UNKNOWN is not a valid value. 98 TabletType_UNKNOWN TabletType = 0 99 // PRIMARY is the primary server for the shard. Only PRIMARY allows DMLs. 100 TabletType_PRIMARY TabletType = 1 101 // DEPRECATED 102 TabletType_MASTER TabletType = 1 103 // REPLICA replicates from primary. It is used to serve live traffic. 104 // A REPLICA can be promoted to PRIMARY. A demoted PRIMARY will go to REPLICA. 105 TabletType_REPLICA TabletType = 2 106 // RDONLY (old name) / BATCH (new name) is used to serve traffic for 107 // long-running jobs. It is a separate type from REPLICA so 108 // long-running queries don't affect web-like traffic. 109 TabletType_RDONLY TabletType = 3 110 TabletType_BATCH TabletType = 3 111 // SPARE is a type of servers that cannot serve queries, but is available 112 // in case an extra server is needed. 113 TabletType_SPARE TabletType = 4 114 // EXPERIMENTAL is like SPARE, except it can serve queries. This 115 // type can be used for usages not planned by Vitess, like online 116 // export to another storage engine. 117 TabletType_EXPERIMENTAL TabletType = 5 118 // BACKUP is the type a server goes to when taking a backup. No queries 119 // can be served in BACKUP mode. 120 TabletType_BACKUP TabletType = 6 121 // RESTORE is the type a server uses when restoring a backup, at 122 // startup time. No queries can be served in RESTORE mode. 123 TabletType_RESTORE TabletType = 7 124 // DRAINED is the type a server goes into when used by Vitess tools 125 // to perform an offline action. It is a serving type (as 126 // the tools processes may need to run queries), but it's not used 127 // to route queries from Vitess users. In this state, 128 // this tablet is dedicated to the process that uses it. 129 TabletType_DRAINED TabletType = 8 130 ) 131 132 // Enum value maps for TabletType. 133 var ( 134 TabletType_name = map[int32]string{ 135 0: "UNKNOWN", 136 1: "PRIMARY", 137 // Duplicate value: 1: "MASTER", 138 2: "REPLICA", 139 3: "RDONLY", 140 // Duplicate value: 3: "BATCH", 141 4: "SPARE", 142 5: "EXPERIMENTAL", 143 6: "BACKUP", 144 7: "RESTORE", 145 8: "DRAINED", 146 } 147 TabletType_value = map[string]int32{ 148 "UNKNOWN": 0, 149 "PRIMARY": 1, 150 "MASTER": 1, 151 "REPLICA": 2, 152 "RDONLY": 3, 153 "BATCH": 3, 154 "SPARE": 4, 155 "EXPERIMENTAL": 5, 156 "BACKUP": 6, 157 "RESTORE": 7, 158 "DRAINED": 8, 159 } 160 ) 161 162 func (x TabletType) Enum() *TabletType { 163 p := new(TabletType) 164 *p = x 165 return p 166 } 167 168 func (x TabletType) String() string { 169 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 170 } 171 172 func (TabletType) Descriptor() protoreflect.EnumDescriptor { 173 return file_topodata_proto_enumTypes[1].Descriptor() 174 } 175 176 func (TabletType) Type() protoreflect.EnumType { 177 return &file_topodata_proto_enumTypes[1] 178 } 179 180 func (x TabletType) Number() protoreflect.EnumNumber { 181 return protoreflect.EnumNumber(x) 182 } 183 184 // Deprecated: Use TabletType.Descriptor instead. 185 func (TabletType) EnumDescriptor() ([]byte, []int) { 186 return file_topodata_proto_rawDescGZIP(), []int{1} 187 } 188 189 type ShardReplicationError_Type int32 190 191 const ( 192 // UNKNOWN is not a valid value. 193 ShardReplicationError_UNKNOWN ShardReplicationError_Type = 0 194 // NOT_FOUND occurs when a tablet is in the ShardReplication record 195 // but does not exist in the topology. 196 ShardReplicationError_NOT_FOUND ShardReplicationError_Type = 1 197 // TOPOLOGY_MISMATCH occurs when a tablet is in the replication graph and 198 // exists in the topology, but at least one of the Keyspace, Shard, or Cell 199 // fields for that tablet does not match the ShardReplication record. 200 ShardReplicationError_TOPOLOGY_MISMATCH ShardReplicationError_Type = 2 201 ) 202 203 // Enum value maps for ShardReplicationError_Type. 204 var ( 205 ShardReplicationError_Type_name = map[int32]string{ 206 0: "UNKNOWN", 207 1: "NOT_FOUND", 208 2: "TOPOLOGY_MISMATCH", 209 } 210 ShardReplicationError_Type_value = map[string]int32{ 211 "UNKNOWN": 0, 212 "NOT_FOUND": 1, 213 "TOPOLOGY_MISMATCH": 2, 214 } 215 ) 216 217 func (x ShardReplicationError_Type) Enum() *ShardReplicationError_Type { 218 p := new(ShardReplicationError_Type) 219 *p = x 220 return p 221 } 222 223 func (x ShardReplicationError_Type) String() string { 224 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 225 } 226 227 func (ShardReplicationError_Type) Descriptor() protoreflect.EnumDescriptor { 228 return file_topodata_proto_enumTypes[2].Descriptor() 229 } 230 231 func (ShardReplicationError_Type) Type() protoreflect.EnumType { 232 return &file_topodata_proto_enumTypes[2] 233 } 234 235 func (x ShardReplicationError_Type) Number() protoreflect.EnumNumber { 236 return protoreflect.EnumNumber(x) 237 } 238 239 // Deprecated: Use ShardReplicationError_Type.Descriptor instead. 240 func (ShardReplicationError_Type) EnumDescriptor() ([]byte, []int) { 241 return file_topodata_proto_rawDescGZIP(), []int{6, 0} 242 } 243 244 // KeyRange describes a range of sharding keys, when range-based 245 // sharding is used. 246 type KeyRange struct { 247 state protoimpl.MessageState 248 sizeCache protoimpl.SizeCache 249 unknownFields protoimpl.UnknownFields 250 251 Start []byte `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` 252 End []byte `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` 253 } 254 255 func (x *KeyRange) Reset() { 256 *x = KeyRange{} 257 if protoimpl.UnsafeEnabled { 258 mi := &file_topodata_proto_msgTypes[0] 259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 260 ms.StoreMessageInfo(mi) 261 } 262 } 263 264 func (x *KeyRange) String() string { 265 return protoimpl.X.MessageStringOf(x) 266 } 267 268 func (*KeyRange) ProtoMessage() {} 269 270 func (x *KeyRange) ProtoReflect() protoreflect.Message { 271 mi := &file_topodata_proto_msgTypes[0] 272 if protoimpl.UnsafeEnabled && x != nil { 273 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 274 if ms.LoadMessageInfo() == nil { 275 ms.StoreMessageInfo(mi) 276 } 277 return ms 278 } 279 return mi.MessageOf(x) 280 } 281 282 // Deprecated: Use KeyRange.ProtoReflect.Descriptor instead. 283 func (*KeyRange) Descriptor() ([]byte, []int) { 284 return file_topodata_proto_rawDescGZIP(), []int{0} 285 } 286 287 func (x *KeyRange) GetStart() []byte { 288 if x != nil { 289 return x.Start 290 } 291 return nil 292 } 293 294 func (x *KeyRange) GetEnd() []byte { 295 if x != nil { 296 return x.End 297 } 298 return nil 299 } 300 301 // TabletAlias is a globally unique tablet identifier. 302 type TabletAlias struct { 303 state protoimpl.MessageState 304 sizeCache protoimpl.SizeCache 305 unknownFields protoimpl.UnknownFields 306 307 // cell is the cell (or datacenter) the tablet is in 308 Cell string `protobuf:"bytes,1,opt,name=cell,proto3" json:"cell,omitempty"` 309 // uid is a unique id for this tablet within the shard 310 // (this is the MySQL server id as well). 311 Uid uint32 `protobuf:"varint,2,opt,name=uid,proto3" json:"uid,omitempty"` 312 } 313 314 func (x *TabletAlias) Reset() { 315 *x = TabletAlias{} 316 if protoimpl.UnsafeEnabled { 317 mi := &file_topodata_proto_msgTypes[1] 318 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 319 ms.StoreMessageInfo(mi) 320 } 321 } 322 323 func (x *TabletAlias) String() string { 324 return protoimpl.X.MessageStringOf(x) 325 } 326 327 func (*TabletAlias) ProtoMessage() {} 328 329 func (x *TabletAlias) ProtoReflect() protoreflect.Message { 330 mi := &file_topodata_proto_msgTypes[1] 331 if protoimpl.UnsafeEnabled && x != nil { 332 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 333 if ms.LoadMessageInfo() == nil { 334 ms.StoreMessageInfo(mi) 335 } 336 return ms 337 } 338 return mi.MessageOf(x) 339 } 340 341 // Deprecated: Use TabletAlias.ProtoReflect.Descriptor instead. 342 func (*TabletAlias) Descriptor() ([]byte, []int) { 343 return file_topodata_proto_rawDescGZIP(), []int{1} 344 } 345 346 func (x *TabletAlias) GetCell() string { 347 if x != nil { 348 return x.Cell 349 } 350 return "" 351 } 352 353 func (x *TabletAlias) GetUid() uint32 { 354 if x != nil { 355 return x.Uid 356 } 357 return 0 358 } 359 360 // Tablet represents information about a running instance of vttablet. 361 type Tablet struct { 362 state protoimpl.MessageState 363 sizeCache protoimpl.SizeCache 364 unknownFields protoimpl.UnknownFields 365 366 // alias is the unique name of the tablet. 367 Alias *TabletAlias `protobuf:"bytes,1,opt,name=alias,proto3" json:"alias,omitempty"` 368 // Fully qualified domain name of the host. 369 Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` 370 // Map of named ports. Normally this should include vt and grpc. 371 // Going forward, the mysql port will be stored in mysql_port 372 // instead of here. 373 // For accessing mysql port, use topoproto.MysqlPort to fetch, and 374 // topoproto.SetMysqlPort to set. These wrappers will ensure 375 // legacy behavior is supported. 376 PortMap map[string]int32 `protobuf:"bytes,4,rep,name=port_map,json=portMap,proto3" json:"port_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 377 // Keyspace name. 378 Keyspace string `protobuf:"bytes,5,opt,name=keyspace,proto3" json:"keyspace,omitempty"` 379 // Shard name. If range based sharding is used, it should match 380 // key_range. 381 Shard string `protobuf:"bytes,6,opt,name=shard,proto3" json:"shard,omitempty"` 382 // If range based sharding is used, range for the tablet's shard. 383 KeyRange *KeyRange `protobuf:"bytes,7,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` 384 // type is the current type of the tablet. 385 Type TabletType `protobuf:"varint,8,opt,name=type,proto3,enum=topodata.TabletType" json:"type,omitempty"` 386 // It this is set, it is used as the database name instead of the 387 // normal "vt_" + keyspace. 388 DbNameOverride string `protobuf:"bytes,9,opt,name=db_name_override,json=dbNameOverride,proto3" json:"db_name_override,omitempty"` 389 // tablet tags 390 Tags map[string]string `protobuf:"bytes,10,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 391 // MySQL hostname. 392 MysqlHostname string `protobuf:"bytes,12,opt,name=mysql_hostname,json=mysqlHostname,proto3" json:"mysql_hostname,omitempty"` 393 // MySQL port. Use topoproto.MysqlPort and topoproto.SetMysqlPort 394 // to access this variable. The functions provide support 395 // for legacy behavior. 396 MysqlPort int32 `protobuf:"varint,13,opt,name=mysql_port,json=mysqlPort,proto3" json:"mysql_port,omitempty"` 397 // primary_term_start_time is the time (in UTC) at which the current term of 398 // the current tablet began as primary. If this tablet is not currently the 399 // primary, this value is ignored. 400 // 401 // A new primary term begins any time an authoritative decision is communicated 402 // about which tablet should be the primary, such as via Vitess 403 // replication-management commands like PlannedReparentShard, 404 // EmergencyReparentShard, and TabletExternallyReparented. 405 PrimaryTermStartTime *vttime.Time `protobuf:"bytes,14,opt,name=primary_term_start_time,json=primaryTermStartTime,proto3" json:"primary_term_start_time,omitempty"` 406 // db_server_version represents the database version used by the tablet. 407 DbServerVersion string `protobuf:"bytes,15,opt,name=db_server_version,json=dbServerVersion,proto3" json:"db_server_version,omitempty"` 408 // default_conn_collation is the default connection collation used by this tablet. 409 DefaultConnCollation uint32 `protobuf:"varint,16,opt,name=default_conn_collation,json=defaultConnCollation,proto3" json:"default_conn_collation,omitempty"` 410 } 411 412 func (x *Tablet) Reset() { 413 *x = Tablet{} 414 if protoimpl.UnsafeEnabled { 415 mi := &file_topodata_proto_msgTypes[2] 416 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 417 ms.StoreMessageInfo(mi) 418 } 419 } 420 421 func (x *Tablet) String() string { 422 return protoimpl.X.MessageStringOf(x) 423 } 424 425 func (*Tablet) ProtoMessage() {} 426 427 func (x *Tablet) ProtoReflect() protoreflect.Message { 428 mi := &file_topodata_proto_msgTypes[2] 429 if protoimpl.UnsafeEnabled && x != nil { 430 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 431 if ms.LoadMessageInfo() == nil { 432 ms.StoreMessageInfo(mi) 433 } 434 return ms 435 } 436 return mi.MessageOf(x) 437 } 438 439 // Deprecated: Use Tablet.ProtoReflect.Descriptor instead. 440 func (*Tablet) Descriptor() ([]byte, []int) { 441 return file_topodata_proto_rawDescGZIP(), []int{2} 442 } 443 444 func (x *Tablet) GetAlias() *TabletAlias { 445 if x != nil { 446 return x.Alias 447 } 448 return nil 449 } 450 451 func (x *Tablet) GetHostname() string { 452 if x != nil { 453 return x.Hostname 454 } 455 return "" 456 } 457 458 func (x *Tablet) GetPortMap() map[string]int32 { 459 if x != nil { 460 return x.PortMap 461 } 462 return nil 463 } 464 465 func (x *Tablet) GetKeyspace() string { 466 if x != nil { 467 return x.Keyspace 468 } 469 return "" 470 } 471 472 func (x *Tablet) GetShard() string { 473 if x != nil { 474 return x.Shard 475 } 476 return "" 477 } 478 479 func (x *Tablet) GetKeyRange() *KeyRange { 480 if x != nil { 481 return x.KeyRange 482 } 483 return nil 484 } 485 486 func (x *Tablet) GetType() TabletType { 487 if x != nil { 488 return x.Type 489 } 490 return TabletType_UNKNOWN 491 } 492 493 func (x *Tablet) GetDbNameOverride() string { 494 if x != nil { 495 return x.DbNameOverride 496 } 497 return "" 498 } 499 500 func (x *Tablet) GetTags() map[string]string { 501 if x != nil { 502 return x.Tags 503 } 504 return nil 505 } 506 507 func (x *Tablet) GetMysqlHostname() string { 508 if x != nil { 509 return x.MysqlHostname 510 } 511 return "" 512 } 513 514 func (x *Tablet) GetMysqlPort() int32 { 515 if x != nil { 516 return x.MysqlPort 517 } 518 return 0 519 } 520 521 func (x *Tablet) GetPrimaryTermStartTime() *vttime.Time { 522 if x != nil { 523 return x.PrimaryTermStartTime 524 } 525 return nil 526 } 527 528 func (x *Tablet) GetDbServerVersion() string { 529 if x != nil { 530 return x.DbServerVersion 531 } 532 return "" 533 } 534 535 func (x *Tablet) GetDefaultConnCollation() uint32 { 536 if x != nil { 537 return x.DefaultConnCollation 538 } 539 return 0 540 } 541 542 // A Shard contains data about a subset of the data whithin a keyspace. 543 type Shard struct { 544 state protoimpl.MessageState 545 sizeCache protoimpl.SizeCache 546 unknownFields protoimpl.UnknownFields 547 548 // primary_alias is the tablet alias of the primary for the shard. 549 // If it is unset, then there is no primary in this shard yet. 550 // No lock is necessary to update this field, when for instance 551 // TabletExternallyReparented updates this. However, we lock the 552 // shard for reparenting operations (InitShardPrimary, 553 // PlannedReparentShard,EmergencyReparentShard), to guarantee 554 // exclusive operation. 555 PrimaryAlias *TabletAlias `protobuf:"bytes,1,opt,name=primary_alias,json=primaryAlias,proto3" json:"primary_alias,omitempty"` 556 // primary_term_start_time is the time (in UTC) at which the current term of 557 // the primary specified in primary_alias began. 558 // 559 // A new primary term begins any time an authoritative decision is communicated 560 // about which tablet should be the primary, such as via Vitess 561 // replication-management commands like PlannedReparentShard, 562 // EmergencyReparentShard, and TabletExternallyReparented. 563 // 564 // The primary_alias should only ever be changed if the new primary's term began 565 // at a later time than this. Note that a new term can start for the tablet 566 // that is already the primary. In that case, the primary_term_start_time would 567 // be increased without changing the primary_alias. 568 PrimaryTermStartTime *vttime.Time `protobuf:"bytes,8,opt,name=primary_term_start_time,json=primaryTermStartTime,proto3" json:"primary_term_start_time,omitempty"` 569 // key_range is the KeyRange for this shard. It can be unset if: 570 // - we are not using range-based sharding in this shard. 571 // - the shard covers the entire keyrange. 572 // This must match the shard name based on our other conventions, but 573 // helpful to have it decomposed here. 574 // Once set at creation time, it is never changed. 575 KeyRange *KeyRange `protobuf:"bytes,2,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` 576 // SourceShards is the list of shards we're replicating from, 577 // using filtered replication. 578 // The keyspace lock is always taken when changing this. 579 SourceShards []*Shard_SourceShard `protobuf:"bytes,4,rep,name=source_shards,json=sourceShards,proto3" json:"source_shards,omitempty"` 580 // tablet_controls has at most one entry per TabletType. 581 // The keyspace lock is always taken when changing this. 582 TabletControls []*Shard_TabletControl `protobuf:"bytes,6,rep,name=tablet_controls,json=tabletControls,proto3" json:"tablet_controls,omitempty"` 583 // is_primary_serving sets whether this shard primary is serving traffic or not. 584 // The keyspace lock is always taken when changing this. 585 IsPrimaryServing bool `protobuf:"varint,7,opt,name=is_primary_serving,json=isPrimaryServing,proto3" json:"is_primary_serving,omitempty"` 586 } 587 588 func (x *Shard) Reset() { 589 *x = Shard{} 590 if protoimpl.UnsafeEnabled { 591 mi := &file_topodata_proto_msgTypes[3] 592 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 593 ms.StoreMessageInfo(mi) 594 } 595 } 596 597 func (x *Shard) String() string { 598 return protoimpl.X.MessageStringOf(x) 599 } 600 601 func (*Shard) ProtoMessage() {} 602 603 func (x *Shard) ProtoReflect() protoreflect.Message { 604 mi := &file_topodata_proto_msgTypes[3] 605 if protoimpl.UnsafeEnabled && x != nil { 606 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 607 if ms.LoadMessageInfo() == nil { 608 ms.StoreMessageInfo(mi) 609 } 610 return ms 611 } 612 return mi.MessageOf(x) 613 } 614 615 // Deprecated: Use Shard.ProtoReflect.Descriptor instead. 616 func (*Shard) Descriptor() ([]byte, []int) { 617 return file_topodata_proto_rawDescGZIP(), []int{3} 618 } 619 620 func (x *Shard) GetPrimaryAlias() *TabletAlias { 621 if x != nil { 622 return x.PrimaryAlias 623 } 624 return nil 625 } 626 627 func (x *Shard) GetPrimaryTermStartTime() *vttime.Time { 628 if x != nil { 629 return x.PrimaryTermStartTime 630 } 631 return nil 632 } 633 634 func (x *Shard) GetKeyRange() *KeyRange { 635 if x != nil { 636 return x.KeyRange 637 } 638 return nil 639 } 640 641 func (x *Shard) GetSourceShards() []*Shard_SourceShard { 642 if x != nil { 643 return x.SourceShards 644 } 645 return nil 646 } 647 648 func (x *Shard) GetTabletControls() []*Shard_TabletControl { 649 if x != nil { 650 return x.TabletControls 651 } 652 return nil 653 } 654 655 func (x *Shard) GetIsPrimaryServing() bool { 656 if x != nil { 657 return x.IsPrimaryServing 658 } 659 return false 660 } 661 662 // A Keyspace contains data about a keyspace. 663 type Keyspace struct { 664 state protoimpl.MessageState 665 sizeCache protoimpl.SizeCache 666 unknownFields protoimpl.UnknownFields 667 668 // ServedFrom will redirect the appropriate traffic to 669 // another keyspace. 670 ServedFroms []*Keyspace_ServedFrom `protobuf:"bytes,4,rep,name=served_froms,json=servedFroms,proto3" json:"served_froms,omitempty"` 671 // keyspace_type will determine how this keyspace is treated by 672 // vtgate / vschema. Normal keyspaces are routable by 673 // any query. Snapshot keyspaces are only accessible 674 // by explicit addresssing or by calling "use keyspace" first 675 KeyspaceType KeyspaceType `protobuf:"varint,5,opt,name=keyspace_type,json=keyspaceType,proto3,enum=topodata.KeyspaceType" json:"keyspace_type,omitempty"` 676 // base_keyspace is the base keyspace from which a snapshot 677 // keyspace is created. empty for normal keyspaces 678 BaseKeyspace string `protobuf:"bytes,6,opt,name=base_keyspace,json=baseKeyspace,proto3" json:"base_keyspace,omitempty"` 679 // snapshot_time (in UTC) is a property of snapshot 680 // keyspaces which tells us what point in time 681 // the snapshot is of 682 SnapshotTime *vttime.Time `protobuf:"bytes,7,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` 683 // DurabilityPolicy is the durability policy to be 684 // used for the keyspace. 685 DurabilityPolicy string `protobuf:"bytes,8,opt,name=durability_policy,json=durabilityPolicy,proto3" json:"durability_policy,omitempty"` 686 // ThrottlerConfig has the configuration for the tablet 687 // server's lag throttler, and applies to the entire 688 // keyspace, across all shards and tablets. 689 ThrottlerConfig *ThrottlerConfig `protobuf:"bytes,9,opt,name=throttler_config,json=throttlerConfig,proto3" json:"throttler_config,omitempty"` 690 } 691 692 func (x *Keyspace) Reset() { 693 *x = Keyspace{} 694 if protoimpl.UnsafeEnabled { 695 mi := &file_topodata_proto_msgTypes[4] 696 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 697 ms.StoreMessageInfo(mi) 698 } 699 } 700 701 func (x *Keyspace) String() string { 702 return protoimpl.X.MessageStringOf(x) 703 } 704 705 func (*Keyspace) ProtoMessage() {} 706 707 func (x *Keyspace) ProtoReflect() protoreflect.Message { 708 mi := &file_topodata_proto_msgTypes[4] 709 if protoimpl.UnsafeEnabled && x != nil { 710 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 711 if ms.LoadMessageInfo() == nil { 712 ms.StoreMessageInfo(mi) 713 } 714 return ms 715 } 716 return mi.MessageOf(x) 717 } 718 719 // Deprecated: Use Keyspace.ProtoReflect.Descriptor instead. 720 func (*Keyspace) Descriptor() ([]byte, []int) { 721 return file_topodata_proto_rawDescGZIP(), []int{4} 722 } 723 724 func (x *Keyspace) GetServedFroms() []*Keyspace_ServedFrom { 725 if x != nil { 726 return x.ServedFroms 727 } 728 return nil 729 } 730 731 func (x *Keyspace) GetKeyspaceType() KeyspaceType { 732 if x != nil { 733 return x.KeyspaceType 734 } 735 return KeyspaceType_NORMAL 736 } 737 738 func (x *Keyspace) GetBaseKeyspace() string { 739 if x != nil { 740 return x.BaseKeyspace 741 } 742 return "" 743 } 744 745 func (x *Keyspace) GetSnapshotTime() *vttime.Time { 746 if x != nil { 747 return x.SnapshotTime 748 } 749 return nil 750 } 751 752 func (x *Keyspace) GetDurabilityPolicy() string { 753 if x != nil { 754 return x.DurabilityPolicy 755 } 756 return "" 757 } 758 759 func (x *Keyspace) GetThrottlerConfig() *ThrottlerConfig { 760 if x != nil { 761 return x.ThrottlerConfig 762 } 763 return nil 764 } 765 766 // ShardReplication describes the MySQL replication relationships 767 // whithin a cell. 768 type ShardReplication struct { 769 state protoimpl.MessageState 770 sizeCache protoimpl.SizeCache 771 unknownFields protoimpl.UnknownFields 772 773 // Note there can be only one Node in this array 774 // for a given tablet. 775 Nodes []*ShardReplication_Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` 776 } 777 778 func (x *ShardReplication) Reset() { 779 *x = ShardReplication{} 780 if protoimpl.UnsafeEnabled { 781 mi := &file_topodata_proto_msgTypes[5] 782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 783 ms.StoreMessageInfo(mi) 784 } 785 } 786 787 func (x *ShardReplication) String() string { 788 return protoimpl.X.MessageStringOf(x) 789 } 790 791 func (*ShardReplication) ProtoMessage() {} 792 793 func (x *ShardReplication) ProtoReflect() protoreflect.Message { 794 mi := &file_topodata_proto_msgTypes[5] 795 if protoimpl.UnsafeEnabled && x != nil { 796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 797 if ms.LoadMessageInfo() == nil { 798 ms.StoreMessageInfo(mi) 799 } 800 return ms 801 } 802 return mi.MessageOf(x) 803 } 804 805 // Deprecated: Use ShardReplication.ProtoReflect.Descriptor instead. 806 func (*ShardReplication) Descriptor() ([]byte, []int) { 807 return file_topodata_proto_rawDescGZIP(), []int{5} 808 } 809 810 func (x *ShardReplication) GetNodes() []*ShardReplication_Node { 811 if x != nil { 812 return x.Nodes 813 } 814 return nil 815 } 816 817 // ShardReplicationError describes the error being fixed by 818 // ShardReplicationFix. 819 type ShardReplicationError struct { 820 state protoimpl.MessageState 821 sizeCache protoimpl.SizeCache 822 unknownFields protoimpl.UnknownFields 823 824 // Type is the category of problem being fixed. 825 Type ShardReplicationError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=topodata.ShardReplicationError_Type" json:"type,omitempty"` 826 // TabletAlias is the tablet record that has the problem. 827 TabletAlias *TabletAlias `protobuf:"bytes,2,opt,name=tablet_alias,json=tabletAlias,proto3" json:"tablet_alias,omitempty"` 828 } 829 830 func (x *ShardReplicationError) Reset() { 831 *x = ShardReplicationError{} 832 if protoimpl.UnsafeEnabled { 833 mi := &file_topodata_proto_msgTypes[6] 834 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 835 ms.StoreMessageInfo(mi) 836 } 837 } 838 839 func (x *ShardReplicationError) String() string { 840 return protoimpl.X.MessageStringOf(x) 841 } 842 843 func (*ShardReplicationError) ProtoMessage() {} 844 845 func (x *ShardReplicationError) ProtoReflect() protoreflect.Message { 846 mi := &file_topodata_proto_msgTypes[6] 847 if protoimpl.UnsafeEnabled && x != nil { 848 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 849 if ms.LoadMessageInfo() == nil { 850 ms.StoreMessageInfo(mi) 851 } 852 return ms 853 } 854 return mi.MessageOf(x) 855 } 856 857 // Deprecated: Use ShardReplicationError.ProtoReflect.Descriptor instead. 858 func (*ShardReplicationError) Descriptor() ([]byte, []int) { 859 return file_topodata_proto_rawDescGZIP(), []int{6} 860 } 861 862 func (x *ShardReplicationError) GetType() ShardReplicationError_Type { 863 if x != nil { 864 return x.Type 865 } 866 return ShardReplicationError_UNKNOWN 867 } 868 869 func (x *ShardReplicationError) GetTabletAlias() *TabletAlias { 870 if x != nil { 871 return x.TabletAlias 872 } 873 return nil 874 } 875 876 // ShardReference is used as a pointer from a SrvKeyspace to a Shard 877 type ShardReference struct { 878 state protoimpl.MessageState 879 sizeCache protoimpl.SizeCache 880 unknownFields protoimpl.UnknownFields 881 882 // Copied from Shard. 883 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 884 KeyRange *KeyRange `protobuf:"bytes,2,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` // Disable query serving in this shard 885 } 886 887 func (x *ShardReference) Reset() { 888 *x = ShardReference{} 889 if protoimpl.UnsafeEnabled { 890 mi := &file_topodata_proto_msgTypes[7] 891 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 892 ms.StoreMessageInfo(mi) 893 } 894 } 895 896 func (x *ShardReference) String() string { 897 return protoimpl.X.MessageStringOf(x) 898 } 899 900 func (*ShardReference) ProtoMessage() {} 901 902 func (x *ShardReference) ProtoReflect() protoreflect.Message { 903 mi := &file_topodata_proto_msgTypes[7] 904 if protoimpl.UnsafeEnabled && x != nil { 905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 906 if ms.LoadMessageInfo() == nil { 907 ms.StoreMessageInfo(mi) 908 } 909 return ms 910 } 911 return mi.MessageOf(x) 912 } 913 914 // Deprecated: Use ShardReference.ProtoReflect.Descriptor instead. 915 func (*ShardReference) Descriptor() ([]byte, []int) { 916 return file_topodata_proto_rawDescGZIP(), []int{7} 917 } 918 919 func (x *ShardReference) GetName() string { 920 if x != nil { 921 return x.Name 922 } 923 return "" 924 } 925 926 func (x *ShardReference) GetKeyRange() *KeyRange { 927 if x != nil { 928 return x.KeyRange 929 } 930 return nil 931 } 932 933 // ShardTabletControl is used as a pointer from a SrvKeyspace to a Shard 934 type ShardTabletControl struct { 935 state protoimpl.MessageState 936 sizeCache protoimpl.SizeCache 937 unknownFields protoimpl.UnknownFields 938 939 // Copied from Shard. 940 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 941 KeyRange *KeyRange `protobuf:"bytes,2,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` 942 // Disable query serving in this shard 943 QueryServiceDisabled bool `protobuf:"varint,3,opt,name=query_service_disabled,json=queryServiceDisabled,proto3" json:"query_service_disabled,omitempty"` 944 } 945 946 func (x *ShardTabletControl) Reset() { 947 *x = ShardTabletControl{} 948 if protoimpl.UnsafeEnabled { 949 mi := &file_topodata_proto_msgTypes[8] 950 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 951 ms.StoreMessageInfo(mi) 952 } 953 } 954 955 func (x *ShardTabletControl) String() string { 956 return protoimpl.X.MessageStringOf(x) 957 } 958 959 func (*ShardTabletControl) ProtoMessage() {} 960 961 func (x *ShardTabletControl) ProtoReflect() protoreflect.Message { 962 mi := &file_topodata_proto_msgTypes[8] 963 if protoimpl.UnsafeEnabled && x != nil { 964 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 965 if ms.LoadMessageInfo() == nil { 966 ms.StoreMessageInfo(mi) 967 } 968 return ms 969 } 970 return mi.MessageOf(x) 971 } 972 973 // Deprecated: Use ShardTabletControl.ProtoReflect.Descriptor instead. 974 func (*ShardTabletControl) Descriptor() ([]byte, []int) { 975 return file_topodata_proto_rawDescGZIP(), []int{8} 976 } 977 978 func (x *ShardTabletControl) GetName() string { 979 if x != nil { 980 return x.Name 981 } 982 return "" 983 } 984 985 func (x *ShardTabletControl) GetKeyRange() *KeyRange { 986 if x != nil { 987 return x.KeyRange 988 } 989 return nil 990 } 991 992 func (x *ShardTabletControl) GetQueryServiceDisabled() bool { 993 if x != nil { 994 return x.QueryServiceDisabled 995 } 996 return false 997 } 998 999 type ThrottlerConfig struct { 1000 state protoimpl.MessageState 1001 sizeCache protoimpl.SizeCache 1002 unknownFields protoimpl.UnknownFields 1003 1004 // Enabled indicates that the throttler is actually checking state for 1005 // requests. When disabled, it automatically returns 200 OK for all 1006 // checks. 1007 Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` 1008 // Threshold is the threshold for either the default check (heartbeat 1009 // lag) or custom check. 1010 Threshold float64 `protobuf:"fixed64,2,opt,name=threshold,proto3" json:"threshold,omitempty"` 1011 // CustomQuery is an optional query that overrides the default check 1012 // query. 1013 CustomQuery string `protobuf:"bytes,3,opt,name=custom_query,json=customQuery,proto3" json:"custom_query,omitempty"` 1014 // CheckAsCheckSelf indicates whether a throttler /check request 1015 // should behave like a /check-self. 1016 CheckAsCheckSelf bool `protobuf:"varint,4,opt,name=check_as_check_self,json=checkAsCheckSelf,proto3" json:"check_as_check_self,omitempty"` 1017 } 1018 1019 func (x *ThrottlerConfig) Reset() { 1020 *x = ThrottlerConfig{} 1021 if protoimpl.UnsafeEnabled { 1022 mi := &file_topodata_proto_msgTypes[9] 1023 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1024 ms.StoreMessageInfo(mi) 1025 } 1026 } 1027 1028 func (x *ThrottlerConfig) String() string { 1029 return protoimpl.X.MessageStringOf(x) 1030 } 1031 1032 func (*ThrottlerConfig) ProtoMessage() {} 1033 1034 func (x *ThrottlerConfig) ProtoReflect() protoreflect.Message { 1035 mi := &file_topodata_proto_msgTypes[9] 1036 if protoimpl.UnsafeEnabled && x != nil { 1037 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1038 if ms.LoadMessageInfo() == nil { 1039 ms.StoreMessageInfo(mi) 1040 } 1041 return ms 1042 } 1043 return mi.MessageOf(x) 1044 } 1045 1046 // Deprecated: Use ThrottlerConfig.ProtoReflect.Descriptor instead. 1047 func (*ThrottlerConfig) Descriptor() ([]byte, []int) { 1048 return file_topodata_proto_rawDescGZIP(), []int{9} 1049 } 1050 1051 func (x *ThrottlerConfig) GetEnabled() bool { 1052 if x != nil { 1053 return x.Enabled 1054 } 1055 return false 1056 } 1057 1058 func (x *ThrottlerConfig) GetThreshold() float64 { 1059 if x != nil { 1060 return x.Threshold 1061 } 1062 return 0 1063 } 1064 1065 func (x *ThrottlerConfig) GetCustomQuery() string { 1066 if x != nil { 1067 return x.CustomQuery 1068 } 1069 return "" 1070 } 1071 1072 func (x *ThrottlerConfig) GetCheckAsCheckSelf() bool { 1073 if x != nil { 1074 return x.CheckAsCheckSelf 1075 } 1076 return false 1077 } 1078 1079 // SrvKeyspace is a rollup node for the keyspace itself. 1080 type SrvKeyspace struct { 1081 state protoimpl.MessageState 1082 sizeCache protoimpl.SizeCache 1083 unknownFields protoimpl.UnknownFields 1084 1085 // The partitions this keyspace is serving, per tablet type. 1086 Partitions []*SrvKeyspace_KeyspacePartition `protobuf:"bytes,1,rep,name=partitions,proto3" json:"partitions,omitempty"` 1087 ServedFrom []*SrvKeyspace_ServedFrom `protobuf:"bytes,4,rep,name=served_from,json=servedFrom,proto3" json:"served_from,omitempty"` 1088 // ThrottlerConfig has the configuration for the tablet server's 1089 // lag throttler, and applies to the entire keyspace, across all 1090 // shards and tablets. This is copied from the global keyspace 1091 // object. 1092 ThrottlerConfig *ThrottlerConfig `protobuf:"bytes,6,opt,name=throttler_config,json=throttlerConfig,proto3" json:"throttler_config,omitempty"` 1093 } 1094 1095 func (x *SrvKeyspace) Reset() { 1096 *x = SrvKeyspace{} 1097 if protoimpl.UnsafeEnabled { 1098 mi := &file_topodata_proto_msgTypes[10] 1099 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1100 ms.StoreMessageInfo(mi) 1101 } 1102 } 1103 1104 func (x *SrvKeyspace) String() string { 1105 return protoimpl.X.MessageStringOf(x) 1106 } 1107 1108 func (*SrvKeyspace) ProtoMessage() {} 1109 1110 func (x *SrvKeyspace) ProtoReflect() protoreflect.Message { 1111 mi := &file_topodata_proto_msgTypes[10] 1112 if protoimpl.UnsafeEnabled && x != nil { 1113 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1114 if ms.LoadMessageInfo() == nil { 1115 ms.StoreMessageInfo(mi) 1116 } 1117 return ms 1118 } 1119 return mi.MessageOf(x) 1120 } 1121 1122 // Deprecated: Use SrvKeyspace.ProtoReflect.Descriptor instead. 1123 func (*SrvKeyspace) Descriptor() ([]byte, []int) { 1124 return file_topodata_proto_rawDescGZIP(), []int{10} 1125 } 1126 1127 func (x *SrvKeyspace) GetPartitions() []*SrvKeyspace_KeyspacePartition { 1128 if x != nil { 1129 return x.Partitions 1130 } 1131 return nil 1132 } 1133 1134 func (x *SrvKeyspace) GetServedFrom() []*SrvKeyspace_ServedFrom { 1135 if x != nil { 1136 return x.ServedFrom 1137 } 1138 return nil 1139 } 1140 1141 func (x *SrvKeyspace) GetThrottlerConfig() *ThrottlerConfig { 1142 if x != nil { 1143 return x.ThrottlerConfig 1144 } 1145 return nil 1146 } 1147 1148 // CellInfo contains information about a cell. CellInfo objects are 1149 // stored in the global topology server, and describe how to reach 1150 // local topology servers. 1151 type CellInfo struct { 1152 state protoimpl.MessageState 1153 sizeCache protoimpl.SizeCache 1154 unknownFields protoimpl.UnknownFields 1155 1156 // ServerAddress contains the address of the server for the cell. 1157 // The syntax of this field is topology implementation specific. 1158 // For instance, for Zookeeper, it is a comma-separated list of 1159 // server addresses. 1160 ServerAddress string `protobuf:"bytes,1,opt,name=server_address,json=serverAddress,proto3" json:"server_address,omitempty"` 1161 // Root is the path to store data in. It is only used when talking 1162 // to server_address. 1163 Root string `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"` 1164 } 1165 1166 func (x *CellInfo) Reset() { 1167 *x = CellInfo{} 1168 if protoimpl.UnsafeEnabled { 1169 mi := &file_topodata_proto_msgTypes[11] 1170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1171 ms.StoreMessageInfo(mi) 1172 } 1173 } 1174 1175 func (x *CellInfo) String() string { 1176 return protoimpl.X.MessageStringOf(x) 1177 } 1178 1179 func (*CellInfo) ProtoMessage() {} 1180 1181 func (x *CellInfo) ProtoReflect() protoreflect.Message { 1182 mi := &file_topodata_proto_msgTypes[11] 1183 if protoimpl.UnsafeEnabled && x != nil { 1184 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1185 if ms.LoadMessageInfo() == nil { 1186 ms.StoreMessageInfo(mi) 1187 } 1188 return ms 1189 } 1190 return mi.MessageOf(x) 1191 } 1192 1193 // Deprecated: Use CellInfo.ProtoReflect.Descriptor instead. 1194 func (*CellInfo) Descriptor() ([]byte, []int) { 1195 return file_topodata_proto_rawDescGZIP(), []int{11} 1196 } 1197 1198 func (x *CellInfo) GetServerAddress() string { 1199 if x != nil { 1200 return x.ServerAddress 1201 } 1202 return "" 1203 } 1204 1205 func (x *CellInfo) GetRoot() string { 1206 if x != nil { 1207 return x.Root 1208 } 1209 return "" 1210 } 1211 1212 // CellsAlias 1213 type CellsAlias struct { 1214 state protoimpl.MessageState 1215 sizeCache protoimpl.SizeCache 1216 unknownFields protoimpl.UnknownFields 1217 1218 // Cells that map to this alias 1219 Cells []string `protobuf:"bytes,2,rep,name=cells,proto3" json:"cells,omitempty"` 1220 } 1221 1222 func (x *CellsAlias) Reset() { 1223 *x = CellsAlias{} 1224 if protoimpl.UnsafeEnabled { 1225 mi := &file_topodata_proto_msgTypes[12] 1226 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1227 ms.StoreMessageInfo(mi) 1228 } 1229 } 1230 1231 func (x *CellsAlias) String() string { 1232 return protoimpl.X.MessageStringOf(x) 1233 } 1234 1235 func (*CellsAlias) ProtoMessage() {} 1236 1237 func (x *CellsAlias) ProtoReflect() protoreflect.Message { 1238 mi := &file_topodata_proto_msgTypes[12] 1239 if protoimpl.UnsafeEnabled && x != nil { 1240 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1241 if ms.LoadMessageInfo() == nil { 1242 ms.StoreMessageInfo(mi) 1243 } 1244 return ms 1245 } 1246 return mi.MessageOf(x) 1247 } 1248 1249 // Deprecated: Use CellsAlias.ProtoReflect.Descriptor instead. 1250 func (*CellsAlias) Descriptor() ([]byte, []int) { 1251 return file_topodata_proto_rawDescGZIP(), []int{12} 1252 } 1253 1254 func (x *CellsAlias) GetCells() []string { 1255 if x != nil { 1256 return x.Cells 1257 } 1258 return nil 1259 } 1260 1261 type TopoConfig struct { 1262 state protoimpl.MessageState 1263 sizeCache protoimpl.SizeCache 1264 unknownFields protoimpl.UnknownFields 1265 1266 TopoType string `protobuf:"bytes,1,opt,name=topo_type,json=topoType,proto3" json:"topo_type,omitempty"` 1267 Server string `protobuf:"bytes,2,opt,name=server,proto3" json:"server,omitempty"` 1268 Root string `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` 1269 } 1270 1271 func (x *TopoConfig) Reset() { 1272 *x = TopoConfig{} 1273 if protoimpl.UnsafeEnabled { 1274 mi := &file_topodata_proto_msgTypes[13] 1275 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1276 ms.StoreMessageInfo(mi) 1277 } 1278 } 1279 1280 func (x *TopoConfig) String() string { 1281 return protoimpl.X.MessageStringOf(x) 1282 } 1283 1284 func (*TopoConfig) ProtoMessage() {} 1285 1286 func (x *TopoConfig) ProtoReflect() protoreflect.Message { 1287 mi := &file_topodata_proto_msgTypes[13] 1288 if protoimpl.UnsafeEnabled && x != nil { 1289 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1290 if ms.LoadMessageInfo() == nil { 1291 ms.StoreMessageInfo(mi) 1292 } 1293 return ms 1294 } 1295 return mi.MessageOf(x) 1296 } 1297 1298 // Deprecated: Use TopoConfig.ProtoReflect.Descriptor instead. 1299 func (*TopoConfig) Descriptor() ([]byte, []int) { 1300 return file_topodata_proto_rawDescGZIP(), []int{13} 1301 } 1302 1303 func (x *TopoConfig) GetTopoType() string { 1304 if x != nil { 1305 return x.TopoType 1306 } 1307 return "" 1308 } 1309 1310 func (x *TopoConfig) GetServer() string { 1311 if x != nil { 1312 return x.Server 1313 } 1314 return "" 1315 } 1316 1317 func (x *TopoConfig) GetRoot() string { 1318 if x != nil { 1319 return x.Root 1320 } 1321 return "" 1322 } 1323 1324 type ExternalVitessCluster struct { 1325 state protoimpl.MessageState 1326 sizeCache protoimpl.SizeCache 1327 unknownFields protoimpl.UnknownFields 1328 1329 TopoConfig *TopoConfig `protobuf:"bytes,1,opt,name=topo_config,json=topoConfig,proto3" json:"topo_config,omitempty"` 1330 } 1331 1332 func (x *ExternalVitessCluster) Reset() { 1333 *x = ExternalVitessCluster{} 1334 if protoimpl.UnsafeEnabled { 1335 mi := &file_topodata_proto_msgTypes[14] 1336 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1337 ms.StoreMessageInfo(mi) 1338 } 1339 } 1340 1341 func (x *ExternalVitessCluster) String() string { 1342 return protoimpl.X.MessageStringOf(x) 1343 } 1344 1345 func (*ExternalVitessCluster) ProtoMessage() {} 1346 1347 func (x *ExternalVitessCluster) ProtoReflect() protoreflect.Message { 1348 mi := &file_topodata_proto_msgTypes[14] 1349 if protoimpl.UnsafeEnabled && x != nil { 1350 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1351 if ms.LoadMessageInfo() == nil { 1352 ms.StoreMessageInfo(mi) 1353 } 1354 return ms 1355 } 1356 return mi.MessageOf(x) 1357 } 1358 1359 // Deprecated: Use ExternalVitessCluster.ProtoReflect.Descriptor instead. 1360 func (*ExternalVitessCluster) Descriptor() ([]byte, []int) { 1361 return file_topodata_proto_rawDescGZIP(), []int{14} 1362 } 1363 1364 func (x *ExternalVitessCluster) GetTopoConfig() *TopoConfig { 1365 if x != nil { 1366 return x.TopoConfig 1367 } 1368 return nil 1369 } 1370 1371 // ExternalClusters 1372 type ExternalClusters struct { 1373 state protoimpl.MessageState 1374 sizeCache protoimpl.SizeCache 1375 unknownFields protoimpl.UnknownFields 1376 1377 VitessCluster []*ExternalVitessCluster `protobuf:"bytes,1,rep,name=vitess_cluster,json=vitessCluster,proto3" json:"vitess_cluster,omitempty"` 1378 } 1379 1380 func (x *ExternalClusters) Reset() { 1381 *x = ExternalClusters{} 1382 if protoimpl.UnsafeEnabled { 1383 mi := &file_topodata_proto_msgTypes[15] 1384 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1385 ms.StoreMessageInfo(mi) 1386 } 1387 } 1388 1389 func (x *ExternalClusters) String() string { 1390 return protoimpl.X.MessageStringOf(x) 1391 } 1392 1393 func (*ExternalClusters) ProtoMessage() {} 1394 1395 func (x *ExternalClusters) ProtoReflect() protoreflect.Message { 1396 mi := &file_topodata_proto_msgTypes[15] 1397 if protoimpl.UnsafeEnabled && x != nil { 1398 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1399 if ms.LoadMessageInfo() == nil { 1400 ms.StoreMessageInfo(mi) 1401 } 1402 return ms 1403 } 1404 return mi.MessageOf(x) 1405 } 1406 1407 // Deprecated: Use ExternalClusters.ProtoReflect.Descriptor instead. 1408 func (*ExternalClusters) Descriptor() ([]byte, []int) { 1409 return file_topodata_proto_rawDescGZIP(), []int{15} 1410 } 1411 1412 func (x *ExternalClusters) GetVitessCluster() []*ExternalVitessCluster { 1413 if x != nil { 1414 return x.VitessCluster 1415 } 1416 return nil 1417 } 1418 1419 // SourceShard represents a data source for filtered replication 1420 // across shards. When this is used in a destination shard, the primary 1421 // of that shard will run filtered replication. 1422 type Shard_SourceShard struct { 1423 state protoimpl.MessageState 1424 sizeCache protoimpl.SizeCache 1425 unknownFields protoimpl.UnknownFields 1426 1427 // Uid is the unique ID for this SourceShard object. 1428 Uid uint32 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` 1429 // the source keyspace 1430 Keyspace string `protobuf:"bytes,2,opt,name=keyspace,proto3" json:"keyspace,omitempty"` 1431 // the source shard 1432 Shard string `protobuf:"bytes,3,opt,name=shard,proto3" json:"shard,omitempty"` 1433 // the source shard keyrange 1434 KeyRange *KeyRange `protobuf:"bytes,4,opt,name=key_range,json=keyRange,proto3" json:"key_range,omitempty"` 1435 // the source table list to replicate 1436 Tables []string `protobuf:"bytes,5,rep,name=tables,proto3" json:"tables,omitempty"` 1437 } 1438 1439 func (x *Shard_SourceShard) Reset() { 1440 *x = Shard_SourceShard{} 1441 if protoimpl.UnsafeEnabled { 1442 mi := &file_topodata_proto_msgTypes[18] 1443 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1444 ms.StoreMessageInfo(mi) 1445 } 1446 } 1447 1448 func (x *Shard_SourceShard) String() string { 1449 return protoimpl.X.MessageStringOf(x) 1450 } 1451 1452 func (*Shard_SourceShard) ProtoMessage() {} 1453 1454 func (x *Shard_SourceShard) ProtoReflect() protoreflect.Message { 1455 mi := &file_topodata_proto_msgTypes[18] 1456 if protoimpl.UnsafeEnabled && x != nil { 1457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1458 if ms.LoadMessageInfo() == nil { 1459 ms.StoreMessageInfo(mi) 1460 } 1461 return ms 1462 } 1463 return mi.MessageOf(x) 1464 } 1465 1466 // Deprecated: Use Shard_SourceShard.ProtoReflect.Descriptor instead. 1467 func (*Shard_SourceShard) Descriptor() ([]byte, []int) { 1468 return file_topodata_proto_rawDescGZIP(), []int{3, 0} 1469 } 1470 1471 func (x *Shard_SourceShard) GetUid() uint32 { 1472 if x != nil { 1473 return x.Uid 1474 } 1475 return 0 1476 } 1477 1478 func (x *Shard_SourceShard) GetKeyspace() string { 1479 if x != nil { 1480 return x.Keyspace 1481 } 1482 return "" 1483 } 1484 1485 func (x *Shard_SourceShard) GetShard() string { 1486 if x != nil { 1487 return x.Shard 1488 } 1489 return "" 1490 } 1491 1492 func (x *Shard_SourceShard) GetKeyRange() *KeyRange { 1493 if x != nil { 1494 return x.KeyRange 1495 } 1496 return nil 1497 } 1498 1499 func (x *Shard_SourceShard) GetTables() []string { 1500 if x != nil { 1501 return x.Tables 1502 } 1503 return nil 1504 } 1505 1506 // TabletControl controls tablet's behavior 1507 type Shard_TabletControl struct { 1508 state protoimpl.MessageState 1509 sizeCache protoimpl.SizeCache 1510 unknownFields protoimpl.UnknownFields 1511 1512 // which tablet type is affected 1513 TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,proto3,enum=topodata.TabletType" json:"tablet_type,omitempty"` 1514 Cells []string `protobuf:"bytes,2,rep,name=cells,proto3" json:"cells,omitempty"` 1515 DeniedTables []string `protobuf:"bytes,4,rep,name=denied_tables,json=deniedTables,proto3" json:"denied_tables,omitempty"` 1516 // frozen is set if we've started failing over traffic for 1517 // the primary. If set, this record should not be removed. 1518 Frozen bool `protobuf:"varint,5,opt,name=frozen,proto3" json:"frozen,omitempty"` 1519 } 1520 1521 func (x *Shard_TabletControl) Reset() { 1522 *x = Shard_TabletControl{} 1523 if protoimpl.UnsafeEnabled { 1524 mi := &file_topodata_proto_msgTypes[19] 1525 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1526 ms.StoreMessageInfo(mi) 1527 } 1528 } 1529 1530 func (x *Shard_TabletControl) String() string { 1531 return protoimpl.X.MessageStringOf(x) 1532 } 1533 1534 func (*Shard_TabletControl) ProtoMessage() {} 1535 1536 func (x *Shard_TabletControl) ProtoReflect() protoreflect.Message { 1537 mi := &file_topodata_proto_msgTypes[19] 1538 if protoimpl.UnsafeEnabled && x != nil { 1539 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1540 if ms.LoadMessageInfo() == nil { 1541 ms.StoreMessageInfo(mi) 1542 } 1543 return ms 1544 } 1545 return mi.MessageOf(x) 1546 } 1547 1548 // Deprecated: Use Shard_TabletControl.ProtoReflect.Descriptor instead. 1549 func (*Shard_TabletControl) Descriptor() ([]byte, []int) { 1550 return file_topodata_proto_rawDescGZIP(), []int{3, 1} 1551 } 1552 1553 func (x *Shard_TabletControl) GetTabletType() TabletType { 1554 if x != nil { 1555 return x.TabletType 1556 } 1557 return TabletType_UNKNOWN 1558 } 1559 1560 func (x *Shard_TabletControl) GetCells() []string { 1561 if x != nil { 1562 return x.Cells 1563 } 1564 return nil 1565 } 1566 1567 func (x *Shard_TabletControl) GetDeniedTables() []string { 1568 if x != nil { 1569 return x.DeniedTables 1570 } 1571 return nil 1572 } 1573 1574 func (x *Shard_TabletControl) GetFrozen() bool { 1575 if x != nil { 1576 return x.Frozen 1577 } 1578 return false 1579 } 1580 1581 // ServedFrom indicates a relationship between a TabletType and the 1582 // keyspace name that's serving it. 1583 type Keyspace_ServedFrom struct { 1584 state protoimpl.MessageState 1585 sizeCache protoimpl.SizeCache 1586 unknownFields protoimpl.UnknownFields 1587 1588 // the tablet type (key for the map) 1589 TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,proto3,enum=topodata.TabletType" json:"tablet_type,omitempty"` 1590 // the cells to limit this to 1591 Cells []string `protobuf:"bytes,2,rep,name=cells,proto3" json:"cells,omitempty"` 1592 // the keyspace name that's serving it 1593 Keyspace string `protobuf:"bytes,3,opt,name=keyspace,proto3" json:"keyspace,omitempty"` 1594 } 1595 1596 func (x *Keyspace_ServedFrom) Reset() { 1597 *x = Keyspace_ServedFrom{} 1598 if protoimpl.UnsafeEnabled { 1599 mi := &file_topodata_proto_msgTypes[20] 1600 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1601 ms.StoreMessageInfo(mi) 1602 } 1603 } 1604 1605 func (x *Keyspace_ServedFrom) String() string { 1606 return protoimpl.X.MessageStringOf(x) 1607 } 1608 1609 func (*Keyspace_ServedFrom) ProtoMessage() {} 1610 1611 func (x *Keyspace_ServedFrom) ProtoReflect() protoreflect.Message { 1612 mi := &file_topodata_proto_msgTypes[20] 1613 if protoimpl.UnsafeEnabled && x != nil { 1614 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1615 if ms.LoadMessageInfo() == nil { 1616 ms.StoreMessageInfo(mi) 1617 } 1618 return ms 1619 } 1620 return mi.MessageOf(x) 1621 } 1622 1623 // Deprecated: Use Keyspace_ServedFrom.ProtoReflect.Descriptor instead. 1624 func (*Keyspace_ServedFrom) Descriptor() ([]byte, []int) { 1625 return file_topodata_proto_rawDescGZIP(), []int{4, 0} 1626 } 1627 1628 func (x *Keyspace_ServedFrom) GetTabletType() TabletType { 1629 if x != nil { 1630 return x.TabletType 1631 } 1632 return TabletType_UNKNOWN 1633 } 1634 1635 func (x *Keyspace_ServedFrom) GetCells() []string { 1636 if x != nil { 1637 return x.Cells 1638 } 1639 return nil 1640 } 1641 1642 func (x *Keyspace_ServedFrom) GetKeyspace() string { 1643 if x != nil { 1644 return x.Keyspace 1645 } 1646 return "" 1647 } 1648 1649 // Node describes a tablet instance within the cell 1650 type ShardReplication_Node struct { 1651 state protoimpl.MessageState 1652 sizeCache protoimpl.SizeCache 1653 unknownFields protoimpl.UnknownFields 1654 1655 TabletAlias *TabletAlias `protobuf:"bytes,1,opt,name=tablet_alias,json=tabletAlias,proto3" json:"tablet_alias,omitempty"` 1656 } 1657 1658 func (x *ShardReplication_Node) Reset() { 1659 *x = ShardReplication_Node{} 1660 if protoimpl.UnsafeEnabled { 1661 mi := &file_topodata_proto_msgTypes[21] 1662 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1663 ms.StoreMessageInfo(mi) 1664 } 1665 } 1666 1667 func (x *ShardReplication_Node) String() string { 1668 return protoimpl.X.MessageStringOf(x) 1669 } 1670 1671 func (*ShardReplication_Node) ProtoMessage() {} 1672 1673 func (x *ShardReplication_Node) ProtoReflect() protoreflect.Message { 1674 mi := &file_topodata_proto_msgTypes[21] 1675 if protoimpl.UnsafeEnabled && x != nil { 1676 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1677 if ms.LoadMessageInfo() == nil { 1678 ms.StoreMessageInfo(mi) 1679 } 1680 return ms 1681 } 1682 return mi.MessageOf(x) 1683 } 1684 1685 // Deprecated: Use ShardReplication_Node.ProtoReflect.Descriptor instead. 1686 func (*ShardReplication_Node) Descriptor() ([]byte, []int) { 1687 return file_topodata_proto_rawDescGZIP(), []int{5, 0} 1688 } 1689 1690 func (x *ShardReplication_Node) GetTabletAlias() *TabletAlias { 1691 if x != nil { 1692 return x.TabletAlias 1693 } 1694 return nil 1695 } 1696 1697 type SrvKeyspace_KeyspacePartition struct { 1698 state protoimpl.MessageState 1699 sizeCache protoimpl.SizeCache 1700 unknownFields protoimpl.UnknownFields 1701 1702 // The type this partition applies to. 1703 ServedType TabletType `protobuf:"varint,1,opt,name=served_type,json=servedType,proto3,enum=topodata.TabletType" json:"served_type,omitempty"` 1704 // List of non-overlapping continuous shards sorted by range. 1705 ShardReferences []*ShardReference `protobuf:"bytes,2,rep,name=shard_references,json=shardReferences,proto3" json:"shard_references,omitempty"` 1706 // List of shard tablet controls 1707 ShardTabletControls []*ShardTabletControl `protobuf:"bytes,3,rep,name=shard_tablet_controls,json=shardTabletControls,proto3" json:"shard_tablet_controls,omitempty"` 1708 } 1709 1710 func (x *SrvKeyspace_KeyspacePartition) Reset() { 1711 *x = SrvKeyspace_KeyspacePartition{} 1712 if protoimpl.UnsafeEnabled { 1713 mi := &file_topodata_proto_msgTypes[22] 1714 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1715 ms.StoreMessageInfo(mi) 1716 } 1717 } 1718 1719 func (x *SrvKeyspace_KeyspacePartition) String() string { 1720 return protoimpl.X.MessageStringOf(x) 1721 } 1722 1723 func (*SrvKeyspace_KeyspacePartition) ProtoMessage() {} 1724 1725 func (x *SrvKeyspace_KeyspacePartition) ProtoReflect() protoreflect.Message { 1726 mi := &file_topodata_proto_msgTypes[22] 1727 if protoimpl.UnsafeEnabled && x != nil { 1728 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1729 if ms.LoadMessageInfo() == nil { 1730 ms.StoreMessageInfo(mi) 1731 } 1732 return ms 1733 } 1734 return mi.MessageOf(x) 1735 } 1736 1737 // Deprecated: Use SrvKeyspace_KeyspacePartition.ProtoReflect.Descriptor instead. 1738 func (*SrvKeyspace_KeyspacePartition) Descriptor() ([]byte, []int) { 1739 return file_topodata_proto_rawDescGZIP(), []int{10, 0} 1740 } 1741 1742 func (x *SrvKeyspace_KeyspacePartition) GetServedType() TabletType { 1743 if x != nil { 1744 return x.ServedType 1745 } 1746 return TabletType_UNKNOWN 1747 } 1748 1749 func (x *SrvKeyspace_KeyspacePartition) GetShardReferences() []*ShardReference { 1750 if x != nil { 1751 return x.ShardReferences 1752 } 1753 return nil 1754 } 1755 1756 func (x *SrvKeyspace_KeyspacePartition) GetShardTabletControls() []*ShardTabletControl { 1757 if x != nil { 1758 return x.ShardTabletControls 1759 } 1760 return nil 1761 } 1762 1763 // ServedFrom indicates a relationship between a TabletType and the 1764 // keyspace name that's serving it. 1765 type SrvKeyspace_ServedFrom struct { 1766 state protoimpl.MessageState 1767 sizeCache protoimpl.SizeCache 1768 unknownFields protoimpl.UnknownFields 1769 1770 // the tablet type 1771 TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,proto3,enum=topodata.TabletType" json:"tablet_type,omitempty"` 1772 // the keyspace name that's serving it 1773 Keyspace string `protobuf:"bytes,2,opt,name=keyspace,proto3" json:"keyspace,omitempty"` 1774 } 1775 1776 func (x *SrvKeyspace_ServedFrom) Reset() { 1777 *x = SrvKeyspace_ServedFrom{} 1778 if protoimpl.UnsafeEnabled { 1779 mi := &file_topodata_proto_msgTypes[23] 1780 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1781 ms.StoreMessageInfo(mi) 1782 } 1783 } 1784 1785 func (x *SrvKeyspace_ServedFrom) String() string { 1786 return protoimpl.X.MessageStringOf(x) 1787 } 1788 1789 func (*SrvKeyspace_ServedFrom) ProtoMessage() {} 1790 1791 func (x *SrvKeyspace_ServedFrom) ProtoReflect() protoreflect.Message { 1792 mi := &file_topodata_proto_msgTypes[23] 1793 if protoimpl.UnsafeEnabled && x != nil { 1794 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1795 if ms.LoadMessageInfo() == nil { 1796 ms.StoreMessageInfo(mi) 1797 } 1798 return ms 1799 } 1800 return mi.MessageOf(x) 1801 } 1802 1803 // Deprecated: Use SrvKeyspace_ServedFrom.ProtoReflect.Descriptor instead. 1804 func (*SrvKeyspace_ServedFrom) Descriptor() ([]byte, []int) { 1805 return file_topodata_proto_rawDescGZIP(), []int{10, 1} 1806 } 1807 1808 func (x *SrvKeyspace_ServedFrom) GetTabletType() TabletType { 1809 if x != nil { 1810 return x.TabletType 1811 } 1812 return TabletType_UNKNOWN 1813 } 1814 1815 func (x *SrvKeyspace_ServedFrom) GetKeyspace() string { 1816 if x != nil { 1817 return x.Keyspace 1818 } 1819 return "" 1820 } 1821 1822 var File_topodata_proto protoreflect.FileDescriptor 1823 1824 var file_topodata_proto_rawDesc = []byte{ 1825 0x0a, 0x0e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1826 0x12, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x0c, 0x76, 0x74, 0x74, 0x69, 1827 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x32, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x52, 1828 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 1829 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 1830 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x33, 0x0a, 0x0b, 1831 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 1832 0x65, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x65, 0x6c, 0x6c, 0x12, 1833 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 1834 0x64, 0x22, 0xe0, 0x05, 0x0a, 0x06, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x05, 1835 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 1836 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 1837 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 1838 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 1839 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 1840 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 1841 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x61, 1842 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x12, 1843 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 1844 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 1845 0x68, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 1846 0x64, 0x12, 0x2f, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 1847 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 1848 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x52, 0x61, 0x6e, 1849 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 1850 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 1851 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 1852 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 1853 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x4f, 0x76, 1854 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 1855 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 1856 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 1857 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 1858 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 1859 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 1860 0x0a, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 1861 0x05, 0x52, 0x09, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x17, 1862 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x74, 0x61, 1863 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 1864 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x14, 0x70, 0x72, 0x69, 1865 0x6d, 0x61, 0x72, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 1866 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x62, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, 1867 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x62, 1868 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 1869 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x63, 0x6f, 1870 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x64, 1871 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 1872 0x69, 0x6f, 0x6e, 0x1a, 0x3a, 0x0a, 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 1873 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1874 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 1875 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 1876 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 1877 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 1878 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 1879 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 1880 0x08, 0x0b, 0x10, 0x0c, 0x22, 0xbc, 0x05, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x3a, 1881 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 1882 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 1883 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72, 1884 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x43, 0x0a, 0x17, 0x70, 0x72, 1885 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 1886 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 1887 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x14, 0x70, 0x72, 0x69, 0x6d, 0x61, 1888 0x72, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 1889 0x2f, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 1890 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x65, 1891 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 1892 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 1893 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 1894 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 1895 0x68, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 1896 0x64, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 1897 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x6f, 1898 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x54, 0x61, 0x62, 1899 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x6c, 1900 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 1901 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 1902 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 1903 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x1a, 0x9a, 0x01, 0x0a, 0x0b, 0x53, 0x6f, 0x75, 1904 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 1905 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 1906 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 1907 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 1908 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x09, 1909 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 1910 0x12, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x61, 1911 0x6e, 0x67, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 1912 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 1913 0x61, 0x62, 0x6c, 0x65, 0x73, 0x1a, 0x9f, 0x01, 0x0a, 0x0d, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 1914 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x35, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 1915 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 1916 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 1917 0x70, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 1918 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 1919 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x74, 1920 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x6e, 1921 0x69, 0x65, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 1922 0x7a, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 1923 0x6e, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 1924 0x05, 0x10, 0x06, 0x22, 0xdd, 0x03, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 1925 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x73, 1926 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 1927 0x61, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 1928 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 1929 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x0d, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x74, 1930 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 1931 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 1932 0x65, 0x52, 0x0c, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 1933 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 1934 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x73, 1935 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 1936 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 1937 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 1938 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x75, 0x72, 0x61, 0x62, 1939 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 1940 0x28, 0x09, 0x52, 0x10, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x6f, 1941 0x6c, 0x69, 0x63, 0x79, 0x12, 0x44, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 1942 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 1943 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 1944 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f, 0x74, 1945 0x74, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x75, 0x0a, 0x0a, 0x53, 0x65, 1946 0x72, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x35, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 1947 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 1948 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 1949 0x79, 0x70, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 1950 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 1951 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 1952 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 1953 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 1954 0x03, 0x10, 0x04, 0x22, 0x8b, 0x01, 0x0a, 0x10, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 1955 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 1956 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 1957 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 1958 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 1959 0x40, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 1960 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 1961 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 1962 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 1963 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 1964 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x04, 0x74, 1965 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 1966 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 1967 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 1968 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 1969 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 1970 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 1971 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 1972 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 1973 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 1974 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x4f, 0x50, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x5f, 1975 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0e, 0x53, 0x68, 1976 0x61, 0x72, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 1977 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1978 0x12, 0x2f, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 1979 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4b, 1980 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 1981 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x12, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 1982 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 1983 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 1984 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 1985 0x12, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x61, 1986 0x6e, 0x67, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x34, 0x0a, 1987 0x16, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 1988 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x71, 1989 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 1990 0x6c, 0x65, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 1991 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 1992 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 1993 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 1994 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 1995 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 1996 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x51, 0x75, 0x65, 1997 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x61, 0x73, 0x5f, 0x63, 1998 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 1999 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x6c, 2000 0x66, 0x22, 0xb6, 0x04, 0x0a, 0x0b, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 2001 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 2002 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 2003 0x2e, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x4b, 0x65, 0x79, 2004 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 2005 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x65, 2006 0x72, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 2007 0x20, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x72, 0x76, 0x4b, 0x65, 2008 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 2009 0x6d, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x44, 0x0a, 2010 0x10, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 2011 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 2012 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 2013 0x69, 0x67, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 2014 0x66, 0x69, 0x67, 0x1a, 0xe1, 0x01, 0x0a, 0x11, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 2015 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x65, 0x72, 2016 0x76, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 2017 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 2018 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 2019 0x12, 0x43, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 2020 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x6f, 0x70, 2021 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 2022 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 2023 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x74, 2024 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x18, 0x03, 2025 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 2026 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 2027 0x6f, 0x6c, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 2028 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x1a, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 2029 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x35, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 2030 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 2031 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 2032 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 2033 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 2034 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 2035 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x4b, 0x0a, 0x08, 0x43, 0x65, 2036 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 2037 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 2038 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 2039 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 2040 0x74, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x22, 0x0a, 0x0a, 0x43, 0x65, 0x6c, 0x6c, 0x73, 2041 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 2042 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x22, 0x55, 0x0a, 0x0a, 0x54, 2043 0x6f, 0x70, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, 2044 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 2045 0x70, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 2046 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 2047 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 2048 0x6f, 0x74, 0x22, 0x4e, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x56, 0x69, 2049 0x74, 0x65, 0x73, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0b, 0x74, 2050 0x6f, 0x70, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 2051 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 2052 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 2053 0x69, 0x67, 0x22, 0x5a, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 2054 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x0e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 2055 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 2056 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 2057 0x61, 0x6c, 0x56, 0x69, 0x74, 0x65, 0x73, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 2058 0x0d, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2a, 0x28, 2059 0x0a, 0x0c, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 2060 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x4e, 2061 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x01, 0x2a, 0x9d, 0x01, 0x0a, 0x0a, 0x54, 0x61, 0x62, 2062 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 2063 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 2064 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 2065 0x07, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x44, 2066 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 2067 0x03, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x41, 0x52, 0x45, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 2068 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0a, 2069 0x0a, 0x06, 0x42, 0x41, 0x43, 0x4b, 0x55, 0x50, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 2070 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x52, 0x41, 0x49, 0x4e, 2071 0x45, 0x44, 0x10, 0x08, 0x1a, 0x02, 0x10, 0x01, 0x42, 0x38, 0x0a, 0x0f, 0x69, 0x6f, 0x2e, 0x76, 2072 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x25, 0x76, 0x69, 0x74, 2073 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 2074 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 2075 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2076 } 2077 2078 var ( 2079 file_topodata_proto_rawDescOnce sync.Once 2080 file_topodata_proto_rawDescData = file_topodata_proto_rawDesc 2081 ) 2082 2083 func file_topodata_proto_rawDescGZIP() []byte { 2084 file_topodata_proto_rawDescOnce.Do(func() { 2085 file_topodata_proto_rawDescData = protoimpl.X.CompressGZIP(file_topodata_proto_rawDescData) 2086 }) 2087 return file_topodata_proto_rawDescData 2088 } 2089 2090 var file_topodata_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2091 var file_topodata_proto_msgTypes = make([]protoimpl.MessageInfo, 24) 2092 var file_topodata_proto_goTypes = []interface{}{ 2093 (KeyspaceType)(0), // 0: topodata.KeyspaceType 2094 (TabletType)(0), // 1: topodata.TabletType 2095 (ShardReplicationError_Type)(0), // 2: topodata.ShardReplicationError.Type 2096 (*KeyRange)(nil), // 3: topodata.KeyRange 2097 (*TabletAlias)(nil), // 4: topodata.TabletAlias 2098 (*Tablet)(nil), // 5: topodata.Tablet 2099 (*Shard)(nil), // 6: topodata.Shard 2100 (*Keyspace)(nil), // 7: topodata.Keyspace 2101 (*ShardReplication)(nil), // 8: topodata.ShardReplication 2102 (*ShardReplicationError)(nil), // 9: topodata.ShardReplicationError 2103 (*ShardReference)(nil), // 10: topodata.ShardReference 2104 (*ShardTabletControl)(nil), // 11: topodata.ShardTabletControl 2105 (*ThrottlerConfig)(nil), // 12: topodata.ThrottlerConfig 2106 (*SrvKeyspace)(nil), // 13: topodata.SrvKeyspace 2107 (*CellInfo)(nil), // 14: topodata.CellInfo 2108 (*CellsAlias)(nil), // 15: topodata.CellsAlias 2109 (*TopoConfig)(nil), // 16: topodata.TopoConfig 2110 (*ExternalVitessCluster)(nil), // 17: topodata.ExternalVitessCluster 2111 (*ExternalClusters)(nil), // 18: topodata.ExternalClusters 2112 nil, // 19: topodata.Tablet.PortMapEntry 2113 nil, // 20: topodata.Tablet.TagsEntry 2114 (*Shard_SourceShard)(nil), // 21: topodata.Shard.SourceShard 2115 (*Shard_TabletControl)(nil), // 22: topodata.Shard.TabletControl 2116 (*Keyspace_ServedFrom)(nil), // 23: topodata.Keyspace.ServedFrom 2117 (*ShardReplication_Node)(nil), // 24: topodata.ShardReplication.Node 2118 (*SrvKeyspace_KeyspacePartition)(nil), // 25: topodata.SrvKeyspace.KeyspacePartition 2119 (*SrvKeyspace_ServedFrom)(nil), // 26: topodata.SrvKeyspace.ServedFrom 2120 (*vttime.Time)(nil), // 27: vttime.Time 2121 } 2122 var file_topodata_proto_depIdxs = []int32{ 2123 4, // 0: topodata.Tablet.alias:type_name -> topodata.TabletAlias 2124 19, // 1: topodata.Tablet.port_map:type_name -> topodata.Tablet.PortMapEntry 2125 3, // 2: topodata.Tablet.key_range:type_name -> topodata.KeyRange 2126 1, // 3: topodata.Tablet.type:type_name -> topodata.TabletType 2127 20, // 4: topodata.Tablet.tags:type_name -> topodata.Tablet.TagsEntry 2128 27, // 5: topodata.Tablet.primary_term_start_time:type_name -> vttime.Time 2129 4, // 6: topodata.Shard.primary_alias:type_name -> topodata.TabletAlias 2130 27, // 7: topodata.Shard.primary_term_start_time:type_name -> vttime.Time 2131 3, // 8: topodata.Shard.key_range:type_name -> topodata.KeyRange 2132 21, // 9: topodata.Shard.source_shards:type_name -> topodata.Shard.SourceShard 2133 22, // 10: topodata.Shard.tablet_controls:type_name -> topodata.Shard.TabletControl 2134 23, // 11: topodata.Keyspace.served_froms:type_name -> topodata.Keyspace.ServedFrom 2135 0, // 12: topodata.Keyspace.keyspace_type:type_name -> topodata.KeyspaceType 2136 27, // 13: topodata.Keyspace.snapshot_time:type_name -> vttime.Time 2137 12, // 14: topodata.Keyspace.throttler_config:type_name -> topodata.ThrottlerConfig 2138 24, // 15: topodata.ShardReplication.nodes:type_name -> topodata.ShardReplication.Node 2139 2, // 16: topodata.ShardReplicationError.type:type_name -> topodata.ShardReplicationError.Type 2140 4, // 17: topodata.ShardReplicationError.tablet_alias:type_name -> topodata.TabletAlias 2141 3, // 18: topodata.ShardReference.key_range:type_name -> topodata.KeyRange 2142 3, // 19: topodata.ShardTabletControl.key_range:type_name -> topodata.KeyRange 2143 25, // 20: topodata.SrvKeyspace.partitions:type_name -> topodata.SrvKeyspace.KeyspacePartition 2144 26, // 21: topodata.SrvKeyspace.served_from:type_name -> topodata.SrvKeyspace.ServedFrom 2145 12, // 22: topodata.SrvKeyspace.throttler_config:type_name -> topodata.ThrottlerConfig 2146 16, // 23: topodata.ExternalVitessCluster.topo_config:type_name -> topodata.TopoConfig 2147 17, // 24: topodata.ExternalClusters.vitess_cluster:type_name -> topodata.ExternalVitessCluster 2148 3, // 25: topodata.Shard.SourceShard.key_range:type_name -> topodata.KeyRange 2149 1, // 26: topodata.Shard.TabletControl.tablet_type:type_name -> topodata.TabletType 2150 1, // 27: topodata.Keyspace.ServedFrom.tablet_type:type_name -> topodata.TabletType 2151 4, // 28: topodata.ShardReplication.Node.tablet_alias:type_name -> topodata.TabletAlias 2152 1, // 29: topodata.SrvKeyspace.KeyspacePartition.served_type:type_name -> topodata.TabletType 2153 10, // 30: topodata.SrvKeyspace.KeyspacePartition.shard_references:type_name -> topodata.ShardReference 2154 11, // 31: topodata.SrvKeyspace.KeyspacePartition.shard_tablet_controls:type_name -> topodata.ShardTabletControl 2155 1, // 32: topodata.SrvKeyspace.ServedFrom.tablet_type:type_name -> topodata.TabletType 2156 33, // [33:33] is the sub-list for method output_type 2157 33, // [33:33] is the sub-list for method input_type 2158 33, // [33:33] is the sub-list for extension type_name 2159 33, // [33:33] is the sub-list for extension extendee 2160 0, // [0:33] is the sub-list for field type_name 2161 } 2162 2163 func init() { file_topodata_proto_init() } 2164 func file_topodata_proto_init() { 2165 if File_topodata_proto != nil { 2166 return 2167 } 2168 if !protoimpl.UnsafeEnabled { 2169 file_topodata_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2170 switch v := v.(*KeyRange); i { 2171 case 0: 2172 return &v.state 2173 case 1: 2174 return &v.sizeCache 2175 case 2: 2176 return &v.unknownFields 2177 default: 2178 return nil 2179 } 2180 } 2181 file_topodata_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2182 switch v := v.(*TabletAlias); i { 2183 case 0: 2184 return &v.state 2185 case 1: 2186 return &v.sizeCache 2187 case 2: 2188 return &v.unknownFields 2189 default: 2190 return nil 2191 } 2192 } 2193 file_topodata_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2194 switch v := v.(*Tablet); i { 2195 case 0: 2196 return &v.state 2197 case 1: 2198 return &v.sizeCache 2199 case 2: 2200 return &v.unknownFields 2201 default: 2202 return nil 2203 } 2204 } 2205 file_topodata_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2206 switch v := v.(*Shard); i { 2207 case 0: 2208 return &v.state 2209 case 1: 2210 return &v.sizeCache 2211 case 2: 2212 return &v.unknownFields 2213 default: 2214 return nil 2215 } 2216 } 2217 file_topodata_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2218 switch v := v.(*Keyspace); i { 2219 case 0: 2220 return &v.state 2221 case 1: 2222 return &v.sizeCache 2223 case 2: 2224 return &v.unknownFields 2225 default: 2226 return nil 2227 } 2228 } 2229 file_topodata_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2230 switch v := v.(*ShardReplication); i { 2231 case 0: 2232 return &v.state 2233 case 1: 2234 return &v.sizeCache 2235 case 2: 2236 return &v.unknownFields 2237 default: 2238 return nil 2239 } 2240 } 2241 file_topodata_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2242 switch v := v.(*ShardReplicationError); i { 2243 case 0: 2244 return &v.state 2245 case 1: 2246 return &v.sizeCache 2247 case 2: 2248 return &v.unknownFields 2249 default: 2250 return nil 2251 } 2252 } 2253 file_topodata_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2254 switch v := v.(*ShardReference); i { 2255 case 0: 2256 return &v.state 2257 case 1: 2258 return &v.sizeCache 2259 case 2: 2260 return &v.unknownFields 2261 default: 2262 return nil 2263 } 2264 } 2265 file_topodata_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2266 switch v := v.(*ShardTabletControl); i { 2267 case 0: 2268 return &v.state 2269 case 1: 2270 return &v.sizeCache 2271 case 2: 2272 return &v.unknownFields 2273 default: 2274 return nil 2275 } 2276 } 2277 file_topodata_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2278 switch v := v.(*ThrottlerConfig); i { 2279 case 0: 2280 return &v.state 2281 case 1: 2282 return &v.sizeCache 2283 case 2: 2284 return &v.unknownFields 2285 default: 2286 return nil 2287 } 2288 } 2289 file_topodata_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2290 switch v := v.(*SrvKeyspace); i { 2291 case 0: 2292 return &v.state 2293 case 1: 2294 return &v.sizeCache 2295 case 2: 2296 return &v.unknownFields 2297 default: 2298 return nil 2299 } 2300 } 2301 file_topodata_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2302 switch v := v.(*CellInfo); i { 2303 case 0: 2304 return &v.state 2305 case 1: 2306 return &v.sizeCache 2307 case 2: 2308 return &v.unknownFields 2309 default: 2310 return nil 2311 } 2312 } 2313 file_topodata_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2314 switch v := v.(*CellsAlias); i { 2315 case 0: 2316 return &v.state 2317 case 1: 2318 return &v.sizeCache 2319 case 2: 2320 return &v.unknownFields 2321 default: 2322 return nil 2323 } 2324 } 2325 file_topodata_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2326 switch v := v.(*TopoConfig); i { 2327 case 0: 2328 return &v.state 2329 case 1: 2330 return &v.sizeCache 2331 case 2: 2332 return &v.unknownFields 2333 default: 2334 return nil 2335 } 2336 } 2337 file_topodata_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2338 switch v := v.(*ExternalVitessCluster); i { 2339 case 0: 2340 return &v.state 2341 case 1: 2342 return &v.sizeCache 2343 case 2: 2344 return &v.unknownFields 2345 default: 2346 return nil 2347 } 2348 } 2349 file_topodata_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2350 switch v := v.(*ExternalClusters); i { 2351 case 0: 2352 return &v.state 2353 case 1: 2354 return &v.sizeCache 2355 case 2: 2356 return &v.unknownFields 2357 default: 2358 return nil 2359 } 2360 } 2361 file_topodata_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2362 switch v := v.(*Shard_SourceShard); i { 2363 case 0: 2364 return &v.state 2365 case 1: 2366 return &v.sizeCache 2367 case 2: 2368 return &v.unknownFields 2369 default: 2370 return nil 2371 } 2372 } 2373 file_topodata_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2374 switch v := v.(*Shard_TabletControl); i { 2375 case 0: 2376 return &v.state 2377 case 1: 2378 return &v.sizeCache 2379 case 2: 2380 return &v.unknownFields 2381 default: 2382 return nil 2383 } 2384 } 2385 file_topodata_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 2386 switch v := v.(*Keyspace_ServedFrom); i { 2387 case 0: 2388 return &v.state 2389 case 1: 2390 return &v.sizeCache 2391 case 2: 2392 return &v.unknownFields 2393 default: 2394 return nil 2395 } 2396 } 2397 file_topodata_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 2398 switch v := v.(*ShardReplication_Node); i { 2399 case 0: 2400 return &v.state 2401 case 1: 2402 return &v.sizeCache 2403 case 2: 2404 return &v.unknownFields 2405 default: 2406 return nil 2407 } 2408 } 2409 file_topodata_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 2410 switch v := v.(*SrvKeyspace_KeyspacePartition); i { 2411 case 0: 2412 return &v.state 2413 case 1: 2414 return &v.sizeCache 2415 case 2: 2416 return &v.unknownFields 2417 default: 2418 return nil 2419 } 2420 } 2421 file_topodata_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 2422 switch v := v.(*SrvKeyspace_ServedFrom); i { 2423 case 0: 2424 return &v.state 2425 case 1: 2426 return &v.sizeCache 2427 case 2: 2428 return &v.unknownFields 2429 default: 2430 return nil 2431 } 2432 } 2433 } 2434 type x struct{} 2435 out := protoimpl.TypeBuilder{ 2436 File: protoimpl.DescBuilder{ 2437 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2438 RawDescriptor: file_topodata_proto_rawDesc, 2439 NumEnums: 3, 2440 NumMessages: 24, 2441 NumExtensions: 0, 2442 NumServices: 0, 2443 }, 2444 GoTypes: file_topodata_proto_goTypes, 2445 DependencyIndexes: file_topodata_proto_depIdxs, 2446 EnumInfos: file_topodata_proto_enumTypes, 2447 MessageInfos: file_topodata_proto_msgTypes, 2448 }.Build() 2449 File_topodata_proto = out.File 2450 file_topodata_proto_rawDesc = nil 2451 file_topodata_proto_goTypes = nil 2452 file_topodata_proto_depIdxs = nil 2453 }