// Code generated by protoc-gen-go. DO NOT EDIT.
// source: public.proto

package public

import (
	context "context"
	fmt "fmt"
	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"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

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
)

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",
}

var 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) String() string {
	return proto.EnumName(HttpMethod_Registered_name, int32(x))
}

func (HttpMethod_Registered) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{10, 0}
}

type Scheme_Registered int32

const (
	Scheme_HTTP  Scheme_Registered = 0
	Scheme_HTTPS Scheme_Registered = 1
)

var Scheme_Registered_name = map[int32]string{
	0: "HTTP",
	1: "HTTPS",
}

var Scheme_Registered_value = map[string]int32{
	"HTTP":  0,
	"HTTPS": 1,
}

func (x Scheme_Registered) String() string {
	return proto.EnumName(Scheme_Registered_name, int32(x))
}

func (Scheme_Registered) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{11, 0}
}

type TapEvent_ProxyDirection int32

const (
	TapEvent_UNKNOWN  TapEvent_ProxyDirection = 0
	TapEvent_INBOUND  TapEvent_ProxyDirection = 1
	TapEvent_OUTBOUND TapEvent_ProxyDirection = 2
)

var TapEvent_ProxyDirection_name = map[int32]string{
	0: "UNKNOWN",
	1: "INBOUND",
	2: "OUTBOUND",
}

var TapEvent_ProxyDirection_value = map[string]int32{
	"UNKNOWN":  0,
	"INBOUND":  1,
	"OUTBOUND": 2,
}

func (x TapEvent_ProxyDirection) String() string {
	return proto.EnumName(TapEvent_ProxyDirection_name, int32(x))
}

func (TapEvent_ProxyDirection) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 0}
}

type Empty struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Empty) Reset()         { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage()    {}
func (*Empty) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{0}
}

func (m *Empty) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Empty.Unmarshal(m, b)
}
func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Empty.Marshal(b, m, deterministic)
}
func (m *Empty) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Empty.Merge(m, src)
}
func (m *Empty) XXX_Size() int {
	return xxx_messageInfo_Empty.Size(m)
}
func (m *Empty) XXX_DiscardUnknown() {
	xxx_messageInfo_Empty.DiscardUnknown(m)
}

var xxx_messageInfo_Empty proto.InternalMessageInfo

type VersionInfo struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *VersionInfo) Reset()         { *m = VersionInfo{} }
func (m *VersionInfo) String() string { return proto.CompactTextString(m) }
func (*VersionInfo) ProtoMessage()    {}
func (*VersionInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{1}
}

func (m *VersionInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VersionInfo.Unmarshal(m, b)
}
func (m *VersionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VersionInfo.Marshal(b, m, deterministic)
}
func (m *VersionInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VersionInfo.Merge(m, src)
}
func (m *VersionInfo) XXX_Size() int {
	return xxx_messageInfo_VersionInfo.Size(m)
}
func (m *VersionInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_VersionInfo.DiscardUnknown(m)
}

var xxx_messageInfo_VersionInfo proto.InternalMessageInfo

func (m *VersionInfo) GetGoVersion() string {
	if m != nil {
		return m.GoVersion
	}
	return ""
}

func (m *VersionInfo) GetBuildDate() string {
	if m != nil {
		return m.BuildDate
	}
	return ""
}

func (m *VersionInfo) GetReleaseVersion() string {
	if m != nil {
		return m.ReleaseVersion
	}
	return ""
}

type ListServicesRequest struct {
	Namespace            string   `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListServicesRequest) Reset()         { *m = ListServicesRequest{} }
func (m *ListServicesRequest) String() string { return proto.CompactTextString(m) }
func (*ListServicesRequest) ProtoMessage()    {}
func (*ListServicesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{2}
}

func (m *ListServicesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListServicesRequest.Unmarshal(m, b)
}
func (m *ListServicesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListServicesRequest.Marshal(b, m, deterministic)
}
func (m *ListServicesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListServicesRequest.Merge(m, src)
}
func (m *ListServicesRequest) XXX_Size() int {
	return xxx_messageInfo_ListServicesRequest.Size(m)
}
func (m *ListServicesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListServicesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListServicesRequest proto.InternalMessageInfo

func (m *ListServicesRequest) GetNamespace() string {
	if m != nil {
		return m.Namespace
	}
	return ""
}

type ListServicesResponse struct {
	Services             []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *ListServicesResponse) Reset()         { *m = ListServicesResponse{} }
func (m *ListServicesResponse) String() string { return proto.CompactTextString(m) }
func (*ListServicesResponse) ProtoMessage()    {}
func (*ListServicesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{3}
}

func (m *ListServicesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListServicesResponse.Unmarshal(m, b)
}
func (m *ListServicesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListServicesResponse.Marshal(b, m, deterministic)
}
func (m *ListServicesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListServicesResponse.Merge(m, src)
}
func (m *ListServicesResponse) XXX_Size() int {
	return xxx_messageInfo_ListServicesResponse.Size(m)
}
func (m *ListServicesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListServicesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListServicesResponse proto.InternalMessageInfo

func (m *ListServicesResponse) GetServices() []*Service {
	if m != nil {
		return m.Services
	}
	return nil
}

type Service struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Namespace            string   `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Service) Reset()         { *m = Service{} }
func (m *Service) String() string { return proto.CompactTextString(m) }
func (*Service) ProtoMessage()    {}
func (*Service) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{4}
}

func (m *Service) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Service.Unmarshal(m, b)
}
func (m *Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Service.Marshal(b, m, deterministic)
}
func (m *Service) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Service.Merge(m, src)
}
func (m *Service) XXX_Size() int {
	return xxx_messageInfo_Service.Size(m)
}
func (m *Service) XXX_DiscardUnknown() {
	xxx_messageInfo_Service.DiscardUnknown(m)
}

var xxx_messageInfo_Service proto.InternalMessageInfo

func (m *Service) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Service) GetNamespace() string {
	if m != nil {
		return m.Namespace
	}
	return ""
}

type ListPodsRequest struct {
	Namespace            string             `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` // Deprecated: Do not use.
	Selector             *ResourceSelection `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *ListPodsRequest) Reset()         { *m = ListPodsRequest{} }
func (m *ListPodsRequest) String() string { return proto.CompactTextString(m) }
func (*ListPodsRequest) ProtoMessage()    {}
func (*ListPodsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{5}
}

func (m *ListPodsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListPodsRequest.Unmarshal(m, b)
}
func (m *ListPodsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListPodsRequest.Marshal(b, m, deterministic)
}
func (m *ListPodsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListPodsRequest.Merge(m, src)
}
func (m *ListPodsRequest) XXX_Size() int {
	return xxx_messageInfo_ListPodsRequest.Size(m)
}
func (m *ListPodsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListPodsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListPodsRequest proto.InternalMessageInfo

// Deprecated: Do not use.
func (m *ListPodsRequest) GetNamespace() string {
	if m != nil {
		return m.Namespace
	}
	return ""
}

func (m *ListPodsRequest) GetSelector() *ResourceSelection {
	if m != nil {
		return m.Selector
	}
	return nil
}

type ListPodsResponse struct {
	Pods                 []*Pod   `protobuf:"bytes,1,rep,name=pods,proto3" json:"pods,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListPodsResponse) Reset()         { *m = ListPodsResponse{} }
func (m *ListPodsResponse) String() string { return proto.CompactTextString(m) }
func (*ListPodsResponse) ProtoMessage()    {}
func (*ListPodsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{6}
}

func (m *ListPodsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListPodsResponse.Unmarshal(m, b)
}
func (m *ListPodsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListPodsResponse.Marshal(b, m, deterministic)
}
func (m *ListPodsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListPodsResponse.Merge(m, src)
}
func (m *ListPodsResponse) XXX_Size() int {
	return xxx_messageInfo_ListPodsResponse.Size(m)
}
func (m *ListPodsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListPodsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListPodsResponse proto.InternalMessageInfo

func (m *ListPodsResponse) GetPods() []*Pod {
	if m != nil {
		return m.Pods
	}
	return nil
}

type Pod struct {
	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 valid to be assigned 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"`
	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"`
	ControlPlane         bool               `protobuf:"varint,8,opt,name=controlPlane,proto3" json:"controlPlane,omitempty"`
	Uptime               *duration.Duration `protobuf:"bytes,9,opt,name=uptime,proto3" json:"uptime,omitempty"`
	ProxyReady           bool               `protobuf:"varint,15,opt,name=proxyReady,proto3" json:"proxyReady,omitempty"`
	ProxyVersion         string             `protobuf:"bytes,16,opt,name=proxyVersion,proto3" json:"proxyVersion,omitempty"`
	ResourceVersion      string             `protobuf:"bytes,17,opt,name=resourceVersion,proto3" json:"resourceVersion,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *Pod) Reset()         { *m = Pod{} }
func (m *Pod) String() string { return proto.CompactTextString(m) }
func (*Pod) ProtoMessage()    {}
func (*Pod) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{7}
}

func (m *Pod) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Pod.Unmarshal(m, b)
}
func (m *Pod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Pod.Marshal(b, m, deterministic)
}
func (m *Pod) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Pod.Merge(m, src)
}
func (m *Pod) XXX_Size() int {
	return xxx_messageInfo_Pod.Size(m)
}
func (m *Pod) XXX_DiscardUnknown() {
	xxx_messageInfo_Pod.DiscardUnknown(m)
}

var xxx_messageInfo_Pod proto.InternalMessageInfo

func (m *Pod) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Pod) GetPodIP() string {
	if m != nil {
		return m.PodIP
	}
	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() {}

func (m *Pod) GetOwner() isPod_Owner {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *Pod) GetDeployment() string {
	if x, ok := m.GetOwner().(*Pod_Deployment); ok {
		return x.Deployment
	}
	return ""
}

func (m *Pod) GetReplicaSet() string {
	if x, ok := m.GetOwner().(*Pod_ReplicaSet); ok {
		return x.ReplicaSet
	}
	return ""
}

func (m *Pod) GetReplicationController() string {
	if x, ok := m.GetOwner().(*Pod_ReplicationController); ok {
		return x.ReplicationController
	}
	return ""
}

func (m *Pod) GetStatefulSet() string {
	if x, ok := m.GetOwner().(*Pod_StatefulSet); ok {
		return x.StatefulSet
	}
	return ""
}

func (m *Pod) GetDaemonSet() string {
	if x, ok := m.GetOwner().(*Pod_DaemonSet); ok {
		return x.DaemonSet
	}
	return ""
}

func (m *Pod) GetJob() string {
	if x, ok := m.GetOwner().(*Pod_Job); ok {
		return x.Job
	}
	return ""
}

func (m *Pod) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

func (m *Pod) GetAdded() bool {
	if m != nil {
		return m.Added
	}
	return false
}

func (m *Pod) GetSinceLastReport() *duration.Duration {
	if m != nil {
		return m.SinceLastReport
	}
	return nil
}

func (m *Pod) GetControllerNamespace() string {
	if m != nil {
		return m.ControllerNamespace
	}
	return ""
}

func (m *Pod) GetControlPlane() bool {
	if m != nil {
		return m.ControlPlane
	}
	return false
}

func (m *Pod) GetUptime() *duration.Duration {
	if m != nil {
		return m.Uptime
	}
	return nil
}

func (m *Pod) GetProxyReady() bool {
	if m != nil {
		return m.ProxyReady
	}
	return false
}

func (m *Pod) GetProxyVersion() string {
	if m != nil {
		return m.ProxyVersion
	}
	return ""
}

func (m *Pod) GetResourceVersion() string {
	if m != nil {
		return m.ResourceVersion
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Pod) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Pod_Deployment)(nil),
		(*Pod_ReplicaSet)(nil),
		(*Pod_ReplicationController)(nil),
		(*Pod_StatefulSet)(nil),
		(*Pod_DaemonSet)(nil),
		(*Pod_Job)(nil),
	}
}

// Deprecated: Do not use.
type TapRequest struct {
	// Types that are valid to be assigned 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TapRequest) Reset()         { *m = TapRequest{} }
func (m *TapRequest) String() string { return proto.CompactTextString(m) }
func (*TapRequest) ProtoMessage()    {}
func (*TapRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{8}
}

func (m *TapRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapRequest.Unmarshal(m, b)
}
func (m *TapRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapRequest.Marshal(b, m, deterministic)
}
func (m *TapRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapRequest.Merge(m, src)
}
func (m *TapRequest) XXX_Size() int {
	return xxx_messageInfo_TapRequest.Size(m)
}
func (m *TapRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_TapRequest.DiscardUnknown(m)
}

var xxx_messageInfo_TapRequest proto.InternalMessageInfo

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() {}

func (m *TapRequest) GetTarget() isTapRequest_Target {
	if m != nil {
		return m.Target
	}
	return nil
}

func (m *TapRequest) GetPod() string {
	if x, ok := m.GetTarget().(*TapRequest_Pod); ok {
		return x.Pod
	}
	return ""
}

func (m *TapRequest) GetDeployment() string {
	if x, ok := m.GetTarget().(*TapRequest_Deployment); ok {
		return x.Deployment
	}
	return ""
}

func (m *TapRequest) GetMaxRps() float32 {
	if m != nil {
		return m.MaxRps
	}
	return 0
}

func (m *TapRequest) GetToPort() uint32 {
	if m != nil {
		return m.ToPort
	}
	return 0
}

func (m *TapRequest) GetToIP() string {
	if m != nil {
		return m.ToIP
	}
	return ""
}

func (m *TapRequest) GetFromPort() uint32 {
	if m != nil {
		return m.FromPort
	}
	return 0
}

func (m *TapRequest) GetFromIP() string {
	if m != nil {
		return m.FromIP
	}
	return ""
}

func (m *TapRequest) GetScheme() string {
	if m != nil {
		return m.Scheme
	}
	return ""
}

func (m *TapRequest) GetMethod() string {
	if m != nil {
		return m.Method
	}
	return ""
}

func (m *TapRequest) GetAuthority() string {
	if m != nil {
		return m.Authority
	}
	return ""
}

func (m *TapRequest) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapRequest_Pod)(nil),
		(*TapRequest_Deployment)(nil),
	}
}

// A tap request over kubernetes resources.
//
// This is used only by the tap APIServer.
type TapByResourceRequest struct {
	// 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"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *TapByResourceRequest) Reset()         { *m = TapByResourceRequest{} }
func (m *TapByResourceRequest) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest) ProtoMessage()    {}
func (*TapByResourceRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9}
}

func (m *TapByResourceRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest.Unmarshal(m, b)
}
func (m *TapByResourceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest.Merge(m, src)
}
func (m *TapByResourceRequest) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest.Size(m)
}
func (m *TapByResourceRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest proto.InternalMessageInfo

func (m *TapByResourceRequest) GetTarget() *ResourceSelection {
	if m != nil {
		return m.Target
	}
	return nil
}

func (m *TapByResourceRequest) GetMatch() *TapByResourceRequest_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *TapByResourceRequest) GetMaxRps() float32 {
	if m != nil {
		return m.MaxRps
	}
	return 0
}

func (m *TapByResourceRequest) GetExtract() *TapByResourceRequest_Extract {
	if m != nil {
		return m.Extract
	}
	return nil
}

type TapByResourceRequest_Match struct {
	// Types that are valid to be assigned to Match:
	//	*TapByResourceRequest_Match_All
	//	*TapByResourceRequest_Match_Any
	//	*TapByResourceRequest_Match_Not
	//	*TapByResourceRequest_Match_Destinations
	//	*TapByResourceRequest_Match_Http_
	Match                isTapByResourceRequest_Match_Match `protobuf_oneof:"match"`
	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
	XXX_unrecognized     []byte                             `json:"-"`
	XXX_sizecache        int32                              `json:"-"`
}

func (m *TapByResourceRequest_Match) Reset()         { *m = TapByResourceRequest_Match{} }
func (m *TapByResourceRequest_Match) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest_Match) ProtoMessage()    {}
func (*TapByResourceRequest_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9, 0}
}

func (m *TapByResourceRequest_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest_Match.Unmarshal(m, b)
}
func (m *TapByResourceRequest_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest_Match.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest_Match.Merge(m, src)
}
func (m *TapByResourceRequest_Match) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest_Match.Size(m)
}
func (m *TapByResourceRequest_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest_Match.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest_Match proto.InternalMessageInfo

type isTapByResourceRequest_Match_Match interface {
	isTapByResourceRequest_Match_Match()
}

type TapByResourceRequest_Match_All struct {
	All *TapByResourceRequest_Match_Seq `protobuf:"bytes,1,opt,name=all,proto3,oneof"`
}

type TapByResourceRequest_Match_Any struct {
	Any *TapByResourceRequest_Match_Seq `protobuf:"bytes,2,opt,name=any,proto3,oneof"`
}

type TapByResourceRequest_Match_Not struct {
	Not *TapByResourceRequest_Match `protobuf:"bytes,3,opt,name=not,proto3,oneof"`
}

type TapByResourceRequest_Match_Destinations struct {
	Destinations *ResourceSelection `protobuf:"bytes,4,opt,name=destinations,proto3,oneof"`
}

type TapByResourceRequest_Match_Http_ struct {
	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() {}

func (m *TapByResourceRequest_Match) GetMatch() isTapByResourceRequest_Match_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *TapByResourceRequest_Match) GetAll() *TapByResourceRequest_Match_Seq {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_All); ok {
		return x.All
	}
	return nil
}

func (m *TapByResourceRequest_Match) GetAny() *TapByResourceRequest_Match_Seq {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Any); ok {
		return x.Any
	}
	return nil
}

func (m *TapByResourceRequest_Match) GetNot() *TapByResourceRequest_Match {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Not); ok {
		return x.Not
	}
	return nil
}

func (m *TapByResourceRequest_Match) GetDestinations() *ResourceSelection {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Destinations); ok {
		return x.Destinations
	}
	return nil
}

func (m *TapByResourceRequest_Match) GetHttp() *TapByResourceRequest_Match_Http {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Http_); ok {
		return x.Http
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapByResourceRequest_Match) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapByResourceRequest_Match_All)(nil),
		(*TapByResourceRequest_Match_Any)(nil),
		(*TapByResourceRequest_Match_Not)(nil),
		(*TapByResourceRequest_Match_Destinations)(nil),
		(*TapByResourceRequest_Match_Http_)(nil),
	}
}

type TapByResourceRequest_Match_Seq struct {
	Matches              []*TapByResourceRequest_Match `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *TapByResourceRequest_Match_Seq) Reset()         { *m = TapByResourceRequest_Match_Seq{} }
func (m *TapByResourceRequest_Match_Seq) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest_Match_Seq) ProtoMessage()    {}
func (*TapByResourceRequest_Match_Seq) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9, 0, 0}
}

func (m *TapByResourceRequest_Match_Seq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest_Match_Seq.Unmarshal(m, b)
}
func (m *TapByResourceRequest_Match_Seq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest_Match_Seq.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest_Match_Seq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest_Match_Seq.Merge(m, src)
}
func (m *TapByResourceRequest_Match_Seq) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest_Match_Seq.Size(m)
}
func (m *TapByResourceRequest_Match_Seq) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest_Match_Seq.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest_Match_Seq proto.InternalMessageInfo

func (m *TapByResourceRequest_Match_Seq) GetMatches() []*TapByResourceRequest_Match {
	if m != nil {
		return m.Matches
	}
	return nil
}

type TapByResourceRequest_Match_Http struct {
	// Types that are valid to be assigned 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"`
	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
	XXX_unrecognized     []byte                                  `json:"-"`
	XXX_sizecache        int32                                   `json:"-"`
}

func (m *TapByResourceRequest_Match_Http) Reset()         { *m = TapByResourceRequest_Match_Http{} }
func (m *TapByResourceRequest_Match_Http) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest_Match_Http) ProtoMessage()    {}
func (*TapByResourceRequest_Match_Http) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9, 0, 1}
}

func (m *TapByResourceRequest_Match_Http) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest_Match_Http.Unmarshal(m, b)
}
func (m *TapByResourceRequest_Match_Http) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest_Match_Http.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest_Match_Http) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest_Match_Http.Merge(m, src)
}
func (m *TapByResourceRequest_Match_Http) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest_Match_Http.Size(m)
}
func (m *TapByResourceRequest_Match_Http) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest_Match_Http.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest_Match_Http proto.InternalMessageInfo

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() {}

func (m *TapByResourceRequest_Match_Http) GetMatch() isTapByResourceRequest_Match_Http_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *TapByResourceRequest_Match_Http) GetScheme() string {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Http_Scheme); ok {
		return x.Scheme
	}
	return ""
}

func (m *TapByResourceRequest_Match_Http) GetMethod() string {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Http_Method); ok {
		return x.Method
	}
	return ""
}

func (m *TapByResourceRequest_Match_Http) GetAuthority() string {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Http_Authority); ok {
		return x.Authority
	}
	return ""
}

func (m *TapByResourceRequest_Match_Http) GetPath() string {
	if x, ok := m.GetMatch().(*TapByResourceRequest_Match_Http_Path); ok {
		return x.Path
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapByResourceRequest_Match_Http) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapByResourceRequest_Match_Http_Scheme)(nil),
		(*TapByResourceRequest_Match_Http_Method)(nil),
		(*TapByResourceRequest_Match_Http_Authority)(nil),
		(*TapByResourceRequest_Match_Http_Path)(nil),
	}
}

type TapByResourceRequest_Extract struct {
	// Types that are valid to be assigned to Extract:
	//	*TapByResourceRequest_Extract_Http_
	Extract              isTapByResourceRequest_Extract_Extract `protobuf_oneof:"extract"`
	XXX_NoUnkeyedLiteral struct{}                               `json:"-"`
	XXX_unrecognized     []byte                                 `json:"-"`
	XXX_sizecache        int32                                  `json:"-"`
}

func (m *TapByResourceRequest_Extract) Reset()         { *m = TapByResourceRequest_Extract{} }
func (m *TapByResourceRequest_Extract) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest_Extract) ProtoMessage()    {}
func (*TapByResourceRequest_Extract) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9, 1}
}

func (m *TapByResourceRequest_Extract) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest_Extract.Unmarshal(m, b)
}
func (m *TapByResourceRequest_Extract) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest_Extract.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest_Extract) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest_Extract.Merge(m, src)
}
func (m *TapByResourceRequest_Extract) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest_Extract.Size(m)
}
func (m *TapByResourceRequest_Extract) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest_Extract.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest_Extract proto.InternalMessageInfo

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() {}

func (m *TapByResourceRequest_Extract) GetExtract() isTapByResourceRequest_Extract_Extract {
	if m != nil {
		return m.Extract
	}
	return nil
}

func (m *TapByResourceRequest_Extract) GetHttp() *TapByResourceRequest_Extract_Http {
	if x, ok := m.GetExtract().(*TapByResourceRequest_Extract_Http_); ok {
		return x.Http
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapByResourceRequest_Extract) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapByResourceRequest_Extract_Http_)(nil),
	}
}

type TapByResourceRequest_Extract_Http struct {
	// Types that are valid to be assigned to Extract:
	//	*TapByResourceRequest_Extract_Http_Headers_
	Extract              isTapByResourceRequest_Extract_Http_Extract `protobuf_oneof:"extract"`
	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
	XXX_unrecognized     []byte                                      `json:"-"`
	XXX_sizecache        int32                                       `json:"-"`
}

func (m *TapByResourceRequest_Extract_Http) Reset()         { *m = TapByResourceRequest_Extract_Http{} }
func (m *TapByResourceRequest_Extract_Http) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest_Extract_Http) ProtoMessage()    {}
func (*TapByResourceRequest_Extract_Http) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9, 1, 0}
}

func (m *TapByResourceRequest_Extract_Http) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest_Extract_Http.Unmarshal(m, b)
}
func (m *TapByResourceRequest_Extract_Http) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest_Extract_Http.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest_Extract_Http) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest_Extract_Http.Merge(m, src)
}
func (m *TapByResourceRequest_Extract_Http) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest_Extract_Http.Size(m)
}
func (m *TapByResourceRequest_Extract_Http) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest_Extract_Http.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest_Extract_Http proto.InternalMessageInfo

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() {}

func (m *TapByResourceRequest_Extract_Http) GetExtract() isTapByResourceRequest_Extract_Http_Extract {
	if m != nil {
		return m.Extract
	}
	return nil
}

func (m *TapByResourceRequest_Extract_Http) GetHeaders() *TapByResourceRequest_Extract_Http_Headers {
	if x, ok := m.GetExtract().(*TapByResourceRequest_Extract_Http_Headers_); ok {
		return x.Headers
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapByResourceRequest_Extract_Http) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapByResourceRequest_Extract_Http_Headers_)(nil),
	}
}

type TapByResourceRequest_Extract_Http_Headers struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TapByResourceRequest_Extract_Http_Headers) Reset() {
	*m = TapByResourceRequest_Extract_Http_Headers{}
}
func (m *TapByResourceRequest_Extract_Http_Headers) String() string { return proto.CompactTextString(m) }
func (*TapByResourceRequest_Extract_Http_Headers) ProtoMessage()    {}
func (*TapByResourceRequest_Extract_Http_Headers) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{9, 1, 0, 0}
}

func (m *TapByResourceRequest_Extract_Http_Headers) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapByResourceRequest_Extract_Http_Headers.Unmarshal(m, b)
}
func (m *TapByResourceRequest_Extract_Http_Headers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapByResourceRequest_Extract_Http_Headers.Marshal(b, m, deterministic)
}
func (m *TapByResourceRequest_Extract_Http_Headers) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapByResourceRequest_Extract_Http_Headers.Merge(m, src)
}
func (m *TapByResourceRequest_Extract_Http_Headers) XXX_Size() int {
	return xxx_messageInfo_TapByResourceRequest_Extract_Http_Headers.Size(m)
}
func (m *TapByResourceRequest_Extract_Http_Headers) XXX_DiscardUnknown() {
	xxx_messageInfo_TapByResourceRequest_Extract_Http_Headers.DiscardUnknown(m)
}

var xxx_messageInfo_TapByResourceRequest_Extract_Http_Headers proto.InternalMessageInfo

type HttpMethod struct {
	// Types that are valid to be assigned to Type:
	//	*HttpMethod_Registered_
	//	*HttpMethod_Unregistered
	Type                 isHttpMethod_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *HttpMethod) Reset()         { *m = HttpMethod{} }
func (m *HttpMethod) String() string { return proto.CompactTextString(m) }
func (*HttpMethod) ProtoMessage()    {}
func (*HttpMethod) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{10}
}

func (m *HttpMethod) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HttpMethod.Unmarshal(m, b)
}
func (m *HttpMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HttpMethod.Marshal(b, m, deterministic)
}
func (m *HttpMethod) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HttpMethod.Merge(m, src)
}
func (m *HttpMethod) XXX_Size() int {
	return xxx_messageInfo_HttpMethod.Size(m)
}
func (m *HttpMethod) XXX_DiscardUnknown() {
	xxx_messageInfo_HttpMethod.DiscardUnknown(m)
}

var xxx_messageInfo_HttpMethod proto.InternalMessageInfo

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() {}

func (m *HttpMethod) GetType() isHttpMethod_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *HttpMethod) GetRegistered() HttpMethod_Registered {
	if x, ok := m.GetType().(*HttpMethod_Registered_); ok {
		return x.Registered
	}
	return HttpMethod_GET
}

func (m *HttpMethod) GetUnregistered() string {
	if x, ok := m.GetType().(*HttpMethod_Unregistered); ok {
		return x.Unregistered
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*HttpMethod) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*HttpMethod_Registered_)(nil),
		(*HttpMethod_Unregistered)(nil),
	}
}

type Scheme struct {
	// Types that are valid to be assigned to Type:
	//	*Scheme_Registered_
	//	*Scheme_Unregistered
	Type                 isScheme_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *Scheme) Reset()         { *m = Scheme{} }
func (m *Scheme) String() string { return proto.CompactTextString(m) }
func (*Scheme) ProtoMessage()    {}
func (*Scheme) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{11}
}

func (m *Scheme) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Scheme.Unmarshal(m, b)
}
func (m *Scheme) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Scheme.Marshal(b, m, deterministic)
}
func (m *Scheme) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Scheme.Merge(m, src)
}
func (m *Scheme) XXX_Size() int {
	return xxx_messageInfo_Scheme.Size(m)
}
func (m *Scheme) XXX_DiscardUnknown() {
	xxx_messageInfo_Scheme.DiscardUnknown(m)
}

var xxx_messageInfo_Scheme proto.InternalMessageInfo

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() {}

func (m *Scheme) GetType() isScheme_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *Scheme) GetRegistered() Scheme_Registered {
	if x, ok := m.GetType().(*Scheme_Registered_); ok {
		return x.Registered
	}
	return Scheme_HTTP
}

func (m *Scheme) GetUnregistered() string {
	if x, ok := m.GetType().(*Scheme_Unregistered); ok {
		return x.Unregistered
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Scheme) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Scheme_Registered_)(nil),
		(*Scheme_Unregistered)(nil),
	}
}

type Headers struct {
	Headers              []*Headers_Header `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *Headers) Reset()         { *m = Headers{} }
func (m *Headers) String() string { return proto.CompactTextString(m) }
func (*Headers) ProtoMessage()    {}
func (*Headers) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{12}
}

func (m *Headers) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Headers.Unmarshal(m, b)
}
func (m *Headers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Headers.Marshal(b, m, deterministic)
}
func (m *Headers) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Headers.Merge(m, src)
}
func (m *Headers) XXX_Size() int {
	return xxx_messageInfo_Headers.Size(m)
}
func (m *Headers) XXX_DiscardUnknown() {
	xxx_messageInfo_Headers.DiscardUnknown(m)
}

var xxx_messageInfo_Headers proto.InternalMessageInfo

func (m *Headers) GetHeaders() []*Headers_Header {
	if m != nil {
		return m.Headers
	}
	return nil
}

type Headers_Header struct {
	// 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 valid to be assigned to Value:
	//	*Headers_Header_ValueStr
	//	*Headers_Header_ValueBin
	Value                isHeaders_Header_Value `protobuf_oneof:"value"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *Headers_Header) Reset()         { *m = Headers_Header{} }
func (m *Headers_Header) String() string { return proto.CompactTextString(m) }
func (*Headers_Header) ProtoMessage()    {}
func (*Headers_Header) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{12, 0}
}

func (m *Headers_Header) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Headers_Header.Unmarshal(m, b)
}
func (m *Headers_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Headers_Header.Marshal(b, m, deterministic)
}
func (m *Headers_Header) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Headers_Header.Merge(m, src)
}
func (m *Headers_Header) XXX_Size() int {
	return xxx_messageInfo_Headers_Header.Size(m)
}
func (m *Headers_Header) XXX_DiscardUnknown() {
	xxx_messageInfo_Headers_Header.DiscardUnknown(m)
}

var xxx_messageInfo_Headers_Header proto.InternalMessageInfo

func (m *Headers_Header) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

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() {}

func (m *Headers_Header) GetValue() isHeaders_Header_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *Headers_Header) GetValueStr() string {
	if x, ok := m.GetValue().(*Headers_Header_ValueStr); ok {
		return x.ValueStr
	}
	return ""
}

func (m *Headers_Header) GetValueBin() []byte {
	if x, ok := m.GetValue().(*Headers_Header_ValueBin); ok {
		return x.ValueBin
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Headers_Header) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Headers_Header_ValueStr)(nil),
		(*Headers_Header_ValueBin)(nil),
	}
}

type IPAddress struct {
	// Types that are valid to be assigned to Ip:
	//	*IPAddress_Ipv4
	//	*IPAddress_Ipv6
	Ip                   isIPAddress_Ip `protobuf_oneof:"ip"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *IPAddress) Reset()         { *m = IPAddress{} }
func (m *IPAddress) String() string { return proto.CompactTextString(m) }
func (*IPAddress) ProtoMessage()    {}
func (*IPAddress) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{13}
}

func (m *IPAddress) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_IPAddress.Unmarshal(m, b)
}
func (m *IPAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_IPAddress.Marshal(b, m, deterministic)
}
func (m *IPAddress) XXX_Merge(src proto.Message) {
	xxx_messageInfo_IPAddress.Merge(m, src)
}
func (m *IPAddress) XXX_Size() int {
	return xxx_messageInfo_IPAddress.Size(m)
}
func (m *IPAddress) XXX_DiscardUnknown() {
	xxx_messageInfo_IPAddress.DiscardUnknown(m)
}

var xxx_messageInfo_IPAddress proto.InternalMessageInfo

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() {}

func (m *IPAddress) GetIp() isIPAddress_Ip {
	if m != nil {
		return m.Ip
	}
	return nil
}

func (m *IPAddress) GetIpv4() uint32 {
	if x, ok := m.GetIp().(*IPAddress_Ipv4); ok {
		return x.Ipv4
	}
	return 0
}

func (m *IPAddress) GetIpv6() *IPv6 {
	if x, ok := m.GetIp().(*IPAddress_Ipv6); ok {
		return x.Ipv6
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*IPAddress) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*IPAddress_Ipv4)(nil),
		(*IPAddress_Ipv6)(nil),
	}
}

type IPv6 struct {
	First                uint64   `protobuf:"fixed64,1,opt,name=first,proto3" json:"first,omitempty"`
	Last                 uint64   `protobuf:"fixed64,2,opt,name=last,proto3" json:"last,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *IPv6) Reset()         { *m = IPv6{} }
func (m *IPv6) String() string { return proto.CompactTextString(m) }
func (*IPv6) ProtoMessage()    {}
func (*IPv6) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{14}
}

func (m *IPv6) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_IPv6.Unmarshal(m, b)
}
func (m *IPv6) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_IPv6.Marshal(b, m, deterministic)
}
func (m *IPv6) XXX_Merge(src proto.Message) {
	xxx_messageInfo_IPv6.Merge(m, src)
}
func (m *IPv6) XXX_Size() int {
	return xxx_messageInfo_IPv6.Size(m)
}
func (m *IPv6) XXX_DiscardUnknown() {
	xxx_messageInfo_IPv6.DiscardUnknown(m)
}

var xxx_messageInfo_IPv6 proto.InternalMessageInfo

func (m *IPv6) GetFirst() uint64 {
	if m != nil {
		return m.First
	}
	return 0
}

func (m *IPv6) GetLast() uint64 {
	if m != nil {
		return m.Last
	}
	return 0
}

type TcpAddress struct {
	Ip                   *IPAddress `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	Port                 uint32     `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *TcpAddress) Reset()         { *m = TcpAddress{} }
func (m *TcpAddress) String() string { return proto.CompactTextString(m) }
func (*TcpAddress) ProtoMessage()    {}
func (*TcpAddress) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{15}
}

func (m *TcpAddress) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TcpAddress.Unmarshal(m, b)
}
func (m *TcpAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TcpAddress.Marshal(b, m, deterministic)
}
func (m *TcpAddress) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TcpAddress.Merge(m, src)
}
func (m *TcpAddress) XXX_Size() int {
	return xxx_messageInfo_TcpAddress.Size(m)
}
func (m *TcpAddress) XXX_DiscardUnknown() {
	xxx_messageInfo_TcpAddress.DiscardUnknown(m)
}

var xxx_messageInfo_TcpAddress proto.InternalMessageInfo

func (m *TcpAddress) GetIp() *IPAddress {
	if m != nil {
		return m.Ip
	}
	return nil
}

func (m *TcpAddress) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type Eos struct {
	// Types that are valid to be assigned to End:
	//	*Eos_GrpcStatusCode
	//	*Eos_ResetErrorCode
	End                  isEos_End `protobuf_oneof:"end"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *Eos) Reset()         { *m = Eos{} }
func (m *Eos) String() string { return proto.CompactTextString(m) }
func (*Eos) ProtoMessage()    {}
func (*Eos) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{16}
}

func (m *Eos) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Eos.Unmarshal(m, b)
}
func (m *Eos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Eos.Marshal(b, m, deterministic)
}
func (m *Eos) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Eos.Merge(m, src)
}
func (m *Eos) XXX_Size() int {
	return xxx_messageInfo_Eos.Size(m)
}
func (m *Eos) XXX_DiscardUnknown() {
	xxx_messageInfo_Eos.DiscardUnknown(m)
}

var xxx_messageInfo_Eos proto.InternalMessageInfo

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() {}

func (m *Eos) GetEnd() isEos_End {
	if m != nil {
		return m.End
	}
	return nil
}

func (m *Eos) GetGrpcStatusCode() uint32 {
	if x, ok := m.GetEnd().(*Eos_GrpcStatusCode); ok {
		return x.GrpcStatusCode
	}
	return 0
}

func (m *Eos) GetResetErrorCode() uint32 {
	if x, ok := m.GetEnd().(*Eos_ResetErrorCode); ok {
		return x.ResetErrorCode
	}
	return 0
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Eos) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Eos_GrpcStatusCode)(nil),
		(*Eos_ResetErrorCode)(nil),
	}
}

// This is used only by the tap APIServer.
type TapEvent struct {
	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 valid to be assigned to Event:
	//	*TapEvent_Http_
	Event                isTapEvent_Event `protobuf_oneof:"event"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *TapEvent) Reset()         { *m = TapEvent{} }
func (m *TapEvent) String() string { return proto.CompactTextString(m) }
func (*TapEvent) ProtoMessage()    {}
func (*TapEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17}
}

func (m *TapEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent.Unmarshal(m, b)
}
func (m *TapEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent.Marshal(b, m, deterministic)
}
func (m *TapEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent.Merge(m, src)
}
func (m *TapEvent) XXX_Size() int {
	return xxx_messageInfo_TapEvent.Size(m)
}
func (m *TapEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent proto.InternalMessageInfo

func (m *TapEvent) GetSource() *TcpAddress {
	if m != nil {
		return m.Source
	}
	return nil
}

func (m *TapEvent) GetSourceMeta() *TapEvent_EndpointMeta {
	if m != nil {
		return m.SourceMeta
	}
	return nil
}

func (m *TapEvent) GetDestination() *TcpAddress {
	if m != nil {
		return m.Destination
	}
	return nil
}

func (m *TapEvent) GetDestinationMeta() *TapEvent_EndpointMeta {
	if m != nil {
		return m.DestinationMeta
	}
	return nil
}

func (m *TapEvent) GetRouteMeta() *TapEvent_RouteMeta {
	if m != nil {
		return m.RouteMeta
	}
	return nil
}

func (m *TapEvent) GetProxyDirection() TapEvent_ProxyDirection {
	if m != nil {
		return m.ProxyDirection
	}
	return TapEvent_UNKNOWN
}

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() {}

func (m *TapEvent) GetEvent() isTapEvent_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (m *TapEvent) GetHttp() *TapEvent_Http {
	if x, ok := m.GetEvent().(*TapEvent_Http_); ok {
		return x.Http
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapEvent) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapEvent_Http_)(nil),
	}
}

type TapEvent_EndpointMeta struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *TapEvent_EndpointMeta) Reset()         { *m = TapEvent_EndpointMeta{} }
func (m *TapEvent_EndpointMeta) String() string { return proto.CompactTextString(m) }
func (*TapEvent_EndpointMeta) ProtoMessage()    {}
func (*TapEvent_EndpointMeta) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 0}
}

func (m *TapEvent_EndpointMeta) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_EndpointMeta.Unmarshal(m, b)
}
func (m *TapEvent_EndpointMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_EndpointMeta.Marshal(b, m, deterministic)
}
func (m *TapEvent_EndpointMeta) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_EndpointMeta.Merge(m, src)
}
func (m *TapEvent_EndpointMeta) XXX_Size() int {
	return xxx_messageInfo_TapEvent_EndpointMeta.Size(m)
}
func (m *TapEvent_EndpointMeta) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_EndpointMeta.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_EndpointMeta proto.InternalMessageInfo

func (m *TapEvent_EndpointMeta) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

type TapEvent_RouteMeta struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *TapEvent_RouteMeta) Reset()         { *m = TapEvent_RouteMeta{} }
func (m *TapEvent_RouteMeta) String() string { return proto.CompactTextString(m) }
func (*TapEvent_RouteMeta) ProtoMessage()    {}
func (*TapEvent_RouteMeta) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 1}
}

func (m *TapEvent_RouteMeta) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_RouteMeta.Unmarshal(m, b)
}
func (m *TapEvent_RouteMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_RouteMeta.Marshal(b, m, deterministic)
}
func (m *TapEvent_RouteMeta) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_RouteMeta.Merge(m, src)
}
func (m *TapEvent_RouteMeta) XXX_Size() int {
	return xxx_messageInfo_TapEvent_RouteMeta.Size(m)
}
func (m *TapEvent_RouteMeta) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_RouteMeta.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_RouteMeta proto.InternalMessageInfo

func (m *TapEvent_RouteMeta) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

type TapEvent_Http struct {
	// Types that are valid to be assigned to Event:
	//	*TapEvent_Http_RequestInit_
	//	*TapEvent_Http_ResponseInit_
	//	*TapEvent_Http_ResponseEnd_
	Event                isTapEvent_Http_Event `protobuf_oneof:"event"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *TapEvent_Http) Reset()         { *m = TapEvent_Http{} }
func (m *TapEvent_Http) String() string { return proto.CompactTextString(m) }
func (*TapEvent_Http) ProtoMessage()    {}
func (*TapEvent_Http) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 2}
}

func (m *TapEvent_Http) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_Http.Unmarshal(m, b)
}
func (m *TapEvent_Http) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_Http.Marshal(b, m, deterministic)
}
func (m *TapEvent_Http) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_Http.Merge(m, src)
}
func (m *TapEvent_Http) XXX_Size() int {
	return xxx_messageInfo_TapEvent_Http.Size(m)
}
func (m *TapEvent_Http) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_Http.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_Http proto.InternalMessageInfo

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() {}

func (m *TapEvent_Http) GetEvent() isTapEvent_Http_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (m *TapEvent_Http) GetRequestInit() *TapEvent_Http_RequestInit {
	if x, ok := m.GetEvent().(*TapEvent_Http_RequestInit_); ok {
		return x.RequestInit
	}
	return nil
}

func (m *TapEvent_Http) GetResponseInit() *TapEvent_Http_ResponseInit {
	if x, ok := m.GetEvent().(*TapEvent_Http_ResponseInit_); ok {
		return x.ResponseInit
	}
	return nil
}

func (m *TapEvent_Http) GetResponseEnd() *TapEvent_Http_ResponseEnd {
	if x, ok := m.GetEvent().(*TapEvent_Http_ResponseEnd_); ok {
		return x.ResponseEnd
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TapEvent_Http) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TapEvent_Http_RequestInit_)(nil),
		(*TapEvent_Http_ResponseInit_)(nil),
		(*TapEvent_Http_ResponseEnd_)(nil),
	}
}

type TapEvent_Http_StreamId struct {
	// 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TapEvent_Http_StreamId) Reset()         { *m = TapEvent_Http_StreamId{} }
func (m *TapEvent_Http_StreamId) String() string { return proto.CompactTextString(m) }
func (*TapEvent_Http_StreamId) ProtoMessage()    {}
func (*TapEvent_Http_StreamId) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 2, 0}
}

func (m *TapEvent_Http_StreamId) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_Http_StreamId.Unmarshal(m, b)
}
func (m *TapEvent_Http_StreamId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_Http_StreamId.Marshal(b, m, deterministic)
}
func (m *TapEvent_Http_StreamId) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_Http_StreamId.Merge(m, src)
}
func (m *TapEvent_Http_StreamId) XXX_Size() int {
	return xxx_messageInfo_TapEvent_Http_StreamId.Size(m)
}
func (m *TapEvent_Http_StreamId) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_Http_StreamId.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_Http_StreamId proto.InternalMessageInfo

func (m *TapEvent_Http_StreamId) GetBase() uint32 {
	if m != nil {
		return m.Base
	}
	return 0
}

func (m *TapEvent_Http_StreamId) GetStream() uint64 {
	if m != nil {
		return m.Stream
	}
	return 0
}

type TapEvent_Http_RequestInit struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *TapEvent_Http_RequestInit) Reset()         { *m = TapEvent_Http_RequestInit{} }
func (m *TapEvent_Http_RequestInit) String() string { return proto.CompactTextString(m) }
func (*TapEvent_Http_RequestInit) ProtoMessage()    {}
func (*TapEvent_Http_RequestInit) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 2, 1}
}

func (m *TapEvent_Http_RequestInit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_Http_RequestInit.Unmarshal(m, b)
}
func (m *TapEvent_Http_RequestInit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_Http_RequestInit.Marshal(b, m, deterministic)
}
func (m *TapEvent_Http_RequestInit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_Http_RequestInit.Merge(m, src)
}
func (m *TapEvent_Http_RequestInit) XXX_Size() int {
	return xxx_messageInfo_TapEvent_Http_RequestInit.Size(m)
}
func (m *TapEvent_Http_RequestInit) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_Http_RequestInit.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_Http_RequestInit proto.InternalMessageInfo

func (m *TapEvent_Http_RequestInit) GetId() *TapEvent_Http_StreamId {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *TapEvent_Http_RequestInit) GetMethod() *HttpMethod {
	if m != nil {
		return m.Method
	}
	return nil
}

func (m *TapEvent_Http_RequestInit) GetScheme() *Scheme {
	if m != nil {
		return m.Scheme
	}
	return nil
}

func (m *TapEvent_Http_RequestInit) GetAuthority() string {
	if m != nil {
		return m.Authority
	}
	return ""
}

func (m *TapEvent_Http_RequestInit) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *TapEvent_Http_RequestInit) GetHeaders() *Headers {
	if m != nil {
		return m.Headers
	}
	return nil
}

type TapEvent_Http_ResponseInit struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *TapEvent_Http_ResponseInit) Reset()         { *m = TapEvent_Http_ResponseInit{} }
func (m *TapEvent_Http_ResponseInit) String() string { return proto.CompactTextString(m) }
func (*TapEvent_Http_ResponseInit) ProtoMessage()    {}
func (*TapEvent_Http_ResponseInit) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 2, 2}
}

func (m *TapEvent_Http_ResponseInit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_Http_ResponseInit.Unmarshal(m, b)
}
func (m *TapEvent_Http_ResponseInit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_Http_ResponseInit.Marshal(b, m, deterministic)
}
func (m *TapEvent_Http_ResponseInit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_Http_ResponseInit.Merge(m, src)
}
func (m *TapEvent_Http_ResponseInit) XXX_Size() int {
	return xxx_messageInfo_TapEvent_Http_ResponseInit.Size(m)
}
func (m *TapEvent_Http_ResponseInit) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_Http_ResponseInit.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_Http_ResponseInit proto.InternalMessageInfo

func (m *TapEvent_Http_ResponseInit) GetId() *TapEvent_Http_StreamId {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *TapEvent_Http_ResponseInit) GetSinceRequestInit() *duration.Duration {
	if m != nil {
		return m.SinceRequestInit
	}
	return nil
}

func (m *TapEvent_Http_ResponseInit) GetHttpStatus() uint32 {
	if m != nil {
		return m.HttpStatus
	}
	return 0
}

func (m *TapEvent_Http_ResponseInit) GetHeaders() *Headers {
	if m != nil {
		return m.Headers
	}
	return nil
}

type TapEvent_Http_ResponseEnd struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *TapEvent_Http_ResponseEnd) Reset()         { *m = TapEvent_Http_ResponseEnd{} }
func (m *TapEvent_Http_ResponseEnd) String() string { return proto.CompactTextString(m) }
func (*TapEvent_Http_ResponseEnd) ProtoMessage()    {}
func (*TapEvent_Http_ResponseEnd) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{17, 2, 3}
}

func (m *TapEvent_Http_ResponseEnd) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TapEvent_Http_ResponseEnd.Unmarshal(m, b)
}
func (m *TapEvent_Http_ResponseEnd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TapEvent_Http_ResponseEnd.Marshal(b, m, deterministic)
}
func (m *TapEvent_Http_ResponseEnd) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TapEvent_Http_ResponseEnd.Merge(m, src)
}
func (m *TapEvent_Http_ResponseEnd) XXX_Size() int {
	return xxx_messageInfo_TapEvent_Http_ResponseEnd.Size(m)
}
func (m *TapEvent_Http_ResponseEnd) XXX_DiscardUnknown() {
	xxx_messageInfo_TapEvent_Http_ResponseEnd.DiscardUnknown(m)
}

var xxx_messageInfo_TapEvent_Http_ResponseEnd proto.InternalMessageInfo

func (m *TapEvent_Http_ResponseEnd) GetId() *TapEvent_Http_StreamId {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *TapEvent_Http_ResponseEnd) GetSinceRequestInit() *duration.Duration {
	if m != nil {
		return m.SinceRequestInit
	}
	return nil
}

func (m *TapEvent_Http_ResponseEnd) GetSinceResponseInit() *duration.Duration {
	if m != nil {
		return m.SinceResponseInit
	}
	return nil
}

func (m *TapEvent_Http_ResponseEnd) GetResponseBytes() uint64 {
	if m != nil {
		return m.ResponseBytes
	}
	return 0
}

func (m *TapEvent_Http_ResponseEnd) GetEos() *Eos {
	if m != nil {
		return m.Eos
	}
	return nil
}

func (m *TapEvent_Http_ResponseEnd) GetTrailers() *Headers {
	if m != nil {
		return m.Trailers
	}
	return nil
}

type ApiError struct {
	Error                string   `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ApiError) Reset()         { *m = ApiError{} }
func (m *ApiError) String() string { return proto.CompactTextString(m) }
func (*ApiError) ProtoMessage()    {}
func (*ApiError) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{18}
}

func (m *ApiError) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ApiError.Unmarshal(m, b)
}
func (m *ApiError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ApiError.Marshal(b, m, deterministic)
}
func (m *ApiError) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ApiError.Merge(m, src)
}
func (m *ApiError) XXX_Size() int {
	return xxx_messageInfo_ApiError.Size(m)
}
func (m *ApiError) XXX_DiscardUnknown() {
	xxx_messageInfo_ApiError.DiscardUnknown(m)
}

var xxx_messageInfo_ApiError proto.InternalMessageInfo

func (m *ApiError) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

type PodErrors struct {
	Errors               []*PodErrors_PodError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *PodErrors) Reset()         { *m = PodErrors{} }
func (m *PodErrors) String() string { return proto.CompactTextString(m) }
func (*PodErrors) ProtoMessage()    {}
func (*PodErrors) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{19}
}

func (m *PodErrors) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PodErrors.Unmarshal(m, b)
}
func (m *PodErrors) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PodErrors.Marshal(b, m, deterministic)
}
func (m *PodErrors) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PodErrors.Merge(m, src)
}
func (m *PodErrors) XXX_Size() int {
	return xxx_messageInfo_PodErrors.Size(m)
}
func (m *PodErrors) XXX_DiscardUnknown() {
	xxx_messageInfo_PodErrors.DiscardUnknown(m)
}

var xxx_messageInfo_PodErrors proto.InternalMessageInfo

func (m *PodErrors) GetErrors() []*PodErrors_PodError {
	if m != nil {
		return m.Errors
	}
	return nil
}

type PodErrors_PodError struct {
	// Types that are valid to be assigned to Error:
	//	*PodErrors_PodError_Container
	Error                isPodErrors_PodError_Error `protobuf_oneof:"error"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *PodErrors_PodError) Reset()         { *m = PodErrors_PodError{} }
func (m *PodErrors_PodError) String() string { return proto.CompactTextString(m) }
func (*PodErrors_PodError) ProtoMessage()    {}
func (*PodErrors_PodError) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{19, 0}
}

func (m *PodErrors_PodError) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PodErrors_PodError.Unmarshal(m, b)
}
func (m *PodErrors_PodError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PodErrors_PodError.Marshal(b, m, deterministic)
}
func (m *PodErrors_PodError) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PodErrors_PodError.Merge(m, src)
}
func (m *PodErrors_PodError) XXX_Size() int {
	return xxx_messageInfo_PodErrors_PodError.Size(m)
}
func (m *PodErrors_PodError) XXX_DiscardUnknown() {
	xxx_messageInfo_PodErrors_PodError.DiscardUnknown(m)
}

var xxx_messageInfo_PodErrors_PodError proto.InternalMessageInfo

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() {}

func (m *PodErrors_PodError) GetError() isPodErrors_PodError_Error {
	if m != nil {
		return m.Error
	}
	return nil
}

func (m *PodErrors_PodError) GetContainer() *PodErrors_PodError_ContainerError {
	if x, ok := m.GetError().(*PodErrors_PodError_Container); ok {
		return x.Container
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PodErrors_PodError) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PodErrors_PodError_Container)(nil),
	}
}

// To report init-container and container failures
type PodErrors_PodError_ContainerError struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PodErrors_PodError_ContainerError) Reset()         { *m = PodErrors_PodError_ContainerError{} }
func (m *PodErrors_PodError_ContainerError) String() string { return proto.CompactTextString(m) }
func (*PodErrors_PodError_ContainerError) ProtoMessage()    {}
func (*PodErrors_PodError_ContainerError) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{19, 0, 0}
}

func (m *PodErrors_PodError_ContainerError) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PodErrors_PodError_ContainerError.Unmarshal(m, b)
}
func (m *PodErrors_PodError_ContainerError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PodErrors_PodError_ContainerError.Marshal(b, m, deterministic)
}
func (m *PodErrors_PodError_ContainerError) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PodErrors_PodError_ContainerError.Merge(m, src)
}
func (m *PodErrors_PodError_ContainerError) XXX_Size() int {
	return xxx_messageInfo_PodErrors_PodError_ContainerError.Size(m)
}
func (m *PodErrors_PodError_ContainerError) XXX_DiscardUnknown() {
	xxx_messageInfo_PodErrors_PodError_ContainerError.DiscardUnknown(m)
}

var xxx_messageInfo_PodErrors_PodError_ContainerError proto.InternalMessageInfo

func (m *PodErrors_PodError_ContainerError) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

func (m *PodErrors_PodError_ContainerError) GetContainer() string {
	if m != nil {
		return m.Container
	}
	return ""
}

func (m *PodErrors_PodError_ContainerError) GetImage() string {
	if m != nil {
		return m.Image
	}
	return ""
}

func (m *PodErrors_PodError_ContainerError) GetReason() string {
	if m != nil {
		return m.Reason
	}
	return ""
}

type Resource struct {
	// 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Resource) Reset()         { *m = Resource{} }
func (m *Resource) String() string { return proto.CompactTextString(m) }
func (*Resource) ProtoMessage()    {}
func (*Resource) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{20}
}

func (m *Resource) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Resource.Unmarshal(m, b)
}
func (m *Resource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Resource.Marshal(b, m, deterministic)
}
func (m *Resource) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Resource.Merge(m, src)
}
func (m *Resource) XXX_Size() int {
	return xxx_messageInfo_Resource.Size(m)
}
func (m *Resource) XXX_DiscardUnknown() {
	xxx_messageInfo_Resource.DiscardUnknown(m)
}

var xxx_messageInfo_Resource proto.InternalMessageInfo

func (m *Resource) GetNamespace() string {
	if m != nil {
		return m.Namespace
	}
	return ""
}

func (m *Resource) GetType() string {
	if m != nil {
		return m.Type
	}
	return ""
}

func (m *Resource) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ResourceSelection struct {
	// 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 superceded 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ResourceSelection) Reset()         { *m = ResourceSelection{} }
func (m *ResourceSelection) String() string { return proto.CompactTextString(m) }
func (*ResourceSelection) ProtoMessage()    {}
func (*ResourceSelection) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{21}
}

func (m *ResourceSelection) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ResourceSelection.Unmarshal(m, b)
}
func (m *ResourceSelection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ResourceSelection.Marshal(b, m, deterministic)
}
func (m *ResourceSelection) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ResourceSelection.Merge(m, src)
}
func (m *ResourceSelection) XXX_Size() int {
	return xxx_messageInfo_ResourceSelection.Size(m)
}
func (m *ResourceSelection) XXX_DiscardUnknown() {
	xxx_messageInfo_ResourceSelection.DiscardUnknown(m)
}

var xxx_messageInfo_ResourceSelection proto.InternalMessageInfo

func (m *ResourceSelection) GetResource() *Resource {
	if m != nil {
		return m.Resource
	}
	return nil
}

func (m *ResourceSelection) GetLabelSelector() string {
	if m != nil {
		return m.LabelSelector
	}
	return ""
}

type ResourceError struct {
	Resource             *Resource `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	Error                string    `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *ResourceError) Reset()         { *m = ResourceError{} }
func (m *ResourceError) String() string { return proto.CompactTextString(m) }
func (*ResourceError) ProtoMessage()    {}
func (*ResourceError) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{22}
}

func (m *ResourceError) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ResourceError.Unmarshal(m, b)
}
func (m *ResourceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ResourceError.Marshal(b, m, deterministic)
}
func (m *ResourceError) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ResourceError.Merge(m, src)
}
func (m *ResourceError) XXX_Size() int {
	return xxx_messageInfo_ResourceError.Size(m)
}
func (m *ResourceError) XXX_DiscardUnknown() {
	xxx_messageInfo_ResourceError.DiscardUnknown(m)
}

var xxx_messageInfo_ResourceError proto.InternalMessageInfo

func (m *ResourceError) GetResource() *Resource {
	if m != nil {
		return m.Resource
	}
	return nil
}

func (m *ResourceError) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

type StatSummaryRequest struct {
	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 valid to be assigned 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"`
	TcpStats             bool                          `protobuf:"varint,7,opt,name=tcp_stats,json=tcpStats,proto3" json:"tcp_stats,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *StatSummaryRequest) Reset()         { *m = StatSummaryRequest{} }
func (m *StatSummaryRequest) String() string { return proto.CompactTextString(m) }
func (*StatSummaryRequest) ProtoMessage()    {}
func (*StatSummaryRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{23}
}

func (m *StatSummaryRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatSummaryRequest.Unmarshal(m, b)
}
func (m *StatSummaryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatSummaryRequest.Marshal(b, m, deterministic)
}
func (m *StatSummaryRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatSummaryRequest.Merge(m, src)
}
func (m *StatSummaryRequest) XXX_Size() int {
	return xxx_messageInfo_StatSummaryRequest.Size(m)
}
func (m *StatSummaryRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StatSummaryRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StatSummaryRequest proto.InternalMessageInfo

func (m *StatSummaryRequest) GetSelector() *ResourceSelection {
	if m != nil {
		return m.Selector
	}
	return nil
}

func (m *StatSummaryRequest) GetTimeWindow() string {
	if m != nil {
		return m.TimeWindow
	}
	return ""
}

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() {}

func (m *StatSummaryRequest) GetOutbound() isStatSummaryRequest_Outbound {
	if m != nil {
		return m.Outbound
	}
	return nil
}

func (m *StatSummaryRequest) GetNone() *Empty {
	if x, ok := m.GetOutbound().(*StatSummaryRequest_None); ok {
		return x.None
	}
	return nil
}

func (m *StatSummaryRequest) GetToResource() *Resource {
	if x, ok := m.GetOutbound().(*StatSummaryRequest_ToResource); ok {
		return x.ToResource
	}
	return nil
}

func (m *StatSummaryRequest) GetFromResource() *Resource {
	if x, ok := m.GetOutbound().(*StatSummaryRequest_FromResource); ok {
		return x.FromResource
	}
	return nil
}

func (m *StatSummaryRequest) GetSkipStats() bool {
	if m != nil {
		return m.SkipStats
	}
	return false
}

func (m *StatSummaryRequest) GetTcpStats() bool {
	if m != nil {
		return m.TcpStats
	}
	return false
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*StatSummaryRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*StatSummaryRequest_None)(nil),
		(*StatSummaryRequest_ToResource)(nil),
		(*StatSummaryRequest_FromResource)(nil),
	}
}

type StatSummaryResponse struct {
	// Types that are valid to be assigned to Response:
	//	*StatSummaryResponse_Ok_
	//	*StatSummaryResponse_Error
	Response             isStatSummaryResponse_Response `protobuf_oneof:"response"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

func (m *StatSummaryResponse) Reset()         { *m = StatSummaryResponse{} }
func (m *StatSummaryResponse) String() string { return proto.CompactTextString(m) }
func (*StatSummaryResponse) ProtoMessage()    {}
func (*StatSummaryResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{24}
}

func (m *StatSummaryResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatSummaryResponse.Unmarshal(m, b)
}
func (m *StatSummaryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatSummaryResponse.Marshal(b, m, deterministic)
}
func (m *StatSummaryResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatSummaryResponse.Merge(m, src)
}
func (m *StatSummaryResponse) XXX_Size() int {
	return xxx_messageInfo_StatSummaryResponse.Size(m)
}
func (m *StatSummaryResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StatSummaryResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StatSummaryResponse proto.InternalMessageInfo

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() {}

func (m *StatSummaryResponse) GetResponse() isStatSummaryResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (m *StatSummaryResponse) GetOk() *StatSummaryResponse_Ok {
	if x, ok := m.GetResponse().(*StatSummaryResponse_Ok_); ok {
		return x.Ok
	}
	return nil
}

func (m *StatSummaryResponse) GetError() *ResourceError {
	if x, ok := m.GetResponse().(*StatSummaryResponse_Error); ok {
		return x.Error
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*StatSummaryResponse) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*StatSummaryResponse_Ok_)(nil),
		(*StatSummaryResponse_Error)(nil),
	}
}

type StatSummaryResponse_Ok struct {
	StatTables           []*StatTable `protobuf:"bytes,1,rep,name=stat_tables,json=statTables,proto3" json:"stat_tables,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *StatSummaryResponse_Ok) Reset()         { *m = StatSummaryResponse_Ok{} }
func (m *StatSummaryResponse_Ok) String() string { return proto.CompactTextString(m) }
func (*StatSummaryResponse_Ok) ProtoMessage()    {}
func (*StatSummaryResponse_Ok) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{24, 0}
}

func (m *StatSummaryResponse_Ok) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatSummaryResponse_Ok.Unmarshal(m, b)
}
func (m *StatSummaryResponse_Ok) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatSummaryResponse_Ok.Marshal(b, m, deterministic)
}
func (m *StatSummaryResponse_Ok) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatSummaryResponse_Ok.Merge(m, src)
}
func (m *StatSummaryResponse_Ok) XXX_Size() int {
	return xxx_messageInfo_StatSummaryResponse_Ok.Size(m)
}
func (m *StatSummaryResponse_Ok) XXX_DiscardUnknown() {
	xxx_messageInfo_StatSummaryResponse_Ok.DiscardUnknown(m)
}

var xxx_messageInfo_StatSummaryResponse_Ok proto.InternalMessageInfo

func (m *StatSummaryResponse_Ok) GetStatTables() []*StatTable {
	if m != nil {
		return m.StatTables
	}
	return nil
}

type BasicStats struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BasicStats) Reset()         { *m = BasicStats{} }
func (m *BasicStats) String() string { return proto.CompactTextString(m) }
func (*BasicStats) ProtoMessage()    {}
func (*BasicStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{25}
}

func (m *BasicStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BasicStats.Unmarshal(m, b)
}
func (m *BasicStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BasicStats.Marshal(b, m, deterministic)
}
func (m *BasicStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BasicStats.Merge(m, src)
}
func (m *BasicStats) XXX_Size() int {
	return xxx_messageInfo_BasicStats.Size(m)
}
func (m *BasicStats) XXX_DiscardUnknown() {
	xxx_messageInfo_BasicStats.DiscardUnknown(m)
}

var xxx_messageInfo_BasicStats proto.InternalMessageInfo

func (m *BasicStats) GetSuccessCount() uint64 {
	if m != nil {
		return m.SuccessCount
	}
	return 0
}

func (m *BasicStats) GetFailureCount() uint64 {
	if m != nil {
		return m.FailureCount
	}
	return 0
}

func (m *BasicStats) GetLatencyMsP50() uint64 {
	if m != nil {
		return m.LatencyMsP50
	}
	return 0
}

func (m *BasicStats) GetLatencyMsP95() uint64 {
	if m != nil {
		return m.LatencyMsP95
	}
	return 0
}

func (m *BasicStats) GetLatencyMsP99() uint64 {
	if m != nil {
		return m.LatencyMsP99
	}
	return 0
}

func (m *BasicStats) GetActualSuccessCount() uint64 {
	if m != nil {
		return m.ActualSuccessCount
	}
	return 0
}

func (m *BasicStats) GetActualFailureCount() uint64 {
	if m != nil {
		return m.ActualFailureCount
	}
	return 0
}

type TcpStats struct {
	// 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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TcpStats) Reset()         { *m = TcpStats{} }
func (m *TcpStats) String() string { return proto.CompactTextString(m) }
func (*TcpStats) ProtoMessage()    {}
func (*TcpStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{26}
}

func (m *TcpStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TcpStats.Unmarshal(m, b)
}
func (m *TcpStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TcpStats.Marshal(b, m, deterministic)
}
func (m *TcpStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TcpStats.Merge(m, src)
}
func (m *TcpStats) XXX_Size() int {
	return xxx_messageInfo_TcpStats.Size(m)
}
func (m *TcpStats) XXX_DiscardUnknown() {
	xxx_messageInfo_TcpStats.DiscardUnknown(m)
}

var xxx_messageInfo_TcpStats proto.InternalMessageInfo

func (m *TcpStats) GetOpenConnections() uint64 {
	if m != nil {
		return m.OpenConnections
	}
	return 0
}

func (m *TcpStats) GetReadBytesTotal() uint64 {
	if m != nil {
		return m.ReadBytesTotal
	}
	return 0
}

func (m *TcpStats) GetWriteBytesTotal() uint64 {
	if m != nil {
		return m.WriteBytesTotal
	}
	return 0
}

type TrafficSplitStats struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TrafficSplitStats) Reset()         { *m = TrafficSplitStats{} }
func (m *TrafficSplitStats) String() string { return proto.CompactTextString(m) }
func (*TrafficSplitStats) ProtoMessage()    {}
func (*TrafficSplitStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{27}
}

func (m *TrafficSplitStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TrafficSplitStats.Unmarshal(m, b)
}
func (m *TrafficSplitStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TrafficSplitStats.Marshal(b, m, deterministic)
}
func (m *TrafficSplitStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TrafficSplitStats.Merge(m, src)
}
func (m *TrafficSplitStats) XXX_Size() int {
	return xxx_messageInfo_TrafficSplitStats.Size(m)
}
func (m *TrafficSplitStats) XXX_DiscardUnknown() {
	xxx_messageInfo_TrafficSplitStats.DiscardUnknown(m)
}

var xxx_messageInfo_TrafficSplitStats proto.InternalMessageInfo

func (m *TrafficSplitStats) GetApex() string {
	if m != nil {
		return m.Apex
	}
	return ""
}

func (m *TrafficSplitStats) GetLeaf() string {
	if m != nil {
		return m.Leaf
	}
	return ""
}

func (m *TrafficSplitStats) GetWeight() string {
	if m != nil {
		return m.Weight
	}
	return ""
}

type StatTable struct {
	// Types that are valid to be assigned to Table:
	//	*StatTable_PodGroup_
	Table                isStatTable_Table `protobuf_oneof:"table"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *StatTable) Reset()         { *m = StatTable{} }
func (m *StatTable) String() string { return proto.CompactTextString(m) }
func (*StatTable) ProtoMessage()    {}
func (*StatTable) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{28}
}

func (m *StatTable) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatTable.Unmarshal(m, b)
}
func (m *StatTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatTable.Marshal(b, m, deterministic)
}
func (m *StatTable) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatTable.Merge(m, src)
}
func (m *StatTable) XXX_Size() int {
	return xxx_messageInfo_StatTable.Size(m)
}
func (m *StatTable) XXX_DiscardUnknown() {
	xxx_messageInfo_StatTable.DiscardUnknown(m)
}

var xxx_messageInfo_StatTable proto.InternalMessageInfo

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() {}

func (m *StatTable) GetTable() isStatTable_Table {
	if m != nil {
		return m.Table
	}
	return nil
}

func (m *StatTable) GetPodGroup() *StatTable_PodGroup {
	if x, ok := m.GetTable().(*StatTable_PodGroup_); ok {
		return x.PodGroup
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*StatTable) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*StatTable_PodGroup_)(nil),
	}
}

type StatTable_PodGroup struct {
	Rows                 []*StatTable_PodGroup_Row `protobuf:"bytes,1,rep,name=rows,proto3" json:"rows,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *StatTable_PodGroup) Reset()         { *m = StatTable_PodGroup{} }
func (m *StatTable_PodGroup) String() string { return proto.CompactTextString(m) }
func (*StatTable_PodGroup) ProtoMessage()    {}
func (*StatTable_PodGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{28, 0}
}

func (m *StatTable_PodGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatTable_PodGroup.Unmarshal(m, b)
}
func (m *StatTable_PodGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatTable_PodGroup.Marshal(b, m, deterministic)
}
func (m *StatTable_PodGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatTable_PodGroup.Merge(m, src)
}
func (m *StatTable_PodGroup) XXX_Size() int {
	return xxx_messageInfo_StatTable_PodGroup.Size(m)
}
func (m *StatTable_PodGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_StatTable_PodGroup.DiscardUnknown(m)
}

var xxx_messageInfo_StatTable_PodGroup proto.InternalMessageInfo

func (m *StatTable_PodGroup) GetRows() []*StatTable_PodGroup_Row {
	if m != nil {
		return m.Rows
	}
	return nil
}

type StatTable_PodGroup_Row struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *StatTable_PodGroup_Row) Reset()         { *m = StatTable_PodGroup_Row{} }
func (m *StatTable_PodGroup_Row) String() string { return proto.CompactTextString(m) }
func (*StatTable_PodGroup_Row) ProtoMessage()    {}
func (*StatTable_PodGroup_Row) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{28, 0, 0}
}

func (m *StatTable_PodGroup_Row) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatTable_PodGroup_Row.Unmarshal(m, b)
}
func (m *StatTable_PodGroup_Row) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatTable_PodGroup_Row.Marshal(b, m, deterministic)
}
func (m *StatTable_PodGroup_Row) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatTable_PodGroup_Row.Merge(m, src)
}
func (m *StatTable_PodGroup_Row) XXX_Size() int {
	return xxx_messageInfo_StatTable_PodGroup_Row.Size(m)
}
func (m *StatTable_PodGroup_Row) XXX_DiscardUnknown() {
	xxx_messageInfo_StatTable_PodGroup_Row.DiscardUnknown(m)
}

var xxx_messageInfo_StatTable_PodGroup_Row proto.InternalMessageInfo

func (m *StatTable_PodGroup_Row) GetResource() *Resource {
	if m != nil {
		return m.Resource
	}
	return nil
}

func (m *StatTable_PodGroup_Row) GetTimeWindow() string {
	if m != nil {
		return m.TimeWindow
	}
	return ""
}

func (m *StatTable_PodGroup_Row) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

func (m *StatTable_PodGroup_Row) GetMeshedPodCount() uint64 {
	if m != nil {
		return m.MeshedPodCount
	}
	return 0
}

func (m *StatTable_PodGroup_Row) GetRunningPodCount() uint64 {
	if m != nil {
		return m.RunningPodCount
	}
	return 0
}

func (m *StatTable_PodGroup_Row) GetFailedPodCount() uint64 {
	if m != nil {
		return m.FailedPodCount
	}
	return 0
}

func (m *StatTable_PodGroup_Row) GetStats() *BasicStats {
	if m != nil {
		return m.Stats
	}
	return nil
}

func (m *StatTable_PodGroup_Row) GetTcpStats() *TcpStats {
	if m != nil {
		return m.TcpStats
	}
	return nil
}

func (m *StatTable_PodGroup_Row) GetTsStats() *TrafficSplitStats {
	if m != nil {
		return m.TsStats
	}
	return nil
}

func (m *StatTable_PodGroup_Row) GetErrorsByPod() map[string]*PodErrors {
	if m != nil {
		return m.ErrorsByPod
	}
	return nil
}

type EdgesRequest struct {
	Selector             *ResourceSelection `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *EdgesRequest) Reset()         { *m = EdgesRequest{} }
func (m *EdgesRequest) String() string { return proto.CompactTextString(m) }
func (*EdgesRequest) ProtoMessage()    {}
func (*EdgesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{29}
}

func (m *EdgesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EdgesRequest.Unmarshal(m, b)
}
func (m *EdgesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EdgesRequest.Marshal(b, m, deterministic)
}
func (m *EdgesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EdgesRequest.Merge(m, src)
}
func (m *EdgesRequest) XXX_Size() int {
	return xxx_messageInfo_EdgesRequest.Size(m)
}
func (m *EdgesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_EdgesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_EdgesRequest proto.InternalMessageInfo

func (m *EdgesRequest) GetSelector() *ResourceSelection {
	if m != nil {
		return m.Selector
	}
	return nil
}

type EdgesResponse struct {
	// Types that are valid to be assigned to Response:
	//	*EdgesResponse_Ok_
	//	*EdgesResponse_Error
	Response             isEdgesResponse_Response `protobuf_oneof:"response"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *EdgesResponse) Reset()         { *m = EdgesResponse{} }
func (m *EdgesResponse) String() string { return proto.CompactTextString(m) }
func (*EdgesResponse) ProtoMessage()    {}
func (*EdgesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{30}
}

func (m *EdgesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EdgesResponse.Unmarshal(m, b)
}
func (m *EdgesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EdgesResponse.Marshal(b, m, deterministic)
}
func (m *EdgesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EdgesResponse.Merge(m, src)
}
func (m *EdgesResponse) XXX_Size() int {
	return xxx_messageInfo_EdgesResponse.Size(m)
}
func (m *EdgesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_EdgesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_EdgesResponse proto.InternalMessageInfo

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() {}

func (m *EdgesResponse) GetResponse() isEdgesResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (m *EdgesResponse) GetOk() *EdgesResponse_Ok {
	if x, ok := m.GetResponse().(*EdgesResponse_Ok_); ok {
		return x.Ok
	}
	return nil
}

func (m *EdgesResponse) GetError() *ResourceError {
	if x, ok := m.GetResponse().(*EdgesResponse_Error); ok {
		return x.Error
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*EdgesResponse) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*EdgesResponse_Ok_)(nil),
		(*EdgesResponse_Error)(nil),
	}
}

type EdgesResponse_Ok struct {
	Edges                []*Edge  `protobuf:"bytes,1,rep,name=edges,proto3" json:"edges,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *EdgesResponse_Ok) Reset()         { *m = EdgesResponse_Ok{} }
func (m *EdgesResponse_Ok) String() string { return proto.CompactTextString(m) }
func (*EdgesResponse_Ok) ProtoMessage()    {}
func (*EdgesResponse_Ok) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{30, 0}
}

func (m *EdgesResponse_Ok) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EdgesResponse_Ok.Unmarshal(m, b)
}
func (m *EdgesResponse_Ok) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EdgesResponse_Ok.Marshal(b, m, deterministic)
}
func (m *EdgesResponse_Ok) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EdgesResponse_Ok.Merge(m, src)
}
func (m *EdgesResponse_Ok) XXX_Size() int {
	return xxx_messageInfo_EdgesResponse_Ok.Size(m)
}
func (m *EdgesResponse_Ok) XXX_DiscardUnknown() {
	xxx_messageInfo_EdgesResponse_Ok.DiscardUnknown(m)
}

var xxx_messageInfo_EdgesResponse_Ok proto.InternalMessageInfo

func (m *EdgesResponse_Ok) GetEdges() []*Edge {
	if m != nil {
		return m.Edges
	}
	return nil
}

type Edge struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *Edge) Reset()         { *m = Edge{} }
func (m *Edge) String() string { return proto.CompactTextString(m) }
func (*Edge) ProtoMessage()    {}
func (*Edge) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{31}
}

func (m *Edge) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Edge.Unmarshal(m, b)
}
func (m *Edge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Edge.Marshal(b, m, deterministic)
}
func (m *Edge) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Edge.Merge(m, src)
}
func (m *Edge) XXX_Size() int {
	return xxx_messageInfo_Edge.Size(m)
}
func (m *Edge) XXX_DiscardUnknown() {
	xxx_messageInfo_Edge.DiscardUnknown(m)
}

var xxx_messageInfo_Edge proto.InternalMessageInfo

func (m *Edge) GetSrc() *Resource {
	if m != nil {
		return m.Src
	}
	return nil
}

func (m *Edge) GetDst() *Resource {
	if m != nil {
		return m.Dst
	}
	return nil
}

func (m *Edge) GetClientId() string {
	if m != nil {
		return m.ClientId
	}
	return ""
}

func (m *Edge) GetServerId() string {
	if m != nil {
		return m.ServerId
	}
	return ""
}

func (m *Edge) GetNoIdentityMsg() string {
	if m != nil {
		return m.NoIdentityMsg
	}
	return ""
}

type TopRoutesRequest struct {
	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 valid to be assigned to Outbound:
	//	*TopRoutesRequest_None
	//	*TopRoutesRequest_ToResource
	Outbound             isTopRoutesRequest_Outbound `protobuf_oneof:"outbound"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

func (m *TopRoutesRequest) Reset()         { *m = TopRoutesRequest{} }
func (m *TopRoutesRequest) String() string { return proto.CompactTextString(m) }
func (*TopRoutesRequest) ProtoMessage()    {}
func (*TopRoutesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{32}
}

func (m *TopRoutesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TopRoutesRequest.Unmarshal(m, b)
}
func (m *TopRoutesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TopRoutesRequest.Marshal(b, m, deterministic)
}
func (m *TopRoutesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TopRoutesRequest.Merge(m, src)
}
func (m *TopRoutesRequest) XXX_Size() int {
	return xxx_messageInfo_TopRoutesRequest.Size(m)
}
func (m *TopRoutesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_TopRoutesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_TopRoutesRequest proto.InternalMessageInfo

func (m *TopRoutesRequest) GetSelector() *ResourceSelection {
	if m != nil {
		return m.Selector
	}
	return nil
}

func (m *TopRoutesRequest) GetTimeWindow() string {
	if m != nil {
		return m.TimeWindow
	}
	return ""
}

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() {}

func (m *TopRoutesRequest) GetOutbound() isTopRoutesRequest_Outbound {
	if m != nil {
		return m.Outbound
	}
	return nil
}

func (m *TopRoutesRequest) GetNone() *Empty {
	if x, ok := m.GetOutbound().(*TopRoutesRequest_None); ok {
		return x.None
	}
	return nil
}

func (m *TopRoutesRequest) GetToResource() *Resource {
	if x, ok := m.GetOutbound().(*TopRoutesRequest_ToResource); ok {
		return x.ToResource
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TopRoutesRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TopRoutesRequest_None)(nil),
		(*TopRoutesRequest_ToResource)(nil),
	}
}

type TopRoutesResponse struct {
	// Types that are valid to be assigned to Response:
	//	*TopRoutesResponse_Error
	//	*TopRoutesResponse_Ok_
	Response             isTopRoutesResponse_Response `protobuf_oneof:"response"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *TopRoutesResponse) Reset()         { *m = TopRoutesResponse{} }
func (m *TopRoutesResponse) String() string { return proto.CompactTextString(m) }
func (*TopRoutesResponse) ProtoMessage()    {}
func (*TopRoutesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{33}
}

func (m *TopRoutesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TopRoutesResponse.Unmarshal(m, b)
}
func (m *TopRoutesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TopRoutesResponse.Marshal(b, m, deterministic)
}
func (m *TopRoutesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TopRoutesResponse.Merge(m, src)
}
func (m *TopRoutesResponse) XXX_Size() int {
	return xxx_messageInfo_TopRoutesResponse.Size(m)
}
func (m *TopRoutesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_TopRoutesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_TopRoutesResponse proto.InternalMessageInfo

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() {}

func (m *TopRoutesResponse) GetResponse() isTopRoutesResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (m *TopRoutesResponse) GetError() *ResourceError {
	if x, ok := m.GetResponse().(*TopRoutesResponse_Error); ok {
		return x.Error
	}
	return nil
}

func (m *TopRoutesResponse) GetOk() *TopRoutesResponse_Ok {
	if x, ok := m.GetResponse().(*TopRoutesResponse_Ok_); ok {
		return x.Ok
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TopRoutesResponse) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TopRoutesResponse_Error)(nil),
		(*TopRoutesResponse_Ok_)(nil),
	}
}

type TopRoutesResponse_Ok struct {
	Routes               []*RouteTable `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *TopRoutesResponse_Ok) Reset()         { *m = TopRoutesResponse_Ok{} }
func (m *TopRoutesResponse_Ok) String() string { return proto.CompactTextString(m) }
func (*TopRoutesResponse_Ok) ProtoMessage()    {}
func (*TopRoutesResponse_Ok) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{33, 0}
}

func (m *TopRoutesResponse_Ok) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TopRoutesResponse_Ok.Unmarshal(m, b)
}
func (m *TopRoutesResponse_Ok) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TopRoutesResponse_Ok.Marshal(b, m, deterministic)
}
func (m *TopRoutesResponse_Ok) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TopRoutesResponse_Ok.Merge(m, src)
}
func (m *TopRoutesResponse_Ok) XXX_Size() int {
	return xxx_messageInfo_TopRoutesResponse_Ok.Size(m)
}
func (m *TopRoutesResponse_Ok) XXX_DiscardUnknown() {
	xxx_messageInfo_TopRoutesResponse_Ok.DiscardUnknown(m)
}

var xxx_messageInfo_TopRoutesResponse_Ok proto.InternalMessageInfo

func (m *TopRoutesResponse_Ok) GetRoutes() []*RouteTable {
	if m != nil {
		return m.Routes
	}
	return nil
}

type RouteTable struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *RouteTable) Reset()         { *m = RouteTable{} }
func (m *RouteTable) String() string { return proto.CompactTextString(m) }
func (*RouteTable) ProtoMessage()    {}
func (*RouteTable) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{34}
}

func (m *RouteTable) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RouteTable.Unmarshal(m, b)
}
func (m *RouteTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RouteTable.Marshal(b, m, deterministic)
}
func (m *RouteTable) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RouteTable.Merge(m, src)
}
func (m *RouteTable) XXX_Size() int {
	return xxx_messageInfo_RouteTable.Size(m)
}
func (m *RouteTable) XXX_DiscardUnknown() {
	xxx_messageInfo_RouteTable.DiscardUnknown(m)
}

var xxx_messageInfo_RouteTable proto.InternalMessageInfo

func (m *RouteTable) GetRows() []*RouteTable_Row {
	if m != nil {
		return m.Rows
	}
	return nil
}

func (m *RouteTable) GetResource() string {
	if m != nil {
		return m.Resource
	}
	return ""
}

type RouteTable_Row struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *RouteTable_Row) Reset()         { *m = RouteTable_Row{} }
func (m *RouteTable_Row) String() string { return proto.CompactTextString(m) }
func (*RouteTable_Row) ProtoMessage()    {}
func (*RouteTable_Row) Descriptor() ([]byte, []int) {
	return fileDescriptor_413a91106d7bcce8, []int{34, 0}
}

func (m *RouteTable_Row) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RouteTable_Row.Unmarshal(m, b)
}
func (m *RouteTable_Row) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RouteTable_Row.Marshal(b, m, deterministic)
}
func (m *RouteTable_Row) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RouteTable_Row.Merge(m, src)
}
func (m *RouteTable_Row) XXX_Size() int {
	return xxx_messageInfo_RouteTable_Row.Size(m)
}
func (m *RouteTable_Row) XXX_DiscardUnknown() {
	xxx_messageInfo_RouteTable_Row.DiscardUnknown(m)
}

var xxx_messageInfo_RouteTable_Row proto.InternalMessageInfo

func (m *RouteTable_Row) GetRoute() string {
	if m != nil {
		return m.Route
	}
	return ""
}

func (m *RouteTable_Row) GetTimeWindow() string {
	if m != nil {
		return m.TimeWindow
	}
	return ""
}

func (m *RouteTable_Row) GetAuthority() string {
	if m != nil {
		return m.Authority
	}
	return ""
}

func (m *RouteTable_Row) GetStats() *BasicStats {
	if m != nil {
		return m.Stats
	}
	return nil
}

func init() {
	proto.RegisterEnum("linkerd2.public.HttpMethod_Registered", HttpMethod_Registered_name, HttpMethod_Registered_value)
	proto.RegisterEnum("linkerd2.public.Scheme_Registered", Scheme_Registered_name, Scheme_Registered_value)
	proto.RegisterEnum("linkerd2.public.TapEvent_ProxyDirection", TapEvent_ProxyDirection_name, TapEvent_ProxyDirection_value)
	proto.RegisterType((*Empty)(nil), "linkerd2.public.Empty")
	proto.RegisterType((*VersionInfo)(nil), "linkerd2.public.VersionInfo")
	proto.RegisterType((*ListServicesRequest)(nil), "linkerd2.public.ListServicesRequest")
	proto.RegisterType((*ListServicesResponse)(nil), "linkerd2.public.ListServicesResponse")
	proto.RegisterType((*Service)(nil), "linkerd2.public.Service")
	proto.RegisterType((*ListPodsRequest)(nil), "linkerd2.public.ListPodsRequest")
	proto.RegisterType((*ListPodsResponse)(nil), "linkerd2.public.ListPodsResponse")
	proto.RegisterType((*Pod)(nil), "linkerd2.public.Pod")
	proto.RegisterType((*TapRequest)(nil), "linkerd2.public.TapRequest")
	proto.RegisterType((*TapByResourceRequest)(nil), "linkerd2.public.TapByResourceRequest")
	proto.RegisterType((*TapByResourceRequest_Match)(nil), "linkerd2.public.TapByResourceRequest.Match")
	proto.RegisterType((*TapByResourceRequest_Match_Seq)(nil), "linkerd2.public.TapByResourceRequest.Match.Seq")
	proto.RegisterType((*TapByResourceRequest_Match_Http)(nil), "linkerd2.public.TapByResourceRequest.Match.Http")
	proto.RegisterType((*TapByResourceRequest_Extract)(nil), "linkerd2.public.TapByResourceRequest.Extract")
	proto.RegisterType((*TapByResourceRequest_Extract_Http)(nil), "linkerd2.public.TapByResourceRequest.Extract.Http")
	proto.RegisterType((*TapByResourceRequest_Extract_Http_Headers)(nil), "linkerd2.public.TapByResourceRequest.Extract.Http.Headers")
	proto.RegisterType((*HttpMethod)(nil), "linkerd2.public.HttpMethod")
	proto.RegisterType((*Scheme)(nil), "linkerd2.public.Scheme")
	proto.RegisterType((*Headers)(nil), "linkerd2.public.Headers")
	proto.RegisterType((*Headers_Header)(nil), "linkerd2.public.Headers.Header")
	proto.RegisterType((*IPAddress)(nil), "linkerd2.public.IPAddress")
	proto.RegisterType((*IPv6)(nil), "linkerd2.public.IPv6")
	proto.RegisterType((*TcpAddress)(nil), "linkerd2.public.TcpAddress")
	proto.RegisterType((*Eos)(nil), "linkerd2.public.Eos")
	proto.RegisterType((*TapEvent)(nil), "linkerd2.public.TapEvent")
	proto.RegisterType((*TapEvent_EndpointMeta)(nil), "linkerd2.public.TapEvent.EndpointMeta")
	proto.RegisterMapType((map[string]string)(nil), "linkerd2.public.TapEvent.EndpointMeta.LabelsEntry")
	proto.RegisterType((*TapEvent_RouteMeta)(nil), "linkerd2.public.TapEvent.RouteMeta")
	proto.RegisterMapType((map[string]string)(nil), "linkerd2.public.TapEvent.RouteMeta.LabelsEntry")
	proto.RegisterType((*TapEvent_Http)(nil), "linkerd2.public.TapEvent.Http")
	proto.RegisterType((*TapEvent_Http_StreamId)(nil), "linkerd2.public.TapEvent.Http.StreamId")
	proto.RegisterType((*TapEvent_Http_RequestInit)(nil), "linkerd2.public.TapEvent.Http.RequestInit")
	proto.RegisterType((*TapEvent_Http_ResponseInit)(nil), "linkerd2.public.TapEvent.Http.ResponseInit")
	proto.RegisterType((*TapEvent_Http_ResponseEnd)(nil), "linkerd2.public.TapEvent.Http.ResponseEnd")
	proto.RegisterType((*ApiError)(nil), "linkerd2.public.ApiError")
	proto.RegisterType((*PodErrors)(nil), "linkerd2.public.PodErrors")
	proto.RegisterType((*PodErrors_PodError)(nil), "linkerd2.public.PodErrors.PodError")
	proto.RegisterType((*PodErrors_PodError_ContainerError)(nil), "linkerd2.public.PodErrors.PodError.ContainerError")
	proto.RegisterType((*Resource)(nil), "linkerd2.public.Resource")
	proto.RegisterType((*ResourceSelection)(nil), "linkerd2.public.ResourceSelection")
	proto.RegisterType((*ResourceError)(nil), "linkerd2.public.ResourceError")
	proto.RegisterType((*StatSummaryRequest)(nil), "linkerd2.public.StatSummaryRequest")
	proto.RegisterType((*StatSummaryResponse)(nil), "linkerd2.public.StatSummaryResponse")
	proto.RegisterType((*StatSummaryResponse_Ok)(nil), "linkerd2.public.StatSummaryResponse.Ok")
	proto.RegisterType((*BasicStats)(nil), "linkerd2.public.BasicStats")
	proto.RegisterType((*TcpStats)(nil), "linkerd2.public.TcpStats")
	proto.RegisterType((*TrafficSplitStats)(nil), "linkerd2.public.TrafficSplitStats")
	proto.RegisterType((*StatTable)(nil), "linkerd2.public.StatTable")
	proto.RegisterType((*StatTable_PodGroup)(nil), "linkerd2.public.StatTable.PodGroup")
	proto.RegisterType((*StatTable_PodGroup_Row)(nil), "linkerd2.public.StatTable.PodGroup.Row")
	proto.RegisterMapType((map[string]*PodErrors)(nil), "linkerd2.public.StatTable.PodGroup.Row.ErrorsByPodEntry")
	proto.RegisterType((*EdgesRequest)(nil), "linkerd2.public.EdgesRequest")
	proto.RegisterType((*EdgesResponse)(nil), "linkerd2.public.EdgesResponse")
	proto.RegisterType((*EdgesResponse_Ok)(nil), "linkerd2.public.EdgesResponse.Ok")
	proto.RegisterType((*Edge)(nil), "linkerd2.public.Edge")
	proto.RegisterType((*TopRoutesRequest)(nil), "linkerd2.public.TopRoutesRequest")
	proto.RegisterType((*TopRoutesResponse)(nil), "linkerd2.public.TopRoutesResponse")
	proto.RegisterType((*TopRoutesResponse_Ok)(nil), "linkerd2.public.TopRoutesResponse.Ok")
	proto.RegisterType((*RouteTable)(nil), "linkerd2.public.RouteTable")
	proto.RegisterType((*RouteTable_Row)(nil), "linkerd2.public.RouteTable.Row")
}

func init() { proto.RegisterFile("public.proto", fileDescriptor_413a91106d7bcce8) }

var fileDescriptor_413a91106d7bcce8 = []byte{
	// 3301 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x1a, 0x4d, 0x6f, 0x23, 0x49,
	0xd5, 0xdf, 0x1f, 0xcf, 0x4e, 0xe2, 0xa9, 0xc9, 0x0e, 0x5e, 0xef, 0xee, 0x7c, 0xf4, 0x7c, 0x6c,
	0x98, 0x01, 0x27, 0x93, 0xf9, 0xd8, 0xc9, 0xcc, 0x2e, 0x10, 0x27, 0xde, 0x71, 0x60, 0x26, 0xf1,
	0xb6, 0x3d, 0xbb, 0x68, 0xb5, 0xc8, 0xea, 0x74, 0x57, 0x9c, 0x26, 0xed, 0xae, 0x9e, 0xee, 0x72,
	0x32, 0xfe, 0x03, 0x08, 0x09, 0x21, 0x24, 0x24, 0x6e, 0x48, 0x1c, 0x38, 0xb1, 0xe2, 0xcc, 0x05,
	0x89, 0x03, 0x57, 0xae, 0x48, 0x88, 0xd3, 0x9e, 0x38, 0xad, 0x38, 0xc1, 0x89, 0x03, 0x42, 0xf5,
	0xd5, 0xee, 0x8e, 0xed, 0x7c, 0xcc, 0x72, 0x80, 0x93, 0xeb, 0xbd, 0x7a, 0xef, 0xd5, 0xab, 0x57,
	0xef, 0xab, 0xca, 0x0d, 0x65, 0x6f, 0xb8, 0xeb, 0xd8, 0x66, 0xdd, 0xf3, 0x09, 0x25, 0x68, 0xc1,
	0xb1, 0xdd, 0x03, 0xec, 0x5b, 0xab, 0x75, 0x81, 0xae, 0x5d, 0xee, 0x13, 0xd2, 0x77, 0xf0, 0x32,
	0x9f, 0xde, 0x1d, 0xee, 0x2d, 0x5b, 0x43, 0xdf, 0xa0, 0x36, 0x71, 0x05, 0x43, 0xad, 0x6a, 0x92,
	0xc1, 0x80, 0xb8, 0xcb, 0xfb, 0xd8, 0x70, 0xe8, 0xbe, 0xb9, 0x8f, 0xcd, 0x03, 0x39, 0x73, 0xd1,
	0x24, 0xee, 0x9e, 0xdd, 0x5f, 0x16, 0x3f, 0x02, 0xa9, 0xe5, 0x21, 0xdb, 0x1c, 0x78, 0x74, 0xa4,
	0xbd, 0x84, 0xd2, 0xc7, 0xd8, 0x0f, 0x6c, 0xe2, 0x6e, 0xb9, 0x7b, 0x04, 0xbd, 0x0d, 0xc5, 0x3e,
	0x91, 0x88, 0x6a, 0xf2, 0x6a, 0x72, 0xa9, 0xa8, 0x8f, 0x11, 0x6c, 0x76, 0x77, 0x68, 0x3b, 0xd6,
	0xa6, 0x41, 0x71, 0x35, 0x25, 0x66, 0x43, 0x04, 0xba, 0x05, 0xf3, 0x3e, 0x76, 0xb0, 0x11, 0x60,
	0x25, 0x20, 0xcd, 0x49, 0x8e, 0x61, 0xb5, 0x7b, 0x70, 0xf1, 0x99, 0x1d, 0xd0, 0x0e, 0xf6, 0x0f,
	0x6d, 0x13, 0x07, 0x3a, 0x7e, 0x39, 0xc4, 0x01, 0x65, 0xc2, 0x5d, 0x63, 0x80, 0x03, 0xcf, 0x30,
	0xb1, 0x5a, 0x3a, 0x44, 0x68, 0xcf, 0x60, 0x31, 0xce, 0x14, 0x78, 0xc4, 0x0d, 0x30, 0xba, 0x0f,
	0x85, 0x40, 0xe2, 0xaa, 0xc9, 0xab, 0xe9, 0xa5, 0xd2, 0x6a, 0xb5, 0x7e, 0xcc, 0x76, 0x75, 0xc9,
	0xa4, 0x87, 0x94, 0xda, 0x13, 0xc8, 0x4b, 0x24, 0x42, 0x90, 0x61, 0xab, 0xc8, 0x15, 0xf9, 0x38,
	0xae, 0x4a, 0xea, 0xb8, 0x2a, 0x01, 0x2c, 0x30, 0x55, 0xda, 0xc4, 0x0a, 0x75, 0xbf, 0x3a, 0xa1,
	0x7b, 0x23, 0x55, 0x4d, 0x46, 0x98, 0xd0, 0xb7, 0x98, 0x9e, 0x0e, 0x36, 0x29, 0xf1, 0xb9, 0xc4,
	0xd2, 0xaa, 0x36, 0xa1, 0xa7, 0x8e, 0x03, 0x32, 0xf4, 0x4d, 0xdc, 0xe1, 0x84, 0x36, 0x71, 0xf5,
	0x90, 0x47, 0x7b, 0x1f, 0x2a, 0xe3, 0x45, 0xe5, 0xde, 0x97, 0x20, 0xe3, 0x11, 0x4b, 0xed, 0x7b,
	0x71, 0x42, 0x5e, 0x9b, 0x58, 0x3a, 0xa7, 0xd0, 0xfe, 0x95, 0x81, 0x74, 0x9b, 0x58, 0x53, 0x37,
	0xbb, 0x08, 0x59, 0x8f, 0x58, 0x5b, 0x6d, 0xb9, 0x51, 0x01, 0xa0, 0xab, 0x00, 0x16, 0xf6, 0x1c,
	0x32, 0x1a, 0x60, 0x97, 0x8a, 0x83, 0x6c, 0x25, 0xf4, 0x08, 0x0e, 0x5d, 0x83, 0x92, 0x8f, 0x3d,
	0xc7, 0x36, 0x8d, 0x5e, 0x80, 0x69, 0x15, 0x14, 0x89, 0x44, 0x76, 0x30, 0x45, 0xef, 0xc1, 0x25,
	0x09, 0xb1, 0xdd, 0xf4, 0x4c, 0xe2, 0x52, 0x9f, 0x38, 0x0e, 0xf6, 0xab, 0x25, 0x49, 0xfd, 0x46,
	0x64, 0x7e, 0x23, 0x9c, 0x46, 0xd7, 0xa1, 0x1c, 0x50, 0x83, 0xe2, 0xbd, 0xa1, 0xc3, 0x85, 0x97,
	0x25, 0x79, 0x49, 0x61, 0x99, 0xf4, 0x2b, 0x00, 0x96, 0x81, 0x07, 0xc4, 0xe5, 0x24, 0x73, 0x92,
	0xa4, 0x28, 0x70, 0x8c, 0x00, 0x41, 0xfa, 0x87, 0x64, 0xb7, 0x3a, 0x2f, 0x67, 0x18, 0x80, 0x2e,
	0x41, 0x8e, 0xc9, 0x18, 0x06, 0xd5, 0x0c, 0xdf, 0xae, 0x84, 0x98, 0x15, 0x0c, 0xcb, 0xc2, 0x56,
	0x35, 0x7b, 0x35, 0xb9, 0x54, 0xd0, 0x05, 0x80, 0x36, 0x60, 0x21, 0xb0, 0x5d, 0x13, 0x3f, 0x33,
	0x02, 0xaa, 0x63, 0x8f, 0xf8, 0xb4, 0x9a, 0xe3, 0x87, 0xf7, 0x66, 0x5d, 0xc4, 0x63, 0x5d, 0xc5,
	0x63, 0x7d, 0x53, 0xc6, 0xa3, 0x7e, 0x9c, 0x03, 0xad, 0xc0, 0xc5, 0xf1, 0xce, 0xb7, 0x43, 0x37,
	0xc9, 0xf3, 0xf5, 0xa7, 0x4d, 0x21, 0x0d, 0xca, 0x12, 0xdd, 0x76, 0x0c, 0x17, 0x57, 0x0b, 0x5c,
	0xa7, 0x18, 0x0e, 0xdd, 0x85, 0xdc, 0xd0, 0xa3, 0xf6, 0x00, 0x57, 0x8b, 0xa7, 0x69, 0x24, 0x09,
	0xd1, 0x65, 0x00, 0xcf, 0x27, 0xaf, 0x46, 0x3a, 0x36, 0xac, 0x51, 0x75, 0x81, 0x0b, 0x8d, 0x60,
	0xd8, 0xb2, 0x1c, 0x52, 0xe1, 0x5b, 0xe1, 0x1a, 0xc6, 0x70, 0x68, 0x09, 0x16, 0x7c, 0xe9, 0xa6,
	0x8a, 0xec, 0x02, 0x27, 0x3b, 0x8e, 0x6e, 0xe4, 0x21, 0x4b, 0x8e, 0x5c, 0xec, 0x6b, 0x9f, 0xa7,
	0x00, 0xba, 0x86, 0xa7, 0x62, 0x05, 0x41, 0xda, 0x23, 0x96, 0x70, 0x41, 0x76, 0x2a, 0x1e, 0xb1,
	0x8e, 0x79, 0x5b, 0x6a, 0x8a, 0xb7, 0x5d, 0x82, 0xdc, 0xc0, 0x78, 0xa5, 0x7b, 0x01, 0xf7, 0xc5,
	0x94, 0x2e, 0x21, 0x86, 0xa7, 0xa4, 0xcd, 0x0e, 0x86, 0x9d, 0xe7, 0x9c, 0x2e, 0x21, 0xe6, 0xe9,
	0x94, 0x6c, 0xb5, 0xf9, 0x71, 0x16, 0x75, 0x3e, 0x46, 0x35, 0x28, 0xec, 0xf9, 0x64, 0xd0, 0x56,
	0xc7, 0x38, 0xa7, 0x87, 0x30, 0x93, 0xc3, 0xc6, 0x5b, 0x6d, 0x79, 0x2e, 0x12, 0xe2, 0xfe, 0x62,
	0xee, 0xe3, 0x81, 0x38, 0x04, 0xe6, 0x2f, 0x1c, 0xe2, 0xfa, 0x60, 0xba, 0x4f, 0x2c, 0x6e, 0xfe,
	0xa2, 0x2e, 0x21, 0x96, 0x3a, 0x8c, 0x21, 0xdd, 0x27, 0xbe, 0x4d, 0x47, 0x22, 0x26, 0xf4, 0x31,
	0x82, 0x69, 0xe5, 0x19, 0x74, 0x5f, 0xb8, 0xbf, 0xce, 0xc7, 0x8f, 0x53, 0xd5, 0x64, 0xa3, 0x00,
	0x39, 0x6a, 0xf8, 0x7d, 0x4c, 0xb5, 0x1f, 0x15, 0x60, 0xb1, 0x6b, 0x78, 0x8d, 0x91, 0x4a, 0x06,
	0xca, 0x6c, 0x8f, 0x15, 0x09, 0xb7, 0xdc, 0xd9, 0xd2, 0x87, 0xe4, 0x40, 0xeb, 0x90, 0x1d, 0x18,
	0xd4, 0xdc, 0x97, 0x99, 0xe7, 0xce, 0x04, 0xeb, 0xb4, 0x15, 0xeb, 0xcf, 0x19, 0x8b, 0x2e, 0x38,
	0x67, 0xda, 0xff, 0x29, 0xe4, 0xf1, 0x2b, 0xea, 0x1b, 0xa6, 0x38, 0x80, 0xd2, 0xea, 0x37, 0xcf,
	0x26, 0xbc, 0x29, 0x98, 0x74, 0xc5, 0x5d, 0xfb, 0x5d, 0x06, 0xb2, 0x7c, 0x45, 0xb4, 0x01, 0x69,
	0xc3, 0x71, 0xe4, 0x36, 0x97, 0xcf, 0xa1, 0x6b, 0xbd, 0x83, 0x5f, 0x32, 0x8f, 0x32, 0x1c, 0x87,
	0x0b, 0x71, 0x47, 0x72, 0xc3, 0xaf, 0x25, 0xc4, 0x1d, 0xa1, 0x6f, 0x43, 0xda, 0x25, 0x22, 0xfb,
	0x9d, 0xcf, 0x6a, 0x4c, 0x80, 0x4b, 0x28, 0x6a, 0x41, 0xd9, 0xc2, 0x01, 0xb5, 0x5d, 0x1e, 0x88,
	0x81, 0x34, 0xd1, 0x19, 0x8e, 0xae, 0x95, 0xd0, 0x63, 0x9c, 0xe8, 0x43, 0xc8, 0xec, 0x53, 0xea,
	0x71, 0x7f, 0x2e, 0xad, 0xae, 0x9c, 0x67, 0x43, 0x2d, 0x4a, 0xbd, 0x56, 0x42, 0xe7, 0xfc, 0xb5,
	0x67, 0x90, 0xee, 0xe0, 0x97, 0xa8, 0x09, 0x79, 0x7e, 0xae, 0x61, 0xd5, 0x3c, 0x97, 0x4f, 0x28,
	0xde, 0xda, 0x08, 0x32, 0x4c, 0x3a, 0xaa, 0x86, 0x51, 0xa2, 0xc2, 0x5a, 0xc5, 0x49, 0x35, 0x8c,
	0x13, 0x15, 0xd5, 0x2a, 0x52, 0x2e, 0x47, 0x23, 0x45, 0x15, 0x98, 0x48, 0xac, 0x2c, 0xca, 0x58,
	0xc9, 0xc8, 0x29, 0x0e, 0xb1, 0xac, 0xc2, 0x17, 0x0f, 0x07, 0xb5, 0x3f, 0x27, 0x21, 0x2f, 0xbd,
	0x09, 0xb5, 0xa4, 0x95, 0x84, 0xef, 0xac, 0x9e, 0xcb, 0x15, 0xe3, 0x76, 0xa2, 0x72, 0x67, 0x1f,
	0x43, 0x7e, 0x1f, 0x1b, 0x16, 0xf6, 0x03, 0x29, 0xf4, 0xf1, 0xf9, 0x85, 0xd6, 0x5b, 0x42, 0x42,
	0x2b, 0xa1, 0x2b, 0x61, 0xb5, 0x22, 0xe4, 0x25, 0xb6, 0x51, 0x0c, 0x43, 0x28, 0x32, 0xd4, 0xfe,
	0x99, 0x04, 0x60, 0xcc, 0xcf, 0x85, 0xb5, 0x5a, 0x00, 0x3e, 0xee, 0xdb, 0x01, 0xc5, 0x3e, 0x16,
	0xc9, 0x73, 0x7e, 0xf5, 0xd6, 0x84, 0x2a, 0x63, 0x86, 0xba, 0x1e, 0x52, 0x8b, 0xa2, 0xac, 0x20,
	0x74, 0x03, 0xca, 0x43, 0x37, 0x22, 0x4b, 0x9d, 0x4b, 0x0c, 0xab, 0xb9, 0x00, 0x63, 0x09, 0x28,
	0x0f, 0xe9, 0xa7, 0xcd, 0x6e, 0x25, 0x81, 0x0a, 0x90, 0x69, 0xef, 0x74, 0xba, 0x95, 0x24, 0x43,
	0xb5, 0x5f, 0x74, 0x2b, 0x29, 0x04, 0x90, 0xdb, 0x6c, 0x3e, 0x6b, 0x76, 0x9b, 0x95, 0x34, 0x2a,
	0x42, 0xb6, 0xbd, 0xde, 0xdd, 0x68, 0x55, 0x32, 0xa8, 0x04, 0xf9, 0x9d, 0x76, 0x77, 0x6b, 0x67,
	0xbb, 0x53, 0xc9, 0x32, 0x60, 0x63, 0x67, 0x7b, 0xbb, 0xb9, 0xd1, 0xad, 0xe4, 0x98, 0x8c, 0x56,
	0x73, 0x7d, 0xb3, 0x92, 0x67, 0xe4, 0x5d, 0x7d, 0x7d, 0xa3, 0x59, 0x29, 0x34, 0x72, 0x90, 0xa1,
	0x23, 0x0f, 0x6b, 0xbf, 0x4a, 0x42, 0xae, 0x23, 0x5c, 0x67, 0x73, 0xca, 0x96, 0x27, 0x43, 0x47,
	0x10, 0x7f, 0xd5, 0xed, 0x5e, 0x8b, 0x6d, 0x97, 0x69, 0xd8, 0xed, 0xb6, 0x2b, 0x09, 0xa6, 0x21,
	0x1b, 0x75, 0x2a, 0xc9, 0x50, 0xc3, 0xdf, 0x24, 0xc3, 0xa3, 0x43, 0x6b, 0x51, 0xef, 0x60, 0x61,
	0x74, 0x65, 0xf2, 0x48, 0xc4, 0xbc, 0xfc, 0x1d, 0x3b, 0x80, 0x09, 0x39, 0x81, 0x9a, 0xda, 0x94,
	0xbd, 0x03, 0xc5, 0x43, 0xc3, 0x19, 0xe2, 0x5e, 0x40, 0xfd, 0x50, 0xe5, 0x02, 0x47, 0x75, 0xa8,
	0x3f, 0x9e, 0xde, 0xb5, 0x45, 0x97, 0x5d, 0x0e, 0xa7, 0x1b, 0x36, 0x2f, 0xbd, 0x7c, 0xac, 0x75,
	0xa1, 0xb8, 0xd5, 0x5e, 0xb7, 0x2c, 0x1f, 0x07, 0xac, 0xc5, 0xc9, 0xd8, 0xde, 0xe1, 0x7d, 0xbe,
	0x4e, 0x9e, 0x39, 0x3a, 0x83, 0xd0, 0x1d, 0x8e, 0x7d, 0x28, 0x33, 0xe5, 0x1b, 0x13, 0xfa, 0x6f,
	0xb5, 0x0f, 0x1f, 0x4a, 0xe2, 0x87, 0x8d, 0x0c, 0xa4, 0x6c, 0x4f, 0x5b, 0x81, 0x0c, 0xc3, 0xb2,
	0x9e, 0x69, 0xcf, 0xf6, 0x03, 0x51, 0x91, 0x72, 0xba, 0x00, 0xd8, 0x76, 0x1c, 0x23, 0x10, 0x55,
	0x3c, 0xa7, 0xf3, 0xb1, 0xf6, 0x0c, 0xa0, 0x6b, 0x7a, 0x4a, 0x91, 0xdb, 0x4c, 0x8a, 0x0c, 0xa7,
	0xda, 0x94, 0x05, 0x25, 0x9d, 0x9e, 0xb2, 0x3d, 0x5e, 0x31, 0x59, 0xbd, 0x4e, 0xf1, 0x7a, 0xcd,
	0xc7, 0x9a, 0x05, 0xe9, 0x26, 0x61, 0x62, 0x2a, 0x7d, 0xdf, 0x33, 0x7b, 0xa2, 0x83, 0xeb, 0x99,
	0xc4, 0x12, 0x36, 0x9c, 0x6b, 0x25, 0xf4, 0x79, 0x36, 0xd3, 0xe1, 0x13, 0x1b, 0xc4, 0xc2, 0x8c,
	0xd6, 0xc7, 0x01, 0xa6, 0x3d, 0xec, 0xfb, 0xc4, 0x17, 0xb4, 0x29, 0x45, 0xcb, 0x67, 0x9a, 0x6c,
	0x82, 0xd1, 0x36, 0xb2, 0x90, 0xc6, 0xae, 0xa5, 0xfd, 0x63, 0x01, 0x0a, 0x5d, 0xc3, 0x6b, 0x1e,
	0xb2, 0xf6, 0xe3, 0x1e, 0xe4, 0x44, 0x7c, 0x4b, 0xb5, 0xdf, 0x9a, 0xcc, 0x02, 0xe1, 0xfe, 0x74,
	0x49, 0x8a, 0x9e, 0x42, 0x49, 0x8c, 0x7a, 0x03, 0x4c, 0x0d, 0x99, 0xba, 0x6f, 0x4d, 0xcb, 0x1f,
	0x7c, 0x91, 0x7a, 0xd3, 0xb5, 0x3c, 0x62, 0xbb, 0xf4, 0x39, 0xa6, 0x86, 0x0e, 0x82, 0x95, 0x8d,
	0xd1, 0x07, 0x50, 0x8a, 0x14, 0x03, 0x79, 0x54, 0x27, 0xaa, 0x10, 0xa5, 0x47, 0x1f, 0x41, 0x25,
	0x02, 0x0a, 0x65, 0x32, 0xe7, 0x52, 0x66, 0x21, 0xc2, 0xcf, 0x35, 0x6a, 0x00, 0xf8, 0x64, 0x48,
	0xe5, 0xce, 0xf2, 0x5c, 0xd8, 0xf5, 0xd9, 0xc2, 0x74, 0x46, 0xcb, 0x25, 0x15, 0x7d, 0x35, 0x44,
	0x1f, 0xc1, 0x02, 0x6f, 0x2d, 0x7b, 0x96, 0xed, 0x8b, 0xaa, 0xc7, 0xbb, 0xb2, 0xf9, 0xd5, 0xa5,
	0xd9, 0x82, 0xda, 0x8c, 0x61, 0x53, 0xd1, 0xeb, 0xf3, 0x5e, 0x0c, 0x46, 0xf7, 0x65, 0xfe, 0x17,
	0x15, 0xfb, 0xf2, 0x6c, 0x39, 0xb1, 0x5c, 0xff, 0x8b, 0x24, 0x94, 0xa3, 0xdb, 0x45, 0xdf, 0x85,
	0x9c, 0x63, 0xec, 0x62, 0x47, 0x45, 0xf5, 0xea, 0xd9, 0xcc, 0x54, 0x7f, 0xc6, 0x99, 0x9a, 0x2e,
	0xf5, 0x47, 0xba, 0x94, 0x50, 0x5b, 0x83, 0x52, 0x04, 0x8d, 0x2a, 0x90, 0x3e, 0xc0, 0x23, 0x19,
	0xeb, 0x6c, 0xc8, 0xa2, 0x88, 0x07, 0xab, 0xba, 0x7f, 0x71, 0xe0, 0x71, 0xea, 0x51, 0xb2, 0xf6,
	0xb3, 0x24, 0x14, 0x43, 0xcb, 0xa1, 0xa7, 0xc7, 0x94, 0x5a, 0x3e, 0x83, 0xb9, 0xff, 0xdb, 0x1a,
	0xfd, 0xb2, 0x28, 0xcb, 0xe2, 0x0e, 0x94, 0x7d, 0x51, 0xe9, 0x7a, 0xb6, 0x6b, 0xab, 0x9e, 0xf4,
	0xf6, 0xc9, 0x06, 0xaf, 0xcb, 0xe2, 0xb8, 0xe5, 0xda, 0x94, 0x5d, 0xe6, 0xfc, 0x31, 0x88, 0x74,
	0x98, 0xf3, 0xe5, 0xbd, 0x56, 0x48, 0x3c, 0xa1, 0x55, 0x8d, 0x49, 0x14, 0x3c, 0x52, 0x64, 0xd9,
	0x8f, 0xc0, 0x42, 0x49, 0x29, 0x13, 0xbb, 0x96, 0xf4, 0x8a, 0xdb, 0x67, 0x14, 0xd9, 0x74, 0x2d,
	0xa1, 0x64, 0x08, 0xd6, 0x1e, 0x42, 0xa1, 0x43, 0x7d, 0x6c, 0x0c, 0xb6, 0xf8, 0x55, 0x7a, 0xd7,
	0x08, 0x64, 0xc6, 0xd1, 0xf9, 0x58, 0x5c, 0x2e, 0xd9, 0x3c, 0xd7, 0x3e, 0xa3, 0x4b, 0xa8, 0xf6,
	0xf3, 0x14, 0x94, 0x22, 0x7b, 0x47, 0xef, 0x41, 0xca, 0xb6, 0xa4, 0xcd, 0xde, 0x3d, 0x45, 0x1d,
	0xb5, 0xa0, 0x9e, 0xb2, 0x2d, 0x96, 0x86, 0x22, 0xdd, 0xd4, 0xb4, 0x1c, 0x30, 0xee, 0x00, 0xc2,
	0x46, 0x6b, 0x39, 0x6c, 0xce, 0x84, 0x01, 0xbe, 0x36, 0xa3, 0x86, 0x86, 0x3d, 0x5b, 0xec, 0x0e,
	0x93, 0x99, 0x75, 0x87, 0xc9, 0x8e, 0xef, 0x30, 0x68, 0x75, 0x5c, 0x07, 0xc5, 0xfd, 0xb8, 0x3a,
	0xab, 0x0e, 0x8e, 0x0b, 0xe0, 0xdf, 0x92, 0x50, 0x8e, 0x1e, 0xdf, 0xeb, 0x5b, 0xe5, 0x29, 0x20,
	0x7e, 0xe7, 0xee, 0xc5, 0x5c, 0x32, 0x75, 0xda, 0xb5, 0xb8, 0xc2, 0x99, 0xa2, 0xe7, 0x72, 0x05,
	0x4a, 0x2c, 0x21, 0xc8, 0x8a, 0xc2, 0xcd, 0x35, 0xa7, 0x03, 0x43, 0x89, 0x52, 0x12, 0xdd, 0x67,
	0xe6, 0xac, 0xfb, 0xfc, 0x82, 0x1f, 0x7e, 0xe8, 0x44, 0xff, 0x03, 0xdb, 0xdc, 0x82, 0x8b, 0x4a,
	0x50, 0x34, 0xe2, 0xd2, 0xa7, 0x49, 0xba, 0x20, 0x25, 0x45, 0xce, 0xec, 0x26, 0xcc, 0x87, 0x42,
	0x76, 0x47, 0x14, 0x0b, 0xbb, 0x64, 0xf4, 0x30, 0x98, 0x1b, 0x0c, 0x89, 0x6e, 0x41, 0x1a, 0x93,
	0x40, 0x56, 0xc0, 0xc9, 0x87, 0xaa, 0x26, 0x09, 0x74, 0x46, 0x80, 0xee, 0x43, 0x81, 0xfa, 0x86,
	0xed, 0x9c, 0xc5, 0x91, 0x42, 0x4a, 0xd6, 0xee, 0x60, 0x66, 0x33, 0xed, 0x11, 0xcc, 0xc7, 0x0b,
	0x04, 0x6b, 0x3c, 0x5f, 0x6c, 0x7f, 0x6f, 0x7b, 0xe7, 0x93, 0xed, 0x4a, 0x82, 0x01, 0x5b, 0xdb,
	0x8d, 0x9d, 0x17, 0xdb, 0x9b, 0x95, 0x24, 0x2a, 0x43, 0x61, 0xe7, 0x45, 0x57, 0x40, 0xa9, 0xb1,
	0x88, 0xab, 0x50, 0x58, 0xf7, 0x6c, 0xde, 0x0c, 0xb0, 0x3c, 0xc8, 0xdb, 0x05, 0x99, 0x1b, 0x05,
	0xa0, 0x7d, 0x9e, 0x82, 0x62, 0x9b, 0x58, 0x9c, 0x24, 0x40, 0x4f, 0x20, 0xc7, 0xd1, 0x2a, 0x2b,
	0x5f, 0x9f, 0xf6, 0x0a, 0x27, 0x68, 0xc3, 0x91, 0x2e, 0x59, 0x6a, 0x5f, 0x24, 0xa1, 0xa0, 0x90,
	0x48, 0x87, 0xa2, 0x49, 0x5c, 0x6a, 0xd8, 0x2e, 0xf6, 0x67, 0x5e, 0x60, 0x26, 0x85, 0xd5, 0x37,
	0x14, 0x13, 0x07, 0xd9, 0x1d, 0x2a, 0x14, 0x53, 0x3b, 0x84, 0xf9, 0xf8, 0x34, 0xaa, 0x42, 0x7e,
	0x80, 0x83, 0xc0, 0xe8, 0xab, 0x7e, 0x53, 0x81, 0x2c, 0xea, 0xc7, 0xeb, 0xcb, 0x47, 0xcf, 0x10,
	0xc1, 0x6c, 0x61, 0x0f, 0x18, 0x97, 0x78, 0xd3, 0x15, 0x00, 0x4b, 0x78, 0x3e, 0x36, 0x02, 0xe2,
	0xaa, 0xd7, 0x34, 0x01, 0x71, 0x73, 0x72, 0x63, 0xb5, 0xa1, 0xa0, 0x6e, 0x46, 0x27, 0x3f, 0xf0,
	0xf2, 0x07, 0x9b, 0x91, 0xa7, 0x6a, 0x0e, 0x1f, 0x87, 0x9d, 0x71, 0x7a, 0xdc, 0x19, 0x6b, 0x2f,
	0xe1, 0xc2, 0xc4, 0x6d, 0x19, 0x3d, 0x80, 0x82, 0x7a, 0x7e, 0x92, 0xa6, 0x7b, 0x73, 0xe6, 0x1d,
	0x5b, 0x0f, 0x49, 0x99, 0xf7, 0xf2, 0x9a, 0xd8, 0x8b, 0x3d, 0xcd, 0x16, 0xf5, 0x39, 0x8e, 0xed,
	0xa8, 0xb7, 0xd7, 0xcf, 0x60, 0x4e, 0x31, 0x0b, 0x23, 0xbe, 0xe6, 0x72, 0xa1, 0x3f, 0xa5, 0xa2,
	0xfe, 0xf4, 0x65, 0x0a, 0x10, 0x4b, 0x2f, 0x9d, 0xe1, 0x60, 0x60, 0xf8, 0x23, 0xf5, 0xde, 0x13,
	0x7d, 0x30, 0x4e, 0x9e, 0xff, 0xc1, 0x98, 0xe5, 0x32, 0x6a, 0x0f, 0x70, 0xef, 0xc8, 0x76, 0x2d,
	0x72, 0x24, 0x97, 0x04, 0x86, 0xfa, 0x84, 0x63, 0xd0, 0x37, 0x20, 0xe3, 0x12, 0x57, 0x15, 0x85,
	0x4b, 0x93, 0x41, 0x39, 0xf0, 0xe8, 0x88, 0xf5, 0x48, 0x8c, 0x0a, 0xbd, 0x0f, 0x25, 0x4a, 0x7a,
	0xe1, 0xae, 0x33, 0xa7, 0xec, 0x9a, 0x5d, 0xc2, 0x28, 0x09, 0x8f, 0xfe, 0x3b, 0x30, 0xb7, 0xe7,
	0x93, 0xc1, 0x98, 0x3f, 0x7b, 0x3a, 0x7f, 0x99, 0x71, 0x84, 0x12, 0xde, 0x01, 0x08, 0x0e, 0x6c,
	0x91, 0x9a, 0x45, 0x6e, 0x28, 0xe8, 0x45, 0x86, 0x61, 0xa6, 0x0b, 0xd0, 0x5b, 0x50, 0xa4, 0xa6,
	0x9a, 0xcd, 0xf3, 0xd9, 0x02, 0x35, 0xc5, 0x64, 0x03, 0xa0, 0x40, 0x86, 0x74, 0x97, 0x0c, 0x5d,
	0x4b, 0xfb, 0x4b, 0x12, 0x2e, 0xc6, 0xac, 0x2d, 0xdf, 0xd2, 0xd7, 0x20, 0x45, 0x0e, 0x66, 0x66,
	0xe5, 0x29, 0x1c, 0xf5, 0x9d, 0x83, 0x56, 0x42, 0x4f, 0x91, 0x03, 0xf4, 0x30, 0x7a, 0xac, 0xd3,
	0xba, 0xce, 0x98, 0xf3, 0xb4, 0x12, 0xf2, 0xe0, 0x6b, 0xeb, 0x90, 0xda, 0x39, 0x40, 0x4f, 0x80,
	0x3f, 0x6a, 0xf7, 0xa8, 0xb1, 0xeb, 0x84, 0xaf, 0x31, 0xb5, 0xa9, 0x1a, 0x74, 0x19, 0x89, 0x0e,
	0x81, 0x1a, 0xf2, 0x9d, 0xa9, 0x44, 0xab, 0xfd, 0x36, 0x05, 0xd0, 0x30, 0x02, 0xdb, 0x14, 0x16,
	0xb9, 0x0e, 0x73, 0xc1, 0xd0, 0x34, 0x71, 0xc0, 0x6e, 0x46, 0x43, 0x57, 0xb4, 0x68, 0x19, 0xbd,
	0x2c, 0x91, 0x1b, 0x0c, 0xc7, 0x88, 0xf6, 0x0c, 0xdb, 0x19, 0xfa, 0x58, 0x12, 0x89, 0xbe, 0xa5,
	0x2c, 0x91, 0x82, 0xe8, 0x06, 0x8b, 0x12, 0x8a, 0x5d, 0x73, 0xd4, 0x1b, 0x04, 0x3d, 0xef, 0xc1,
	0x0a, 0x77, 0x99, 0x8c, 0x5e, 0x96, 0xd8, 0xe7, 0x41, 0xfb, 0xc1, 0xca, 0x71, 0xaa, 0xb5, 0x07,
	0xb2, 0x12, 0x44, 0xa8, 0xd6, 0x1e, 0x4c, 0x50, 0xad, 0x71, 0x4f, 0x88, 0x53, 0xad, 0xa1, 0x15,
	0x58, 0x34, 0x4c, 0x3a, 0x34, 0x9c, 0x5e, 0x7c, 0x0b, 0x39, 0x4e, 0x8b, 0xc4, 0x5c, 0x27, 0xba,
	0x91, 0x31, 0x47, 0x7c, 0x3f, 0xf9, 0x28, 0xc7, 0x87, 0x91, 0x5d, 0x69, 0x3f, 0x49, 0x42, 0xa1,
	0x2b, 0x3d, 0x04, 0x7d, 0x1d, 0x2a, 0xc4, 0xc3, 0xfc, 0x1f, 0x0a, 0x57, 0x44, 0x52, 0x20, 0xed,
	0xb5, 0xc0, 0xf0, 0x1b, 0x63, 0x34, 0x5a, 0x62, 0x37, 0x49, 0xc3, 0x12, 0xd5, 0xae, 0x47, 0x09,
	0x35, 0x1c, 0x69, 0xb5, 0x79, 0x86, 0xe7, 0xf5, 0xae, 0xcb, 0xb0, 0xe8, 0x36, 0x5c, 0x38, 0xf2,
	0x6d, 0x8a, 0x63, 0xa4, 0xc2, 0x74, 0x0b, 0x7c, 0x62, 0x4c, 0xab, 0x75, 0xe0, 0x42, 0xd7, 0x37,
	0xf6, 0xf6, 0x6c, 0xb3, 0xe3, 0x39, 0x36, 0x15, 0x5a, 0x21, 0xc8, 0x18, 0x1e, 0x7e, 0xa5, 0x52,
	0x22, 0x1b, 0xf3, 0xdb, 0x35, 0x36, 0xf6, 0x54, 0x4a, 0x64, 0x63, 0x96, 0x85, 0x8f, 0xb0, 0xdd,
	0xdf, 0xa7, 0x2a, 0x0b, 0x0b, 0x48, 0xfb, 0x77, 0x16, 0x8a, 0xa1, 0xdf, 0xa0, 0x06, 0x14, 0x3d,
	0x62, 0xf5, 0xfa, 0x3e, 0x19, 0xaa, 0xcb, 0xf7, 0xf5, 0xd9, 0x6e, 0xc6, 0xea, 0xcb, 0x53, 0x46,
	0xda, 0x4a, 0xe8, 0x05, 0x4f, 0x8e, 0x6b, 0xbf, 0xce, 0xf2, 0x82, 0xc5, 0x01, 0xf4, 0x04, 0x32,
	0x3e, 0x39, 0x52, 0x2e, 0xfb, 0xee, 0x19, 0x64, 0xd5, 0x75, 0x72, 0xa4, 0x73, 0xa6, 0xda, 0x5f,
	0x33, 0x90, 0xd6, 0xc9, 0xd1, 0xeb, 0xa6, 0xd2, 0x53, 0xb3, 0xdb, 0xf8, 0x7f, 0x9e, 0x62, 0xec,
	0x7f, 0x9e, 0x25, 0xa8, 0x0c, 0x70, 0xb0, 0x8f, 0xad, 0x1e, 0x33, 0x86, 0x70, 0x12, 0x71, 0x26,
	0xf3, 0x02, 0xdf, 0x26, 0x96, 0x70, 0xa9, 0xdb, 0x70, 0xc1, 0x1f, 0xba, 0xae, 0xed, 0xf6, 0x23,
	0xa4, 0xc2, 0xa7, 0x17, 0xe4, 0x44, 0x48, 0xbb, 0x04, 0x15, 0xe6, 0x77, 0x31, 0xa9, 0xc2, 0x59,
	0xe7, 0x05, 0x3e, 0xa4, 0xbc, 0x0b, 0x59, 0x91, 0xa4, 0xb2, 0x33, 0x1a, 0xf8, 0x71, 0x08, 0xeb,
	0x82, 0x12, 0x3d, 0x8c, 0xe6, 0xb6, 0xc2, 0x0c, 0x1b, 0x29, 0x57, 0x1e, 0xa7, 0x3d, 0xf4, 0x01,
	0x14, 0x68, 0x20, 0xd9, 0x60, 0x46, 0x05, 0x99, 0x70, 0x3a, 0x3d, 0x4f, 0x03, 0xc1, 0xfe, 0x19,
	0xcc, 0x89, 0x36, 0xa5, 0xb7, 0x3b, 0x62, 0xdb, 0xaa, 0xe6, 0xf9, 0x39, 0x3f, 0x3a, 0xe3, 0x39,
	0xd7, 0x45, 0x9f, 0xd2, 0x18, 0xb1, 0x46, 0x85, 0xdf, 0x3f, 0x4b, 0x78, 0x8c, 0xa9, 0x7d, 0x0a,
	0x95, 0xe3, 0x04, 0x53, 0x6e, 0xa2, 0x2b, 0xd1, 0x9b, 0xe8, 0xb4, 0xb4, 0x18, 0xf6, 0x43, 0x91,
	0x5b, 0x2a, 0xeb, 0x3e, 0x78, 0x36, 0xd5, 0xb6, 0xa1, 0xdc, 0xb4, 0xfa, 0xe3, 0xbf, 0x98, 0xbf,
	0x62, 0x4d, 0xd5, 0x7e, 0x9f, 0x84, 0x39, 0x29, 0x50, 0x96, 0x8d, 0x7b, 0x91, 0xb2, 0x71, 0x6d,
	0xb2, 0x84, 0x46, 0x69, 0xbf, 0x7a, 0xc1, 0xb8, 0xcb, 0x0b, 0xc6, 0x1d, 0xc8, 0x62, 0x26, 0x57,
	0xc6, 0xdd, 0x1b, 0x53, 0x57, 0xd5, 0x05, 0x4d, 0xac, 0x40, 0xfc, 0x31, 0x09, 0x19, 0x36, 0x87,
	0xee, 0x40, 0x3a, 0xf0, 0xcd, 0xd3, 0xc3, 0x8d, 0x51, 0x31, 0x62, 0x2b, 0x18, 0x5f, 0x33, 0x66,
	0x13, 0x5b, 0x01, 0x65, 0x65, 0xd8, 0x74, 0x6c, 0xec, 0xd2, 0x9e, 0x6d, 0xc9, 0x14, 0x55, 0x10,
	0x88, 0x2d, 0x8b, 0x4d, 0x06, 0xd8, 0x3f, 0xc4, 0x3e, 0x9b, 0x14, 0x99, 0xaa, 0x20, 0x10, 0x5b,
	0x16, 0xba, 0x05, 0x0b, 0x2e, 0xe9, 0xd9, 0x16, 0x76, 0xa9, 0x4d, 0x59, 0x71, 0xe8, 0xcb, 0x0b,
	0xe6, 0x9c, 0x4b, 0xb6, 0x24, 0xf6, 0x79, 0xd0, 0xd7, 0xbe, 0x4c, 0x42, 0xa5, 0x4b, 0x3c, 0xfe,
	0xc2, 0x11, 0xfc, 0x7f, 0xf4, 0x4a, 0xf9, 0x73, 0xf5, 0x4a, 0xb1, 0x6e, 0xe5, 0x4f, 0x49, 0xb8,
	0x10, 0xd9, 0xad, 0x74, 0xba, 0xd7, 0xf4, 0x1f, 0x76, 0xf3, 0x24, 0x07, 0x72, 0x0f, 0x37, 0x27,
	0x53, 0xc1, 0xf1, 0x75, 0x42, 0x87, 0xad, 0xad, 0x71, 0xc7, 0xbb, 0x07, 0x39, 0xfe, 0x78, 0xa7,
	0x3c, 0x6f, 0x32, 0x77, 0x71, 0x7e, 0xd1, 0xa5, 0x48, 0xd2, 0x98, 0x03, 0xfe, 0x3d, 0x09, 0x30,
	0x26, 0x41, 0xf7, 0x62, 0xf5, 0xe3, 0xca, 0x09, 0xd2, 0xc6, 0x75, 0x03, 0xd5, 0x22, 0xf5, 0x42,
	0x9c, 0x53, 0x08, 0xd7, 0x7e, 0x9a, 0x14, 0x35, 0x65, 0x11, 0xb2, 0x7c, 0x75, 0x75, 0x6f, 0xe3,
	0xc0, 0xe9, 0x87, 0x1c, 0x7b, 0xf6, 0xc8, 0x1d, 0x7f, 0xf6, 0x38, 0x7f, 0xe2, 0x5e, 0xfd, 0x43,
	0x0e, 0xd2, 0xeb, 0x9e, 0x8d, 0x3e, 0x85, 0x52, 0xa4, 0x81, 0x44, 0xd7, 0x4f, 0x6e, 0x2f, 0xb9,
	0x4b, 0xd7, 0x6e, 0x9c, 0xa5, 0x07, 0xd5, 0x12, 0xa8, 0x05, 0x59, 0x9e, 0x65, 0xd0, 0x3b, 0xb3,
	0xb2, 0x8f, 0x90, 0x77, 0xf9, 0xe4, 0xe4, 0xa4, 0x25, 0x50, 0x17, 0x8a, 0xa1, 0x0b, 0xa0, 0x6b,
	0x27, 0xb9, 0x87, 0x90, 0xa8, 0x9d, 0xee, 0x41, 0x5a, 0x02, 0x7d, 0x04, 0x05, 0xf5, 0xdd, 0x0a,
	0xba, 0x3a, 0xc1, 0x71, 0xec, 0x3b, 0x9a, 0xda, 0xb5, 0x13, 0x28, 0x42, 0x91, 0x3f, 0x80, 0x72,
	0xf4, 0x53, 0x20, 0x74, 0x63, 0x2a, 0xd3, 0xb1, 0xcf, 0x8b, 0x6a, 0x37, 0x4f, 0xa1, 0x0a, 0xc5,
	0x6f, 0x42, 0xba, 0x6b, 0x78, 0xe8, 0xad, 0x69, 0x4f, 0x33, 0x4a, 0xd8, 0x9b, 0x33, 0xdf, 0x6d,
	0xb4, 0xf4, 0x8f, 0x53, 0xc9, 0x95, 0x24, 0xfa, 0x3e, 0xcc, 0xc5, 0xfe, 0x17, 0x44, 0x37, 0xcf,
	0xf4, 0xbf, 0xe1, 0x19, 0x24, 0xaf, 0x43, 0x5e, 0x7d, 0x8c, 0x31, 0x23, 0x11, 0xd5, 0xde, 0x9e,
	0xc0, 0x47, 0xbe, 0xf1, 0xd2, 0x12, 0xc8, 0x81, 0x62, 0x07, 0x3b, 0x7b, 0x1b, 0xfb, 0xd8, 0x3c,
	0x40, 0x91, 0x3f, 0xec, 0xc5, 0x37, 0x64, 0xf5, 0xe8, 0x37, 0x64, 0x21, 0x9d, 0x52, 0xb0, 0x7e,
	0x56, 0xf2, 0xd0, 0xa0, 0x8f, 0x20, 0xb7, 0xc1, 0xbf, 0x3d, 0x9b, 0xa9, 0xef, 0x62, 0x54, 0x26,
	0xff, 0x4a, 0x6d, 0xdd, 0x71, 0xb4, 0x44, 0xe3, 0xde, 0xa7, 0x77, 0xfb, 0x36, 0xdd, 0x1f, 0xee,
	0xb2, 0xa5, 0x96, 0x25, 0x8d, 0xfa, 0x5d, 0x5d, 0x1e, 0x7f, 0x3a, 0xb3, 0xdc, 0xc7, 0xee, 0xb2,
	0x10, 0xb9, 0x9b, 0xe3, 0x0f, 0x57, 0xf7, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x49, 0xb3, 0x10,
	0x28, 0x51, 0x27, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// 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.SupportPackageIsVersion4

// 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)
	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)
	// Superceded by `TapByResource`.
	Tap(ctx context.Context, in *TapRequest, opts ...grpc.CallOption) (Api_TapClient, error)
	// Superceded 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.ClientConn
}

func NewApiClient(cc *grpc.ClientConn) 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) 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)
	TopRoutes(context.Context, *TopRoutesRequest) (*TopRoutesResponse, error)
	ListPods(context.Context, *ListPodsRequest) (*ListPodsResponse, error)
	ListServices(context.Context, *ListServicesRequest) (*ListServicesResponse, error)
	// Superceded by `TapByResource`.
	Tap(*TapRequest, Api_TapServer) error
	// Superceded 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(ctx context.Context, req *StatSummaryRequest) (*StatSummaryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StatSummary not implemented")
}
func (*UnimplementedApiServer) Edges(ctx context.Context, req *EdgesRequest) (*EdgesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Edges not implemented")
}
func (*UnimplementedApiServer) TopRoutes(ctx context.Context, req *TopRoutesRequest) (*TopRoutesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method TopRoutes not implemented")
}
func (*UnimplementedApiServer) ListPods(ctx context.Context, req *ListPodsRequest) (*ListPodsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListPods not implemented")
}
func (*UnimplementedApiServer) ListServices(ctx context.Context, req *ListServicesRequest) (*ListServicesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListServices not implemented")
}
func (*UnimplementedApiServer) Tap(req *TapRequest, srv Api_TapServer) error {
	return status.Errorf(codes.Unimplemented, "method Tap not implemented")
}
func (*UnimplementedApiServer) TapByResource(req *TapByResourceRequest, srv Api_TapByResourceServer) error {
	return status.Errorf(codes.Unimplemented, "method TapByResource not implemented")
}
func (*UnimplementedApiServer) Version(ctx context.Context, req *Empty) (*VersionInfo, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
}
func (*UnimplementedApiServer) SelfCheck(ctx context.Context, req *healthcheck.SelfCheckRequest) (*healthcheck.SelfCheckResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SelfCheck not implemented")
}
func (*UnimplementedApiServer) Config(ctx context.Context, req *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_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: "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",
}
