// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: BUSL-1.1 // Package serverdiscovery provides a service on Consul servers to discover the set of servers // currently able to handle incoming requests. syntax = "proto3"; package hashicorp.consul.serverdiscovery; import "annotations/ratelimit/ratelimit.proto"; service ServerDiscoveryService { // WatchServers will stream back sets of ready servers as they change such as // when new servers are added or older ones removed. A ready server is one that // should be considered ready for sending general RPC requests towards that would // catalog queries, xDS proxy configurations and similar services. rpc WatchServers(WatchServersRequest) returns (stream WatchServersResponse) { option (hashicorp.consul.internal.ratelimit.spec) = { operation_type: OPERATION_TYPE_READ, operation_category: OPERATION_CATEGORY_SERVER_DISCOVERY }; } } message WatchServersRequest { // Wan being set to true will cause WAN addresses to be sent in the response // instead of the LAN addresses which are the default bool wan = 1; } message WatchServersResponse { // Servers is the list of server address information. repeated Server servers = 1; } message Server { // id is the unique string identifying this server for all time. string id = 1; // address on the network of the server string address = 2; // the consul version of the server string version = 3; }