linkerd2/controller/gen/public/public.pb.go

6962 lines
238 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.24.0
// protoc v3.6.0
// source: public.proto
package public
import (
context "context"
proto "github.com/golang/protobuf/proto"
duration "github.com/golang/protobuf/ptypes/duration"
healthcheck "github.com/linkerd/linkerd2/controller/gen/common/healthcheck"
config "github.com/linkerd/linkerd2/controller/gen/config"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
type HttpMethod_Registered int32
const (
HttpMethod_GET HttpMethod_Registered = 0
HttpMethod_POST HttpMethod_Registered = 1
HttpMethod_PUT HttpMethod_Registered = 2
HttpMethod_DELETE HttpMethod_Registered = 3
HttpMethod_PATCH HttpMethod_Registered = 4
HttpMethod_OPTIONS HttpMethod_Registered = 5
HttpMethod_CONNECT HttpMethod_Registered = 6
HttpMethod_HEAD HttpMethod_Registered = 7
HttpMethod_TRACE HttpMethod_Registered = 8
)
// Enum value maps for HttpMethod_Registered.
var (
HttpMethod_Registered_name = map[int32]string{
0: "GET",
1: "POST",
2: "PUT",
3: "DELETE",
4: "PATCH",
5: "OPTIONS",
6: "CONNECT",
7: "HEAD",
8: "TRACE",
}
HttpMethod_Registered_value = map[string]int32{
"GET": 0,
"POST": 1,
"PUT": 2,
"DELETE": 3,
"PATCH": 4,
"OPTIONS": 5,
"CONNECT": 6,
"HEAD": 7,
"TRACE": 8,
}
)
func (x HttpMethod_Registered) Enum() *HttpMethod_Registered {
p := new(HttpMethod_Registered)
*p = x
return p
}
func (x HttpMethod_Registered) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (HttpMethod_Registered) Descriptor() protoreflect.EnumDescriptor {
return file_public_proto_enumTypes[0].Descriptor()
}
func (HttpMethod_Registered) Type() protoreflect.EnumType {
return &file_public_proto_enumTypes[0]
}
func (x HttpMethod_Registered) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use HttpMethod_Registered.Descriptor instead.
func (HttpMethod_Registered) EnumDescriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{10, 0}
}
type Scheme_Registered int32
const (
Scheme_HTTP Scheme_Registered = 0
Scheme_HTTPS Scheme_Registered = 1
)
// Enum value maps for Scheme_Registered.
var (
Scheme_Registered_name = map[int32]string{
0: "HTTP",
1: "HTTPS",
}
Scheme_Registered_value = map[string]int32{
"HTTP": 0,
"HTTPS": 1,
}
)
func (x Scheme_Registered) Enum() *Scheme_Registered {
p := new(Scheme_Registered)
*p = x
return p
}
func (x Scheme_Registered) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Scheme_Registered) Descriptor() protoreflect.EnumDescriptor {
return file_public_proto_enumTypes[1].Descriptor()
}
func (Scheme_Registered) Type() protoreflect.EnumType {
return &file_public_proto_enumTypes[1]
}
func (x Scheme_Registered) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Scheme_Registered.Descriptor instead.
func (Scheme_Registered) EnumDescriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{11, 0}
}
type TapEvent_ProxyDirection int32
const (
TapEvent_UNKNOWN TapEvent_ProxyDirection = 0
TapEvent_INBOUND TapEvent_ProxyDirection = 1
TapEvent_OUTBOUND TapEvent_ProxyDirection = 2
)
// Enum value maps for TapEvent_ProxyDirection.
var (
TapEvent_ProxyDirection_name = map[int32]string{
0: "UNKNOWN",
1: "INBOUND",
2: "OUTBOUND",
}
TapEvent_ProxyDirection_value = map[string]int32{
"UNKNOWN": 0,
"INBOUND": 1,
"OUTBOUND": 2,
}
)
func (x TapEvent_ProxyDirection) Enum() *TapEvent_ProxyDirection {
p := new(TapEvent_ProxyDirection)
*p = x
return p
}
func (x TapEvent_ProxyDirection) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TapEvent_ProxyDirection) Descriptor() protoreflect.EnumDescriptor {
return file_public_proto_enumTypes[2].Descriptor()
}
func (TapEvent_ProxyDirection) Type() protoreflect.EnumType {
return &file_public_proto_enumTypes[2]
}
func (x TapEvent_ProxyDirection) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TapEvent_ProxyDirection.Descriptor instead.
func (TapEvent_ProxyDirection) EnumDescriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 0}
}
type Empty struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Empty) Reset() {
*x = Empty{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Empty) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Empty) ProtoMessage() {}
func (x *Empty) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{0}
}
type VersionInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GoVersion string `protobuf:"bytes,1,opt,name=goVersion,proto3" json:"goVersion,omitempty"`
BuildDate string `protobuf:"bytes,2,opt,name=buildDate,proto3" json:"buildDate,omitempty"`
ReleaseVersion string `protobuf:"bytes,3,opt,name=releaseVersion,proto3" json:"releaseVersion,omitempty"`
}
func (x *VersionInfo) Reset() {
*x = VersionInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VersionInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VersionInfo) ProtoMessage() {}
func (x *VersionInfo) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VersionInfo.ProtoReflect.Descriptor instead.
func (*VersionInfo) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{1}
}
func (x *VersionInfo) GetGoVersion() string {
if x != nil {
return x.GoVersion
}
return ""
}
func (x *VersionInfo) GetBuildDate() string {
if x != nil {
return x.BuildDate
}
return ""
}
func (x *VersionInfo) GetReleaseVersion() string {
if x != nil {
return x.ReleaseVersion
}
return ""
}
type ListServicesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
}
func (x *ListServicesRequest) Reset() {
*x = ListServicesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListServicesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListServicesRequest) ProtoMessage() {}
func (x *ListServicesRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListServicesRequest.ProtoReflect.Descriptor instead.
func (*ListServicesRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{2}
}
func (x *ListServicesRequest) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
type ListServicesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
}
func (x *ListServicesResponse) Reset() {
*x = ListServicesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListServicesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListServicesResponse) ProtoMessage() {}
func (x *ListServicesResponse) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListServicesResponse.ProtoReflect.Descriptor instead.
func (*ListServicesResponse) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{3}
}
func (x *ListServicesResponse) GetServices() []*Service {
if x != nil {
return x.Services
}
return nil
}
type Service struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
}
func (x *Service) Reset() {
*x = Service{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Service) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Service) ProtoMessage() {}
func (x *Service) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Service.ProtoReflect.Descriptor instead.
func (*Service) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{4}
}
func (x *Service) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Service) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
type ListPodsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Deprecated: Do not use.
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
Selector *ResourceSelection `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
}
func (x *ListPodsRequest) Reset() {
*x = ListPodsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListPodsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListPodsRequest) ProtoMessage() {}
func (x *ListPodsRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListPodsRequest.ProtoReflect.Descriptor instead.
func (*ListPodsRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{5}
}
// Deprecated: Do not use.
func (x *ListPodsRequest) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
func (x *ListPodsRequest) GetSelector() *ResourceSelection {
if x != nil {
return x.Selector
}
return nil
}
type ListPodsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pods []*Pod `protobuf:"bytes,1,rep,name=pods,proto3" json:"pods,omitempty"`
}
func (x *ListPodsResponse) Reset() {
*x = ListPodsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListPodsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListPodsResponse) ProtoMessage() {}
func (x *ListPodsResponse) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListPodsResponse.ProtoReflect.Descriptor instead.
func (*ListPodsResponse) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{6}
}
func (x *ListPodsResponse) GetPods() []*Pod {
if x != nil {
return x.Pods
}
return nil
}
type Pod struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
PodIP string `protobuf:"bytes,2,opt,name=podIP,proto3" json:"podIP,omitempty"`
// Types that are assignable to Owner:
// *Pod_Deployment
// *Pod_ReplicaSet
// *Pod_ReplicationController
// *Pod_StatefulSet
// *Pod_DaemonSet
// *Pod_Job
Owner isPod_Owner `protobuf_oneof:"owner"`
Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
Added bool `protobuf:"varint,5,opt,name=added,proto3" json:"added,omitempty"` // true if this pod has a proxy sidecar (data plane)
SinceLastReport *duration.Duration `protobuf:"bytes,6,opt,name=sinceLastReport,proto3" json:"sinceLastReport,omitempty"`
ControllerNamespace string `protobuf:"bytes,7,opt,name=controllerNamespace,proto3" json:"controllerNamespace,omitempty"` // namespace of controller this pod reports to
ControlPlane bool `protobuf:"varint,8,opt,name=controlPlane,proto3" json:"controlPlane,omitempty"` // true if this pod is part of the control plane
Uptime *duration.Duration `protobuf:"bytes,9,opt,name=uptime,proto3" json:"uptime,omitempty"` // uptime of this pod
ProxyReady bool `protobuf:"varint,15,opt,name=proxyReady,proto3" json:"proxyReady,omitempty"` // true if this pod has proxy container and that one is in ready state
ProxyVersion string `protobuf:"bytes,16,opt,name=proxyVersion,proto3" json:"proxyVersion,omitempty"` // version of the proxy if present
ResourceVersion string `protobuf:"bytes,17,opt,name=resourceVersion,proto3" json:"resourceVersion,omitempty"` // resource version in the Kubernetes API
}
func (x *Pod) Reset() {
*x = Pod{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Pod) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Pod) ProtoMessage() {}
func (x *Pod) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Pod.ProtoReflect.Descriptor instead.
func (*Pod) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{7}
}
func (x *Pod) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Pod) GetPodIP() string {
if x != nil {
return x.PodIP
}
return ""
}
func (m *Pod) GetOwner() isPod_Owner {
if m != nil {
return m.Owner
}
return nil
}
func (x *Pod) GetDeployment() string {
if x, ok := x.GetOwner().(*Pod_Deployment); ok {
return x.Deployment
}
return ""
}
func (x *Pod) GetReplicaSet() string {
if x, ok := x.GetOwner().(*Pod_ReplicaSet); ok {
return x.ReplicaSet
}
return ""
}
func (x *Pod) GetReplicationController() string {
if x, ok := x.GetOwner().(*Pod_ReplicationController); ok {
return x.ReplicationController
}
return ""
}
func (x *Pod) GetStatefulSet() string {
if x, ok := x.GetOwner().(*Pod_StatefulSet); ok {
return x.StatefulSet
}
return ""
}
func (x *Pod) GetDaemonSet() string {
if x, ok := x.GetOwner().(*Pod_DaemonSet); ok {
return x.DaemonSet
}
return ""
}
func (x *Pod) GetJob() string {
if x, ok := x.GetOwner().(*Pod_Job); ok {
return x.Job
}
return ""
}
func (x *Pod) GetStatus() string {
if x != nil {
return x.Status
}
return ""
}
func (x *Pod) GetAdded() bool {
if x != nil {
return x.Added
}
return false
}
func (x *Pod) GetSinceLastReport() *duration.Duration {
if x != nil {
return x.SinceLastReport
}
return nil
}
func (x *Pod) GetControllerNamespace() string {
if x != nil {
return x.ControllerNamespace
}
return ""
}
func (x *Pod) GetControlPlane() bool {
if x != nil {
return x.ControlPlane
}
return false
}
func (x *Pod) GetUptime() *duration.Duration {
if x != nil {
return x.Uptime
}
return nil
}
func (x *Pod) GetProxyReady() bool {
if x != nil {
return x.ProxyReady
}
return false
}
func (x *Pod) GetProxyVersion() string {
if x != nil {
return x.ProxyVersion
}
return ""
}
func (x *Pod) GetResourceVersion() string {
if x != nil {
return x.ResourceVersion
}
return ""
}
type isPod_Owner interface {
isPod_Owner()
}
type Pod_Deployment struct {
Deployment string `protobuf:"bytes,3,opt,name=deployment,proto3,oneof"`
}
type Pod_ReplicaSet struct {
ReplicaSet string `protobuf:"bytes,10,opt,name=replica_set,json=replicaSet,proto3,oneof"`
}
type Pod_ReplicationController struct {
ReplicationController string `protobuf:"bytes,11,opt,name=replication_controller,json=replicationController,proto3,oneof"`
}
type Pod_StatefulSet struct {
StatefulSet string `protobuf:"bytes,12,opt,name=stateful_set,json=statefulSet,proto3,oneof"`
}
type Pod_DaemonSet struct {
DaemonSet string `protobuf:"bytes,13,opt,name=daemon_set,json=daemonSet,proto3,oneof"`
}
type Pod_Job struct {
Job string `protobuf:"bytes,14,opt,name=job,proto3,oneof"`
}
func (*Pod_Deployment) isPod_Owner() {}
func (*Pod_ReplicaSet) isPod_Owner() {}
func (*Pod_ReplicationController) isPod_Owner() {}
func (*Pod_StatefulSet) isPod_Owner() {}
func (*Pod_DaemonSet) isPod_Owner() {}
func (*Pod_Job) isPod_Owner() {}
// Deprecated: Do not use.
type TapRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Target:
// *TapRequest_Pod
// *TapRequest_Deployment
Target isTapRequest_Target `protobuf_oneof:"target"`
// validation of these fields happens on the server
MaxRps float32 `protobuf:"fixed32,3,opt,name=maxRps,proto3" json:"maxRps,omitempty"`
ToPort uint32 `protobuf:"varint,4,opt,name=toPort,proto3" json:"toPort,omitempty"`
ToIP string `protobuf:"bytes,5,opt,name=toIP,proto3" json:"toIP,omitempty"`
FromPort uint32 `protobuf:"varint,6,opt,name=fromPort,proto3" json:"fromPort,omitempty"`
FromIP string `protobuf:"bytes,7,opt,name=fromIP,proto3" json:"fromIP,omitempty"`
Scheme string `protobuf:"bytes,8,opt,name=scheme,proto3" json:"scheme,omitempty"`
Method string `protobuf:"bytes,9,opt,name=method,proto3" json:"method,omitempty"`
Authority string `protobuf:"bytes,10,opt,name=authority,proto3" json:"authority,omitempty"`
Path string `protobuf:"bytes,11,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *TapRequest) Reset() {
*x = TapRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapRequest) ProtoMessage() {}
func (x *TapRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapRequest.ProtoReflect.Descriptor instead.
func (*TapRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{8}
}
func (m *TapRequest) GetTarget() isTapRequest_Target {
if m != nil {
return m.Target
}
return nil
}
func (x *TapRequest) GetPod() string {
if x, ok := x.GetTarget().(*TapRequest_Pod); ok {
return x.Pod
}
return ""
}
func (x *TapRequest) GetDeployment() string {
if x, ok := x.GetTarget().(*TapRequest_Deployment); ok {
return x.Deployment
}
return ""
}
func (x *TapRequest) GetMaxRps() float32 {
if x != nil {
return x.MaxRps
}
return 0
}
func (x *TapRequest) GetToPort() uint32 {
if x != nil {
return x.ToPort
}
return 0
}
func (x *TapRequest) GetToIP() string {
if x != nil {
return x.ToIP
}
return ""
}
func (x *TapRequest) GetFromPort() uint32 {
if x != nil {
return x.FromPort
}
return 0
}
func (x *TapRequest) GetFromIP() string {
if x != nil {
return x.FromIP
}
return ""
}
func (x *TapRequest) GetScheme() string {
if x != nil {
return x.Scheme
}
return ""
}
func (x *TapRequest) GetMethod() string {
if x != nil {
return x.Method
}
return ""
}
func (x *TapRequest) GetAuthority() string {
if x != nil {
return x.Authority
}
return ""
}
func (x *TapRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type isTapRequest_Target interface {
isTapRequest_Target()
}
type TapRequest_Pod struct {
Pod string `protobuf:"bytes,1,opt,name=pod,proto3,oneof"`
}
type TapRequest_Deployment struct {
Deployment string `protobuf:"bytes,2,opt,name=deployment,proto3,oneof"`
}
func (*TapRequest_Pod) isTapRequest_Target() {}
func (*TapRequest_Deployment) isTapRequest_Target() {}
// A tap request over kubernetes resources.
//
// This is used only by the tap APIServer.
type TapByResourceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Describes the kubernetes pods that should be tapped.
Target *ResourceSelection `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
// Selects over events to be reported.
Match *TapByResourceRequest_Match `protobuf:"bytes,2,opt,name=match,proto3" json:"match,omitempty"`
// Limits the number of events to be inspected.
MaxRps float32 `protobuf:"fixed32,3,opt,name=maxRps,proto3" json:"maxRps,omitempty"`
// Conditionally extracts components from requests and responses to include
// in tap events
Extract *TapByResourceRequest_Extract `protobuf:"bytes,4,opt,name=extract,proto3" json:"extract,omitempty"`
}
func (x *TapByResourceRequest) Reset() {
*x = TapByResourceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest) ProtoMessage() {}
func (x *TapByResourceRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9}
}
func (x *TapByResourceRequest) GetTarget() *ResourceSelection {
if x != nil {
return x.Target
}
return nil
}
func (x *TapByResourceRequest) GetMatch() *TapByResourceRequest_Match {
if x != nil {
return x.Match
}
return nil
}
func (x *TapByResourceRequest) GetMaxRps() float32 {
if x != nil {
return x.MaxRps
}
return 0
}
func (x *TapByResourceRequest) GetExtract() *TapByResourceRequest_Extract {
if x != nil {
return x.Extract
}
return nil
}
type HttpMethod struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Type:
// *HttpMethod_Registered_
// *HttpMethod_Unregistered
Type isHttpMethod_Type `protobuf_oneof:"type"`
}
func (x *HttpMethod) Reset() {
*x = HttpMethod{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HttpMethod) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HttpMethod) ProtoMessage() {}
func (x *HttpMethod) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HttpMethod.ProtoReflect.Descriptor instead.
func (*HttpMethod) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{10}
}
func (m *HttpMethod) GetType() isHttpMethod_Type {
if m != nil {
return m.Type
}
return nil
}
func (x *HttpMethod) GetRegistered() HttpMethod_Registered {
if x, ok := x.GetType().(*HttpMethod_Registered_); ok {
return x.Registered
}
return HttpMethod_GET
}
func (x *HttpMethod) GetUnregistered() string {
if x, ok := x.GetType().(*HttpMethod_Unregistered); ok {
return x.Unregistered
}
return ""
}
type isHttpMethod_Type interface {
isHttpMethod_Type()
}
type HttpMethod_Registered_ struct {
Registered HttpMethod_Registered `protobuf:"varint,1,opt,name=registered,proto3,enum=linkerd2.public.HttpMethod_Registered,oneof"`
}
type HttpMethod_Unregistered struct {
Unregistered string `protobuf:"bytes,2,opt,name=unregistered,proto3,oneof"`
}
func (*HttpMethod_Registered_) isHttpMethod_Type() {}
func (*HttpMethod_Unregistered) isHttpMethod_Type() {}
type Scheme struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Type:
// *Scheme_Registered_
// *Scheme_Unregistered
Type isScheme_Type `protobuf_oneof:"type"`
}
func (x *Scheme) Reset() {
*x = Scheme{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Scheme) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Scheme) ProtoMessage() {}
func (x *Scheme) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Scheme.ProtoReflect.Descriptor instead.
func (*Scheme) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{11}
}
func (m *Scheme) GetType() isScheme_Type {
if m != nil {
return m.Type
}
return nil
}
func (x *Scheme) GetRegistered() Scheme_Registered {
if x, ok := x.GetType().(*Scheme_Registered_); ok {
return x.Registered
}
return Scheme_HTTP
}
func (x *Scheme) GetUnregistered() string {
if x, ok := x.GetType().(*Scheme_Unregistered); ok {
return x.Unregistered
}
return ""
}
type isScheme_Type interface {
isScheme_Type()
}
type Scheme_Registered_ struct {
Registered Scheme_Registered `protobuf:"varint,1,opt,name=registered,proto3,enum=linkerd2.public.Scheme_Registered,oneof"`
}
type Scheme_Unregistered struct {
Unregistered string `protobuf:"bytes,2,opt,name=unregistered,proto3,oneof"`
}
func (*Scheme_Registered_) isScheme_Type() {}
func (*Scheme_Unregistered) isScheme_Type() {}
type Headers struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Headers []*Headers_Header `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
}
func (x *Headers) Reset() {
*x = Headers{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Headers) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Headers) ProtoMessage() {}
func (x *Headers) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Headers.ProtoReflect.Descriptor instead.
func (*Headers) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{12}
}
func (x *Headers) GetHeaders() []*Headers_Header {
if x != nil {
return x.Headers
}
return nil
}
type IPAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Ip:
// *IPAddress_Ipv4
// *IPAddress_Ipv6
Ip isIPAddress_Ip `protobuf_oneof:"ip"`
}
func (x *IPAddress) Reset() {
*x = IPAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPAddress) ProtoMessage() {}
func (x *IPAddress) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IPAddress.ProtoReflect.Descriptor instead.
func (*IPAddress) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{13}
}
func (m *IPAddress) GetIp() isIPAddress_Ip {
if m != nil {
return m.Ip
}
return nil
}
func (x *IPAddress) GetIpv4() uint32 {
if x, ok := x.GetIp().(*IPAddress_Ipv4); ok {
return x.Ipv4
}
return 0
}
func (x *IPAddress) GetIpv6() *IPv6 {
if x, ok := x.GetIp().(*IPAddress_Ipv6); ok {
return x.Ipv6
}
return nil
}
type isIPAddress_Ip interface {
isIPAddress_Ip()
}
type IPAddress_Ipv4 struct {
Ipv4 uint32 `protobuf:"fixed32,1,opt,name=ipv4,proto3,oneof"`
}
type IPAddress_Ipv6 struct {
Ipv6 *IPv6 `protobuf:"bytes,2,opt,name=ipv6,proto3,oneof"`
}
func (*IPAddress_Ipv4) isIPAddress_Ip() {}
func (*IPAddress_Ipv6) isIPAddress_Ip() {}
type IPv6 struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
First uint64 `protobuf:"fixed64,1,opt,name=first,proto3" json:"first,omitempty"` // hextets 1-4
Last uint64 `protobuf:"fixed64,2,opt,name=last,proto3" json:"last,omitempty"` // hextets 5-8
}
func (x *IPv6) Reset() {
*x = IPv6{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPv6) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPv6) ProtoMessage() {}
func (x *IPv6) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IPv6.ProtoReflect.Descriptor instead.
func (*IPv6) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{14}
}
func (x *IPv6) GetFirst() uint64 {
if x != nil {
return x.First
}
return 0
}
func (x *IPv6) GetLast() uint64 {
if x != nil {
return x.Last
}
return 0
}
type TcpAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ip *IPAddress `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}
func (x *TcpAddress) Reset() {
*x = TcpAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TcpAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TcpAddress) ProtoMessage() {}
func (x *TcpAddress) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TcpAddress.ProtoReflect.Descriptor instead.
func (*TcpAddress) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{15}
}
func (x *TcpAddress) GetIp() *IPAddress {
if x != nil {
return x.Ip
}
return nil
}
func (x *TcpAddress) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
type Eos struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to End:
// *Eos_GrpcStatusCode
// *Eos_ResetErrorCode
End isEos_End `protobuf_oneof:"end"`
}
func (x *Eos) Reset() {
*x = Eos{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Eos) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Eos) ProtoMessage() {}
func (x *Eos) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Eos.ProtoReflect.Descriptor instead.
func (*Eos) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{16}
}
func (m *Eos) GetEnd() isEos_End {
if m != nil {
return m.End
}
return nil
}
func (x *Eos) GetGrpcStatusCode() uint32 {
if x, ok := x.GetEnd().(*Eos_GrpcStatusCode); ok {
return x.GrpcStatusCode
}
return 0
}
func (x *Eos) GetResetErrorCode() uint32 {
if x, ok := x.GetEnd().(*Eos_ResetErrorCode); ok {
return x.ResetErrorCode
}
return 0
}
type isEos_End interface {
isEos_End()
}
type Eos_GrpcStatusCode struct {
GrpcStatusCode uint32 `protobuf:"varint,1,opt,name=grpc_status_code,json=grpcStatusCode,proto3,oneof"`
}
type Eos_ResetErrorCode struct {
ResetErrorCode uint32 `protobuf:"varint,2,opt,name=reset_error_code,json=resetErrorCode,proto3,oneof"`
}
func (*Eos_GrpcStatusCode) isEos_End() {}
func (*Eos_ResetErrorCode) isEos_End() {}
// This is used only by the tap APIServer.
type TapEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Source *TcpAddress `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
SourceMeta *TapEvent_EndpointMeta `protobuf:"bytes,5,opt,name=source_meta,json=sourceMeta,proto3" json:"source_meta,omitempty"`
Destination *TcpAddress `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"`
DestinationMeta *TapEvent_EndpointMeta `protobuf:"bytes,4,opt,name=destination_meta,json=destinationMeta,proto3" json:"destination_meta,omitempty"`
RouteMeta *TapEvent_RouteMeta `protobuf:"bytes,7,opt,name=route_meta,json=routeMeta,proto3" json:"route_meta,omitempty"`
ProxyDirection TapEvent_ProxyDirection `protobuf:"varint,6,opt,name=proxy_direction,json=proxyDirection,proto3,enum=linkerd2.public.TapEvent_ProxyDirection" json:"proxy_direction,omitempty"`
// Types that are assignable to Event:
// *TapEvent_Http_
Event isTapEvent_Event `protobuf_oneof:"event"`
}
func (x *TapEvent) Reset() {
*x = TapEvent{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent) ProtoMessage() {}
func (x *TapEvent) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent.ProtoReflect.Descriptor instead.
func (*TapEvent) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17}
}
func (x *TapEvent) GetSource() *TcpAddress {
if x != nil {
return x.Source
}
return nil
}
func (x *TapEvent) GetSourceMeta() *TapEvent_EndpointMeta {
if x != nil {
return x.SourceMeta
}
return nil
}
func (x *TapEvent) GetDestination() *TcpAddress {
if x != nil {
return x.Destination
}
return nil
}
func (x *TapEvent) GetDestinationMeta() *TapEvent_EndpointMeta {
if x != nil {
return x.DestinationMeta
}
return nil
}
func (x *TapEvent) GetRouteMeta() *TapEvent_RouteMeta {
if x != nil {
return x.RouteMeta
}
return nil
}
func (x *TapEvent) GetProxyDirection() TapEvent_ProxyDirection {
if x != nil {
return x.ProxyDirection
}
return TapEvent_UNKNOWN
}
func (m *TapEvent) GetEvent() isTapEvent_Event {
if m != nil {
return m.Event
}
return nil
}
func (x *TapEvent) GetHttp() *TapEvent_Http {
if x, ok := x.GetEvent().(*TapEvent_Http_); ok {
return x.Http
}
return nil
}
type isTapEvent_Event interface {
isTapEvent_Event()
}
type TapEvent_Http_ struct {
Http *TapEvent_Http `protobuf:"bytes,3,opt,name=http,proto3,oneof"`
}
func (*TapEvent_Http_) isTapEvent_Event() {}
type ApiError struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
}
func (x *ApiError) Reset() {
*x = ApiError{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApiError) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApiError) ProtoMessage() {}
func (x *ApiError) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ApiError.ProtoReflect.Descriptor instead.
func (*ApiError) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{18}
}
func (x *ApiError) GetError() string {
if x != nil {
return x.Error
}
return ""
}
type PodErrors struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Errors []*PodErrors_PodError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
}
func (x *PodErrors) Reset() {
*x = PodErrors{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PodErrors) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PodErrors) ProtoMessage() {}
func (x *PodErrors) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PodErrors.ProtoReflect.Descriptor instead.
func (*PodErrors) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{19}
}
func (x *PodErrors) GetErrors() []*PodErrors_PodError {
if x != nil {
return x.Errors
}
return nil
}
type Resource struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The namespace the resource is in.
//
// If empty, indicates all namespaces should be considered.
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
// The type of resource.
//
// This can be:
// - "all" -- includes all Kubernetes resource types only
// - "authority" -- a special resource type derived from request `:authority` values
// - Otherwise, the resource type may be any Kubernetes resource (e.g. "namespace", "deployment").
Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
// An optional resource name.
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *Resource) Reset() {
*x = Resource{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Resource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Resource) ProtoMessage() {}
func (x *Resource) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Resource.ProtoReflect.Descriptor instead.
func (*Resource) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{20}
}
func (x *Resource) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
func (x *Resource) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Resource) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type ResourceSelection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifies a Kubernetes resource.
Resource *Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
// A string-formatted Kubernetes label selector as passed to `kubectl get
// --selector`.
//
// XXX in the future this may be superseded by a data structure that more
// richly describes a parsed label selector.
LabelSelector string `protobuf:"bytes,2,opt,name=label_selector,json=labelSelector,proto3" json:"label_selector,omitempty"`
}
func (x *ResourceSelection) Reset() {
*x = ResourceSelection{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResourceSelection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResourceSelection) ProtoMessage() {}
func (x *ResourceSelection) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResourceSelection.ProtoReflect.Descriptor instead.
func (*ResourceSelection) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{21}
}
func (x *ResourceSelection) GetResource() *Resource {
if x != nil {
return x.Resource
}
return nil
}
func (x *ResourceSelection) GetLabelSelector() string {
if x != nil {
return x.LabelSelector
}
return ""
}
type ResourceError struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Resource *Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
}
func (x *ResourceError) Reset() {
*x = ResourceError{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResourceError) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResourceError) ProtoMessage() {}
func (x *ResourceError) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResourceError.ProtoReflect.Descriptor instead.
func (*ResourceError) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{22}
}
func (x *ResourceError) GetResource() *Resource {
if x != nil {
return x.Resource
}
return nil
}
func (x *ResourceError) GetError() string {
if x != nil {
return x.Error
}
return ""
}
type StatSummaryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Selector *ResourceSelection `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
TimeWindow string `protobuf:"bytes,2,opt,name=time_window,json=timeWindow,proto3" json:"time_window,omitempty"`
// Types that are assignable to Outbound:
// *StatSummaryRequest_None
// *StatSummaryRequest_ToResource
// *StatSummaryRequest_FromResource
Outbound isStatSummaryRequest_Outbound `protobuf_oneof:"outbound"`
SkipStats bool `protobuf:"varint,6,opt,name=skip_stats,json=skipStats,proto3" json:"skip_stats,omitempty"` // true if we want to skip stats from Prometheus
TcpStats bool `protobuf:"varint,7,opt,name=tcp_stats,json=tcpStats,proto3" json:"tcp_stats,omitempty"`
}
func (x *StatSummaryRequest) Reset() {
*x = StatSummaryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatSummaryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatSummaryRequest) ProtoMessage() {}
func (x *StatSummaryRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatSummaryRequest.ProtoReflect.Descriptor instead.
func (*StatSummaryRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{23}
}
func (x *StatSummaryRequest) GetSelector() *ResourceSelection {
if x != nil {
return x.Selector
}
return nil
}
func (x *StatSummaryRequest) GetTimeWindow() string {
if x != nil {
return x.TimeWindow
}
return ""
}
func (m *StatSummaryRequest) GetOutbound() isStatSummaryRequest_Outbound {
if m != nil {
return m.Outbound
}
return nil
}
func (x *StatSummaryRequest) GetNone() *Empty {
if x, ok := x.GetOutbound().(*StatSummaryRequest_None); ok {
return x.None
}
return nil
}
func (x *StatSummaryRequest) GetToResource() *Resource {
if x, ok := x.GetOutbound().(*StatSummaryRequest_ToResource); ok {
return x.ToResource
}
return nil
}
func (x *StatSummaryRequest) GetFromResource() *Resource {
if x, ok := x.GetOutbound().(*StatSummaryRequest_FromResource); ok {
return x.FromResource
}
return nil
}
func (x *StatSummaryRequest) GetSkipStats() bool {
if x != nil {
return x.SkipStats
}
return false
}
func (x *StatSummaryRequest) GetTcpStats() bool {
if x != nil {
return x.TcpStats
}
return false
}
type isStatSummaryRequest_Outbound interface {
isStatSummaryRequest_Outbound()
}
type StatSummaryRequest_None struct {
None *Empty `protobuf:"bytes,3,opt,name=none,proto3,oneof"`
}
type StatSummaryRequest_ToResource struct {
ToResource *Resource `protobuf:"bytes,4,opt,name=to_resource,json=toResource,proto3,oneof"`
}
type StatSummaryRequest_FromResource struct {
FromResource *Resource `protobuf:"bytes,5,opt,name=from_resource,json=fromResource,proto3,oneof"`
}
func (*StatSummaryRequest_None) isStatSummaryRequest_Outbound() {}
func (*StatSummaryRequest_ToResource) isStatSummaryRequest_Outbound() {}
func (*StatSummaryRequest_FromResource) isStatSummaryRequest_Outbound() {}
type StatSummaryResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Response:
// *StatSummaryResponse_Ok_
// *StatSummaryResponse_Error
Response isStatSummaryResponse_Response `protobuf_oneof:"response"`
}
func (x *StatSummaryResponse) Reset() {
*x = StatSummaryResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatSummaryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatSummaryResponse) ProtoMessage() {}
func (x *StatSummaryResponse) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatSummaryResponse.ProtoReflect.Descriptor instead.
func (*StatSummaryResponse) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{24}
}
func (m *StatSummaryResponse) GetResponse() isStatSummaryResponse_Response {
if m != nil {
return m.Response
}
return nil
}
func (x *StatSummaryResponse) GetOk() *StatSummaryResponse_Ok {
if x, ok := x.GetResponse().(*StatSummaryResponse_Ok_); ok {
return x.Ok
}
return nil
}
func (x *StatSummaryResponse) GetError() *ResourceError {
if x, ok := x.GetResponse().(*StatSummaryResponse_Error); ok {
return x.Error
}
return nil
}
type isStatSummaryResponse_Response interface {
isStatSummaryResponse_Response()
}
type StatSummaryResponse_Ok_ struct {
Ok *StatSummaryResponse_Ok `protobuf:"bytes,1,opt,name=ok,proto3,oneof"`
}
type StatSummaryResponse_Error struct {
Error *ResourceError `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}
func (*StatSummaryResponse_Ok_) isStatSummaryResponse_Response() {}
func (*StatSummaryResponse_Error) isStatSummaryResponse_Response() {}
type BasicStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SuccessCount uint64 `protobuf:"varint,1,opt,name=success_count,json=successCount,proto3" json:"success_count,omitempty"`
FailureCount uint64 `protobuf:"varint,2,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"`
LatencyMsP50 uint64 `protobuf:"varint,3,opt,name=latency_ms_p50,json=latencyMsP50,proto3" json:"latency_ms_p50,omitempty"`
LatencyMsP95 uint64 `protobuf:"varint,4,opt,name=latency_ms_p95,json=latencyMsP95,proto3" json:"latency_ms_p95,omitempty"`
LatencyMsP99 uint64 `protobuf:"varint,5,opt,name=latency_ms_p99,json=latencyMsP99,proto3" json:"latency_ms_p99,omitempty"`
ActualSuccessCount uint64 `protobuf:"varint,6,opt,name=actual_success_count,json=actualSuccessCount,proto3" json:"actual_success_count,omitempty"`
ActualFailureCount uint64 `protobuf:"varint,7,opt,name=actual_failure_count,json=actualFailureCount,proto3" json:"actual_failure_count,omitempty"`
}
func (x *BasicStats) Reset() {
*x = BasicStats{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BasicStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BasicStats) ProtoMessage() {}
func (x *BasicStats) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BasicStats.ProtoReflect.Descriptor instead.
func (*BasicStats) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{25}
}
func (x *BasicStats) GetSuccessCount() uint64 {
if x != nil {
return x.SuccessCount
}
return 0
}
func (x *BasicStats) GetFailureCount() uint64 {
if x != nil {
return x.FailureCount
}
return 0
}
func (x *BasicStats) GetLatencyMsP50() uint64 {
if x != nil {
return x.LatencyMsP50
}
return 0
}
func (x *BasicStats) GetLatencyMsP95() uint64 {
if x != nil {
return x.LatencyMsP95
}
return 0
}
func (x *BasicStats) GetLatencyMsP99() uint64 {
if x != nil {
return x.LatencyMsP99
}
return 0
}
func (x *BasicStats) GetActualSuccessCount() uint64 {
if x != nil {
return x.ActualSuccessCount
}
return 0
}
func (x *BasicStats) GetActualFailureCount() uint64 {
if x != nil {
return x.ActualFailureCount
}
return 0
}
type TcpStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// number of currently open connections
OpenConnections uint64 `protobuf:"varint,1,opt,name=open_connections,json=openConnections,proto3" json:"open_connections,omitempty"`
// total count of bytes read from peers
ReadBytesTotal uint64 `protobuf:"varint,2,opt,name=read_bytes_total,json=readBytesTotal,proto3" json:"read_bytes_total,omitempty"`
// total count of bytes written to peers
WriteBytesTotal uint64 `protobuf:"varint,3,opt,name=write_bytes_total,json=writeBytesTotal,proto3" json:"write_bytes_total,omitempty"`
}
func (x *TcpStats) Reset() {
*x = TcpStats{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TcpStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TcpStats) ProtoMessage() {}
func (x *TcpStats) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TcpStats.ProtoReflect.Descriptor instead.
func (*TcpStats) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{26}
}
func (x *TcpStats) GetOpenConnections() uint64 {
if x != nil {
return x.OpenConnections
}
return 0
}
func (x *TcpStats) GetReadBytesTotal() uint64 {
if x != nil {
return x.ReadBytesTotal
}
return 0
}
func (x *TcpStats) GetWriteBytesTotal() uint64 {
if x != nil {
return x.WriteBytesTotal
}
return 0
}
type TrafficSplitStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Apex string `protobuf:"bytes,2,opt,name=apex,proto3" json:"apex,omitempty"`
Leaf string `protobuf:"bytes,3,opt,name=leaf,proto3" json:"leaf,omitempty"`
Weight string `protobuf:"bytes,4,opt,name=weight,proto3" json:"weight,omitempty"`
}
func (x *TrafficSplitStats) Reset() {
*x = TrafficSplitStats{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrafficSplitStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrafficSplitStats) ProtoMessage() {}
func (x *TrafficSplitStats) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrafficSplitStats.ProtoReflect.Descriptor instead.
func (*TrafficSplitStats) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{27}
}
func (x *TrafficSplitStats) GetApex() string {
if x != nil {
return x.Apex
}
return ""
}
func (x *TrafficSplitStats) GetLeaf() string {
if x != nil {
return x.Leaf
}
return ""
}
func (x *TrafficSplitStats) GetWeight() string {
if x != nil {
return x.Weight
}
return ""
}
type StatTable struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Table:
// *StatTable_PodGroup_
Table isStatTable_Table `protobuf_oneof:"table"`
}
func (x *StatTable) Reset() {
*x = StatTable{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatTable) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatTable) ProtoMessage() {}
func (x *StatTable) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatTable.ProtoReflect.Descriptor instead.
func (*StatTable) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{28}
}
func (m *StatTable) GetTable() isStatTable_Table {
if m != nil {
return m.Table
}
return nil
}
func (x *StatTable) GetPodGroup() *StatTable_PodGroup {
if x, ok := x.GetTable().(*StatTable_PodGroup_); ok {
return x.PodGroup
}
return nil
}
type isStatTable_Table interface {
isStatTable_Table()
}
type StatTable_PodGroup_ struct {
PodGroup *StatTable_PodGroup `protobuf:"bytes,1,opt,name=pod_group,json=podGroup,proto3,oneof"`
}
func (*StatTable_PodGroup_) isStatTable_Table() {}
type EdgesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Selector *ResourceSelection `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
}
func (x *EdgesRequest) Reset() {
*x = EdgesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EdgesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EdgesRequest) ProtoMessage() {}
func (x *EdgesRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EdgesRequest.ProtoReflect.Descriptor instead.
func (*EdgesRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{29}
}
func (x *EdgesRequest) GetSelector() *ResourceSelection {
if x != nil {
return x.Selector
}
return nil
}
type EdgesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Response:
// *EdgesResponse_Ok_
// *EdgesResponse_Error
Response isEdgesResponse_Response `protobuf_oneof:"response"`
}
func (x *EdgesResponse) Reset() {
*x = EdgesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EdgesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EdgesResponse) ProtoMessage() {}
func (x *EdgesResponse) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EdgesResponse.ProtoReflect.Descriptor instead.
func (*EdgesResponse) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{30}
}
func (m *EdgesResponse) GetResponse() isEdgesResponse_Response {
if m != nil {
return m.Response
}
return nil
}
func (x *EdgesResponse) GetOk() *EdgesResponse_Ok {
if x, ok := x.GetResponse().(*EdgesResponse_Ok_); ok {
return x.Ok
}
return nil
}
func (x *EdgesResponse) GetError() *ResourceError {
if x, ok := x.GetResponse().(*EdgesResponse_Error); ok {
return x.Error
}
return nil
}
type isEdgesResponse_Response interface {
isEdgesResponse_Response()
}
type EdgesResponse_Ok_ struct {
Ok *EdgesResponse_Ok `protobuf:"bytes,1,opt,name=ok,proto3,oneof"`
}
type EdgesResponse_Error struct {
Error *ResourceError `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}
func (*EdgesResponse_Ok_) isEdgesResponse_Response() {}
func (*EdgesResponse_Error) isEdgesResponse_Response() {}
type Edge struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Src *Resource `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"`
Dst *Resource `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"`
ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
ServerId string `protobuf:"bytes,4,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
NoIdentityMsg string `protobuf:"bytes,5,opt,name=no_identity_msg,json=noIdentityMsg,proto3" json:"no_identity_msg,omitempty"`
}
func (x *Edge) Reset() {
*x = Edge{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Edge) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Edge) ProtoMessage() {}
func (x *Edge) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Edge.ProtoReflect.Descriptor instead.
func (*Edge) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{31}
}
func (x *Edge) GetSrc() *Resource {
if x != nil {
return x.Src
}
return nil
}
func (x *Edge) GetDst() *Resource {
if x != nil {
return x.Dst
}
return nil
}
func (x *Edge) GetClientId() string {
if x != nil {
return x.ClientId
}
return ""
}
func (x *Edge) GetServerId() string {
if x != nil {
return x.ServerId
}
return ""
}
func (x *Edge) GetNoIdentityMsg() string {
if x != nil {
return x.NoIdentityMsg
}
return ""
}
type TopRoutesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Selector *ResourceSelection `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
TimeWindow string `protobuf:"bytes,2,opt,name=time_window,json=timeWindow,proto3" json:"time_window,omitempty"`
// Types that are assignable to Outbound:
// *TopRoutesRequest_None
// *TopRoutesRequest_ToResource
Outbound isTopRoutesRequest_Outbound `protobuf_oneof:"outbound"`
}
func (x *TopRoutesRequest) Reset() {
*x = TopRoutesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TopRoutesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TopRoutesRequest) ProtoMessage() {}
func (x *TopRoutesRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TopRoutesRequest.ProtoReflect.Descriptor instead.
func (*TopRoutesRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{32}
}
func (x *TopRoutesRequest) GetSelector() *ResourceSelection {
if x != nil {
return x.Selector
}
return nil
}
func (x *TopRoutesRequest) GetTimeWindow() string {
if x != nil {
return x.TimeWindow
}
return ""
}
func (m *TopRoutesRequest) GetOutbound() isTopRoutesRequest_Outbound {
if m != nil {
return m.Outbound
}
return nil
}
func (x *TopRoutesRequest) GetNone() *Empty {
if x, ok := x.GetOutbound().(*TopRoutesRequest_None); ok {
return x.None
}
return nil
}
func (x *TopRoutesRequest) GetToResource() *Resource {
if x, ok := x.GetOutbound().(*TopRoutesRequest_ToResource); ok {
return x.ToResource
}
return nil
}
type isTopRoutesRequest_Outbound interface {
isTopRoutesRequest_Outbound()
}
type TopRoutesRequest_None struct {
None *Empty `protobuf:"bytes,3,opt,name=none,proto3,oneof"`
}
type TopRoutesRequest_ToResource struct {
ToResource *Resource `protobuf:"bytes,7,opt,name=to_resource,json=toResource,proto3,oneof"`
}
func (*TopRoutesRequest_None) isTopRoutesRequest_Outbound() {}
func (*TopRoutesRequest_ToResource) isTopRoutesRequest_Outbound() {}
type TopRoutesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Response:
// *TopRoutesResponse_Error
// *TopRoutesResponse_Ok_
Response isTopRoutesResponse_Response `protobuf_oneof:"response"`
}
func (x *TopRoutesResponse) Reset() {
*x = TopRoutesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TopRoutesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TopRoutesResponse) ProtoMessage() {}
func (x *TopRoutesResponse) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TopRoutesResponse.ProtoReflect.Descriptor instead.
func (*TopRoutesResponse) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{33}
}
func (m *TopRoutesResponse) GetResponse() isTopRoutesResponse_Response {
if m != nil {
return m.Response
}
return nil
}
func (x *TopRoutesResponse) GetError() *ResourceError {
if x, ok := x.GetResponse().(*TopRoutesResponse_Error); ok {
return x.Error
}
return nil
}
func (x *TopRoutesResponse) GetOk() *TopRoutesResponse_Ok {
if x, ok := x.GetResponse().(*TopRoutesResponse_Ok_); ok {
return x.Ok
}
return nil
}
type isTopRoutesResponse_Response interface {
isTopRoutesResponse_Response()
}
type TopRoutesResponse_Error struct {
Error *ResourceError `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}
type TopRoutesResponse_Ok_ struct {
Ok *TopRoutesResponse_Ok `protobuf:"bytes,3,opt,name=ok,proto3,oneof"`
}
func (*TopRoutesResponse_Error) isTopRoutesResponse_Response() {}
func (*TopRoutesResponse_Ok_) isTopRoutesResponse_Response() {}
type RouteTable struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rows []*RouteTable_Row `protobuf:"bytes,1,rep,name=rows,proto3" json:"rows,omitempty"`
Resource string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
}
func (x *RouteTable) Reset() {
*x = RouteTable{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteTable) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteTable) ProtoMessage() {}
func (x *RouteTable) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RouteTable.ProtoReflect.Descriptor instead.
func (*RouteTable) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{34}
}
func (x *RouteTable) GetRows() []*RouteTable_Row {
if x != nil {
return x.Rows
}
return nil
}
func (x *RouteTable) GetResource() string {
if x != nil {
return x.Resource
}
return ""
}
type GatewaysTable struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rows []*GatewaysTable_Row `protobuf:"bytes,1,rep,name=rows,proto3" json:"rows,omitempty"`
}
func (x *GatewaysTable) Reset() {
*x = GatewaysTable{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewaysTable) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatewaysTable) ProtoMessage() {}
func (x *GatewaysTable) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatewaysTable.ProtoReflect.Descriptor instead.
func (*GatewaysTable) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{35}
}
func (x *GatewaysTable) GetRows() []*GatewaysTable_Row {
if x != nil {
return x.Rows
}
return nil
}
type GatewaysRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RemoteClusterName string `protobuf:"bytes,1,opt,name=remote_cluster_name,json=remoteClusterName,proto3" json:"remote_cluster_name,omitempty"`
GatewayNamespace string `protobuf:"bytes,2,opt,name=gateway_namespace,json=gatewayNamespace,proto3" json:"gateway_namespace,omitempty"`
TimeWindow string `protobuf:"bytes,3,opt,name=time_window,json=timeWindow,proto3" json:"time_window,omitempty"`
}
func (x *GatewaysRequest) Reset() {
*x = GatewaysRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewaysRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatewaysRequest) ProtoMessage() {}
func (x *GatewaysRequest) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatewaysRequest.ProtoReflect.Descriptor instead.
func (*GatewaysRequest) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{36}
}
func (x *GatewaysRequest) GetRemoteClusterName() string {
if x != nil {
return x.RemoteClusterName
}
return ""
}
func (x *GatewaysRequest) GetGatewayNamespace() string {
if x != nil {
return x.GatewayNamespace
}
return ""
}
func (x *GatewaysRequest) GetTimeWindow() string {
if x != nil {
return x.TimeWindow
}
return ""
}
type GatewaysResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Response:
// *GatewaysResponse_Ok_
// *GatewaysResponse_Error
Response isGatewaysResponse_Response `protobuf_oneof:"response"`
}
func (x *GatewaysResponse) Reset() {
*x = GatewaysResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewaysResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatewaysResponse) ProtoMessage() {}
func (x *GatewaysResponse) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatewaysResponse.ProtoReflect.Descriptor instead.
func (*GatewaysResponse) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{37}
}
func (m *GatewaysResponse) GetResponse() isGatewaysResponse_Response {
if m != nil {
return m.Response
}
return nil
}
func (x *GatewaysResponse) GetOk() *GatewaysResponse_Ok {
if x, ok := x.GetResponse().(*GatewaysResponse_Ok_); ok {
return x.Ok
}
return nil
}
func (x *GatewaysResponse) GetError() *ResourceError {
if x, ok := x.GetResponse().(*GatewaysResponse_Error); ok {
return x.Error
}
return nil
}
type isGatewaysResponse_Response interface {
isGatewaysResponse_Response()
}
type GatewaysResponse_Ok_ struct {
Ok *GatewaysResponse_Ok `protobuf:"bytes,1,opt,name=ok,proto3,oneof"`
}
type GatewaysResponse_Error struct {
Error *ResourceError `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}
func (*GatewaysResponse_Ok_) isGatewaysResponse_Response() {}
func (*GatewaysResponse_Error) isGatewaysResponse_Response() {}
type TapByResourceRequest_Match struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Match:
// *TapByResourceRequest_Match_All
// *TapByResourceRequest_Match_Any
// *TapByResourceRequest_Match_Not
// *TapByResourceRequest_Match_Destinations
// *TapByResourceRequest_Match_Http_
Match isTapByResourceRequest_Match_Match `protobuf_oneof:"match"`
}
func (x *TapByResourceRequest_Match) Reset() {
*x = TapByResourceRequest_Match{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest_Match) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest_Match) ProtoMessage() {}
func (x *TapByResourceRequest_Match) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest_Match.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest_Match) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9, 0}
}
func (m *TapByResourceRequest_Match) GetMatch() isTapByResourceRequest_Match_Match {
if m != nil {
return m.Match
}
return nil
}
func (x *TapByResourceRequest_Match) GetAll() *TapByResourceRequest_Match_Seq {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_All); ok {
return x.All
}
return nil
}
func (x *TapByResourceRequest_Match) GetAny() *TapByResourceRequest_Match_Seq {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Any); ok {
return x.Any
}
return nil
}
func (x *TapByResourceRequest_Match) GetNot() *TapByResourceRequest_Match {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Not); ok {
return x.Not
}
return nil
}
func (x *TapByResourceRequest_Match) GetDestinations() *ResourceSelection {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Destinations); ok {
return x.Destinations
}
return nil
}
func (x *TapByResourceRequest_Match) GetHttp() *TapByResourceRequest_Match_Http {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Http_); ok {
return x.Http
}
return nil
}
type isTapByResourceRequest_Match_Match interface {
isTapByResourceRequest_Match_Match()
}
type TapByResourceRequest_Match_All struct {
// If empty, matches all messages.
All *TapByResourceRequest_Match_Seq `protobuf:"bytes,1,opt,name=all,proto3,oneof"`
}
type TapByResourceRequest_Match_Any struct {
// If empty, matches no messages.
Any *TapByResourceRequest_Match_Seq `protobuf:"bytes,2,opt,name=any,proto3,oneof"`
}
type TapByResourceRequest_Match_Not struct {
// Inverts the inner match.
Not *TapByResourceRequest_Match `protobuf:"bytes,3,opt,name=not,proto3,oneof"`
}
type TapByResourceRequest_Match_Destinations struct {
// Matches events being sent to any of the selected destinations.
Destinations *ResourceSelection `protobuf:"bytes,4,opt,name=destinations,proto3,oneof"`
}
type TapByResourceRequest_Match_Http_ struct {
// Matches HTTP requests by their metadata.
Http *TapByResourceRequest_Match_Http `protobuf:"bytes,5,opt,name=http,proto3,oneof"`
}
func (*TapByResourceRequest_Match_All) isTapByResourceRequest_Match_Match() {}
func (*TapByResourceRequest_Match_Any) isTapByResourceRequest_Match_Match() {}
func (*TapByResourceRequest_Match_Not) isTapByResourceRequest_Match_Match() {}
func (*TapByResourceRequest_Match_Destinations) isTapByResourceRequest_Match_Match() {}
func (*TapByResourceRequest_Match_Http_) isTapByResourceRequest_Match_Match() {}
type TapByResourceRequest_Extract struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Extract:
// *TapByResourceRequest_Extract_Http_
Extract isTapByResourceRequest_Extract_Extract `protobuf_oneof:"extract"`
}
func (x *TapByResourceRequest_Extract) Reset() {
*x = TapByResourceRequest_Extract{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest_Extract) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest_Extract) ProtoMessage() {}
func (x *TapByResourceRequest_Extract) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest_Extract.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest_Extract) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9, 1}
}
func (m *TapByResourceRequest_Extract) GetExtract() isTapByResourceRequest_Extract_Extract {
if m != nil {
return m.Extract
}
return nil
}
func (x *TapByResourceRequest_Extract) GetHttp() *TapByResourceRequest_Extract_Http {
if x, ok := x.GetExtract().(*TapByResourceRequest_Extract_Http_); ok {
return x.Http
}
return nil
}
type isTapByResourceRequest_Extract_Extract interface {
isTapByResourceRequest_Extract_Extract()
}
type TapByResourceRequest_Extract_Http_ struct {
Http *TapByResourceRequest_Extract_Http `protobuf:"bytes,1,opt,name=http,proto3,oneof"`
}
func (*TapByResourceRequest_Extract_Http_) isTapByResourceRequest_Extract_Extract() {}
type TapByResourceRequest_Match_Seq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Matches []*TapByResourceRequest_Match `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
}
func (x *TapByResourceRequest_Match_Seq) Reset() {
*x = TapByResourceRequest_Match_Seq{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest_Match_Seq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest_Match_Seq) ProtoMessage() {}
func (x *TapByResourceRequest_Match_Seq) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest_Match_Seq.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest_Match_Seq) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9, 0, 0}
}
func (x *TapByResourceRequest_Match_Seq) GetMatches() []*TapByResourceRequest_Match {
if x != nil {
return x.Matches
}
return nil
}
type TapByResourceRequest_Match_Http struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Match:
// *TapByResourceRequest_Match_Http_Scheme
// *TapByResourceRequest_Match_Http_Method
// *TapByResourceRequest_Match_Http_Authority
// *TapByResourceRequest_Match_Http_Path
Match isTapByResourceRequest_Match_Http_Match `protobuf_oneof:"match"`
}
func (x *TapByResourceRequest_Match_Http) Reset() {
*x = TapByResourceRequest_Match_Http{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest_Match_Http) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest_Match_Http) ProtoMessage() {}
func (x *TapByResourceRequest_Match_Http) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest_Match_Http.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest_Match_Http) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9, 0, 1}
}
func (m *TapByResourceRequest_Match_Http) GetMatch() isTapByResourceRequest_Match_Http_Match {
if m != nil {
return m.Match
}
return nil
}
func (x *TapByResourceRequest_Match_Http) GetScheme() string {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Http_Scheme); ok {
return x.Scheme
}
return ""
}
func (x *TapByResourceRequest_Match_Http) GetMethod() string {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Http_Method); ok {
return x.Method
}
return ""
}
func (x *TapByResourceRequest_Match_Http) GetAuthority() string {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Http_Authority); ok {
return x.Authority
}
return ""
}
func (x *TapByResourceRequest_Match_Http) GetPath() string {
if x, ok := x.GetMatch().(*TapByResourceRequest_Match_Http_Path); ok {
return x.Path
}
return ""
}
type isTapByResourceRequest_Match_Http_Match interface {
isTapByResourceRequest_Match_Http_Match()
}
type TapByResourceRequest_Match_Http_Scheme struct {
Scheme string `protobuf:"bytes,1,opt,name=scheme,proto3,oneof"`
}
type TapByResourceRequest_Match_Http_Method struct {
Method string `protobuf:"bytes,2,opt,name=method,proto3,oneof"`
}
type TapByResourceRequest_Match_Http_Authority struct {
Authority string `protobuf:"bytes,3,opt,name=authority,proto3,oneof"`
}
type TapByResourceRequest_Match_Http_Path struct {
Path string `protobuf:"bytes,4,opt,name=path,proto3,oneof"`
}
func (*TapByResourceRequest_Match_Http_Scheme) isTapByResourceRequest_Match_Http_Match() {}
func (*TapByResourceRequest_Match_Http_Method) isTapByResourceRequest_Match_Http_Match() {}
func (*TapByResourceRequest_Match_Http_Authority) isTapByResourceRequest_Match_Http_Match() {}
func (*TapByResourceRequest_Match_Http_Path) isTapByResourceRequest_Match_Http_Match() {}
type TapByResourceRequest_Extract_Http struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Extract:
// *TapByResourceRequest_Extract_Http_Headers_
Extract isTapByResourceRequest_Extract_Http_Extract `protobuf_oneof:"extract"`
}
func (x *TapByResourceRequest_Extract_Http) Reset() {
*x = TapByResourceRequest_Extract_Http{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest_Extract_Http) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest_Extract_Http) ProtoMessage() {}
func (x *TapByResourceRequest_Extract_Http) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest_Extract_Http.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest_Extract_Http) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9, 1, 0}
}
func (m *TapByResourceRequest_Extract_Http) GetExtract() isTapByResourceRequest_Extract_Http_Extract {
if m != nil {
return m.Extract
}
return nil
}
func (x *TapByResourceRequest_Extract_Http) GetHeaders() *TapByResourceRequest_Extract_Http_Headers {
if x, ok := x.GetExtract().(*TapByResourceRequest_Extract_Http_Headers_); ok {
return x.Headers
}
return nil
}
type isTapByResourceRequest_Extract_Http_Extract interface {
isTapByResourceRequest_Extract_Http_Extract()
}
type TapByResourceRequest_Extract_Http_Headers_ struct {
Headers *TapByResourceRequest_Extract_Http_Headers `protobuf:"bytes,1,opt,name=headers,proto3,oneof"`
}
func (*TapByResourceRequest_Extract_Http_Headers_) isTapByResourceRequest_Extract_Http_Extract() {}
type TapByResourceRequest_Extract_Http_Headers struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *TapByResourceRequest_Extract_Http_Headers) Reset() {
*x = TapByResourceRequest_Extract_Http_Headers{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapByResourceRequest_Extract_Http_Headers) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapByResourceRequest_Extract_Http_Headers) ProtoMessage() {}
func (x *TapByResourceRequest_Extract_Http_Headers) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapByResourceRequest_Extract_Http_Headers.ProtoReflect.Descriptor instead.
func (*TapByResourceRequest_Extract_Http_Headers) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{9, 1, 0, 0}
}
type Headers_Header struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name of a header in a request.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The value of a header in a request. If the value consists entirely of
// UTF-8 encodings, `value` will be set; otherwise a binary value is
// assumed and `value_bin` will be set.
//
// Types that are assignable to Value:
// *Headers_Header_ValueStr
// *Headers_Header_ValueBin
Value isHeaders_Header_Value `protobuf_oneof:"value"`
}
func (x *Headers_Header) Reset() {
*x = Headers_Header{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Headers_Header) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Headers_Header) ProtoMessage() {}
func (x *Headers_Header) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Headers_Header.ProtoReflect.Descriptor instead.
func (*Headers_Header) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{12, 0}
}
func (x *Headers_Header) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (m *Headers_Header) GetValue() isHeaders_Header_Value {
if m != nil {
return m.Value
}
return nil
}
func (x *Headers_Header) GetValueStr() string {
if x, ok := x.GetValue().(*Headers_Header_ValueStr); ok {
return x.ValueStr
}
return ""
}
func (x *Headers_Header) GetValueBin() []byte {
if x, ok := x.GetValue().(*Headers_Header_ValueBin); ok {
return x.ValueBin
}
return nil
}
type isHeaders_Header_Value interface {
isHeaders_Header_Value()
}
type Headers_Header_ValueStr struct {
ValueStr string `protobuf:"bytes,2,opt,name=value_str,json=valueStr,proto3,oneof"`
}
type Headers_Header_ValueBin struct {
ValueBin []byte `protobuf:"bytes,3,opt,name=value_bin,json=valueBin,proto3,oneof"`
}
func (*Headers_Header_ValueStr) isHeaders_Header_Value() {}
func (*Headers_Header_ValueBin) isHeaders_Header_Value() {}
type TapEvent_EndpointMeta struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *TapEvent_EndpointMeta) Reset() {
*x = TapEvent_EndpointMeta{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_EndpointMeta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_EndpointMeta) ProtoMessage() {}
func (x *TapEvent_EndpointMeta) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_EndpointMeta.ProtoReflect.Descriptor instead.
func (*TapEvent_EndpointMeta) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 0}
}
func (x *TapEvent_EndpointMeta) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
type TapEvent_RouteMeta struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *TapEvent_RouteMeta) Reset() {
*x = TapEvent_RouteMeta{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_RouteMeta) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_RouteMeta) ProtoMessage() {}
func (x *TapEvent_RouteMeta) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_RouteMeta.ProtoReflect.Descriptor instead.
func (*TapEvent_RouteMeta) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 1}
}
func (x *TapEvent_RouteMeta) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
type TapEvent_Http struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Event:
// *TapEvent_Http_RequestInit_
// *TapEvent_Http_ResponseInit_
// *TapEvent_Http_ResponseEnd_
Event isTapEvent_Http_Event `protobuf_oneof:"event"`
}
func (x *TapEvent_Http) Reset() {
*x = TapEvent_Http{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_Http) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_Http) ProtoMessage() {}
func (x *TapEvent_Http) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_Http.ProtoReflect.Descriptor instead.
func (*TapEvent_Http) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 2}
}
func (m *TapEvent_Http) GetEvent() isTapEvent_Http_Event {
if m != nil {
return m.Event
}
return nil
}
func (x *TapEvent_Http) GetRequestInit() *TapEvent_Http_RequestInit {
if x, ok := x.GetEvent().(*TapEvent_Http_RequestInit_); ok {
return x.RequestInit
}
return nil
}
func (x *TapEvent_Http) GetResponseInit() *TapEvent_Http_ResponseInit {
if x, ok := x.GetEvent().(*TapEvent_Http_ResponseInit_); ok {
return x.ResponseInit
}
return nil
}
func (x *TapEvent_Http) GetResponseEnd() *TapEvent_Http_ResponseEnd {
if x, ok := x.GetEvent().(*TapEvent_Http_ResponseEnd_); ok {
return x.ResponseEnd
}
return nil
}
type isTapEvent_Http_Event interface {
isTapEvent_Http_Event()
}
type TapEvent_Http_RequestInit_ struct {
RequestInit *TapEvent_Http_RequestInit `protobuf:"bytes,1,opt,name=request_init,json=requestInit,proto3,oneof"`
}
type TapEvent_Http_ResponseInit_ struct {
ResponseInit *TapEvent_Http_ResponseInit `protobuf:"bytes,2,opt,name=response_init,json=responseInit,proto3,oneof"`
}
type TapEvent_Http_ResponseEnd_ struct {
ResponseEnd *TapEvent_Http_ResponseEnd `protobuf:"bytes,3,opt,name=response_end,json=responseEnd,proto3,oneof"`
}
func (*TapEvent_Http_RequestInit_) isTapEvent_Http_Event() {}
func (*TapEvent_Http_ResponseInit_) isTapEvent_Http_Event() {}
func (*TapEvent_Http_ResponseEnd_) isTapEvent_Http_Event() {}
type TapEvent_Http_StreamId struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A randomized base (stable across a process's runtime)
Base uint32 `protobuf:"varint,1,opt,name=base,proto3" json:"base,omitempty"`
// A stream id unique within the lifetime of `base`.
Stream uint64 `protobuf:"varint,2,opt,name=stream,proto3" json:"stream,omitempty"`
}
func (x *TapEvent_Http_StreamId) Reset() {
*x = TapEvent_Http_StreamId{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_Http_StreamId) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_Http_StreamId) ProtoMessage() {}
func (x *TapEvent_Http_StreamId) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_Http_StreamId.ProtoReflect.Descriptor instead.
func (*TapEvent_Http_StreamId) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 2, 0}
}
func (x *TapEvent_Http_StreamId) GetBase() uint32 {
if x != nil {
return x.Base
}
return 0
}
func (x *TapEvent_Http_StreamId) GetStream() uint64 {
if x != nil {
return x.Stream
}
return 0
}
type TapEvent_Http_RequestInit struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *TapEvent_Http_StreamId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Method *HttpMethod `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
Scheme *Scheme `protobuf:"bytes,3,opt,name=scheme,proto3" json:"scheme,omitempty"`
Authority string `protobuf:"bytes,4,opt,name=authority,proto3" json:"authority,omitempty"`
Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"`
Headers *Headers `protobuf:"bytes,6,opt,name=headers,proto3" json:"headers,omitempty"`
}
func (x *TapEvent_Http_RequestInit) Reset() {
*x = TapEvent_Http_RequestInit{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_Http_RequestInit) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_Http_RequestInit) ProtoMessage() {}
func (x *TapEvent_Http_RequestInit) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_Http_RequestInit.ProtoReflect.Descriptor instead.
func (*TapEvent_Http_RequestInit) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 2, 1}
}
func (x *TapEvent_Http_RequestInit) GetId() *TapEvent_Http_StreamId {
if x != nil {
return x.Id
}
return nil
}
func (x *TapEvent_Http_RequestInit) GetMethod() *HttpMethod {
if x != nil {
return x.Method
}
return nil
}
func (x *TapEvent_Http_RequestInit) GetScheme() *Scheme {
if x != nil {
return x.Scheme
}
return nil
}
func (x *TapEvent_Http_RequestInit) GetAuthority() string {
if x != nil {
return x.Authority
}
return ""
}
func (x *TapEvent_Http_RequestInit) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *TapEvent_Http_RequestInit) GetHeaders() *Headers {
if x != nil {
return x.Headers
}
return nil
}
type TapEvent_Http_ResponseInit struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *TapEvent_Http_StreamId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
SinceRequestInit *duration.Duration `protobuf:"bytes,2,opt,name=since_request_init,json=sinceRequestInit,proto3" json:"since_request_init,omitempty"`
HttpStatus uint32 `protobuf:"varint,3,opt,name=http_status,json=httpStatus,proto3" json:"http_status,omitempty"`
Headers *Headers `protobuf:"bytes,4,opt,name=headers,proto3" json:"headers,omitempty"`
}
func (x *TapEvent_Http_ResponseInit) Reset() {
*x = TapEvent_Http_ResponseInit{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_Http_ResponseInit) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_Http_ResponseInit) ProtoMessage() {}
func (x *TapEvent_Http_ResponseInit) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[52]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_Http_ResponseInit.ProtoReflect.Descriptor instead.
func (*TapEvent_Http_ResponseInit) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 2, 2}
}
func (x *TapEvent_Http_ResponseInit) GetId() *TapEvent_Http_StreamId {
if x != nil {
return x.Id
}
return nil
}
func (x *TapEvent_Http_ResponseInit) GetSinceRequestInit() *duration.Duration {
if x != nil {
return x.SinceRequestInit
}
return nil
}
func (x *TapEvent_Http_ResponseInit) GetHttpStatus() uint32 {
if x != nil {
return x.HttpStatus
}
return 0
}
func (x *TapEvent_Http_ResponseInit) GetHeaders() *Headers {
if x != nil {
return x.Headers
}
return nil
}
type TapEvent_Http_ResponseEnd struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *TapEvent_Http_StreamId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
SinceRequestInit *duration.Duration `protobuf:"bytes,2,opt,name=since_request_init,json=sinceRequestInit,proto3" json:"since_request_init,omitempty"`
SinceResponseInit *duration.Duration `protobuf:"bytes,3,opt,name=since_response_init,json=sinceResponseInit,proto3" json:"since_response_init,omitempty"`
ResponseBytes uint64 `protobuf:"varint,4,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"`
Eos *Eos `protobuf:"bytes,5,opt,name=eos,proto3" json:"eos,omitempty"`
Trailers *Headers `protobuf:"bytes,6,opt,name=trailers,proto3" json:"trailers,omitempty"`
}
func (x *TapEvent_Http_ResponseEnd) Reset() {
*x = TapEvent_Http_ResponseEnd{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TapEvent_Http_ResponseEnd) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TapEvent_Http_ResponseEnd) ProtoMessage() {}
func (x *TapEvent_Http_ResponseEnd) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[53]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TapEvent_Http_ResponseEnd.ProtoReflect.Descriptor instead.
func (*TapEvent_Http_ResponseEnd) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{17, 2, 3}
}
func (x *TapEvent_Http_ResponseEnd) GetId() *TapEvent_Http_StreamId {
if x != nil {
return x.Id
}
return nil
}
func (x *TapEvent_Http_ResponseEnd) GetSinceRequestInit() *duration.Duration {
if x != nil {
return x.SinceRequestInit
}
return nil
}
func (x *TapEvent_Http_ResponseEnd) GetSinceResponseInit() *duration.Duration {
if x != nil {
return x.SinceResponseInit
}
return nil
}
func (x *TapEvent_Http_ResponseEnd) GetResponseBytes() uint64 {
if x != nil {
return x.ResponseBytes
}
return 0
}
func (x *TapEvent_Http_ResponseEnd) GetEos() *Eos {
if x != nil {
return x.Eos
}
return nil
}
func (x *TapEvent_Http_ResponseEnd) GetTrailers() *Headers {
if x != nil {
return x.Trailers
}
return nil
}
type PodErrors_PodError struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Error:
// *PodErrors_PodError_Container
Error isPodErrors_PodError_Error `protobuf_oneof:"error"`
}
func (x *PodErrors_PodError) Reset() {
*x = PodErrors_PodError{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PodErrors_PodError) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PodErrors_PodError) ProtoMessage() {}
func (x *PodErrors_PodError) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[54]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PodErrors_PodError.ProtoReflect.Descriptor instead.
func (*PodErrors_PodError) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{19, 0}
}
func (m *PodErrors_PodError) GetError() isPodErrors_PodError_Error {
if m != nil {
return m.Error
}
return nil
}
func (x *PodErrors_PodError) GetContainer() *PodErrors_PodError_ContainerError {
if x, ok := x.GetError().(*PodErrors_PodError_Container); ok {
return x.Container
}
return nil
}
type isPodErrors_PodError_Error interface {
isPodErrors_PodError_Error()
}
type PodErrors_PodError_Container struct {
Container *PodErrors_PodError_ContainerError `protobuf:"bytes,1,opt,name=container,proto3,oneof"`
}
func (*PodErrors_PodError_Container) isPodErrors_PodError_Error() {}
// To report init-container and container failures
type PodErrors_PodError_ContainerError struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
Container string `protobuf:"bytes,2,opt,name=container,proto3" json:"container,omitempty"`
Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"`
Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
}
func (x *PodErrors_PodError_ContainerError) Reset() {
*x = PodErrors_PodError_ContainerError{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PodErrors_PodError_ContainerError) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PodErrors_PodError_ContainerError) ProtoMessage() {}
func (x *PodErrors_PodError_ContainerError) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[55]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PodErrors_PodError_ContainerError.ProtoReflect.Descriptor instead.
func (*PodErrors_PodError_ContainerError) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{19, 0, 0}
}
func (x *PodErrors_PodError_ContainerError) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *PodErrors_PodError_ContainerError) GetContainer() string {
if x != nil {
return x.Container
}
return ""
}
func (x *PodErrors_PodError_ContainerError) GetImage() string {
if x != nil {
return x.Image
}
return ""
}
func (x *PodErrors_PodError_ContainerError) GetReason() string {
if x != nil {
return x.Reason
}
return ""
}
type StatSummaryResponse_Ok struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StatTables []*StatTable `protobuf:"bytes,1,rep,name=stat_tables,json=statTables,proto3" json:"stat_tables,omitempty"`
}
func (x *StatSummaryResponse_Ok) Reset() {
*x = StatSummaryResponse_Ok{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatSummaryResponse_Ok) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatSummaryResponse_Ok) ProtoMessage() {}
func (x *StatSummaryResponse_Ok) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[56]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatSummaryResponse_Ok.ProtoReflect.Descriptor instead.
func (*StatSummaryResponse_Ok) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{24, 0}
}
func (x *StatSummaryResponse_Ok) GetStatTables() []*StatTable {
if x != nil {
return x.StatTables
}
return nil
}
type StatTable_PodGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rows []*StatTable_PodGroup_Row `protobuf:"bytes,1,rep,name=rows,proto3" json:"rows,omitempty"`
}
func (x *StatTable_PodGroup) Reset() {
*x = StatTable_PodGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatTable_PodGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatTable_PodGroup) ProtoMessage() {}
func (x *StatTable_PodGroup) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[57]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatTable_PodGroup.ProtoReflect.Descriptor instead.
func (*StatTable_PodGroup) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{28, 0}
}
func (x *StatTable_PodGroup) GetRows() []*StatTable_PodGroup_Row {
if x != nil {
return x.Rows
}
return nil
}
type StatTable_PodGroup_Row struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Resource *Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
TimeWindow string `protobuf:"bytes,2,opt,name=time_window,json=timeWindow,proto3" json:"time_window,omitempty"`
// pod status on Kubernetes
Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"`
// number of pending or running pods in this resource that have linkerd injected
MeshedPodCount uint64 `protobuf:"varint,3,opt,name=meshed_pod_count,json=meshedPodCount,proto3" json:"meshed_pod_count,omitempty"`
// number of pending or running pods in this resource
RunningPodCount uint64 `protobuf:"varint,4,opt,name=running_pod_count,json=runningPodCount,proto3" json:"running_pod_count,omitempty"`
// number of pods in this resource that have Phase PodFailed
FailedPodCount uint64 `protobuf:"varint,6,opt,name=failed_pod_count,json=failedPodCount,proto3" json:"failed_pod_count,omitempty"`
Stats *BasicStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
TcpStats *TcpStats `protobuf:"bytes,8,opt,name=tcp_stats,json=tcpStats,proto3" json:"tcp_stats,omitempty"`
TsStats *TrafficSplitStats `protobuf:"bytes,10,opt,name=ts_stats,json=tsStats,proto3" json:"ts_stats,omitempty"`
// Stores a set of errors for each pod name. If a pod has no errors, it may be omitted.
ErrorsByPod map[string]*PodErrors `protobuf:"bytes,7,rep,name=errors_by_pod,json=errorsByPod,proto3" json:"errors_by_pod,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *StatTable_PodGroup_Row) Reset() {
*x = StatTable_PodGroup_Row{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatTable_PodGroup_Row) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatTable_PodGroup_Row) ProtoMessage() {}
func (x *StatTable_PodGroup_Row) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[58]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatTable_PodGroup_Row.ProtoReflect.Descriptor instead.
func (*StatTable_PodGroup_Row) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{28, 0, 0}
}
func (x *StatTable_PodGroup_Row) GetResource() *Resource {
if x != nil {
return x.Resource
}
return nil
}
func (x *StatTable_PodGroup_Row) GetTimeWindow() string {
if x != nil {
return x.TimeWindow
}
return ""
}
func (x *StatTable_PodGroup_Row) GetStatus() string {
if x != nil {
return x.Status
}
return ""
}
func (x *StatTable_PodGroup_Row) GetMeshedPodCount() uint64 {
if x != nil {
return x.MeshedPodCount
}
return 0
}
func (x *StatTable_PodGroup_Row) GetRunningPodCount() uint64 {
if x != nil {
return x.RunningPodCount
}
return 0
}
func (x *StatTable_PodGroup_Row) GetFailedPodCount() uint64 {
if x != nil {
return x.FailedPodCount
}
return 0
}
func (x *StatTable_PodGroup_Row) GetStats() *BasicStats {
if x != nil {
return x.Stats
}
return nil
}
func (x *StatTable_PodGroup_Row) GetTcpStats() *TcpStats {
if x != nil {
return x.TcpStats
}
return nil
}
func (x *StatTable_PodGroup_Row) GetTsStats() *TrafficSplitStats {
if x != nil {
return x.TsStats
}
return nil
}
func (x *StatTable_PodGroup_Row) GetErrorsByPod() map[string]*PodErrors {
if x != nil {
return x.ErrorsByPod
}
return nil
}
type EdgesResponse_Ok struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Edges []*Edge `protobuf:"bytes,1,rep,name=edges,proto3" json:"edges,omitempty"`
}
func (x *EdgesResponse_Ok) Reset() {
*x = EdgesResponse_Ok{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EdgesResponse_Ok) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EdgesResponse_Ok) ProtoMessage() {}
func (x *EdgesResponse_Ok) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[60]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EdgesResponse_Ok.ProtoReflect.Descriptor instead.
func (*EdgesResponse_Ok) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{30, 0}
}
func (x *EdgesResponse_Ok) GetEdges() []*Edge {
if x != nil {
return x.Edges
}
return nil
}
type TopRoutesResponse_Ok struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Routes []*RouteTable `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
}
func (x *TopRoutesResponse_Ok) Reset() {
*x = TopRoutesResponse_Ok{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TopRoutesResponse_Ok) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TopRoutesResponse_Ok) ProtoMessage() {}
func (x *TopRoutesResponse_Ok) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[61]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TopRoutesResponse_Ok.ProtoReflect.Descriptor instead.
func (*TopRoutesResponse_Ok) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{33, 0}
}
func (x *TopRoutesResponse_Ok) GetRoutes() []*RouteTable {
if x != nil {
return x.Routes
}
return nil
}
type RouteTable_Row struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Route string `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"`
TimeWindow string `protobuf:"bytes,2,opt,name=time_window,json=timeWindow,proto3" json:"time_window,omitempty"`
Authority string `protobuf:"bytes,6,opt,name=authority,proto3" json:"authority,omitempty"`
Stats *BasicStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
}
func (x *RouteTable_Row) Reset() {
*x = RouteTable_Row{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RouteTable_Row) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RouteTable_Row) ProtoMessage() {}
func (x *RouteTable_Row) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[62]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RouteTable_Row.ProtoReflect.Descriptor instead.
func (*RouteTable_Row) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{34, 0}
}
func (x *RouteTable_Row) GetRoute() string {
if x != nil {
return x.Route
}
return ""
}
func (x *RouteTable_Row) GetTimeWindow() string {
if x != nil {
return x.TimeWindow
}
return ""
}
func (x *RouteTable_Row) GetAuthority() string {
if x != nil {
return x.Authority
}
return ""
}
func (x *RouteTable_Row) GetStats() *BasicStats {
if x != nil {
return x.Stats
}
return nil
}
type GatewaysTable_Row struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
ClusterName string `protobuf:"bytes,3,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
PairedServices uint64 `protobuf:"varint,4,opt,name=paired_services,json=pairedServices,proto3" json:"paired_services,omitempty"`
Alive bool `protobuf:"varint,5,opt,name=alive,proto3" json:"alive,omitempty"`
LatencyMsP50 uint64 `protobuf:"varint,6,opt,name=latency_ms_p50,json=latencyMsP50,proto3" json:"latency_ms_p50,omitempty"`
LatencyMsP95 uint64 `protobuf:"varint,7,opt,name=latency_ms_p95,json=latencyMsP95,proto3" json:"latency_ms_p95,omitempty"`
LatencyMsP99 uint64 `protobuf:"varint,8,opt,name=latency_ms_p99,json=latencyMsP99,proto3" json:"latency_ms_p99,omitempty"`
}
func (x *GatewaysTable_Row) Reset() {
*x = GatewaysTable_Row{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[63]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewaysTable_Row) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatewaysTable_Row) ProtoMessage() {}
func (x *GatewaysTable_Row) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[63]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatewaysTable_Row.ProtoReflect.Descriptor instead.
func (*GatewaysTable_Row) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{35, 0}
}
func (x *GatewaysTable_Row) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
func (x *GatewaysTable_Row) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *GatewaysTable_Row) GetClusterName() string {
if x != nil {
return x.ClusterName
}
return ""
}
func (x *GatewaysTable_Row) GetPairedServices() uint64 {
if x != nil {
return x.PairedServices
}
return 0
}
func (x *GatewaysTable_Row) GetAlive() bool {
if x != nil {
return x.Alive
}
return false
}
func (x *GatewaysTable_Row) GetLatencyMsP50() uint64 {
if x != nil {
return x.LatencyMsP50
}
return 0
}
func (x *GatewaysTable_Row) GetLatencyMsP95() uint64 {
if x != nil {
return x.LatencyMsP95
}
return 0
}
func (x *GatewaysTable_Row) GetLatencyMsP99() uint64 {
if x != nil {
return x.LatencyMsP99
}
return 0
}
type GatewaysResponse_Ok struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GatewaysTable *GatewaysTable `protobuf:"bytes,1,opt,name=gateways_table,json=gatewaysTable,proto3" json:"gateways_table,omitempty"`
}
func (x *GatewaysResponse_Ok) Reset() {
*x = GatewaysResponse_Ok{}
if protoimpl.UnsafeEnabled {
mi := &file_public_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewaysResponse_Ok) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatewaysResponse_Ok) ProtoMessage() {}
func (x *GatewaysResponse_Ok) ProtoReflect() protoreflect.Message {
mi := &file_public_proto_msgTypes[64]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatewaysResponse_Ok.ProtoReflect.Descriptor instead.
func (*GatewaysResponse_Ok) Descriptor() ([]byte, []int) {
return file_public_proto_rawDescGZIP(), []int{37, 0}
}
func (x *GatewaysResponse_Ok) GetGatewaysTable() *GatewaysTable {
if x != nil {
return x.GatewaysTable
}
return nil
}
var File_public_proto protoreflect.FileDescriptor
var file_public_proto_rawDesc = []byte{
0x0a, 0x0c, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f,
0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a,
0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x18, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68,
0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x07,
0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x71, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x6f, 0x56, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x56, 0x65, 0x72,
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61,
0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x56, 0x65, 0x72,
0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x65,
0x61, 0x73, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x13, 0x4c, 0x69,
0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22,
0x4c, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x3b, 0x0a,
0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09,
0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x0f, 0x4c, 0x69,
0x73, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,
0x3e, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62,
0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22,
0x3c, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62,
0x6c, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x64, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x22, 0xfa, 0x04,
0x0a, 0x03, 0x50, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x64,
0x49, 0x50, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x50, 0x12,
0x20, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x12, 0x21, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x73, 0x65, 0x74,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
0x61, 0x53, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x0b,
0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x23, 0x0a,
0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20,
0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53,
0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e,
0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
0x48, 0x00, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61,
0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x69, 0x6e, 0x63, 0x65,
0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
0x6c, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c,
0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65,
0x12, 0x31, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x75, 0x70, 0x74,
0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x61, 0x64,
0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65,
0x61, 0x64, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x56, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79,
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0xaa, 0x02, 0x0a, 0x0a, 0x54,
0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x70, 0x6f, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x20, 0x0a,
0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12,
0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x52, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52,
0x06, 0x6d, 0x61, 0x78, 0x52, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x50, 0x6f, 0x72,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x6f, 0x50, 0x6f, 0x72, 0x74, 0x12,
0x12, 0x0a, 0x04, 0x74, 0x6f, 0x49, 0x50, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74,
0x6f, 0x49, 0x50, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x12,
0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x50, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x50, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12,
0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f,
0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68,
0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x08, 0x0a,
0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x86, 0x08, 0x0a, 0x14, 0x54, 0x61, 0x70, 0x42,
0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x3a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x41, 0x0a, 0x05,
0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61,
0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12,
0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x52, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52,
0x06, 0x6d, 0x61, 0x78, 0x52, 0x70, 0x73, 0x12, 0x47, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x72, 0x61,
0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x42, 0x79,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x07, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74,
0x1a, 0xb6, 0x04, 0x0a, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x03, 0x61, 0x6c,
0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x42, 0x79, 0x52,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d,
0x61, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x65, 0x71, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12,
0x43, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6c,
0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54,
0x61, 0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x65, 0x71, 0x48, 0x00, 0x52,
0x03, 0x61, 0x6e, 0x79, 0x12, 0x3f, 0x0a, 0x03, 0x6e, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62,
0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00,
0x52, 0x03, 0x6e, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48,
0x00, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x46, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e,
0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e,
0x54, 0x61, 0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x48,
0x00, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x1a, 0x4c, 0x0a, 0x03, 0x53, 0x65, 0x71, 0x12, 0x45,
0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x2b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x54, 0x61, 0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x6d, 0x61,
0x74, 0x63, 0x68, 0x65, 0x73, 0x1a, 0x79, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x12, 0x18, 0x0a,
0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f,
0x64, 0x12, 0x1e, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
0x79, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48,
0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68,
0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x1a, 0xd4, 0x01, 0x0a, 0x07, 0x45, 0x78,
0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70,
0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61,
0x63, 0x74, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x1a,
0x74, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x12, 0x56, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65,
0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x42, 0x79,
0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x48, 0x65, 0x61,
0x64, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a,
0x09, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x65, 0x78,
0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74,
0x22, 0xf4, 0x01, 0x0a, 0x0a, 0x48, 0x74, 0x74, 0x70, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
0x48, 0x0a, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70,
0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x72,
0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0c, 0x75, 0x6e, 0x72,
0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48,
0x00, 0x52, 0x0c, 0x75, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x22,
0x6e, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x07, 0x0a,
0x03, 0x47, 0x45, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x01,
0x12, 0x07, 0x0a, 0x03, 0x50, 0x55, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c,
0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x54, 0x43, 0x48, 0x10, 0x04,
0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x05, 0x12, 0x0b, 0x0a,
0x07, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x45,
0x41, 0x44, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x08, 0x42,
0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65,
0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x2e,
0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65,
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0c, 0x75, 0x6e, 0x72, 0x65,
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
0x52, 0x0c, 0x75, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x22, 0x21,
0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x08, 0x0a, 0x04,
0x48, 0x54, 0x54, 0x50, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x54, 0x54, 0x50, 0x53, 0x10,
0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x48, 0x65,
0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
0x1a, 0x63, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d,
0x0a, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x48, 0x00, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1d, 0x0a,
0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
0x48, 0x00, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x69, 0x6e, 0x42, 0x07, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x54, 0x0a, 0x09, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07,
0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x2b, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x49, 0x50, 0x76, 0x36, 0x48, 0x00, 0x52,
0x04, 0x69, 0x70, 0x76, 0x36, 0x42, 0x04, 0x0a, 0x02, 0x69, 0x70, 0x22, 0x30, 0x0a, 0x04, 0x49,
0x50, 0x76, 0x36, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x06, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x73,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x22, 0x4c, 0x0a,
0x0a, 0x54, 0x63, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x02, 0x69,
0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x64, 0x0a, 0x03, 0x45,
0x6f, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e,
0x67, 0x72, 0x70, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a,
0x0a, 0x10, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x65,
0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x65, 0x6e,
0x64, 0x22, 0xf3, 0x0f, 0x0a, 0x08, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x33,
0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x54, 0x63, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65,
0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61,
0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0b,
0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62,
0x6c, 0x69, 0x63, 0x2e, 0x54, 0x63, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b,
0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x10, 0x64,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32,
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0f, 0x64,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x42,
0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f,
0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65,
0x74, 0x61, 0x12, 0x51, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x64, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61,
0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70,
0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x48,
0x74, 0x74, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x1a, 0x95, 0x01, 0x0a, 0x0c,
0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x06,
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6c,
0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54,
0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65,
0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x1a, 0x8f, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74,
0x61, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x2f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62,
0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x75,
0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x9c, 0x09, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x12, 0x4f,
0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74,
0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x12,
0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e,
0x74, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49,
0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49,
0x6e, 0x69, 0x74, 0x12, 0x4f, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x45, 0x6e, 0x64, 0x1a, 0x36, 0x0a, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02,
0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x1a, 0x92, 0x02, 0x0a,
0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49,
0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32,
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x4d, 0x65, 0x74, 0x68,
0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x63,
0x68, 0x65, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x6e,
0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x63, 0x68,
0x65, 0x6d, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61,
0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x32, 0x0a,
0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
0x73, 0x1a, 0xe5, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e,
0x69, 0x74, 0x12, 0x37, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x53,
0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x12, 0x73,
0x69, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x69,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x10, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x49, 0x6e, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xdf, 0x02, 0x0a, 0x0b, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x37, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32,
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x2e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x52, 0x02,
0x69, 0x64, 0x12, 0x47, 0x0a, 0x12, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x73, 0x69, 0x6e, 0x63, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x49, 0x0a, 0x13, 0x73,
0x69, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x69, 0x6e,
0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x11, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d,
0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a,
0x03, 0x65, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x6e,
0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x45, 0x6f, 0x73,
0x52, 0x03, 0x65, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72,
0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
0x73, 0x52, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x65,
0x76, 0x65, 0x6e, 0x74, 0x22, 0x38, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01,
0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x55, 0x54, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x07,
0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x20, 0x0a, 0x08, 0x41, 0x70, 0x69, 0x45, 0x72,
0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xaa, 0x02, 0x0a, 0x09, 0x50, 0x6f,
0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x64, 0x45, 0x72, 0x72,
0x6f, 0x72, 0x73, 0x2e, 0x50, 0x6f, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x73, 0x1a, 0xdf, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x64, 0x45, 0x72, 0x72, 0x6f,
0x72, 0x12, 0x52, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73,
0x2e, 0x50, 0x6f, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
0x6e, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74,
0x61, 0x69, 0x6e, 0x65, 0x72, 0x1a, 0x76, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12,
0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x07, 0x0a,
0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a,
0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61,
0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x5c, 0x0a, 0x0d, 0x52,
0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x08,
0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xeb, 0x02, 0x0a, 0x12, 0x53, 0x74,
0x61, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x3e, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f,
0x77, 0x12, 0x2c, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x16, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12,
0x3c, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48,
0x00, 0x52, 0x0a, 0x74, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a,
0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48,
0x00, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
0x1d, 0x0a, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20,
0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1b,
0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x74, 0x63, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x6f,
0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xd7, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74,
0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x39, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x74,
0x61, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x2e, 0x4f, 0x6b, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x1a, 0x41, 0x0a, 0x02, 0x4f, 0x6b, 0x12, 0x3b, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74,
0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e,
0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x54,
0x61, 0x62, 0x6c, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0xac, 0x02, 0x0a, 0x0a, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73,
0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x66, 0x61,
0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61,
0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x5f, 0x70, 0x35, 0x30, 0x18, 0x03, 0x20, 0x01,
0x28, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x50, 0x35, 0x30,
0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x5f, 0x70,
0x39, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,
0x79, 0x4d, 0x73, 0x50, 0x39, 0x35, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63,
0x79, 0x5f, 0x6d, 0x73, 0x5f, 0x70, 0x39, 0x39, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c,
0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x50, 0x39, 0x39, 0x12, 0x30, 0x0a, 0x14,
0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x63, 0x74, 0x75,
0x61, 0x6c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30,
0x0a, 0x14, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x63,
0x74, 0x75, 0x61, 0x6c, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x22, 0x8b, 0x01, 0x0a, 0x08, 0x54, 0x63, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x29, 0x0a,
0x10, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e,
0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64,
0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01,
0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74,
0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65,
0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x77,
0x72, 0x69, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x53,
0x0a, 0x11, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x53, 0x74,
0x61, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x70, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x61, 0x70, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x77,
0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x65, 0x69,
0x67, 0x68, 0x74, 0x22, 0xfe, 0x05, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x62, 0x6c,
0x65, 0x12, 0x42, 0x0a, 0x09, 0x70, 0x6f, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65,
0x2e, 0x50, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x64,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xa3, 0x05, 0x0a, 0x08, 0x50, 0x6f, 0x64, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x12, 0x3b, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x27, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x50, 0x6f, 0x64,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a,
0xd9, 0x04, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f,
0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12,
0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x68, 0x65,
0x64, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x04, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x64,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x72, 0x75,
0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a,
0x10, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50,
0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x74,
0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x63,
0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e,
0x54, 0x63, 0x70, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x08, 0x74, 0x63, 0x70, 0x53, 0x74, 0x61,
0x74, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x70,
0x6c, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74,
0x73, 0x12, 0x5c, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x70,
0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54,
0x61, 0x62, 0x6c, 0x65, 0x2e, 0x50, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x6f,
0x77, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x79, 0x50, 0x6f, 0x64, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x79, 0x50, 0x6f, 0x64, 0x1a,
0x5a, 0x0a, 0x10, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x79, 0x50, 0x6f, 0x64, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x50, 0x6f, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x22, 0x4e, 0x0a, 0x0c, 0x45, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64,
0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x45, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x2e, 0x4f, 0x6b, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x36, 0x0a, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x6e,
0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x1a, 0x31, 0x0a, 0x02, 0x4f, 0x6b, 0x12, 0x2b, 0x0a, 0x05, 0x65, 0x64, 0x67,
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x52,
0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x03, 0x73,
0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x2b, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32,
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f,
0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12,
0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d,
0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x49, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x22, 0xeb, 0x01, 0x0a, 0x10, 0x54, 0x6f, 0x70, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x08,
0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b,
0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2c, 0x0a,
0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x74,
0x6f, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x74,
0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x6f, 0x75, 0x74,
0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x52, 0x6f, 0x75,
0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x6e,
0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x25, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x54, 0x6f, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x6b, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6b, 0x1a, 0x39, 0x0a, 0x02,
0x4f, 0x6b, 0x12, 0x33, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52,
0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62,
0x6c, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1f, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x6f,
0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x1a, 0x8d, 0x01, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x72,
0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74,
0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64,
0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
0x12, 0x31, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1b, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74,
0x61, 0x74, 0x73, 0x22, 0xd5, 0x02, 0x0a, 0x0d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70,
0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x54, 0x61,
0x62, 0x6c, 0x65, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a, 0x8b, 0x02,
0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74,
0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61,
0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20,
0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x08, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x74,
0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x5f, 0x70, 0x35, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28,
0x04, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x50, 0x35, 0x30, 0x12,
0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x5f, 0x70, 0x39,
0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
0x4d, 0x73, 0x50, 0x39, 0x35, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
0x5f, 0x6d, 0x73, 0x5f, 0x70, 0x39, 0x39, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c,
0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x50, 0x39, 0x39, 0x22, 0x8f, 0x01, 0x0a, 0x0f,
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65,
0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12,
0x2b, 0x0a, 0x11, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73,
0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xdb, 0x01,
0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x36, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x2e, 0x4f, 0x6b, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x1a, 0x4b, 0x0a, 0x02, 0x4f, 0x6b, 0x12, 0x45, 0x0a, 0x0e, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x73, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65,
0x52, 0x0d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x42,
0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x91, 0x07, 0x0a, 0x03,
0x41, 0x70, 0x69, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61,
0x72, 0x79, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x53, 0x75,
0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
0x48, 0x0a, 0x05, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x08, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32,
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x09,
0x54, 0x6f, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x6e, 0x6b,
0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x6f, 0x70, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6c,
0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54,
0x6f, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x00, 0x12, 0x51, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x20,
0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x21, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32,
0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x4c, 0x69,
0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x03, 0x54, 0x61, 0x70, 0x12, 0x1b, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61,
0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x22, 0x03, 0x88, 0x02, 0x01, 0x30, 0x01, 0x12, 0x58, 0x0a, 0x0d, 0x54, 0x61,
0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61,
0x70, 0x42, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x2e, 0x54, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x03, 0x88,
0x02, 0x01, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
0x16, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x09, 0x53, 0x65, 0x6c, 0x66, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x12, 0x2d, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65,
0x63, 0x6b, 0x2e, 0x53, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63,
0x6b, 0x2e, 0x53, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x16, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72,
0x64, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x6c, 0x6c, 0x22, 0x00, 0x42,
0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69,
0x6e, 0x6b, 0x65, 0x72, 0x64, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x64, 0x32, 0x2f, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x75,
0x62, 0x6c, 0x69, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_public_proto_rawDescOnce sync.Once
file_public_proto_rawDescData = file_public_proto_rawDesc
)
func file_public_proto_rawDescGZIP() []byte {
file_public_proto_rawDescOnce.Do(func() {
file_public_proto_rawDescData = protoimpl.X.CompressGZIP(file_public_proto_rawDescData)
})
return file_public_proto_rawDescData
}
var file_public_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_public_proto_msgTypes = make([]protoimpl.MessageInfo, 65)
var file_public_proto_goTypes = []interface{}{
(HttpMethod_Registered)(0), // 0: linkerd2.public.HttpMethod.Registered
(Scheme_Registered)(0), // 1: linkerd2.public.Scheme.Registered
(TapEvent_ProxyDirection)(0), // 2: linkerd2.public.TapEvent.ProxyDirection
(*Empty)(nil), // 3: linkerd2.public.Empty
(*VersionInfo)(nil), // 4: linkerd2.public.VersionInfo
(*ListServicesRequest)(nil), // 5: linkerd2.public.ListServicesRequest
(*ListServicesResponse)(nil), // 6: linkerd2.public.ListServicesResponse
(*Service)(nil), // 7: linkerd2.public.Service
(*ListPodsRequest)(nil), // 8: linkerd2.public.ListPodsRequest
(*ListPodsResponse)(nil), // 9: linkerd2.public.ListPodsResponse
(*Pod)(nil), // 10: linkerd2.public.Pod
(*TapRequest)(nil), // 11: linkerd2.public.TapRequest
(*TapByResourceRequest)(nil), // 12: linkerd2.public.TapByResourceRequest
(*HttpMethod)(nil), // 13: linkerd2.public.HttpMethod
(*Scheme)(nil), // 14: linkerd2.public.Scheme
(*Headers)(nil), // 15: linkerd2.public.Headers
(*IPAddress)(nil), // 16: linkerd2.public.IPAddress
(*IPv6)(nil), // 17: linkerd2.public.IPv6
(*TcpAddress)(nil), // 18: linkerd2.public.TcpAddress
(*Eos)(nil), // 19: linkerd2.public.Eos
(*TapEvent)(nil), // 20: linkerd2.public.TapEvent
(*ApiError)(nil), // 21: linkerd2.public.ApiError
(*PodErrors)(nil), // 22: linkerd2.public.PodErrors
(*Resource)(nil), // 23: linkerd2.public.Resource
(*ResourceSelection)(nil), // 24: linkerd2.public.ResourceSelection
(*ResourceError)(nil), // 25: linkerd2.public.ResourceError
(*StatSummaryRequest)(nil), // 26: linkerd2.public.StatSummaryRequest
(*StatSummaryResponse)(nil), // 27: linkerd2.public.StatSummaryResponse
(*BasicStats)(nil), // 28: linkerd2.public.BasicStats
(*TcpStats)(nil), // 29: linkerd2.public.TcpStats
(*TrafficSplitStats)(nil), // 30: linkerd2.public.TrafficSplitStats
(*StatTable)(nil), // 31: linkerd2.public.StatTable
(*EdgesRequest)(nil), // 32: linkerd2.public.EdgesRequest
(*EdgesResponse)(nil), // 33: linkerd2.public.EdgesResponse
(*Edge)(nil), // 34: linkerd2.public.Edge
(*TopRoutesRequest)(nil), // 35: linkerd2.public.TopRoutesRequest
(*TopRoutesResponse)(nil), // 36: linkerd2.public.TopRoutesResponse
(*RouteTable)(nil), // 37: linkerd2.public.RouteTable
(*GatewaysTable)(nil), // 38: linkerd2.public.GatewaysTable
(*GatewaysRequest)(nil), // 39: linkerd2.public.GatewaysRequest
(*GatewaysResponse)(nil), // 40: linkerd2.public.GatewaysResponse
(*TapByResourceRequest_Match)(nil), // 41: linkerd2.public.TapByResourceRequest.Match
(*TapByResourceRequest_Extract)(nil), // 42: linkerd2.public.TapByResourceRequest.Extract
(*TapByResourceRequest_Match_Seq)(nil), // 43: linkerd2.public.TapByResourceRequest.Match.Seq
(*TapByResourceRequest_Match_Http)(nil), // 44: linkerd2.public.TapByResourceRequest.Match.Http
(*TapByResourceRequest_Extract_Http)(nil), // 45: linkerd2.public.TapByResourceRequest.Extract.Http
(*TapByResourceRequest_Extract_Http_Headers)(nil), // 46: linkerd2.public.TapByResourceRequest.Extract.Http.Headers
(*Headers_Header)(nil), // 47: linkerd2.public.Headers.Header
(*TapEvent_EndpointMeta)(nil), // 48: linkerd2.public.TapEvent.EndpointMeta
(*TapEvent_RouteMeta)(nil), // 49: linkerd2.public.TapEvent.RouteMeta
(*TapEvent_Http)(nil), // 50: linkerd2.public.TapEvent.Http
nil, // 51: linkerd2.public.TapEvent.EndpointMeta.LabelsEntry
nil, // 52: linkerd2.public.TapEvent.RouteMeta.LabelsEntry
(*TapEvent_Http_StreamId)(nil), // 53: linkerd2.public.TapEvent.Http.StreamId
(*TapEvent_Http_RequestInit)(nil), // 54: linkerd2.public.TapEvent.Http.RequestInit
(*TapEvent_Http_ResponseInit)(nil), // 55: linkerd2.public.TapEvent.Http.ResponseInit
(*TapEvent_Http_ResponseEnd)(nil), // 56: linkerd2.public.TapEvent.Http.ResponseEnd
(*PodErrors_PodError)(nil), // 57: linkerd2.public.PodErrors.PodError
(*PodErrors_PodError_ContainerError)(nil), // 58: linkerd2.public.PodErrors.PodError.ContainerError
(*StatSummaryResponse_Ok)(nil), // 59: linkerd2.public.StatSummaryResponse.Ok
(*StatTable_PodGroup)(nil), // 60: linkerd2.public.StatTable.PodGroup
(*StatTable_PodGroup_Row)(nil), // 61: linkerd2.public.StatTable.PodGroup.Row
nil, // 62: linkerd2.public.StatTable.PodGroup.Row.ErrorsByPodEntry
(*EdgesResponse_Ok)(nil), // 63: linkerd2.public.EdgesResponse.Ok
(*TopRoutesResponse_Ok)(nil), // 64: linkerd2.public.TopRoutesResponse.Ok
(*RouteTable_Row)(nil), // 65: linkerd2.public.RouteTable.Row
(*GatewaysTable_Row)(nil), // 66: linkerd2.public.GatewaysTable.Row
(*GatewaysResponse_Ok)(nil), // 67: linkerd2.public.GatewaysResponse.Ok
(*duration.Duration)(nil), // 68: google.protobuf.Duration
(*healthcheck.SelfCheckRequest)(nil), // 69: linkerd2.common.healthcheck.SelfCheckRequest
(*healthcheck.SelfCheckResponse)(nil), // 70: linkerd2.common.healthcheck.SelfCheckResponse
(*config.All)(nil), // 71: linkerd2.config.All
}
var file_public_proto_depIdxs = []int32{
7, // 0: linkerd2.public.ListServicesResponse.services:type_name -> linkerd2.public.Service
24, // 1: linkerd2.public.ListPodsRequest.selector:type_name -> linkerd2.public.ResourceSelection
10, // 2: linkerd2.public.ListPodsResponse.pods:type_name -> linkerd2.public.Pod
68, // 3: linkerd2.public.Pod.sinceLastReport:type_name -> google.protobuf.Duration
68, // 4: linkerd2.public.Pod.uptime:type_name -> google.protobuf.Duration
24, // 5: linkerd2.public.TapByResourceRequest.target:type_name -> linkerd2.public.ResourceSelection
41, // 6: linkerd2.public.TapByResourceRequest.match:type_name -> linkerd2.public.TapByResourceRequest.Match
42, // 7: linkerd2.public.TapByResourceRequest.extract:type_name -> linkerd2.public.TapByResourceRequest.Extract
0, // 8: linkerd2.public.HttpMethod.registered:type_name -> linkerd2.public.HttpMethod.Registered
1, // 9: linkerd2.public.Scheme.registered:type_name -> linkerd2.public.Scheme.Registered
47, // 10: linkerd2.public.Headers.headers:type_name -> linkerd2.public.Headers.Header
17, // 11: linkerd2.public.IPAddress.ipv6:type_name -> linkerd2.public.IPv6
16, // 12: linkerd2.public.TcpAddress.ip:type_name -> linkerd2.public.IPAddress
18, // 13: linkerd2.public.TapEvent.source:type_name -> linkerd2.public.TcpAddress
48, // 14: linkerd2.public.TapEvent.source_meta:type_name -> linkerd2.public.TapEvent.EndpointMeta
18, // 15: linkerd2.public.TapEvent.destination:type_name -> linkerd2.public.TcpAddress
48, // 16: linkerd2.public.TapEvent.destination_meta:type_name -> linkerd2.public.TapEvent.EndpointMeta
49, // 17: linkerd2.public.TapEvent.route_meta:type_name -> linkerd2.public.TapEvent.RouteMeta
2, // 18: linkerd2.public.TapEvent.proxy_direction:type_name -> linkerd2.public.TapEvent.ProxyDirection
50, // 19: linkerd2.public.TapEvent.http:type_name -> linkerd2.public.TapEvent.Http
57, // 20: linkerd2.public.PodErrors.errors:type_name -> linkerd2.public.PodErrors.PodError
23, // 21: linkerd2.public.ResourceSelection.resource:type_name -> linkerd2.public.Resource
23, // 22: linkerd2.public.ResourceError.resource:type_name -> linkerd2.public.Resource
24, // 23: linkerd2.public.StatSummaryRequest.selector:type_name -> linkerd2.public.ResourceSelection
3, // 24: linkerd2.public.StatSummaryRequest.none:type_name -> linkerd2.public.Empty
23, // 25: linkerd2.public.StatSummaryRequest.to_resource:type_name -> linkerd2.public.Resource
23, // 26: linkerd2.public.StatSummaryRequest.from_resource:type_name -> linkerd2.public.Resource
59, // 27: linkerd2.public.StatSummaryResponse.ok:type_name -> linkerd2.public.StatSummaryResponse.Ok
25, // 28: linkerd2.public.StatSummaryResponse.error:type_name -> linkerd2.public.ResourceError
60, // 29: linkerd2.public.StatTable.pod_group:type_name -> linkerd2.public.StatTable.PodGroup
24, // 30: linkerd2.public.EdgesRequest.selector:type_name -> linkerd2.public.ResourceSelection
63, // 31: linkerd2.public.EdgesResponse.ok:type_name -> linkerd2.public.EdgesResponse.Ok
25, // 32: linkerd2.public.EdgesResponse.error:type_name -> linkerd2.public.ResourceError
23, // 33: linkerd2.public.Edge.src:type_name -> linkerd2.public.Resource
23, // 34: linkerd2.public.Edge.dst:type_name -> linkerd2.public.Resource
24, // 35: linkerd2.public.TopRoutesRequest.selector:type_name -> linkerd2.public.ResourceSelection
3, // 36: linkerd2.public.TopRoutesRequest.none:type_name -> linkerd2.public.Empty
23, // 37: linkerd2.public.TopRoutesRequest.to_resource:type_name -> linkerd2.public.Resource
25, // 38: linkerd2.public.TopRoutesResponse.error:type_name -> linkerd2.public.ResourceError
64, // 39: linkerd2.public.TopRoutesResponse.ok:type_name -> linkerd2.public.TopRoutesResponse.Ok
65, // 40: linkerd2.public.RouteTable.rows:type_name -> linkerd2.public.RouteTable.Row
66, // 41: linkerd2.public.GatewaysTable.rows:type_name -> linkerd2.public.GatewaysTable.Row
67, // 42: linkerd2.public.GatewaysResponse.ok:type_name -> linkerd2.public.GatewaysResponse.Ok
25, // 43: linkerd2.public.GatewaysResponse.error:type_name -> linkerd2.public.ResourceError
43, // 44: linkerd2.public.TapByResourceRequest.Match.all:type_name -> linkerd2.public.TapByResourceRequest.Match.Seq
43, // 45: linkerd2.public.TapByResourceRequest.Match.any:type_name -> linkerd2.public.TapByResourceRequest.Match.Seq
41, // 46: linkerd2.public.TapByResourceRequest.Match.not:type_name -> linkerd2.public.TapByResourceRequest.Match
24, // 47: linkerd2.public.TapByResourceRequest.Match.destinations:type_name -> linkerd2.public.ResourceSelection
44, // 48: linkerd2.public.TapByResourceRequest.Match.http:type_name -> linkerd2.public.TapByResourceRequest.Match.Http
45, // 49: linkerd2.public.TapByResourceRequest.Extract.http:type_name -> linkerd2.public.TapByResourceRequest.Extract.Http
41, // 50: linkerd2.public.TapByResourceRequest.Match.Seq.matches:type_name -> linkerd2.public.TapByResourceRequest.Match
46, // 51: linkerd2.public.TapByResourceRequest.Extract.Http.headers:type_name -> linkerd2.public.TapByResourceRequest.Extract.Http.Headers
51, // 52: linkerd2.public.TapEvent.EndpointMeta.labels:type_name -> linkerd2.public.TapEvent.EndpointMeta.LabelsEntry
52, // 53: linkerd2.public.TapEvent.RouteMeta.labels:type_name -> linkerd2.public.TapEvent.RouteMeta.LabelsEntry
54, // 54: linkerd2.public.TapEvent.Http.request_init:type_name -> linkerd2.public.TapEvent.Http.RequestInit
55, // 55: linkerd2.public.TapEvent.Http.response_init:type_name -> linkerd2.public.TapEvent.Http.ResponseInit
56, // 56: linkerd2.public.TapEvent.Http.response_end:type_name -> linkerd2.public.TapEvent.Http.ResponseEnd
53, // 57: linkerd2.public.TapEvent.Http.RequestInit.id:type_name -> linkerd2.public.TapEvent.Http.StreamId
13, // 58: linkerd2.public.TapEvent.Http.RequestInit.method:type_name -> linkerd2.public.HttpMethod
14, // 59: linkerd2.public.TapEvent.Http.RequestInit.scheme:type_name -> linkerd2.public.Scheme
15, // 60: linkerd2.public.TapEvent.Http.RequestInit.headers:type_name -> linkerd2.public.Headers
53, // 61: linkerd2.public.TapEvent.Http.ResponseInit.id:type_name -> linkerd2.public.TapEvent.Http.StreamId
68, // 62: linkerd2.public.TapEvent.Http.ResponseInit.since_request_init:type_name -> google.protobuf.Duration
15, // 63: linkerd2.public.TapEvent.Http.ResponseInit.headers:type_name -> linkerd2.public.Headers
53, // 64: linkerd2.public.TapEvent.Http.ResponseEnd.id:type_name -> linkerd2.public.TapEvent.Http.StreamId
68, // 65: linkerd2.public.TapEvent.Http.ResponseEnd.since_request_init:type_name -> google.protobuf.Duration
68, // 66: linkerd2.public.TapEvent.Http.ResponseEnd.since_response_init:type_name -> google.protobuf.Duration
19, // 67: linkerd2.public.TapEvent.Http.ResponseEnd.eos:type_name -> linkerd2.public.Eos
15, // 68: linkerd2.public.TapEvent.Http.ResponseEnd.trailers:type_name -> linkerd2.public.Headers
58, // 69: linkerd2.public.PodErrors.PodError.container:type_name -> linkerd2.public.PodErrors.PodError.ContainerError
31, // 70: linkerd2.public.StatSummaryResponse.Ok.stat_tables:type_name -> linkerd2.public.StatTable
61, // 71: linkerd2.public.StatTable.PodGroup.rows:type_name -> linkerd2.public.StatTable.PodGroup.Row
23, // 72: linkerd2.public.StatTable.PodGroup.Row.resource:type_name -> linkerd2.public.Resource
28, // 73: linkerd2.public.StatTable.PodGroup.Row.stats:type_name -> linkerd2.public.BasicStats
29, // 74: linkerd2.public.StatTable.PodGroup.Row.tcp_stats:type_name -> linkerd2.public.TcpStats
30, // 75: linkerd2.public.StatTable.PodGroup.Row.ts_stats:type_name -> linkerd2.public.TrafficSplitStats
62, // 76: linkerd2.public.StatTable.PodGroup.Row.errors_by_pod:type_name -> linkerd2.public.StatTable.PodGroup.Row.ErrorsByPodEntry
22, // 77: linkerd2.public.StatTable.PodGroup.Row.ErrorsByPodEntry.value:type_name -> linkerd2.public.PodErrors
34, // 78: linkerd2.public.EdgesResponse.Ok.edges:type_name -> linkerd2.public.Edge
37, // 79: linkerd2.public.TopRoutesResponse.Ok.routes:type_name -> linkerd2.public.RouteTable
28, // 80: linkerd2.public.RouteTable.Row.stats:type_name -> linkerd2.public.BasicStats
38, // 81: linkerd2.public.GatewaysResponse.Ok.gateways_table:type_name -> linkerd2.public.GatewaysTable
26, // 82: linkerd2.public.Api.StatSummary:input_type -> linkerd2.public.StatSummaryRequest
32, // 83: linkerd2.public.Api.Edges:input_type -> linkerd2.public.EdgesRequest
39, // 84: linkerd2.public.Api.Gateways:input_type -> linkerd2.public.GatewaysRequest
35, // 85: linkerd2.public.Api.TopRoutes:input_type -> linkerd2.public.TopRoutesRequest
8, // 86: linkerd2.public.Api.ListPods:input_type -> linkerd2.public.ListPodsRequest
5, // 87: linkerd2.public.Api.ListServices:input_type -> linkerd2.public.ListServicesRequest
11, // 88: linkerd2.public.Api.Tap:input_type -> linkerd2.public.TapRequest
12, // 89: linkerd2.public.Api.TapByResource:input_type -> linkerd2.public.TapByResourceRequest
3, // 90: linkerd2.public.Api.Version:input_type -> linkerd2.public.Empty
69, // 91: linkerd2.public.Api.SelfCheck:input_type -> linkerd2.common.healthcheck.SelfCheckRequest
3, // 92: linkerd2.public.Api.Config:input_type -> linkerd2.public.Empty
27, // 93: linkerd2.public.Api.StatSummary:output_type -> linkerd2.public.StatSummaryResponse
33, // 94: linkerd2.public.Api.Edges:output_type -> linkerd2.public.EdgesResponse
40, // 95: linkerd2.public.Api.Gateways:output_type -> linkerd2.public.GatewaysResponse
36, // 96: linkerd2.public.Api.TopRoutes:output_type -> linkerd2.public.TopRoutesResponse
9, // 97: linkerd2.public.Api.ListPods:output_type -> linkerd2.public.ListPodsResponse
6, // 98: linkerd2.public.Api.ListServices:output_type -> linkerd2.public.ListServicesResponse
20, // 99: linkerd2.public.Api.Tap:output_type -> linkerd2.public.TapEvent
20, // 100: linkerd2.public.Api.TapByResource:output_type -> linkerd2.public.TapEvent
4, // 101: linkerd2.public.Api.Version:output_type -> linkerd2.public.VersionInfo
70, // 102: linkerd2.public.Api.SelfCheck:output_type -> linkerd2.common.healthcheck.SelfCheckResponse
71, // 103: linkerd2.public.Api.Config:output_type -> linkerd2.config.All
93, // [93:104] is the sub-list for method output_type
82, // [82:93] is the sub-list for method input_type
82, // [82:82] is the sub-list for extension type_name
82, // [82:82] is the sub-list for extension extendee
0, // [0:82] is the sub-list for field type_name
}
func init() { file_public_proto_init() }
func file_public_proto_init() {
if File_public_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_public_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Empty); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VersionInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListServicesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListServicesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Service); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListPodsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListPodsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Pod); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HttpMethod); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Scheme); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Headers); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPv6); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TcpAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Eos); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApiError); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PodErrors); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Resource); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResourceSelection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResourceError); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatSummaryRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatSummaryResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BasicStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TcpStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrafficSplitStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatTable); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EdgesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EdgesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Edge); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TopRoutesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TopRoutesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteTable); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewaysTable); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewaysRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewaysResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest_Match); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest_Extract); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest_Match_Seq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest_Match_Http); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest_Extract_Http); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapByResourceRequest_Extract_Http_Headers); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Headers_Header); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_EndpointMeta); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_RouteMeta); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_Http); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_Http_StreamId); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_Http_RequestInit); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_Http_ResponseInit); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TapEvent_Http_ResponseEnd); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PodErrors_PodError); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PodErrors_PodError_ContainerError); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatSummaryResponse_Ok); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatTable_PodGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatTable_PodGroup_Row); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EdgesResponse_Ok); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TopRoutesResponse_Ok); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RouteTable_Row); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewaysTable_Row); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_public_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewaysResponse_Ok); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_public_proto_msgTypes[7].OneofWrappers = []interface{}{
(*Pod_Deployment)(nil),
(*Pod_ReplicaSet)(nil),
(*Pod_ReplicationController)(nil),
(*Pod_StatefulSet)(nil),
(*Pod_DaemonSet)(nil),
(*Pod_Job)(nil),
}
file_public_proto_msgTypes[8].OneofWrappers = []interface{}{
(*TapRequest_Pod)(nil),
(*TapRequest_Deployment)(nil),
}
file_public_proto_msgTypes[10].OneofWrappers = []interface{}{
(*HttpMethod_Registered_)(nil),
(*HttpMethod_Unregistered)(nil),
}
file_public_proto_msgTypes[11].OneofWrappers = []interface{}{
(*Scheme_Registered_)(nil),
(*Scheme_Unregistered)(nil),
}
file_public_proto_msgTypes[13].OneofWrappers = []interface{}{
(*IPAddress_Ipv4)(nil),
(*IPAddress_Ipv6)(nil),
}
file_public_proto_msgTypes[16].OneofWrappers = []interface{}{
(*Eos_GrpcStatusCode)(nil),
(*Eos_ResetErrorCode)(nil),
}
file_public_proto_msgTypes[17].OneofWrappers = []interface{}{
(*TapEvent_Http_)(nil),
}
file_public_proto_msgTypes[23].OneofWrappers = []interface{}{
(*StatSummaryRequest_None)(nil),
(*StatSummaryRequest_ToResource)(nil),
(*StatSummaryRequest_FromResource)(nil),
}
file_public_proto_msgTypes[24].OneofWrappers = []interface{}{
(*StatSummaryResponse_Ok_)(nil),
(*StatSummaryResponse_Error)(nil),
}
file_public_proto_msgTypes[28].OneofWrappers = []interface{}{
(*StatTable_PodGroup_)(nil),
}
file_public_proto_msgTypes[30].OneofWrappers = []interface{}{
(*EdgesResponse_Ok_)(nil),
(*EdgesResponse_Error)(nil),
}
file_public_proto_msgTypes[32].OneofWrappers = []interface{}{
(*TopRoutesRequest_None)(nil),
(*TopRoutesRequest_ToResource)(nil),
}
file_public_proto_msgTypes[33].OneofWrappers = []interface{}{
(*TopRoutesResponse_Error)(nil),
(*TopRoutesResponse_Ok_)(nil),
}
file_public_proto_msgTypes[37].OneofWrappers = []interface{}{
(*GatewaysResponse_Ok_)(nil),
(*GatewaysResponse_Error)(nil),
}
file_public_proto_msgTypes[38].OneofWrappers = []interface{}{
(*TapByResourceRequest_Match_All)(nil),
(*TapByResourceRequest_Match_Any)(nil),
(*TapByResourceRequest_Match_Not)(nil),
(*TapByResourceRequest_Match_Destinations)(nil),
(*TapByResourceRequest_Match_Http_)(nil),
}
file_public_proto_msgTypes[39].OneofWrappers = []interface{}{
(*TapByResourceRequest_Extract_Http_)(nil),
}
file_public_proto_msgTypes[41].OneofWrappers = []interface{}{
(*TapByResourceRequest_Match_Http_Scheme)(nil),
(*TapByResourceRequest_Match_Http_Method)(nil),
(*TapByResourceRequest_Match_Http_Authority)(nil),
(*TapByResourceRequest_Match_Http_Path)(nil),
}
file_public_proto_msgTypes[42].OneofWrappers = []interface{}{
(*TapByResourceRequest_Extract_Http_Headers_)(nil),
}
file_public_proto_msgTypes[44].OneofWrappers = []interface{}{
(*Headers_Header_ValueStr)(nil),
(*Headers_Header_ValueBin)(nil),
}
file_public_proto_msgTypes[47].OneofWrappers = []interface{}{
(*TapEvent_Http_RequestInit_)(nil),
(*TapEvent_Http_ResponseInit_)(nil),
(*TapEvent_Http_ResponseEnd_)(nil),
}
file_public_proto_msgTypes[54].OneofWrappers = []interface{}{
(*PodErrors_PodError_Container)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_public_proto_rawDesc,
NumEnums: 3,
NumMessages: 65,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_public_proto_goTypes,
DependencyIndexes: file_public_proto_depIdxs,
EnumInfos: file_public_proto_enumTypes,
MessageInfos: file_public_proto_msgTypes,
}.Build()
File_public_proto = out.File
file_public_proto_rawDesc = nil
file_public_proto_goTypes = nil
file_public_proto_depIdxs = nil
}
// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6
// ApiClient is the client API for Api service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ApiClient interface {
StatSummary(ctx context.Context, in *StatSummaryRequest, opts ...grpc.CallOption) (*StatSummaryResponse, error)
Edges(ctx context.Context, in *EdgesRequest, opts ...grpc.CallOption) (*EdgesResponse, error)
Gateways(ctx context.Context, in *GatewaysRequest, opts ...grpc.CallOption) (*GatewaysResponse, error)
TopRoutes(ctx context.Context, in *TopRoutesRequest, opts ...grpc.CallOption) (*TopRoutesResponse, error)
ListPods(ctx context.Context, in *ListPodsRequest, opts ...grpc.CallOption) (*ListPodsResponse, error)
ListServices(ctx context.Context, in *ListServicesRequest, opts ...grpc.CallOption) (*ListServicesResponse, error)
// Deprecated: Do not use.
// Superseded by `TapByResource`.
Tap(ctx context.Context, in *TapRequest, opts ...grpc.CallOption) (Api_TapClient, error)
// Deprecated: Do not use.
// Superseded by tap APIServer.
TapByResource(ctx context.Context, in *TapByResourceRequest, opts ...grpc.CallOption) (Api_TapByResourceClient, error)
Version(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*VersionInfo, error)
SelfCheck(ctx context.Context, in *healthcheck.SelfCheckRequest, opts ...grpc.CallOption) (*healthcheck.SelfCheckResponse, error)
Config(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*config.All, error)
}
type apiClient struct {
cc grpc.ClientConnInterface
}
func NewApiClient(cc grpc.ClientConnInterface) ApiClient {
return &apiClient{cc}
}
func (c *apiClient) StatSummary(ctx context.Context, in *StatSummaryRequest, opts ...grpc.CallOption) (*StatSummaryResponse, error) {
out := new(StatSummaryResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/StatSummary", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) Edges(ctx context.Context, in *EdgesRequest, opts ...grpc.CallOption) (*EdgesResponse, error) {
out := new(EdgesResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/Edges", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) Gateways(ctx context.Context, in *GatewaysRequest, opts ...grpc.CallOption) (*GatewaysResponse, error) {
out := new(GatewaysResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/Gateways", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) TopRoutes(ctx context.Context, in *TopRoutesRequest, opts ...grpc.CallOption) (*TopRoutesResponse, error) {
out := new(TopRoutesResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/TopRoutes", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) ListPods(ctx context.Context, in *ListPodsRequest, opts ...grpc.CallOption) (*ListPodsResponse, error) {
out := new(ListPodsResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/ListPods", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) ListServices(ctx context.Context, in *ListServicesRequest, opts ...grpc.CallOption) (*ListServicesResponse, error) {
out := new(ListServicesResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/ListServices", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Deprecated: Do not use.
func (c *apiClient) Tap(ctx context.Context, in *TapRequest, opts ...grpc.CallOption) (Api_TapClient, error) {
stream, err := c.cc.NewStream(ctx, &_Api_serviceDesc.Streams[0], "/linkerd2.public.Api/Tap", opts...)
if err != nil {
return nil, err
}
x := &apiTapClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type Api_TapClient interface {
Recv() (*TapEvent, error)
grpc.ClientStream
}
type apiTapClient struct {
grpc.ClientStream
}
func (x *apiTapClient) Recv() (*TapEvent, error) {
m := new(TapEvent)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// Deprecated: Do not use.
func (c *apiClient) TapByResource(ctx context.Context, in *TapByResourceRequest, opts ...grpc.CallOption) (Api_TapByResourceClient, error) {
stream, err := c.cc.NewStream(ctx, &_Api_serviceDesc.Streams[1], "/linkerd2.public.Api/TapByResource", opts...)
if err != nil {
return nil, err
}
x := &apiTapByResourceClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type Api_TapByResourceClient interface {
Recv() (*TapEvent, error)
grpc.ClientStream
}
type apiTapByResourceClient struct {
grpc.ClientStream
}
func (x *apiTapByResourceClient) Recv() (*TapEvent, error) {
m := new(TapEvent)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *apiClient) Version(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*VersionInfo, error) {
out := new(VersionInfo)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/Version", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) SelfCheck(ctx context.Context, in *healthcheck.SelfCheckRequest, opts ...grpc.CallOption) (*healthcheck.SelfCheckResponse, error) {
out := new(healthcheck.SelfCheckResponse)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/SelfCheck", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *apiClient) Config(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*config.All, error) {
out := new(config.All)
err := c.cc.Invoke(ctx, "/linkerd2.public.Api/Config", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ApiServer is the server API for Api service.
type ApiServer interface {
StatSummary(context.Context, *StatSummaryRequest) (*StatSummaryResponse, error)
Edges(context.Context, *EdgesRequest) (*EdgesResponse, error)
Gateways(context.Context, *GatewaysRequest) (*GatewaysResponse, error)
TopRoutes(context.Context, *TopRoutesRequest) (*TopRoutesResponse, error)
ListPods(context.Context, *ListPodsRequest) (*ListPodsResponse, error)
ListServices(context.Context, *ListServicesRequest) (*ListServicesResponse, error)
// Deprecated: Do not use.
// Superseded by `TapByResource`.
Tap(*TapRequest, Api_TapServer) error
// Deprecated: Do not use.
// Superseded by tap APIServer.
TapByResource(*TapByResourceRequest, Api_TapByResourceServer) error
Version(context.Context, *Empty) (*VersionInfo, error)
SelfCheck(context.Context, *healthcheck.SelfCheckRequest) (*healthcheck.SelfCheckResponse, error)
Config(context.Context, *Empty) (*config.All, error)
}
// UnimplementedApiServer can be embedded to have forward compatible implementations.
type UnimplementedApiServer struct {
}
func (*UnimplementedApiServer) StatSummary(context.Context, *StatSummaryRequest) (*StatSummaryResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatSummary not implemented")
}
func (*UnimplementedApiServer) Edges(context.Context, *EdgesRequest) (*EdgesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Edges not implemented")
}
func (*UnimplementedApiServer) Gateways(context.Context, *GatewaysRequest) (*GatewaysResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Gateways not implemented")
}
func (*UnimplementedApiServer) TopRoutes(context.Context, *TopRoutesRequest) (*TopRoutesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method TopRoutes not implemented")
}
func (*UnimplementedApiServer) ListPods(context.Context, *ListPodsRequest) (*ListPodsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListPods not implemented")
}
func (*UnimplementedApiServer) ListServices(context.Context, *ListServicesRequest) (*ListServicesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListServices not implemented")
}
func (*UnimplementedApiServer) Tap(*TapRequest, Api_TapServer) error {
return status.Errorf(codes.Unimplemented, "method Tap not implemented")
}
func (*UnimplementedApiServer) TapByResource(*TapByResourceRequest, Api_TapByResourceServer) error {
return status.Errorf(codes.Unimplemented, "method TapByResource not implemented")
}
func (*UnimplementedApiServer) Version(context.Context, *Empty) (*VersionInfo, error) {
return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
}
func (*UnimplementedApiServer) SelfCheck(context.Context, *healthcheck.SelfCheckRequest) (*healthcheck.SelfCheckResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SelfCheck not implemented")
}
func (*UnimplementedApiServer) Config(context.Context, *Empty) (*config.All, error) {
return nil, status.Errorf(codes.Unimplemented, "method Config not implemented")
}
func RegisterApiServer(s *grpc.Server, srv ApiServer) {
s.RegisterService(&_Api_serviceDesc, srv)
}
func _Api_StatSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatSummaryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).StatSummary(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/StatSummary",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).StatSummary(ctx, req.(*StatSummaryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_Edges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(EdgesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).Edges(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/Edges",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).Edges(ctx, req.(*EdgesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_Gateways_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GatewaysRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).Gateways(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/Gateways",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).Gateways(ctx, req.(*GatewaysRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_TopRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(TopRoutesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).TopRoutes(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/TopRoutes",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).TopRoutes(ctx, req.(*TopRoutesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_ListPods_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListPodsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).ListPods(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/ListPods",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).ListPods(ctx, req.(*ListPodsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_ListServices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListServicesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).ListServices(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/ListServices",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).ListServices(ctx, req.(*ListServicesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_Tap_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(TapRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(ApiServer).Tap(m, &apiTapServer{stream})
}
type Api_TapServer interface {
Send(*TapEvent) error
grpc.ServerStream
}
type apiTapServer struct {
grpc.ServerStream
}
func (x *apiTapServer) Send(m *TapEvent) error {
return x.ServerStream.SendMsg(m)
}
func _Api_TapByResource_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(TapByResourceRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(ApiServer).TapByResource(m, &apiTapByResourceServer{stream})
}
type Api_TapByResourceServer interface {
Send(*TapEvent) error
grpc.ServerStream
}
type apiTapByResourceServer struct {
grpc.ServerStream
}
func (x *apiTapByResourceServer) Send(m *TapEvent) error {
return x.ServerStream.SendMsg(m)
}
func _Api_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).Version(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/Version",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).Version(ctx, req.(*Empty))
}
return interceptor(ctx, in, info, handler)
}
func _Api_SelfCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(healthcheck.SelfCheckRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).SelfCheck(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/SelfCheck",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).SelfCheck(ctx, req.(*healthcheck.SelfCheckRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Api_Config_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ApiServer).Config(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/linkerd2.public.Api/Config",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ApiServer).Config(ctx, req.(*Empty))
}
return interceptor(ctx, in, info, handler)
}
var _Api_serviceDesc = grpc.ServiceDesc{
ServiceName: "linkerd2.public.Api",
HandlerType: (*ApiServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "StatSummary",
Handler: _Api_StatSummary_Handler,
},
{
MethodName: "Edges",
Handler: _Api_Edges_Handler,
},
{
MethodName: "Gateways",
Handler: _Api_Gateways_Handler,
},
{
MethodName: "TopRoutes",
Handler: _Api_TopRoutes_Handler,
},
{
MethodName: "ListPods",
Handler: _Api_ListPods_Handler,
},
{
MethodName: "ListServices",
Handler: _Api_ListServices_Handler,
},
{
MethodName: "Version",
Handler: _Api_Version_Handler,
},
{
MethodName: "SelfCheck",
Handler: _Api_SelfCheck_Handler,
},
{
MethodName: "Config",
Handler: _Api_Config_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "Tap",
Handler: _Api_Tap_Handler,
ServerStreams: true,
},
{
StreamName: "TapByResource",
Handler: _Api_TapByResource_Handler,
ServerStreams: true,
},
},
Metadata: "public.proto",
}