// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	protoc        v3.5.0
// source: felixbackend.proto

package proto

import (
	reflect "reflect"
	sync "sync"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type IPVersion int32

const (
	IPVersion_ANY  IPVersion = 0
	IPVersion_IPV4 IPVersion = 4
	IPVersion_IPV6 IPVersion = 6
)

// Enum value maps for IPVersion.
var (
	IPVersion_name = map[int32]string{
		0: "ANY",
		4: "IPV4",
		6: "IPV6",
	}
	IPVersion_value = map[string]int32{
		"ANY":  0,
		"IPV4": 4,
		"IPV6": 6,
	}
)

func (x IPVersion) Enum() *IPVersion {
	p := new(IPVersion)
	*p = x
	return p
}

func (x IPVersion) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (IPVersion) Descriptor() protoreflect.EnumDescriptor {
	return file_felixbackend_proto_enumTypes[0].Descriptor()
}

func (IPVersion) Type() protoreflect.EnumType {
	return &file_felixbackend_proto_enumTypes[0]
}

func (x IPVersion) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use IPVersion.Descriptor instead.
func (IPVersion) EnumDescriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{0}
}

type RouteType int32

const (
	// CIDR_INFO gives information about a CIDR without establishing a route.  For example,
	// it is emitted for IP pools with no blocks.
	RouteType_CIDR_INFO       RouteType = 0
	RouteType_REMOTE_WORKLOAD RouteType = 1
	RouteType_REMOTE_HOST     RouteType = 2
	RouteType_LOCAL_WORKLOAD  RouteType = 3
	RouteType_LOCAL_HOST      RouteType = 4
	RouteType_REMOTE_TUNNEL   RouteType = 5
	RouteType_LOCAL_TUNNEL    RouteType = 6
)

// Enum value maps for RouteType.
var (
	RouteType_name = map[int32]string{
		0: "CIDR_INFO",
		1: "REMOTE_WORKLOAD",
		2: "REMOTE_HOST",
		3: "LOCAL_WORKLOAD",
		4: "LOCAL_HOST",
		5: "REMOTE_TUNNEL",
		6: "LOCAL_TUNNEL",
	}
	RouteType_value = map[string]int32{
		"CIDR_INFO":       0,
		"REMOTE_WORKLOAD": 1,
		"REMOTE_HOST":     2,
		"LOCAL_WORKLOAD":  3,
		"LOCAL_HOST":      4,
		"REMOTE_TUNNEL":   5,
		"LOCAL_TUNNEL":    6,
	}
)

func (x RouteType) Enum() *RouteType {
	p := new(RouteType)
	*p = x
	return p
}

func (x RouteType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RouteType) Descriptor() protoreflect.EnumDescriptor {
	return file_felixbackend_proto_enumTypes[1].Descriptor()
}

func (RouteType) Type() protoreflect.EnumType {
	return &file_felixbackend_proto_enumTypes[1]
}

func (x RouteType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RouteType.Descriptor instead.
func (RouteType) EnumDescriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{1}
}

type IPPoolType int32

const (
	IPPoolType_NONE     IPPoolType = 0
	IPPoolType_NO_ENCAP IPPoolType = 1
	IPPoolType_VXLAN    IPPoolType = 2
	IPPoolType_IPIP     IPPoolType = 3
)

// Enum value maps for IPPoolType.
var (
	IPPoolType_name = map[int32]string{
		0: "NONE",
		1: "NO_ENCAP",
		2: "VXLAN",
		3: "IPIP",
	}
	IPPoolType_value = map[string]int32{
		"NONE":     0,
		"NO_ENCAP": 1,
		"VXLAN":    2,
		"IPIP":     3,
	}
)

func (x IPPoolType) Enum() *IPPoolType {
	p := new(IPPoolType)
	*p = x
	return p
}

func (x IPPoolType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (IPPoolType) Descriptor() protoreflect.EnumDescriptor {
	return file_felixbackend_proto_enumTypes[2].Descriptor()
}

func (IPPoolType) Type() protoreflect.EnumType {
	return &file_felixbackend_proto_enumTypes[2]
}

func (x IPPoolType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use IPPoolType.Descriptor instead.
func (IPPoolType) EnumDescriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{2}
}

type IPSetUpdate_IPSetType int32

const (
	IPSetUpdate_IP          IPSetUpdate_IPSetType = 0 // Each member is an IP address in dotted-decimal or IPv6 format.
	IPSetUpdate_IP_AND_PORT IPSetUpdate_IPSetType = 1 // Each member is "<IP>,(tcp|udp):port".
	IPSetUpdate_NET         IPSetUpdate_IPSetType = 2 // Each member is a CIDR in dotted-decimal or IPv6 format.
)

// Enum value maps for IPSetUpdate_IPSetType.
var (
	IPSetUpdate_IPSetType_name = map[int32]string{
		0: "IP",
		1: "IP_AND_PORT",
		2: "NET",
	}
	IPSetUpdate_IPSetType_value = map[string]int32{
		"IP":          0,
		"IP_AND_PORT": 1,
		"NET":         2,
	}
)

func (x IPSetUpdate_IPSetType) Enum() *IPSetUpdate_IPSetType {
	p := new(IPSetUpdate_IPSetType)
	*p = x
	return p
}

func (x IPSetUpdate_IPSetType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (IPSetUpdate_IPSetType) Descriptor() protoreflect.EnumDescriptor {
	return file_felixbackend_proto_enumTypes[3].Descriptor()
}

func (IPSetUpdate_IPSetType) Type() protoreflect.EnumType {
	return &file_felixbackend_proto_enumTypes[3]
}

func (x IPSetUpdate_IPSetType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use IPSetUpdate_IPSetType.Descriptor instead.
func (IPSetUpdate_IPSetType) EnumDescriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{6, 0}
}

type SyncRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SyncRequest) Reset() {
	*x = SyncRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SyncRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncRequest) ProtoMessage() {}

func (x *SyncRequest) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncRequest.ProtoReflect.Descriptor instead.
func (*SyncRequest) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{0}
}

type ToDataplane struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Sequence number incremented with each message.  Useful for correlating
	// messages in logs.
	SequenceNumber uint64 `protobuf:"varint,15,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"`
	// Types that are assignable to Payload:
	//
	//	*ToDataplane_InSync
	//	*ToDataplane_IpsetUpdate
	//	*ToDataplane_IpsetDeltaUpdate
	//	*ToDataplane_IpsetRemove
	//	*ToDataplane_ActiveProfileUpdate
	//	*ToDataplane_ActiveProfileRemove
	//	*ToDataplane_ActivePolicyUpdate
	//	*ToDataplane_ActivePolicyRemove
	//	*ToDataplane_HostEndpointUpdate
	//	*ToDataplane_HostEndpointRemove
	//	*ToDataplane_WorkloadEndpointUpdate
	//	*ToDataplane_WorkloadEndpointRemove
	//	*ToDataplane_ConfigUpdate
	//	*ToDataplane_HostMetadataUpdate
	//	*ToDataplane_HostMetadataRemove
	//	*ToDataplane_HostMetadataV4V6Update
	//	*ToDataplane_HostMetadataV4V6Remove
	//	*ToDataplane_IpamPoolUpdate
	//	*ToDataplane_IpamPoolRemove
	//	*ToDataplane_ServiceAccountUpdate
	//	*ToDataplane_ServiceAccountRemove
	//	*ToDataplane_NamespaceUpdate
	//	*ToDataplane_NamespaceRemove
	//	*ToDataplane_RouteUpdate
	//	*ToDataplane_RouteRemove
	//	*ToDataplane_VtepUpdate
	//	*ToDataplane_VtepRemove
	//	*ToDataplane_WireguardEndpointUpdate
	//	*ToDataplane_WireguardEndpointRemove
	//	*ToDataplane_GlobalBgpConfigUpdate
	//	*ToDataplane_Encapsulation
	//	*ToDataplane_ServiceUpdate
	//	*ToDataplane_ServiceRemove
	//	*ToDataplane_WireguardEndpointV6Update
	//	*ToDataplane_WireguardEndpointV6Remove
	//	*ToDataplane_HostMetadataV6Update
	//	*ToDataplane_HostMetadataV6Remove
	Payload isToDataplane_Payload `protobuf_oneof:"payload"`
}

func (x *ToDataplane) Reset() {
	*x = ToDataplane{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ToDataplane) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ToDataplane) ProtoMessage() {}

func (x *ToDataplane) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ToDataplane.ProtoReflect.Descriptor instead.
func (*ToDataplane) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{1}
}

func (x *ToDataplane) GetSequenceNumber() uint64 {
	if x != nil {
		return x.SequenceNumber
	}
	return 0
}

func (m *ToDataplane) GetPayload() isToDataplane_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *ToDataplane) GetInSync() *InSync {
	if x, ok := x.GetPayload().(*ToDataplane_InSync); ok {
		return x.InSync
	}
	return nil
}

func (x *ToDataplane) GetIpsetUpdate() *IPSetUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_IpsetUpdate); ok {
		return x.IpsetUpdate
	}
	return nil
}

func (x *ToDataplane) GetIpsetDeltaUpdate() *IPSetDeltaUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_IpsetDeltaUpdate); ok {
		return x.IpsetDeltaUpdate
	}
	return nil
}

func (x *ToDataplane) GetIpsetRemove() *IPSetRemove {
	if x, ok := x.GetPayload().(*ToDataplane_IpsetRemove); ok {
		return x.IpsetRemove
	}
	return nil
}

func (x *ToDataplane) GetActiveProfileUpdate() *ActiveProfileUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_ActiveProfileUpdate); ok {
		return x.ActiveProfileUpdate
	}
	return nil
}

func (x *ToDataplane) GetActiveProfileRemove() *ActiveProfileRemove {
	if x, ok := x.GetPayload().(*ToDataplane_ActiveProfileRemove); ok {
		return x.ActiveProfileRemove
	}
	return nil
}

func (x *ToDataplane) GetActivePolicyUpdate() *ActivePolicyUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_ActivePolicyUpdate); ok {
		return x.ActivePolicyUpdate
	}
	return nil
}

func (x *ToDataplane) GetActivePolicyRemove() *ActivePolicyRemove {
	if x, ok := x.GetPayload().(*ToDataplane_ActivePolicyRemove); ok {
		return x.ActivePolicyRemove
	}
	return nil
}

func (x *ToDataplane) GetHostEndpointUpdate() *HostEndpointUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_HostEndpointUpdate); ok {
		return x.HostEndpointUpdate
	}
	return nil
}

func (x *ToDataplane) GetHostEndpointRemove() *HostEndpointRemove {
	if x, ok := x.GetPayload().(*ToDataplane_HostEndpointRemove); ok {
		return x.HostEndpointRemove
	}
	return nil
}

func (x *ToDataplane) GetWorkloadEndpointUpdate() *WorkloadEndpointUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_WorkloadEndpointUpdate); ok {
		return x.WorkloadEndpointUpdate
	}
	return nil
}

func (x *ToDataplane) GetWorkloadEndpointRemove() *WorkloadEndpointRemove {
	if x, ok := x.GetPayload().(*ToDataplane_WorkloadEndpointRemove); ok {
		return x.WorkloadEndpointRemove
	}
	return nil
}

func (x *ToDataplane) GetConfigUpdate() *ConfigUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_ConfigUpdate); ok {
		return x.ConfigUpdate
	}
	return nil
}

func (x *ToDataplane) GetHostMetadataUpdate() *HostMetadataUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_HostMetadataUpdate); ok {
		return x.HostMetadataUpdate
	}
	return nil
}

func (x *ToDataplane) GetHostMetadataRemove() *HostMetadataRemove {
	if x, ok := x.GetPayload().(*ToDataplane_HostMetadataRemove); ok {
		return x.HostMetadataRemove
	}
	return nil
}

func (x *ToDataplane) GetHostMetadataV4V6Update() *HostMetadataV4V6Update {
	if x, ok := x.GetPayload().(*ToDataplane_HostMetadataV4V6Update); ok {
		return x.HostMetadataV4V6Update
	}
	return nil
}

func (x *ToDataplane) GetHostMetadataV4V6Remove() *HostMetadataV4V6Remove {
	if x, ok := x.GetPayload().(*ToDataplane_HostMetadataV4V6Remove); ok {
		return x.HostMetadataV4V6Remove
	}
	return nil
}

func (x *ToDataplane) GetIpamPoolUpdate() *IPAMPoolUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_IpamPoolUpdate); ok {
		return x.IpamPoolUpdate
	}
	return nil
}

func (x *ToDataplane) GetIpamPoolRemove() *IPAMPoolRemove {
	if x, ok := x.GetPayload().(*ToDataplane_IpamPoolRemove); ok {
		return x.IpamPoolRemove
	}
	return nil
}

func (x *ToDataplane) GetServiceAccountUpdate() *ServiceAccountUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_ServiceAccountUpdate); ok {
		return x.ServiceAccountUpdate
	}
	return nil
}

func (x *ToDataplane) GetServiceAccountRemove() *ServiceAccountRemove {
	if x, ok := x.GetPayload().(*ToDataplane_ServiceAccountRemove); ok {
		return x.ServiceAccountRemove
	}
	return nil
}

func (x *ToDataplane) GetNamespaceUpdate() *NamespaceUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_NamespaceUpdate); ok {
		return x.NamespaceUpdate
	}
	return nil
}

func (x *ToDataplane) GetNamespaceRemove() *NamespaceRemove {
	if x, ok := x.GetPayload().(*ToDataplane_NamespaceRemove); ok {
		return x.NamespaceRemove
	}
	return nil
}

func (x *ToDataplane) GetRouteUpdate() *RouteUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_RouteUpdate); ok {
		return x.RouteUpdate
	}
	return nil
}

func (x *ToDataplane) GetRouteRemove() *RouteRemove {
	if x, ok := x.GetPayload().(*ToDataplane_RouteRemove); ok {
		return x.RouteRemove
	}
	return nil
}

func (x *ToDataplane) GetVtepUpdate() *VXLANTunnelEndpointUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_VtepUpdate); ok {
		return x.VtepUpdate
	}
	return nil
}

func (x *ToDataplane) GetVtepRemove() *VXLANTunnelEndpointRemove {
	if x, ok := x.GetPayload().(*ToDataplane_VtepRemove); ok {
		return x.VtepRemove
	}
	return nil
}

func (x *ToDataplane) GetWireguardEndpointUpdate() *WireguardEndpointUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_WireguardEndpointUpdate); ok {
		return x.WireguardEndpointUpdate
	}
	return nil
}

func (x *ToDataplane) GetWireguardEndpointRemove() *WireguardEndpointRemove {
	if x, ok := x.GetPayload().(*ToDataplane_WireguardEndpointRemove); ok {
		return x.WireguardEndpointRemove
	}
	return nil
}

func (x *ToDataplane) GetGlobalBgpConfigUpdate() *GlobalBGPConfigUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_GlobalBgpConfigUpdate); ok {
		return x.GlobalBgpConfigUpdate
	}
	return nil
}

func (x *ToDataplane) GetEncapsulation() *Encapsulation {
	if x, ok := x.GetPayload().(*ToDataplane_Encapsulation); ok {
		return x.Encapsulation
	}
	return nil
}

func (x *ToDataplane) GetServiceUpdate() *ServiceUpdate {
	if x, ok := x.GetPayload().(*ToDataplane_ServiceUpdate); ok {
		return x.ServiceUpdate
	}
	return nil
}

func (x *ToDataplane) GetServiceRemove() *ServiceRemove {
	if x, ok := x.GetPayload().(*ToDataplane_ServiceRemove); ok {
		return x.ServiceRemove
	}
	return nil
}

func (x *ToDataplane) GetWireguardEndpointV6Update() *WireguardEndpointV6Update {
	if x, ok := x.GetPayload().(*ToDataplane_WireguardEndpointV6Update); ok {
		return x.WireguardEndpointV6Update
	}
	return nil
}

func (x *ToDataplane) GetWireguardEndpointV6Remove() *WireguardEndpointV6Remove {
	if x, ok := x.GetPayload().(*ToDataplane_WireguardEndpointV6Remove); ok {
		return x.WireguardEndpointV6Remove
	}
	return nil
}

func (x *ToDataplane) GetHostMetadataV6Update() *HostMetadataV6Update {
	if x, ok := x.GetPayload().(*ToDataplane_HostMetadataV6Update); ok {
		return x.HostMetadataV6Update
	}
	return nil
}

func (x *ToDataplane) GetHostMetadataV6Remove() *HostMetadataV6Remove {
	if x, ok := x.GetPayload().(*ToDataplane_HostMetadataV6Remove); ok {
		return x.HostMetadataV6Remove
	}
	return nil
}

type isToDataplane_Payload interface {
	isToDataplane_Payload()
}

type ToDataplane_InSync struct {
	// InSync is sent once a complete snapshot of the datastore has been
	// processed.  The dataplane driver should use it as a signal to
	// resynchronise the dataplane.
	InSync *InSync `protobuf:"bytes,1,opt,name=in_sync,json=inSync,proto3,oneof"`
}

type ToDataplane_IpsetUpdate struct {
	// IPSetUpdate is sent when an IP set becomes active.  It contains the
	// complete membership of the IP set.
	IpsetUpdate *IPSetUpdate `protobuf:"bytes,2,opt,name=ipset_update,json=ipsetUpdate,proto3,oneof"`
}

type ToDataplane_IpsetDeltaUpdate struct {
	// IPSetDeltaUpdates are sent after the first IPSetUpdate; they contain
	// a list of IPs that should be added and removed from the IP set.
	IpsetDeltaUpdate *IPSetDeltaUpdate `protobuf:"bytes,3,opt,name=ipset_delta_update,json=ipsetDeltaUpdate,proto3,oneof"`
}

type ToDataplane_IpsetRemove struct {
	// IPSet remove is sent when an IP set is no longer needed.
	IpsetRemove *IPSetRemove `protobuf:"bytes,4,opt,name=ipset_remove,json=ipsetRemove,proto3,oneof"`
}

type ToDataplane_ActiveProfileUpdate struct {
	// ActiveProfileUpdate is sent when a profile becomes active or is updated.
	ActiveProfileUpdate *ActiveProfileUpdate `protobuf:"bytes,5,opt,name=active_profile_update,json=activeProfileUpdate,proto3,oneof"`
}

type ToDataplane_ActiveProfileRemove struct {
	// ActiveProfileRemove is sent when a profile becomes inactive or is
	// deleted.
	ActiveProfileRemove *ActiveProfileRemove `protobuf:"bytes,6,opt,name=active_profile_remove,json=activeProfileRemove,proto3,oneof"`
}

type ToDataplane_ActivePolicyUpdate struct {
	// ActivePolicyUpdate is sent when a policy becomes active or is updated.
	ActivePolicyUpdate *ActivePolicyUpdate `protobuf:"bytes,7,opt,name=active_policy_update,json=activePolicyUpdate,proto3,oneof"`
}

type ToDataplane_ActivePolicyRemove struct {
	// ActivePolicyRemove is sent when a policy becomes inactive or is
	// deleted.
	ActivePolicyRemove *ActivePolicyRemove `protobuf:"bytes,8,opt,name=active_policy_remove,json=activePolicyRemove,proto3,oneof"`
}

type ToDataplane_HostEndpointUpdate struct {
	// HostEndpointUpdate is sent when a local host endpoint is added or
	// updated.
	HostEndpointUpdate *HostEndpointUpdate `protobuf:"bytes,9,opt,name=host_endpoint_update,json=hostEndpointUpdate,proto3,oneof"`
}

type ToDataplane_HostEndpointRemove struct {
	// HostEndpointRemove is sent when a local host endpoint is removed.
	HostEndpointRemove *HostEndpointRemove `protobuf:"bytes,10,opt,name=host_endpoint_remove,json=hostEndpointRemove,proto3,oneof"`
}

type ToDataplane_WorkloadEndpointUpdate struct {
	// WorkloadEndpointUpdate is sent when a local workload endpoint is added
	// or updated.
	WorkloadEndpointUpdate *WorkloadEndpointUpdate `protobuf:"bytes,11,opt,name=workload_endpoint_update,json=workloadEndpointUpdate,proto3,oneof"`
}

type ToDataplane_WorkloadEndpointRemove struct {
	// WorkloadEndpointRemove is sent when a local workload endpoint is
	// removed.
	WorkloadEndpointRemove *WorkloadEndpointRemove `protobuf:"bytes,12,opt,name=workload_endpoint_remove,json=workloadEndpointRemove,proto3,oneof"`
}

type ToDataplane_ConfigUpdate struct {
	// ConfigUpdate is sent at start of day or when the config changes.
	ConfigUpdate *ConfigUpdate `protobuf:"bytes,13,opt,name=config_update,json=configUpdate,proto3,oneof"`
}

type ToDataplane_HostMetadataUpdate struct {
	// HostMetadataUpdate is sent when a host IP is added or updated.  I.e. the
	// IP used for BGP peering/IPIP.
	HostMetadataUpdate *HostMetadataUpdate `protobuf:"bytes,14,opt,name=host_metadata_update,json=hostMetadataUpdate,proto3,oneof"`
}

type ToDataplane_HostMetadataRemove struct {
	// HostIPRemove is sent when a host IP is removed.
	HostMetadataRemove *HostMetadataRemove `protobuf:"bytes,18,opt,name=host_metadata_remove,json=hostMetadataRemove,proto3,oneof"`
}

type ToDataplane_HostMetadataV4V6Update struct {
	// HostMetadataV4V6Update is sent when a host is added or updated.
	HostMetadataV4V6Update *HostMetadataV4V6Update `protobuf:"bytes,37,opt,name=host_metadata_v4v6_update,json=hostMetadataV4v6Update,proto3,oneof"`
}

type ToDataplane_HostMetadataV4V6Remove struct {
	// HostIPRemove is sent when a host is removed.
	HostMetadataV4V6Remove *HostMetadataV4V6Remove `protobuf:"bytes,38,opt,name=host_metadata_v4v6_remove,json=hostMetadataV4v6Remove,proto3,oneof"`
}

type ToDataplane_IpamPoolUpdate struct {
	// IPAMPoolUpdate is sent when an IPAM pool is added/updated.
	IpamPoolUpdate *IPAMPoolUpdate `protobuf:"bytes,16,opt,name=ipam_pool_update,json=ipamPoolUpdate,proto3,oneof"`
}

type ToDataplane_IpamPoolRemove struct {
	// IPAMPoolRemove is sent when an IPAM pool is removed.
	IpamPoolRemove *IPAMPoolRemove `protobuf:"bytes,17,opt,name=ipam_pool_remove,json=ipamPoolRemove,proto3,oneof"`
}

type ToDataplane_ServiceAccountUpdate struct {
	// ServiceAccountUpdate is sent when a ServiceAccount is added/updated.
	ServiceAccountUpdate *ServiceAccountUpdate `protobuf:"bytes,19,opt,name=service_account_update,json=serviceAccountUpdate,proto3,oneof"`
}

type ToDataplane_ServiceAccountRemove struct {
	// ServiceAccountRemove is sent when a ServiceAccount is removed.
	ServiceAccountRemove *ServiceAccountRemove `protobuf:"bytes,20,opt,name=service_account_remove,json=serviceAccountRemove,proto3,oneof"`
}

type ToDataplane_NamespaceUpdate struct {
	// NamespaceUpdate is sent when a Namespace is added/updated.
	NamespaceUpdate *NamespaceUpdate `protobuf:"bytes,21,opt,name=namespace_update,json=namespaceUpdate,proto3,oneof"`
}

type ToDataplane_NamespaceRemove struct {
	// NamespaceRemove is sent when a Namespace is removed.
	NamespaceRemove *NamespaceRemove `protobuf:"bytes,22,opt,name=namespace_remove,json=namespaceRemove,proto3,oneof"`
}

type ToDataplane_RouteUpdate struct {
	// RouteUpdate is send when a route is added/updated.
	RouteUpdate *RouteUpdate `protobuf:"bytes,23,opt,name=route_update,json=routeUpdate,proto3,oneof"`
}

type ToDataplane_RouteRemove struct {
	// RouteRemove is send when a route is deleted.
	RouteRemove *RouteRemove `protobuf:"bytes,24,opt,name=route_remove,json=routeRemove,proto3,oneof"`
}

type ToDataplane_VtepUpdate struct {
	// VXLANTunnelEndpointUpdate is send when a vtep is added/updated.
	VtepUpdate *VXLANTunnelEndpointUpdate `protobuf:"bytes,25,opt,name=vtep_update,json=vtepUpdate,proto3,oneof"`
}

type ToDataplane_VtepRemove struct {
	// VXLANTunnelEndpointRemove is send when a route is deleted.
	VtepRemove *VXLANTunnelEndpointRemove `protobuf:"bytes,26,opt,name=vtep_remove,json=vtepRemove,proto3,oneof"`
}

type ToDataplane_WireguardEndpointUpdate struct {
	// WireguardEndpointUpdate is sent to setup IPv4 wireguard on the host.
	WireguardEndpointUpdate *WireguardEndpointUpdate `protobuf:"bytes,27,opt,name=wireguard_endpoint_update,json=wireguardEndpointUpdate,proto3,oneof"`
}

type ToDataplane_WireguardEndpointRemove struct {
	// WireguardEndpointRemove is sent to undo IPv4 wireguard on the host.
	WireguardEndpointRemove *WireguardEndpointRemove `protobuf:"bytes,28,opt,name=wireguard_endpoint_remove,json=wireguardEndpointRemove,proto3,oneof"`
}

type ToDataplane_GlobalBgpConfigUpdate struct {
	// GlobalBGPConfigUpdate is sent when global BGPConfiguration changes.
	GlobalBgpConfigUpdate *GlobalBGPConfigUpdate `protobuf:"bytes,29,opt,name=global_bgp_config_update,json=globalBgpConfigUpdate,proto3,oneof"`
}

type ToDataplane_Encapsulation struct {
	Encapsulation *Encapsulation `protobuf:"bytes,30,opt,name=encapsulation,proto3,oneof"`
}

type ToDataplane_ServiceUpdate struct {
	ServiceUpdate *ServiceUpdate `protobuf:"bytes,31,opt,name=service_update,json=serviceUpdate,proto3,oneof"`
}

type ToDataplane_ServiceRemove struct {
	ServiceRemove *ServiceRemove `protobuf:"bytes,32,opt,name=service_remove,json=serviceRemove,proto3,oneof"`
}

type ToDataplane_WireguardEndpointV6Update struct {
	// WireguardEndpointV6Update is sent to setup IPv6 wireguard on the host.
	WireguardEndpointV6Update *WireguardEndpointV6Update `protobuf:"bytes,33,opt,name=wireguard_endpoint_v6_update,json=wireguardEndpointV6Update,proto3,oneof"`
}

type ToDataplane_WireguardEndpointV6Remove struct {
	// WireguardEndpointV6Remove is sent to undo IPv6 wireguard on the host.
	WireguardEndpointV6Remove *WireguardEndpointV6Remove `protobuf:"bytes,34,opt,name=wireguard_endpoint_v6_remove,json=wireguardEndpointV6Remove,proto3,oneof"`
}

type ToDataplane_HostMetadataV6Update struct {
	// HostMetadataV6Update is sent when a host IPv6 address is added or updated.
	HostMetadataV6Update *HostMetadataV6Update `protobuf:"bytes,35,opt,name=host_metadata_v6_update,json=hostMetadataV6Update,proto3,oneof"`
}

type ToDataplane_HostMetadataV6Remove struct {
	// HostMetadataV6Remove is sent when a host IPv6 address is removed.
	HostMetadataV6Remove *HostMetadataV6Remove `protobuf:"bytes,36,opt,name=host_metadata_v6_remove,json=hostMetadataV6Remove,proto3,oneof"`
}

func (*ToDataplane_InSync) isToDataplane_Payload() {}

func (*ToDataplane_IpsetUpdate) isToDataplane_Payload() {}

func (*ToDataplane_IpsetDeltaUpdate) isToDataplane_Payload() {}

func (*ToDataplane_IpsetRemove) isToDataplane_Payload() {}

func (*ToDataplane_ActiveProfileUpdate) isToDataplane_Payload() {}

func (*ToDataplane_ActiveProfileRemove) isToDataplane_Payload() {}

func (*ToDataplane_ActivePolicyUpdate) isToDataplane_Payload() {}

func (*ToDataplane_ActivePolicyRemove) isToDataplane_Payload() {}

func (*ToDataplane_HostEndpointUpdate) isToDataplane_Payload() {}

func (*ToDataplane_HostEndpointRemove) isToDataplane_Payload() {}

func (*ToDataplane_WorkloadEndpointUpdate) isToDataplane_Payload() {}

func (*ToDataplane_WorkloadEndpointRemove) isToDataplane_Payload() {}

func (*ToDataplane_ConfigUpdate) isToDataplane_Payload() {}

func (*ToDataplane_HostMetadataUpdate) isToDataplane_Payload() {}

func (*ToDataplane_HostMetadataRemove) isToDataplane_Payload() {}

func (*ToDataplane_HostMetadataV4V6Update) isToDataplane_Payload() {}

func (*ToDataplane_HostMetadataV4V6Remove) isToDataplane_Payload() {}

func (*ToDataplane_IpamPoolUpdate) isToDataplane_Payload() {}

func (*ToDataplane_IpamPoolRemove) isToDataplane_Payload() {}

func (*ToDataplane_ServiceAccountUpdate) isToDataplane_Payload() {}

func (*ToDataplane_ServiceAccountRemove) isToDataplane_Payload() {}

func (*ToDataplane_NamespaceUpdate) isToDataplane_Payload() {}

func (*ToDataplane_NamespaceRemove) isToDataplane_Payload() {}

func (*ToDataplane_RouteUpdate) isToDataplane_Payload() {}

func (*ToDataplane_RouteRemove) isToDataplane_Payload() {}

func (*ToDataplane_VtepUpdate) isToDataplane_Payload() {}

func (*ToDataplane_VtepRemove) isToDataplane_Payload() {}

func (*ToDataplane_WireguardEndpointUpdate) isToDataplane_Payload() {}

func (*ToDataplane_WireguardEndpointRemove) isToDataplane_Payload() {}

func (*ToDataplane_GlobalBgpConfigUpdate) isToDataplane_Payload() {}

func (*ToDataplane_Encapsulation) isToDataplane_Payload() {}

func (*ToDataplane_ServiceUpdate) isToDataplane_Payload() {}

func (*ToDataplane_ServiceRemove) isToDataplane_Payload() {}

func (*ToDataplane_WireguardEndpointV6Update) isToDataplane_Payload() {}

func (*ToDataplane_WireguardEndpointV6Remove) isToDataplane_Payload() {}

func (*ToDataplane_HostMetadataV6Update) isToDataplane_Payload() {}

func (*ToDataplane_HostMetadataV6Remove) isToDataplane_Payload() {}

type FromDataplane struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SequenceNumber uint64 `protobuf:"varint,8,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"`
	// Types that are assignable to Payload:
	//
	//	*FromDataplane_ProcessStatusUpdate
	//	*FromDataplane_HostEndpointStatusUpdate
	//	*FromDataplane_HostEndpointStatusRemove
	//	*FromDataplane_WorkloadEndpointStatusUpdate
	//	*FromDataplane_WorkloadEndpointStatusRemove
	//	*FromDataplane_WireguardStatusUpdate
	//	*FromDataplane_DataplaneInSync
	Payload isFromDataplane_Payload `protobuf_oneof:"payload"`
}

func (x *FromDataplane) Reset() {
	*x = FromDataplane{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FromDataplane) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FromDataplane) ProtoMessage() {}

func (x *FromDataplane) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FromDataplane.ProtoReflect.Descriptor instead.
func (*FromDataplane) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{2}
}

func (x *FromDataplane) GetSequenceNumber() uint64 {
	if x != nil {
		return x.SequenceNumber
	}
	return 0
}

func (m *FromDataplane) GetPayload() isFromDataplane_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *FromDataplane) GetProcessStatusUpdate() *ProcessStatusUpdate {
	if x, ok := x.GetPayload().(*FromDataplane_ProcessStatusUpdate); ok {
		return x.ProcessStatusUpdate
	}
	return nil
}

func (x *FromDataplane) GetHostEndpointStatusUpdate() *HostEndpointStatusUpdate {
	if x, ok := x.GetPayload().(*FromDataplane_HostEndpointStatusUpdate); ok {
		return x.HostEndpointStatusUpdate
	}
	return nil
}

func (x *FromDataplane) GetHostEndpointStatusRemove() *HostEndpointStatusRemove {
	if x, ok := x.GetPayload().(*FromDataplane_HostEndpointStatusRemove); ok {
		return x.HostEndpointStatusRemove
	}
	return nil
}

func (x *FromDataplane) GetWorkloadEndpointStatusUpdate() *WorkloadEndpointStatusUpdate {
	if x, ok := x.GetPayload().(*FromDataplane_WorkloadEndpointStatusUpdate); ok {
		return x.WorkloadEndpointStatusUpdate
	}
	return nil
}

func (x *FromDataplane) GetWorkloadEndpointStatusRemove() *WorkloadEndpointStatusRemove {
	if x, ok := x.GetPayload().(*FromDataplane_WorkloadEndpointStatusRemove); ok {
		return x.WorkloadEndpointStatusRemove
	}
	return nil
}

func (x *FromDataplane) GetWireguardStatusUpdate() *WireguardStatusUpdate {
	if x, ok := x.GetPayload().(*FromDataplane_WireguardStatusUpdate); ok {
		return x.WireguardStatusUpdate
	}
	return nil
}

func (x *FromDataplane) GetDataplaneInSync() *DataplaneInSync {
	if x, ok := x.GetPayload().(*FromDataplane_DataplaneInSync); ok {
		return x.DataplaneInSync
	}
	return nil
}

type isFromDataplane_Payload interface {
	isFromDataplane_Payload()
}

type FromDataplane_ProcessStatusUpdate struct {
	// ProcessStatusUpdate is sent as a periodic heartbeat.
	ProcessStatusUpdate *ProcessStatusUpdate `protobuf:"bytes,3,opt,name=process_status_update,json=processStatusUpdate,proto3,oneof"`
}

type FromDataplane_HostEndpointStatusUpdate struct {
	// HostEndpointStatusUpdate is sent when the oper status of an endpoint
	// changes.
	HostEndpointStatusUpdate *HostEndpointStatusUpdate `protobuf:"bytes,4,opt,name=host_endpoint_status_update,json=hostEndpointStatusUpdate,proto3,oneof"`
}

type FromDataplane_HostEndpointStatusRemove struct {
	// HostEndpointStatusRemove is sent when an endpoint is removed to clean
	// up its oper status entry.
	HostEndpointStatusRemove *HostEndpointStatusRemove `protobuf:"bytes,5,opt,name=host_endpoint_status_remove,json=hostEndpointStatusRemove,proto3,oneof"`
}

type FromDataplane_WorkloadEndpointStatusUpdate struct {
	// WorkloadEndpointStatusUpdate is sent when the oper status of an endpoint
	// changes.
	WorkloadEndpointStatusUpdate *WorkloadEndpointStatusUpdate `protobuf:"bytes,6,opt,name=workload_endpoint_status_update,json=workloadEndpointStatusUpdate,proto3,oneof"`
}

type FromDataplane_WorkloadEndpointStatusRemove struct {
	// WorkloadEndpointStatusRemove is sent when an endpoint is removed to
	// clean up its oper status entry.
	WorkloadEndpointStatusRemove *WorkloadEndpointStatusRemove `protobuf:"bytes,7,opt,name=workload_endpoint_status_remove,json=workloadEndpointStatusRemove,proto3,oneof"`
}

type FromDataplane_WireguardStatusUpdate struct {
	// WireguardStatusUpdate is sent when the wireguard is available with the
	// crypto primitives set up.
	WireguardStatusUpdate *WireguardStatusUpdate `protobuf:"bytes,9,opt,name=wireguard_status_update,json=wireguardStatusUpdate,proto3,oneof"`
}

type FromDataplane_DataplaneInSync struct {
	DataplaneInSync *DataplaneInSync `protobuf:"bytes,10,opt,name=dataplane_in_sync,json=dataplaneInSync,proto3,oneof"`
}

func (*FromDataplane_ProcessStatusUpdate) isFromDataplane_Payload() {}

func (*FromDataplane_HostEndpointStatusUpdate) isFromDataplane_Payload() {}

func (*FromDataplane_HostEndpointStatusRemove) isFromDataplane_Payload() {}

func (*FromDataplane_WorkloadEndpointStatusUpdate) isFromDataplane_Payload() {}

func (*FromDataplane_WorkloadEndpointStatusRemove) isFromDataplane_Payload() {}

func (*FromDataplane_WireguardStatusUpdate) isFromDataplane_Payload() {}

func (*FromDataplane_DataplaneInSync) isFromDataplane_Payload() {}

type ConfigUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message           string                `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
	Config            map[string]string     `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	SourceToRawConfig map[uint32]*RawConfig `protobuf:"bytes,2,rep,name=source_to_raw_config,json=sourceToRawConfig,proto3" json:"source_to_raw_config,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ConfigUpdate) Reset() {
	*x = ConfigUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConfigUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConfigUpdate) ProtoMessage() {}

func (x *ConfigUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead.
func (*ConfigUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{3}
}

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

func (x *ConfigUpdate) GetConfig() map[string]string {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *ConfigUpdate) GetSourceToRawConfig() map[uint32]*RawConfig {
	if x != nil {
		return x.SourceToRawConfig
	}
	return nil
}

type RawConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Source string            `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
	Config map[string]string `protobuf:"bytes,2,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *RawConfig) Reset() {
	*x = RawConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RawConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RawConfig) ProtoMessage() {}

func (x *RawConfig) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RawConfig.ProtoReflect.Descriptor instead.
func (*RawConfig) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{4}
}

func (x *RawConfig) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *RawConfig) GetConfig() map[string]string {
	if x != nil {
		return x.Config
	}
	return nil
}

type InSync struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *InSync) Reset() {
	*x = InSync{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InSync) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InSync) ProtoMessage() {}

func (x *InSync) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InSync.ProtoReflect.Descriptor instead.
func (*InSync) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{5}
}

type IPSetUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      string                `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Members []string              `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
	Type    IPSetUpdate_IPSetType `protobuf:"varint,3,opt,name=type,proto3,enum=felix.IPSetUpdate_IPSetType" json:"type,omitempty"`
}

func (x *IPSetUpdate) Reset() {
	*x = IPSetUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPSetUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPSetUpdate) ProtoMessage() {}

func (x *IPSetUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPSetUpdate.ProtoReflect.Descriptor instead.
func (*IPSetUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{6}
}

func (x *IPSetUpdate) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *IPSetUpdate) GetMembers() []string {
	if x != nil {
		return x.Members
	}
	return nil
}

func (x *IPSetUpdate) GetType() IPSetUpdate_IPSetType {
	if x != nil {
		return x.Type
	}
	return IPSetUpdate_IP
}

type IPSetDeltaUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id             string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	AddedMembers   []string `protobuf:"bytes,2,rep,name=added_members,json=addedMembers,proto3" json:"added_members,omitempty"`
	RemovedMembers []string `protobuf:"bytes,3,rep,name=removed_members,json=removedMembers,proto3" json:"removed_members,omitempty"`
}

func (x *IPSetDeltaUpdate) Reset() {
	*x = IPSetDeltaUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPSetDeltaUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPSetDeltaUpdate) ProtoMessage() {}

func (x *IPSetDeltaUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPSetDeltaUpdate.ProtoReflect.Descriptor instead.
func (*IPSetDeltaUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{7}
}

func (x *IPSetDeltaUpdate) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *IPSetDeltaUpdate) GetAddedMembers() []string {
	if x != nil {
		return x.AddedMembers
	}
	return nil
}

func (x *IPSetDeltaUpdate) GetRemovedMembers() []string {
	if x != nil {
		return x.RemovedMembers
	}
	return nil
}

type IPSetRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *IPSetRemove) Reset() {
	*x = IPSetRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPSetRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPSetRemove) ProtoMessage() {}

func (x *IPSetRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPSetRemove.ProtoReflect.Descriptor instead.
func (*IPSetRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{8}
}

func (x *IPSetRemove) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ActiveProfileUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      *ProfileID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Profile *Profile   `protobuf:"bytes,2,opt,name=profile,proto3" json:"profile,omitempty"`
}

func (x *ActiveProfileUpdate) Reset() {
	*x = ActiveProfileUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActiveProfileUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActiveProfileUpdate) ProtoMessage() {}

func (x *ActiveProfileUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ActiveProfileUpdate.ProtoReflect.Descriptor instead.
func (*ActiveProfileUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{9}
}

func (x *ActiveProfileUpdate) GetId() *ProfileID {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *ActiveProfileUpdate) GetProfile() *Profile {
	if x != nil {
		return x.Profile
	}
	return nil
}

type ActiveProfileRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *ProfileID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *ActiveProfileRemove) Reset() {
	*x = ActiveProfileRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActiveProfileRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActiveProfileRemove) ProtoMessage() {}

func (x *ActiveProfileRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ActiveProfileRemove.ProtoReflect.Descriptor instead.
func (*ActiveProfileRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{10}
}

func (x *ActiveProfileRemove) GetId() *ProfileID {
	if x != nil {
		return x.Id
	}
	return nil
}

type ProfileID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *ProfileID) Reset() {
	*x = ProfileID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProfileID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProfileID) ProtoMessage() {}

func (x *ProfileID) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProfileID.ProtoReflect.Descriptor instead.
func (*ProfileID) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{11}
}

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

type Profile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InboundRules  []*Rule `protobuf:"bytes,1,rep,name=inbound_rules,json=inboundRules,proto3" json:"inbound_rules,omitempty"`
	OutboundRules []*Rule `protobuf:"bytes,2,rep,name=outbound_rules,json=outboundRules,proto3" json:"outbound_rules,omitempty"`
}

func (x *Profile) Reset() {
	*x = Profile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Profile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Profile) ProtoMessage() {}

func (x *Profile) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Profile.ProtoReflect.Descriptor instead.
func (*Profile) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{12}
}

func (x *Profile) GetInboundRules() []*Rule {
	if x != nil {
		return x.InboundRules
	}
	return nil
}

func (x *Profile) GetOutboundRules() []*Rule {
	if x != nil {
		return x.OutboundRules
	}
	return nil
}

type ActivePolicyUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     *PolicyID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Policy *Policy   `protobuf:"bytes,2,opt,name=policy,proto3" json:"policy,omitempty"`
}

func (x *ActivePolicyUpdate) Reset() {
	*x = ActivePolicyUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActivePolicyUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivePolicyUpdate) ProtoMessage() {}

func (x *ActivePolicyUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ActivePolicyUpdate.ProtoReflect.Descriptor instead.
func (*ActivePolicyUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{13}
}

func (x *ActivePolicyUpdate) GetId() *PolicyID {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *ActivePolicyUpdate) GetPolicy() *Policy {
	if x != nil {
		return x.Policy
	}
	return nil
}

type ActivePolicyRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *PolicyID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *ActivePolicyRemove) Reset() {
	*x = ActivePolicyRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActivePolicyRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivePolicyRemove) ProtoMessage() {}

func (x *ActivePolicyRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ActivePolicyRemove.ProtoReflect.Descriptor instead.
func (*ActivePolicyRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{14}
}

func (x *ActivePolicyRemove) GetId() *PolicyID {
	if x != nil {
		return x.Id
	}
	return nil
}

type PolicyID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tier string `protobuf:"bytes,1,opt,name=tier,proto3" json:"tier,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *PolicyID) Reset() {
	*x = PolicyID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PolicyID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PolicyID) ProtoMessage() {}

func (x *PolicyID) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PolicyID.ProtoReflect.Descriptor instead.
func (*PolicyID) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{15}
}

func (x *PolicyID) GetTier() string {
	if x != nil {
		return x.Tier
	}
	return ""
}

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

type Policy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// If the Policy represents a NetworkPolicy, this contains the namespace that the policy came
	// from.  Otherwise, empty.
	Namespace        string  `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"`
	InboundRules     []*Rule `protobuf:"bytes,1,rep,name=inbound_rules,json=inboundRules,proto3" json:"inbound_rules,omitempty"`
	OutboundRules    []*Rule `protobuf:"bytes,2,rep,name=outbound_rules,json=outboundRules,proto3" json:"outbound_rules,omitempty"`
	Untracked        bool    `protobuf:"varint,3,opt,name=untracked,proto3" json:"untracked,omitempty"`
	PreDnat          bool    `protobuf:"varint,4,opt,name=pre_dnat,json=preDnat,proto3" json:"pre_dnat,omitempty"`
	OriginalSelector string  `protobuf:"bytes,6,opt,name=original_selector,json=originalSelector,proto3" json:"original_selector,omitempty"`
}

func (x *Policy) Reset() {
	*x = Policy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Policy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Policy) ProtoMessage() {}

func (x *Policy) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Policy.ProtoReflect.Descriptor instead.
func (*Policy) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{16}
}

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

func (x *Policy) GetInboundRules() []*Rule {
	if x != nil {
		return x.InboundRules
	}
	return nil
}

func (x *Policy) GetOutboundRules() []*Rule {
	if x != nil {
		return x.OutboundRules
	}
	return nil
}

func (x *Policy) GetUntracked() bool {
	if x != nil {
		return x.Untracked
	}
	return false
}

func (x *Policy) GetPreDnat() bool {
	if x != nil {
		return x.PreDnat
	}
	return false
}

func (x *Policy) GetOriginalSelector() string {
	if x != nil {
		return x.OriginalSelector
	}
	return ""
}

type Rule struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action    string    `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
	IpVersion IPVersion `protobuf:"varint,2,opt,name=ip_version,json=ipVersion,proto3,enum=felix.IPVersion" json:"ip_version,omitempty"`
	Protocol  *Protocol `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"`
	SrcNet    []string  `protobuf:"bytes,4,rep,name=src_net,json=srcNet,proto3" json:"src_net,omitempty"`
	// The list of ports is split into numeric and named ports, where named ports are represented
	// by (IP, port) IP sets.  A packet matches this rule if it matches any numeric port range *or*
	// any listed named port IP set.
	SrcPorts             []*PortRange `protobuf:"bytes,5,rep,name=src_ports,json=srcPorts,proto3" json:"src_ports,omitempty"`
	SrcNamedPortIpSetIds []string     `protobuf:"bytes,12,rep,name=src_named_port_ip_set_ids,json=srcNamedPortIpSetIds,proto3" json:"src_named_port_ip_set_ids,omitempty"`
	DstNet               []string     `protobuf:"bytes,6,rep,name=dst_net,json=dstNet,proto3" json:"dst_net,omitempty"`
	DstPorts             []*PortRange `protobuf:"bytes,7,rep,name=dst_ports,json=dstPorts,proto3" json:"dst_ports,omitempty"`
	DstNamedPortIpSetIds []string     `protobuf:"bytes,13,rep,name=dst_named_port_ip_set_ids,json=dstNamedPortIpSetIds,proto3" json:"dst_named_port_ip_set_ids,omitempty"`
	// Types that are assignable to Icmp:
	//
	//	*Rule_IcmpType
	//	*Rule_IcmpTypeCode
	Icmp        isRule_Icmp `protobuf_oneof:"icmp"`
	SrcIpSetIds []string    `protobuf:"bytes,10,rep,name=src_ip_set_ids,json=srcIpSetIds,proto3" json:"src_ip_set_ids,omitempty"`
	DstIpSetIds []string    `protobuf:"bytes,11,rep,name=dst_ip_set_ids,json=dstIpSetIds,proto3" json:"dst_ip_set_ids,omitempty"`
	// IP sets on which we should match both IP and port.
	DstIpPortSetIds []string     `protobuf:"bytes,15,rep,name=dst_ip_port_set_ids,json=dstIpPortSetIds,proto3" json:"dst_ip_port_set_ids,omitempty"`
	NotProtocol     *Protocol    `protobuf:"bytes,102,opt,name=not_protocol,json=notProtocol,proto3" json:"not_protocol,omitempty"`
	NotSrcNet       []string     `protobuf:"bytes,103,rep,name=not_src_net,json=notSrcNet,proto3" json:"not_src_net,omitempty"`
	NotSrcPorts     []*PortRange `protobuf:"bytes,104,rep,name=not_src_ports,json=notSrcPorts,proto3" json:"not_src_ports,omitempty"`
	NotDstNet       []string     `protobuf:"bytes,105,rep,name=not_dst_net,json=notDstNet,proto3" json:"not_dst_net,omitempty"`
	NotDstPorts     []*PortRange `protobuf:"bytes,106,rep,name=not_dst_ports,json=notDstPorts,proto3" json:"not_dst_ports,omitempty"`
	// Types that are assignable to NotIcmp:
	//
	//	*Rule_NotIcmpType
	//	*Rule_NotIcmpTypeCode
	NotIcmp                 isRule_NotIcmp `protobuf_oneof:"not_icmp"`
	NotSrcIpSetIds          []string       `protobuf:"bytes,109,rep,name=not_src_ip_set_ids,json=notSrcIpSetIds,proto3" json:"not_src_ip_set_ids,omitempty"`
	NotDstIpSetIds          []string       `protobuf:"bytes,110,rep,name=not_dst_ip_set_ids,json=notDstIpSetIds,proto3" json:"not_dst_ip_set_ids,omitempty"`
	NotSrcNamedPortIpSetIds []string       `protobuf:"bytes,112,rep,name=not_src_named_port_ip_set_ids,json=notSrcNamedPortIpSetIds,proto3" json:"not_src_named_port_ip_set_ids,omitempty"`
	NotDstNamedPortIpSetIds []string       `protobuf:"bytes,113,rep,name=not_dst_named_port_ip_set_ids,json=notDstNamedPortIpSetIds,proto3" json:"not_dst_named_port_ip_set_ids,omitempty"`
	// These fields pass through the original selectors from the v3 datamodel unmodified as required
	// for the policy sync API.
	OriginalSrcSelector          string `protobuf:"bytes,114,opt,name=original_src_selector,json=originalSrcSelector,proto3" json:"original_src_selector,omitempty"`
	OriginalDstSelector          string `protobuf:"bytes,115,opt,name=original_dst_selector,json=originalDstSelector,proto3" json:"original_dst_selector,omitempty"`
	OriginalSrcNamespaceSelector string `protobuf:"bytes,116,opt,name=original_src_namespace_selector,json=originalSrcNamespaceSelector,proto3" json:"original_src_namespace_selector,omitempty"`
	OriginalDstNamespaceSelector string `protobuf:"bytes,117,opt,name=original_dst_namespace_selector,json=originalDstNamespaceSelector,proto3" json:"original_dst_namespace_selector,omitempty"`
	OriginalNotSrcSelector       string `protobuf:"bytes,118,opt,name=original_not_src_selector,json=originalNotSrcSelector,proto3" json:"original_not_src_selector,omitempty"`
	OriginalNotDstSelector       string `protobuf:"bytes,119,opt,name=original_not_dst_selector,json=originalNotDstSelector,proto3" json:"original_not_dst_selector,omitempty"`
	// Original source service match criteria.
	OriginalSrcService          string `protobuf:"bytes,132,opt,name=original_src_service,json=originalSrcService,proto3" json:"original_src_service,omitempty"`
	OriginalSrcServiceNamespace string `protobuf:"bytes,133,opt,name=original_src_service_namespace,json=originalSrcServiceNamespace,proto3" json:"original_src_service_namespace,omitempty"`
	// Original destination service match criteria.
	OriginalDstService          string `protobuf:"bytes,130,opt,name=original_dst_service,json=originalDstService,proto3" json:"original_dst_service,omitempty"`
	OriginalDstServiceNamespace string `protobuf:"bytes,131,opt,name=original_dst_service_namespace,json=originalDstServiceNamespace,proto3" json:"original_dst_service_namespace,omitempty"`
	// Pass through of the v3 datamodel service account match criteria.
	SrcServiceAccountMatch *ServiceAccountMatch `protobuf:"bytes,120,opt,name=src_service_account_match,json=srcServiceAccountMatch,proto3" json:"src_service_account_match,omitempty"`
	DstServiceAccountMatch *ServiceAccountMatch `protobuf:"bytes,121,opt,name=dst_service_account_match,json=dstServiceAccountMatch,proto3" json:"dst_service_account_match,omitempty"`
	// Pass through of the v3 datamodel HTTP match criteria.
	HttpMatch *HTTPMatch    `protobuf:"bytes,122,opt,name=http_match,json=httpMatch,proto3" json:"http_match,omitempty"`
	Metadata  *RuleMetadata `protobuf:"bytes,123,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// An opaque ID/hash for the rule.
	RuleId string `protobuf:"bytes,201,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"`
}

func (x *Rule) Reset() {
	*x = Rule{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Rule) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Rule) ProtoMessage() {}

func (x *Rule) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Rule.ProtoReflect.Descriptor instead.
func (*Rule) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{17}
}

func (x *Rule) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *Rule) GetIpVersion() IPVersion {
	if x != nil {
		return x.IpVersion
	}
	return IPVersion_ANY
}

func (x *Rule) GetProtocol() *Protocol {
	if x != nil {
		return x.Protocol
	}
	return nil
}

func (x *Rule) GetSrcNet() []string {
	if x != nil {
		return x.SrcNet
	}
	return nil
}

func (x *Rule) GetSrcPorts() []*PortRange {
	if x != nil {
		return x.SrcPorts
	}
	return nil
}

func (x *Rule) GetSrcNamedPortIpSetIds() []string {
	if x != nil {
		return x.SrcNamedPortIpSetIds
	}
	return nil
}

func (x *Rule) GetDstNet() []string {
	if x != nil {
		return x.DstNet
	}
	return nil
}

func (x *Rule) GetDstPorts() []*PortRange {
	if x != nil {
		return x.DstPorts
	}
	return nil
}

func (x *Rule) GetDstNamedPortIpSetIds() []string {
	if x != nil {
		return x.DstNamedPortIpSetIds
	}
	return nil
}

func (m *Rule) GetIcmp() isRule_Icmp {
	if m != nil {
		return m.Icmp
	}
	return nil
}

func (x *Rule) GetIcmpType() int32 {
	if x, ok := x.GetIcmp().(*Rule_IcmpType); ok {
		return x.IcmpType
	}
	return 0
}

func (x *Rule) GetIcmpTypeCode() *IcmpTypeAndCode {
	if x, ok := x.GetIcmp().(*Rule_IcmpTypeCode); ok {
		return x.IcmpTypeCode
	}
	return nil
}

func (x *Rule) GetSrcIpSetIds() []string {
	if x != nil {
		return x.SrcIpSetIds
	}
	return nil
}

func (x *Rule) GetDstIpSetIds() []string {
	if x != nil {
		return x.DstIpSetIds
	}
	return nil
}

func (x *Rule) GetDstIpPortSetIds() []string {
	if x != nil {
		return x.DstIpPortSetIds
	}
	return nil
}

func (x *Rule) GetNotProtocol() *Protocol {
	if x != nil {
		return x.NotProtocol
	}
	return nil
}

func (x *Rule) GetNotSrcNet() []string {
	if x != nil {
		return x.NotSrcNet
	}
	return nil
}

func (x *Rule) GetNotSrcPorts() []*PortRange {
	if x != nil {
		return x.NotSrcPorts
	}
	return nil
}

func (x *Rule) GetNotDstNet() []string {
	if x != nil {
		return x.NotDstNet
	}
	return nil
}

func (x *Rule) GetNotDstPorts() []*PortRange {
	if x != nil {
		return x.NotDstPorts
	}
	return nil
}

func (m *Rule) GetNotIcmp() isRule_NotIcmp {
	if m != nil {
		return m.NotIcmp
	}
	return nil
}

func (x *Rule) GetNotIcmpType() int32 {
	if x, ok := x.GetNotIcmp().(*Rule_NotIcmpType); ok {
		return x.NotIcmpType
	}
	return 0
}

func (x *Rule) GetNotIcmpTypeCode() *IcmpTypeAndCode {
	if x, ok := x.GetNotIcmp().(*Rule_NotIcmpTypeCode); ok {
		return x.NotIcmpTypeCode
	}
	return nil
}

func (x *Rule) GetNotSrcIpSetIds() []string {
	if x != nil {
		return x.NotSrcIpSetIds
	}
	return nil
}

func (x *Rule) GetNotDstIpSetIds() []string {
	if x != nil {
		return x.NotDstIpSetIds
	}
	return nil
}

func (x *Rule) GetNotSrcNamedPortIpSetIds() []string {
	if x != nil {
		return x.NotSrcNamedPortIpSetIds
	}
	return nil
}

func (x *Rule) GetNotDstNamedPortIpSetIds() []string {
	if x != nil {
		return x.NotDstNamedPortIpSetIds
	}
	return nil
}

func (x *Rule) GetOriginalSrcSelector() string {
	if x != nil {
		return x.OriginalSrcSelector
	}
	return ""
}

func (x *Rule) GetOriginalDstSelector() string {
	if x != nil {
		return x.OriginalDstSelector
	}
	return ""
}

func (x *Rule) GetOriginalSrcNamespaceSelector() string {
	if x != nil {
		return x.OriginalSrcNamespaceSelector
	}
	return ""
}

func (x *Rule) GetOriginalDstNamespaceSelector() string {
	if x != nil {
		return x.OriginalDstNamespaceSelector
	}
	return ""
}

func (x *Rule) GetOriginalNotSrcSelector() string {
	if x != nil {
		return x.OriginalNotSrcSelector
	}
	return ""
}

func (x *Rule) GetOriginalNotDstSelector() string {
	if x != nil {
		return x.OriginalNotDstSelector
	}
	return ""
}

func (x *Rule) GetOriginalSrcService() string {
	if x != nil {
		return x.OriginalSrcService
	}
	return ""
}

func (x *Rule) GetOriginalSrcServiceNamespace() string {
	if x != nil {
		return x.OriginalSrcServiceNamespace
	}
	return ""
}

func (x *Rule) GetOriginalDstService() string {
	if x != nil {
		return x.OriginalDstService
	}
	return ""
}

func (x *Rule) GetOriginalDstServiceNamespace() string {
	if x != nil {
		return x.OriginalDstServiceNamespace
	}
	return ""
}

func (x *Rule) GetSrcServiceAccountMatch() *ServiceAccountMatch {
	if x != nil {
		return x.SrcServiceAccountMatch
	}
	return nil
}

func (x *Rule) GetDstServiceAccountMatch() *ServiceAccountMatch {
	if x != nil {
		return x.DstServiceAccountMatch
	}
	return nil
}

func (x *Rule) GetHttpMatch() *HTTPMatch {
	if x != nil {
		return x.HttpMatch
	}
	return nil
}

func (x *Rule) GetMetadata() *RuleMetadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Rule) GetRuleId() string {
	if x != nil {
		return x.RuleId
	}
	return ""
}

type isRule_Icmp interface {
	isRule_Icmp()
}

type Rule_IcmpType struct {
	// Distinguish between a match on type only and type+code.  We can't use
	// the fact that fields ar optional because Go can't distinguish 0 from
	// "not-present".
	IcmpType int32 `protobuf:"varint,8,opt,name=icmp_type,json=icmpType,proto3,oneof"`
}

type Rule_IcmpTypeCode struct {
	IcmpTypeCode *IcmpTypeAndCode `protobuf:"bytes,9,opt,name=icmp_type_code,json=icmpTypeCode,proto3,oneof"`
}

func (*Rule_IcmpType) isRule_Icmp() {}

func (*Rule_IcmpTypeCode) isRule_Icmp() {}

type isRule_NotIcmp interface {
	isRule_NotIcmp()
}

type Rule_NotIcmpType struct {
	NotIcmpType int32 `protobuf:"varint,107,opt,name=not_icmp_type,json=notIcmpType,proto3,oneof"`
}

type Rule_NotIcmpTypeCode struct {
	NotIcmpTypeCode *IcmpTypeAndCode `protobuf:"bytes,108,opt,name=not_icmp_type_code,json=notIcmpTypeCode,proto3,oneof"`
}

func (*Rule_NotIcmpType) isRule_NotIcmp() {}

func (*Rule_NotIcmpTypeCode) isRule_NotIcmp() {}

type ServiceAccountMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Selector string   `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
	Names    []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"`
}

func (x *ServiceAccountMatch) Reset() {
	*x = ServiceAccountMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceAccountMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceAccountMatch) ProtoMessage() {}

func (x *ServiceAccountMatch) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServiceAccountMatch.ProtoReflect.Descriptor instead.
func (*ServiceAccountMatch) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{18}
}

func (x *ServiceAccountMatch) GetSelector() string {
	if x != nil {
		return x.Selector
	}
	return ""
}

func (x *ServiceAccountMatch) GetNames() []string {
	if x != nil {
		return x.Names
	}
	return nil
}

type HTTPMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Methods []string               `protobuf:"bytes,1,rep,name=methods,proto3" json:"methods,omitempty"`
	Paths   []*HTTPMatch_PathMatch `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
}

func (x *HTTPMatch) Reset() {
	*x = HTTPMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HTTPMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPMatch) ProtoMessage() {}

func (x *HTTPMatch) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPMatch.ProtoReflect.Descriptor instead.
func (*HTTPMatch) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{19}
}

func (x *HTTPMatch) GetMethods() []string {
	if x != nil {
		return x.Methods
	}
	return nil
}

func (x *HTTPMatch) GetPaths() []*HTTPMatch_PathMatch {
	if x != nil {
		return x.Paths
	}
	return nil
}

type RuleMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Annotations map[string]string `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *RuleMetadata) Reset() {
	*x = RuleMetadata{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RuleMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RuleMetadata) ProtoMessage() {}

func (x *RuleMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RuleMetadata.ProtoReflect.Descriptor instead.
func (*RuleMetadata) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{20}
}

func (x *RuleMetadata) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

type IcmpTypeAndCode struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
}

func (x *IcmpTypeAndCode) Reset() {
	*x = IcmpTypeAndCode{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IcmpTypeAndCode) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IcmpTypeAndCode) ProtoMessage() {}

func (x *IcmpTypeAndCode) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IcmpTypeAndCode.ProtoReflect.Descriptor instead.
func (*IcmpTypeAndCode) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{21}
}

func (x *IcmpTypeAndCode) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *IcmpTypeAndCode) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

type Protocol struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to NumberOrName:
	//
	//	*Protocol_Number
	//	*Protocol_Name
	NumberOrName isProtocol_NumberOrName `protobuf_oneof:"number_or_name"`
}

func (x *Protocol) Reset() {
	*x = Protocol{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Protocol) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Protocol) ProtoMessage() {}

func (x *Protocol) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Protocol.ProtoReflect.Descriptor instead.
func (*Protocol) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{22}
}

func (m *Protocol) GetNumberOrName() isProtocol_NumberOrName {
	if m != nil {
		return m.NumberOrName
	}
	return nil
}

func (x *Protocol) GetNumber() int32 {
	if x, ok := x.GetNumberOrName().(*Protocol_Number); ok {
		return x.Number
	}
	return 0
}

func (x *Protocol) GetName() string {
	if x, ok := x.GetNumberOrName().(*Protocol_Name); ok {
		return x.Name
	}
	return ""
}

type isProtocol_NumberOrName interface {
	isProtocol_NumberOrName()
}

type Protocol_Number struct {
	Number int32 `protobuf:"varint,1,opt,name=number,proto3,oneof"`
}

type Protocol_Name struct {
	Name string `protobuf:"bytes,2,opt,name=name,proto3,oneof"`
}

func (*Protocol_Number) isProtocol_NumberOrName() {}

func (*Protocol_Name) isProtocol_NumberOrName() {}

// Individual ports are sent with first == last.
type PortRange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	First int32 `protobuf:"varint,1,opt,name=first,proto3" json:"first,omitempty"`
	Last  int32 `protobuf:"varint,2,opt,name=last,proto3" json:"last,omitempty"`
}

func (x *PortRange) Reset() {
	*x = PortRange{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PortRange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PortRange) ProtoMessage() {}

func (x *PortRange) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PortRange.ProtoReflect.Descriptor instead.
func (*PortRange) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{23}
}

func (x *PortRange) GetFirst() int32 {
	if x != nil {
		return x.First
	}
	return 0
}

func (x *PortRange) GetLast() int32 {
	if x != nil {
		return x.Last
	}
	return 0
}

type WorkloadEndpointID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrchestratorId string `protobuf:"bytes,2,opt,name=orchestrator_id,json=orchestratorId,proto3" json:"orchestrator_id,omitempty"`
	WorkloadId     string `protobuf:"bytes,3,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"`
	EndpointId     string `protobuf:"bytes,4,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"`
}

func (x *WorkloadEndpointID) Reset() {
	*x = WorkloadEndpointID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WorkloadEndpointID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WorkloadEndpointID) ProtoMessage() {}

func (x *WorkloadEndpointID) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WorkloadEndpointID.ProtoReflect.Descriptor instead.
func (*WorkloadEndpointID) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{24}
}

func (x *WorkloadEndpointID) GetOrchestratorId() string {
	if x != nil {
		return x.OrchestratorId
	}
	return ""
}

func (x *WorkloadEndpointID) GetWorkloadId() string {
	if x != nil {
		return x.WorkloadId
	}
	return ""
}

func (x *WorkloadEndpointID) GetEndpointId() string {
	if x != nil {
		return x.EndpointId
	}
	return ""
}

type WorkloadEndpointUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id       *WorkloadEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Endpoint *WorkloadEndpoint   `protobuf:"bytes,5,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
}

func (x *WorkloadEndpointUpdate) Reset() {
	*x = WorkloadEndpointUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WorkloadEndpointUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WorkloadEndpointUpdate) ProtoMessage() {}

func (x *WorkloadEndpointUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WorkloadEndpointUpdate.ProtoReflect.Descriptor instead.
func (*WorkloadEndpointUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{25}
}

func (x *WorkloadEndpointUpdate) GetId() *WorkloadEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *WorkloadEndpointUpdate) GetEndpoint() *WorkloadEndpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

type WorkloadEndpoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	State                      string            `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
	Name                       string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Mac                        string            `protobuf:"bytes,3,opt,name=mac,proto3" json:"mac,omitempty"`
	ProfileIds                 []string          `protobuf:"bytes,4,rep,name=profile_ids,json=profileIds,proto3" json:"profile_ids,omitempty"`
	Ipv4Nets                   []string          `protobuf:"bytes,5,rep,name=ipv4_nets,json=ipv4Nets,proto3" json:"ipv4_nets,omitempty"`
	Ipv6Nets                   []string          `protobuf:"bytes,6,rep,name=ipv6_nets,json=ipv6Nets,proto3" json:"ipv6_nets,omitempty"`
	Tiers                      []*TierInfo       `protobuf:"bytes,7,rep,name=tiers,proto3" json:"tiers,omitempty"`
	Ipv4Nat                    []*NatInfo        `protobuf:"bytes,8,rep,name=ipv4_nat,json=ipv4Nat,proto3" json:"ipv4_nat,omitempty"`
	Ipv6Nat                    []*NatInfo        `protobuf:"bytes,9,rep,name=ipv6_nat,json=ipv6Nat,proto3" json:"ipv6_nat,omitempty"`
	AllowSpoofedSourcePrefixes []string          `protobuf:"bytes,10,rep,name=allow_spoofed_source_prefixes,json=allowSpoofedSourcePrefixes,proto3" json:"allow_spoofed_source_prefixes,omitempty"`
	Annotations                map[string]string `protobuf:"bytes,11,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *WorkloadEndpoint) Reset() {
	*x = WorkloadEndpoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WorkloadEndpoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WorkloadEndpoint) ProtoMessage() {}

func (x *WorkloadEndpoint) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WorkloadEndpoint.ProtoReflect.Descriptor instead.
func (*WorkloadEndpoint) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{26}
}

func (x *WorkloadEndpoint) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

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

func (x *WorkloadEndpoint) GetMac() string {
	if x != nil {
		return x.Mac
	}
	return ""
}

func (x *WorkloadEndpoint) GetProfileIds() []string {
	if x != nil {
		return x.ProfileIds
	}
	return nil
}

func (x *WorkloadEndpoint) GetIpv4Nets() []string {
	if x != nil {
		return x.Ipv4Nets
	}
	return nil
}

func (x *WorkloadEndpoint) GetIpv6Nets() []string {
	if x != nil {
		return x.Ipv6Nets
	}
	return nil
}

func (x *WorkloadEndpoint) GetTiers() []*TierInfo {
	if x != nil {
		return x.Tiers
	}
	return nil
}

func (x *WorkloadEndpoint) GetIpv4Nat() []*NatInfo {
	if x != nil {
		return x.Ipv4Nat
	}
	return nil
}

func (x *WorkloadEndpoint) GetIpv6Nat() []*NatInfo {
	if x != nil {
		return x.Ipv6Nat
	}
	return nil
}

func (x *WorkloadEndpoint) GetAllowSpoofedSourcePrefixes() []string {
	if x != nil {
		return x.AllowSpoofedSourcePrefixes
	}
	return nil
}

func (x *WorkloadEndpoint) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

type WorkloadEndpointRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *WorkloadEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *WorkloadEndpointRemove) Reset() {
	*x = WorkloadEndpointRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WorkloadEndpointRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WorkloadEndpointRemove) ProtoMessage() {}

func (x *WorkloadEndpointRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WorkloadEndpointRemove.ProtoReflect.Descriptor instead.
func (*WorkloadEndpointRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{27}
}

func (x *WorkloadEndpointRemove) GetId() *WorkloadEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

type HostEndpointID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EndpointId string `protobuf:"bytes,2,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"`
}

func (x *HostEndpointID) Reset() {
	*x = HostEndpointID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostEndpointID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostEndpointID) ProtoMessage() {}

func (x *HostEndpointID) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostEndpointID.ProtoReflect.Descriptor instead.
func (*HostEndpointID) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{28}
}

func (x *HostEndpointID) GetEndpointId() string {
	if x != nil {
		return x.EndpointId
	}
	return ""
}

type HostEndpointUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id       *HostEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Endpoint *HostEndpoint   `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
}

func (x *HostEndpointUpdate) Reset() {
	*x = HostEndpointUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostEndpointUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostEndpointUpdate) ProtoMessage() {}

func (x *HostEndpointUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostEndpointUpdate.ProtoReflect.Descriptor instead.
func (*HostEndpointUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{29}
}

func (x *HostEndpointUpdate) GetId() *HostEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *HostEndpointUpdate) GetEndpoint() *HostEndpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

type HostEndpoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name              string      `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ProfileIds        []string    `protobuf:"bytes,2,rep,name=profile_ids,json=profileIds,proto3" json:"profile_ids,omitempty"`
	Tiers             []*TierInfo `protobuf:"bytes,3,rep,name=tiers,proto3" json:"tiers,omitempty"`
	UntrackedTiers    []*TierInfo `protobuf:"bytes,6,rep,name=untracked_tiers,json=untrackedTiers,proto3" json:"untracked_tiers,omitempty"`
	PreDnatTiers      []*TierInfo `protobuf:"bytes,7,rep,name=pre_dnat_tiers,json=preDnatTiers,proto3" json:"pre_dnat_tiers,omitempty"`
	ForwardTiers      []*TierInfo `protobuf:"bytes,8,rep,name=forward_tiers,json=forwardTiers,proto3" json:"forward_tiers,omitempty"`
	ExpectedIpv4Addrs []string    `protobuf:"bytes,4,rep,name=expected_ipv4_addrs,json=expectedIpv4Addrs,proto3" json:"expected_ipv4_addrs,omitempty"`
	ExpectedIpv6Addrs []string    `protobuf:"bytes,5,rep,name=expected_ipv6_addrs,json=expectedIpv6Addrs,proto3" json:"expected_ipv6_addrs,omitempty"`
}

func (x *HostEndpoint) Reset() {
	*x = HostEndpoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostEndpoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostEndpoint) ProtoMessage() {}

func (x *HostEndpoint) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[30]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostEndpoint.ProtoReflect.Descriptor instead.
func (*HostEndpoint) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{30}
}

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

func (x *HostEndpoint) GetProfileIds() []string {
	if x != nil {
		return x.ProfileIds
	}
	return nil
}

func (x *HostEndpoint) GetTiers() []*TierInfo {
	if x != nil {
		return x.Tiers
	}
	return nil
}

func (x *HostEndpoint) GetUntrackedTiers() []*TierInfo {
	if x != nil {
		return x.UntrackedTiers
	}
	return nil
}

func (x *HostEndpoint) GetPreDnatTiers() []*TierInfo {
	if x != nil {
		return x.PreDnatTiers
	}
	return nil
}

func (x *HostEndpoint) GetForwardTiers() []*TierInfo {
	if x != nil {
		return x.ForwardTiers
	}
	return nil
}

func (x *HostEndpoint) GetExpectedIpv4Addrs() []string {
	if x != nil {
		return x.ExpectedIpv4Addrs
	}
	return nil
}

func (x *HostEndpoint) GetExpectedIpv6Addrs() []string {
	if x != nil {
		return x.ExpectedIpv6Addrs
	}
	return nil
}

type HostEndpointRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *HostEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *HostEndpointRemove) Reset() {
	*x = HostEndpointRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostEndpointRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostEndpointRemove) ProtoMessage() {}

func (x *HostEndpointRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[31]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostEndpointRemove.ProtoReflect.Descriptor instead.
func (*HostEndpointRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{31}
}

func (x *HostEndpointRemove) GetId() *HostEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

type TierInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name            string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	IngressPolicies []string `protobuf:"bytes,2,rep,name=ingress_policies,json=ingressPolicies,proto3" json:"ingress_policies,omitempty"`
	EgressPolicies  []string `protobuf:"bytes,3,rep,name=egress_policies,json=egressPolicies,proto3" json:"egress_policies,omitempty"`
	DefaultAction   string   `protobuf:"bytes,4,opt,name=default_action,json=defaultAction,proto3" json:"default_action,omitempty"`
}

func (x *TierInfo) Reset() {
	*x = TierInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TierInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TierInfo) ProtoMessage() {}

func (x *TierInfo) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[32]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TierInfo.ProtoReflect.Descriptor instead.
func (*TierInfo) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{32}
}

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

func (x *TierInfo) GetIngressPolicies() []string {
	if x != nil {
		return x.IngressPolicies
	}
	return nil
}

func (x *TierInfo) GetEgressPolicies() []string {
	if x != nil {
		return x.EgressPolicies
	}
	return nil
}

func (x *TierInfo) GetDefaultAction() string {
	if x != nil {
		return x.DefaultAction
	}
	return ""
}

type NatInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ExtIp string `protobuf:"bytes,1,opt,name=ext_ip,json=extIp,proto3" json:"ext_ip,omitempty"`
	IntIp string `protobuf:"bytes,2,opt,name=int_ip,json=intIp,proto3" json:"int_ip,omitempty"`
}

func (x *NatInfo) Reset() {
	*x = NatInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NatInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NatInfo) ProtoMessage() {}

func (x *NatInfo) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[33]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NatInfo.ProtoReflect.Descriptor instead.
func (*NatInfo) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{33}
}

func (x *NatInfo) GetExtIp() string {
	if x != nil {
		return x.ExtIp
	}
	return ""
}

func (x *NatInfo) GetIntIp() string {
	if x != nil {
		return x.IntIp
	}
	return ""
}

type ProcessStatusUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IsoTimestamp string  `protobuf:"bytes,1,opt,name=iso_timestamp,json=isoTimestamp,proto3" json:"iso_timestamp,omitempty"`
	Uptime       float64 `protobuf:"fixed64,2,opt,name=uptime,proto3" json:"uptime,omitempty"`
}

func (x *ProcessStatusUpdate) Reset() {
	*x = ProcessStatusUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProcessStatusUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProcessStatusUpdate) ProtoMessage() {}

func (x *ProcessStatusUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[34]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProcessStatusUpdate.ProtoReflect.Descriptor instead.
func (*ProcessStatusUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{34}
}

func (x *ProcessStatusUpdate) GetIsoTimestamp() string {
	if x != nil {
		return x.IsoTimestamp
	}
	return ""
}

func (x *ProcessStatusUpdate) GetUptime() float64 {
	if x != nil {
		return x.Uptime
	}
	return 0
}

type HostEndpointStatusUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     *HostEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Status *EndpointStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *HostEndpointStatusUpdate) Reset() {
	*x = HostEndpointStatusUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostEndpointStatusUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostEndpointStatusUpdate) ProtoMessage() {}

func (x *HostEndpointStatusUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostEndpointStatusUpdate.ProtoReflect.Descriptor instead.
func (*HostEndpointStatusUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{35}
}

func (x *HostEndpointStatusUpdate) GetId() *HostEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *HostEndpointStatusUpdate) GetStatus() *EndpointStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

type EndpointStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *EndpointStatus) Reset() {
	*x = EndpointStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EndpointStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EndpointStatus) ProtoMessage() {}

func (x *EndpointStatus) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EndpointStatus.ProtoReflect.Descriptor instead.
func (*EndpointStatus) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{36}
}

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

type HostEndpointStatusRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *HostEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *HostEndpointStatusRemove) Reset() {
	*x = HostEndpointStatusRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostEndpointStatusRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostEndpointStatusRemove) ProtoMessage() {}

func (x *HostEndpointStatusRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[37]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostEndpointStatusRemove.ProtoReflect.Descriptor instead.
func (*HostEndpointStatusRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{37}
}

func (x *HostEndpointStatusRemove) GetId() *HostEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

type WorkloadEndpointStatusUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     *WorkloadEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Status *EndpointStatus     `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *WorkloadEndpointStatusUpdate) Reset() {
	*x = WorkloadEndpointStatusUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WorkloadEndpointStatusUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WorkloadEndpointStatusUpdate) ProtoMessage() {}

func (x *WorkloadEndpointStatusUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[38]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WorkloadEndpointStatusUpdate.ProtoReflect.Descriptor instead.
func (*WorkloadEndpointStatusUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{38}
}

func (x *WorkloadEndpointStatusUpdate) GetId() *WorkloadEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *WorkloadEndpointStatusUpdate) GetStatus() *EndpointStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

type WorkloadEndpointStatusRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *WorkloadEndpointID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *WorkloadEndpointStatusRemove) Reset() {
	*x = WorkloadEndpointStatusRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WorkloadEndpointStatusRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WorkloadEndpointStatusRemove) ProtoMessage() {}

func (x *WorkloadEndpointStatusRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[39]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WorkloadEndpointStatusRemove.ProtoReflect.Descriptor instead.
func (*WorkloadEndpointStatusRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{39}
}

func (x *WorkloadEndpointStatusRemove) GetId() *WorkloadEndpointID {
	if x != nil {
		return x.Id
	}
	return nil
}

type WireguardStatusUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Wireguard public-key set on the interface.
	PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	// The IP version of this update
	IpVersion IPVersion `protobuf:"varint,2,opt,name=ip_version,json=ipVersion,proto3,enum=felix.IPVersion" json:"ip_version,omitempty"`
}

func (x *WireguardStatusUpdate) Reset() {
	*x = WireguardStatusUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WireguardStatusUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WireguardStatusUpdate) ProtoMessage() {}

func (x *WireguardStatusUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[40]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WireguardStatusUpdate.ProtoReflect.Descriptor instead.
func (*WireguardStatusUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{40}
}

func (x *WireguardStatusUpdate) GetPublicKey() string {
	if x != nil {
		return x.PublicKey
	}
	return ""
}

func (x *WireguardStatusUpdate) GetIpVersion() IPVersion {
	if x != nil {
		return x.IpVersion
	}
	return IPVersion_ANY
}

type DataplaneInSync struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DataplaneInSync) Reset() {
	*x = DataplaneInSync{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DataplaneInSync) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataplaneInSync) ProtoMessage() {}

func (x *DataplaneInSync) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[41]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataplaneInSync.ProtoReflect.Descriptor instead.
func (*DataplaneInSync) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{41}
}

type HostMetadataV4V6Update struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hostname string            `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ipv4Addr string            `protobuf:"bytes,2,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"`
	Ipv6Addr string            `protobuf:"bytes,3,opt,name=ipv6_addr,json=ipv6Addr,proto3" json:"ipv6_addr,omitempty"`
	Asnumber string            `protobuf:"bytes,4,opt,name=asnumber,proto3" json:"asnumber,omitempty"`
	Labels   map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *HostMetadataV4V6Update) Reset() {
	*x = HostMetadataV4V6Update{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostMetadataV4V6Update) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostMetadataV4V6Update) ProtoMessage() {}

func (x *HostMetadataV4V6Update) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[42]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostMetadataV4V6Update.ProtoReflect.Descriptor instead.
func (*HostMetadataV4V6Update) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{42}
}

func (x *HostMetadataV4V6Update) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *HostMetadataV4V6Update) GetIpv4Addr() string {
	if x != nil {
		return x.Ipv4Addr
	}
	return ""
}

func (x *HostMetadataV4V6Update) GetIpv6Addr() string {
	if x != nil {
		return x.Ipv6Addr
	}
	return ""
}

func (x *HostMetadataV4V6Update) GetAsnumber() string {
	if x != nil {
		return x.Asnumber
	}
	return ""
}

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

type HostMetadataV4V6Remove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ipv4Addr string `protobuf:"bytes,2,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"`
}

func (x *HostMetadataV4V6Remove) Reset() {
	*x = HostMetadataV4V6Remove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostMetadataV4V6Remove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostMetadataV4V6Remove) ProtoMessage() {}

func (x *HostMetadataV4V6Remove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[43]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostMetadataV4V6Remove.ProtoReflect.Descriptor instead.
func (*HostMetadataV4V6Remove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{43}
}

func (x *HostMetadataV4V6Remove) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *HostMetadataV4V6Remove) GetIpv4Addr() string {
	if x != nil {
		return x.Ipv4Addr
	}
	return ""
}

type HostMetadataUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ipv4Addr string `protobuf:"bytes,2,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"`
}

func (x *HostMetadataUpdate) Reset() {
	*x = HostMetadataUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostMetadataUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostMetadataUpdate) ProtoMessage() {}

func (x *HostMetadataUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[44]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostMetadataUpdate.ProtoReflect.Descriptor instead.
func (*HostMetadataUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{44}
}

func (x *HostMetadataUpdate) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *HostMetadataUpdate) GetIpv4Addr() string {
	if x != nil {
		return x.Ipv4Addr
	}
	return ""
}

type HostMetadataRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ipv4Addr string `protobuf:"bytes,2,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"`
}

func (x *HostMetadataRemove) Reset() {
	*x = HostMetadataRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostMetadataRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostMetadataRemove) ProtoMessage() {}

func (x *HostMetadataRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[45]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostMetadataRemove.ProtoReflect.Descriptor instead.
func (*HostMetadataRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{45}
}

func (x *HostMetadataRemove) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *HostMetadataRemove) GetIpv4Addr() string {
	if x != nil {
		return x.Ipv4Addr
	}
	return ""
}

type HostMetadataV6Update struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ipv6Addr string `protobuf:"bytes,2,opt,name=ipv6_addr,json=ipv6Addr,proto3" json:"ipv6_addr,omitempty"`
}

func (x *HostMetadataV6Update) Reset() {
	*x = HostMetadataV6Update{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostMetadataV6Update) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostMetadataV6Update) ProtoMessage() {}

func (x *HostMetadataV6Update) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[46]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostMetadataV6Update.ProtoReflect.Descriptor instead.
func (*HostMetadataV6Update) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{46}
}

func (x *HostMetadataV6Update) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *HostMetadataV6Update) GetIpv6Addr() string {
	if x != nil {
		return x.Ipv6Addr
	}
	return ""
}

type HostMetadataV6Remove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ipv6Addr string `protobuf:"bytes,2,opt,name=ipv6_addr,json=ipv6Addr,proto3" json:"ipv6_addr,omitempty"`
}

func (x *HostMetadataV6Remove) Reset() {
	*x = HostMetadataV6Remove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HostMetadataV6Remove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HostMetadataV6Remove) ProtoMessage() {}

func (x *HostMetadataV6Remove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[47]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HostMetadataV6Remove.ProtoReflect.Descriptor instead.
func (*HostMetadataV6Remove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{47}
}

func (x *HostMetadataV6Remove) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *HostMetadataV6Remove) GetIpv6Addr() string {
	if x != nil {
		return x.Ipv6Addr
	}
	return ""
}

type IPAMPoolUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Pool *IPAMPool `protobuf:"bytes,2,opt,name=pool,proto3" json:"pool,omitempty"`
}

func (x *IPAMPoolUpdate) Reset() {
	*x = IPAMPoolUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPAMPoolUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPAMPoolUpdate) ProtoMessage() {}

func (x *IPAMPoolUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[48]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPAMPoolUpdate.ProtoReflect.Descriptor instead.
func (*IPAMPoolUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{48}
}

func (x *IPAMPoolUpdate) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *IPAMPoolUpdate) GetPool() *IPAMPool {
	if x != nil {
		return x.Pool
	}
	return nil
}

type IPAMPoolRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *IPAMPoolRemove) Reset() {
	*x = IPAMPoolRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPAMPoolRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPAMPoolRemove) ProtoMessage() {}

func (x *IPAMPoolRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[49]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPAMPoolRemove.ProtoReflect.Descriptor instead.
func (*IPAMPoolRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{49}
}

func (x *IPAMPoolRemove) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type IPAMPool struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cidr       string `protobuf:"bytes,1,opt,name=cidr,proto3" json:"cidr,omitempty"`
	Masquerade bool   `protobuf:"varint,2,opt,name=masquerade,proto3" json:"masquerade,omitempty"`
	IpipMode   string `protobuf:"bytes,3,opt,name=ipip_mode,json=ipipMode,proto3" json:"ipip_mode,omitempty"`
	VxlanMode  string `protobuf:"bytes,4,opt,name=vxlan_mode,json=vxlanMode,proto3" json:"vxlan_mode,omitempty"`
}

func (x *IPAMPool) Reset() {
	*x = IPAMPool{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IPAMPool) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IPAMPool) ProtoMessage() {}

func (x *IPAMPool) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[50]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPAMPool.ProtoReflect.Descriptor instead.
func (*IPAMPool) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{50}
}

func (x *IPAMPool) GetCidr() string {
	if x != nil {
		return x.Cidr
	}
	return ""
}

func (x *IPAMPool) GetMasquerade() bool {
	if x != nil {
		return x.Masquerade
	}
	return false
}

func (x *IPAMPool) GetIpipMode() string {
	if x != nil {
		return x.IpipMode
	}
	return ""
}

func (x *IPAMPool) GetVxlanMode() string {
	if x != nil {
		return x.VxlanMode
	}
	return ""
}

type Encapsulation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IpipEnabled    bool `protobuf:"varint,1,opt,name=ipip_enabled,json=ipipEnabled,proto3" json:"ipip_enabled,omitempty"`
	VxlanEnabled   bool `protobuf:"varint,2,opt,name=vxlan_enabled,json=vxlanEnabled,proto3" json:"vxlan_enabled,omitempty"`
	VxlanEnabledV6 bool `protobuf:"varint,3,opt,name=vxlan_enabled_v6,json=vxlanEnabledV6,proto3" json:"vxlan_enabled_v6,omitempty"`
}

func (x *Encapsulation) Reset() {
	*x = Encapsulation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Encapsulation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Encapsulation) ProtoMessage() {}

func (x *Encapsulation) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[51]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Encapsulation.ProtoReflect.Descriptor instead.
func (*Encapsulation) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{51}
}

func (x *Encapsulation) GetIpipEnabled() bool {
	if x != nil {
		return x.IpipEnabled
	}
	return false
}

func (x *Encapsulation) GetVxlanEnabled() bool {
	if x != nil {
		return x.VxlanEnabled
	}
	return false
}

func (x *Encapsulation) GetVxlanEnabledV6() bool {
	if x != nil {
		return x.VxlanEnabledV6
	}
	return false
}

type ServiceAccountUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     *ServiceAccountID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ServiceAccountUpdate) Reset() {
	*x = ServiceAccountUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceAccountUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceAccountUpdate) ProtoMessage() {}

func (x *ServiceAccountUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[52]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServiceAccountUpdate.ProtoReflect.Descriptor instead.
func (*ServiceAccountUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{52}
}

func (x *ServiceAccountUpdate) GetId() *ServiceAccountID {
	if x != nil {
		return x.Id
	}
	return nil
}

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

type ServiceAccountRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *ServiceAccountID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *ServiceAccountRemove) Reset() {
	*x = ServiceAccountRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceAccountRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceAccountRemove) ProtoMessage() {}

func (x *ServiceAccountRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[53]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServiceAccountRemove.ProtoReflect.Descriptor instead.
func (*ServiceAccountRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{53}
}

func (x *ServiceAccountRemove) GetId() *ServiceAccountID {
	if x != nil {
		return x.Id
	}
	return nil
}

type ServiceAccountID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *ServiceAccountID) Reset() {
	*x = ServiceAccountID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceAccountID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceAccountID) ProtoMessage() {}

func (x *ServiceAccountID) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[54]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServiceAccountID.ProtoReflect.Descriptor instead.
func (*ServiceAccountID) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{54}
}

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

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

type NamespaceUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     *NamespaceID      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *NamespaceUpdate) Reset() {
	*x = NamespaceUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NamespaceUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NamespaceUpdate) ProtoMessage() {}

func (x *NamespaceUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[55]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NamespaceUpdate.ProtoReflect.Descriptor instead.
func (*NamespaceUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{55}
}

func (x *NamespaceUpdate) GetId() *NamespaceID {
	if x != nil {
		return x.Id
	}
	return nil
}

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

type NamespaceRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id *NamespaceID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *NamespaceRemove) Reset() {
	*x = NamespaceRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NamespaceRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NamespaceRemove) ProtoMessage() {}

func (x *NamespaceRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[56]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NamespaceRemove.ProtoReflect.Descriptor instead.
func (*NamespaceRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{56}
}

func (x *NamespaceRemove) GetId() *NamespaceID {
	if x != nil {
		return x.Id
	}
	return nil
}

type NamespaceID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *NamespaceID) Reset() {
	*x = NamespaceID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NamespaceID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NamespaceID) ProtoMessage() {}

func (x *NamespaceID) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[57]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NamespaceID.ProtoReflect.Descriptor instead.
func (*NamespaceID) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{57}
}

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

type TunnelType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ipip      bool `protobuf:"varint,1,opt,name=ipip,proto3" json:"ipip,omitempty"`
	Vxlan     bool `protobuf:"varint,2,opt,name=vxlan,proto3" json:"vxlan,omitempty"`
	Wireguard bool `protobuf:"varint,3,opt,name=wireguard,proto3" json:"wireguard,omitempty"`
}

func (x *TunnelType) Reset() {
	*x = TunnelType{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TunnelType) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TunnelType) ProtoMessage() {}

func (x *TunnelType) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[58]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TunnelType.ProtoReflect.Descriptor instead.
func (*TunnelType) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{58}
}

func (x *TunnelType) GetIpip() bool {
	if x != nil {
		return x.Ipip
	}
	return false
}

func (x *TunnelType) GetVxlan() bool {
	if x != nil {
		return x.Vxlan
	}
	return false
}

func (x *TunnelType) GetWireguard() bool {
	if x != nil {
		return x.Wireguard
	}
	return false
}

type RouteUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type       RouteType  `protobuf:"varint,1,opt,name=type,proto3,enum=felix.RouteType" json:"type,omitempty"`
	IpPoolType IPPoolType `protobuf:"varint,2,opt,name=ip_pool_type,json=ipPoolType,proto3,enum=felix.IPPoolType" json:"ip_pool_type,omitempty"`
	Dst        string     `protobuf:"bytes,3,opt,name=dst,proto3" json:"dst,omitempty"`
	// The name of the node holding this destination, if this route targets a calico node.
	DstNodeName string `protobuf:"bytes,4,opt,name=dst_node_name,json=dstNodeName,proto3" json:"dst_node_name,omitempty"`
	// IP of the node holding this destination.
	DstNodeIp     string      `protobuf:"bytes,5,opt,name=dst_node_ip,json=dstNodeIp,proto3" json:"dst_node_ip,omitempty"`
	SameSubnet    bool        `protobuf:"varint,7,opt,name=same_subnet,json=sameSubnet,proto3" json:"same_subnet,omitempty"`
	NatOutgoing   bool        `protobuf:"varint,8,opt,name=nat_outgoing,json=natOutgoing,proto3" json:"nat_outgoing,omitempty"`
	LocalWorkload bool        `protobuf:"varint,9,opt,name=local_workload,json=localWorkload,proto3" json:"local_workload,omitempty"`
	TunnelType    *TunnelType `protobuf:"bytes,10,opt,name=tunnel_type,json=tunnelType,proto3" json:"tunnel_type,omitempty"`
	Borrowed      bool        `protobuf:"varint,11,opt,name=borrowed,proto3" json:"borrowed,omitempty"`
}

func (x *RouteUpdate) Reset() {
	*x = RouteUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RouteUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RouteUpdate) ProtoMessage() {}

func (x *RouteUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[59]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RouteUpdate.ProtoReflect.Descriptor instead.
func (*RouteUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{59}
}

func (x *RouteUpdate) GetType() RouteType {
	if x != nil {
		return x.Type
	}
	return RouteType_CIDR_INFO
}

func (x *RouteUpdate) GetIpPoolType() IPPoolType {
	if x != nil {
		return x.IpPoolType
	}
	return IPPoolType_NONE
}

func (x *RouteUpdate) GetDst() string {
	if x != nil {
		return x.Dst
	}
	return ""
}

func (x *RouteUpdate) GetDstNodeName() string {
	if x != nil {
		return x.DstNodeName
	}
	return ""
}

func (x *RouteUpdate) GetDstNodeIp() string {
	if x != nil {
		return x.DstNodeIp
	}
	return ""
}

func (x *RouteUpdate) GetSameSubnet() bool {
	if x != nil {
		return x.SameSubnet
	}
	return false
}

func (x *RouteUpdate) GetNatOutgoing() bool {
	if x != nil {
		return x.NatOutgoing
	}
	return false
}

func (x *RouteUpdate) GetLocalWorkload() bool {
	if x != nil {
		return x.LocalWorkload
	}
	return false
}

func (x *RouteUpdate) GetTunnelType() *TunnelType {
	if x != nil {
		return x.TunnelType
	}
	return nil
}

func (x *RouteUpdate) GetBorrowed() bool {
	if x != nil {
		return x.Borrowed
	}
	return false
}

type RouteRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Dst string `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"`
}

func (x *RouteRemove) Reset() {
	*x = RouteRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RouteRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RouteRemove) ProtoMessage() {}

func (x *RouteRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[60]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RouteRemove.ProtoReflect.Descriptor instead.
func (*RouteRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{60}
}

func (x *RouteRemove) GetDst() string {
	if x != nil {
		return x.Dst
	}
	return ""
}

type VXLANTunnelEndpointUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Node             string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	Mac              string `protobuf:"bytes,2,opt,name=mac,proto3" json:"mac,omitempty"`
	Ipv4Addr         string `protobuf:"bytes,3,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"`
	ParentDeviceIp   string `protobuf:"bytes,4,opt,name=parent_device_ip,json=parentDeviceIp,proto3" json:"parent_device_ip,omitempty"`
	MacV6            string `protobuf:"bytes,5,opt,name=mac_v6,json=macV6,proto3" json:"mac_v6,omitempty"`
	Ipv6Addr         string `protobuf:"bytes,6,opt,name=ipv6_addr,json=ipv6Addr,proto3" json:"ipv6_addr,omitempty"`
	ParentDeviceIpv6 string `protobuf:"bytes,7,opt,name=parent_device_ipv6,json=parentDeviceIpv6,proto3" json:"parent_device_ipv6,omitempty"`
}

func (x *VXLANTunnelEndpointUpdate) Reset() {
	*x = VXLANTunnelEndpointUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VXLANTunnelEndpointUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VXLANTunnelEndpointUpdate) ProtoMessage() {}

func (x *VXLANTunnelEndpointUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[61]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VXLANTunnelEndpointUpdate.ProtoReflect.Descriptor instead.
func (*VXLANTunnelEndpointUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{61}
}

func (x *VXLANTunnelEndpointUpdate) GetNode() string {
	if x != nil {
		return x.Node
	}
	return ""
}

func (x *VXLANTunnelEndpointUpdate) GetMac() string {
	if x != nil {
		return x.Mac
	}
	return ""
}

func (x *VXLANTunnelEndpointUpdate) GetIpv4Addr() string {
	if x != nil {
		return x.Ipv4Addr
	}
	return ""
}

func (x *VXLANTunnelEndpointUpdate) GetParentDeviceIp() string {
	if x != nil {
		return x.ParentDeviceIp
	}
	return ""
}

func (x *VXLANTunnelEndpointUpdate) GetMacV6() string {
	if x != nil {
		return x.MacV6
	}
	return ""
}

func (x *VXLANTunnelEndpointUpdate) GetIpv6Addr() string {
	if x != nil {
		return x.Ipv6Addr
	}
	return ""
}

func (x *VXLANTunnelEndpointUpdate) GetParentDeviceIpv6() string {
	if x != nil {
		return x.ParentDeviceIpv6
	}
	return ""
}

type VXLANTunnelEndpointRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Node string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
}

func (x *VXLANTunnelEndpointRemove) Reset() {
	*x = VXLANTunnelEndpointRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VXLANTunnelEndpointRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VXLANTunnelEndpointRemove) ProtoMessage() {}

func (x *VXLANTunnelEndpointRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[62]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VXLANTunnelEndpointRemove.ProtoReflect.Descriptor instead.
func (*VXLANTunnelEndpointRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{62}
}

func (x *VXLANTunnelEndpointRemove) GetNode() string {
	if x != nil {
		return x.Node
	}
	return ""
}

type WireguardEndpointUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the IPv4 wireguard host.
	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	// The public key for IPv4 wireguard on this endpoint.
	PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	// The IP address of the IPv4 wireguard interface.
	InterfaceIpv4Addr string `protobuf:"bytes,3,opt,name=interface_ipv4_addr,json=interfaceIpv4Addr,proto3" json:"interface_ipv4_addr,omitempty"`
}

func (x *WireguardEndpointUpdate) Reset() {
	*x = WireguardEndpointUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WireguardEndpointUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WireguardEndpointUpdate) ProtoMessage() {}

func (x *WireguardEndpointUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[63]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WireguardEndpointUpdate.ProtoReflect.Descriptor instead.
func (*WireguardEndpointUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{63}
}

func (x *WireguardEndpointUpdate) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *WireguardEndpointUpdate) GetPublicKey() string {
	if x != nil {
		return x.PublicKey
	}
	return ""
}

func (x *WireguardEndpointUpdate) GetInterfaceIpv4Addr() string {
	if x != nil {
		return x.InterfaceIpv4Addr
	}
	return ""
}

type WireguardEndpointRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the IPv4 wireguard host.
	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
}

func (x *WireguardEndpointRemove) Reset() {
	*x = WireguardEndpointRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WireguardEndpointRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WireguardEndpointRemove) ProtoMessage() {}

func (x *WireguardEndpointRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[64]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WireguardEndpointRemove.ProtoReflect.Descriptor instead.
func (*WireguardEndpointRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{64}
}

func (x *WireguardEndpointRemove) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

type WireguardEndpointV6Update struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the IPv6 wireguard host.
	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	// The public key for IPv6 wireguard on this endpoint.
	PublicKeyV6 string `protobuf:"bytes,2,opt,name=public_key_v6,json=publicKeyV6,proto3" json:"public_key_v6,omitempty"`
	// The IP address of the IPv6 wireguard interface.
	InterfaceIpv6Addr string `protobuf:"bytes,3,opt,name=interface_ipv6_addr,json=interfaceIpv6Addr,proto3" json:"interface_ipv6_addr,omitempty"`
}

func (x *WireguardEndpointV6Update) Reset() {
	*x = WireguardEndpointV6Update{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WireguardEndpointV6Update) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WireguardEndpointV6Update) ProtoMessage() {}

func (x *WireguardEndpointV6Update) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[65]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WireguardEndpointV6Update.ProtoReflect.Descriptor instead.
func (*WireguardEndpointV6Update) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{65}
}

func (x *WireguardEndpointV6Update) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *WireguardEndpointV6Update) GetPublicKeyV6() string {
	if x != nil {
		return x.PublicKeyV6
	}
	return ""
}

func (x *WireguardEndpointV6Update) GetInterfaceIpv6Addr() string {
	if x != nil {
		return x.InterfaceIpv6Addr
	}
	return ""
}

type WireguardEndpointV6Remove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the IPv6 wireguard host.
	Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
}

func (x *WireguardEndpointV6Remove) Reset() {
	*x = WireguardEndpointV6Remove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WireguardEndpointV6Remove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WireguardEndpointV6Remove) ProtoMessage() {}

func (x *WireguardEndpointV6Remove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[66]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WireguardEndpointV6Remove.ProtoReflect.Descriptor instead.
func (*WireguardEndpointV6Remove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{66}
}

func (x *WireguardEndpointV6Remove) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

type GlobalBGPConfigUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ServiceClusterCidrs      []string `protobuf:"bytes,1,rep,name=service_cluster_cidrs,json=serviceClusterCidrs,proto3" json:"service_cluster_cidrs,omitempty"`
	ServiceExternalCidrs     []string `protobuf:"bytes,2,rep,name=service_external_cidrs,json=serviceExternalCidrs,proto3" json:"service_external_cidrs,omitempty"`
	ServiceLoadbalancerCidrs []string `protobuf:"bytes,3,rep,name=service_loadbalancer_cidrs,json=serviceLoadbalancerCidrs,proto3" json:"service_loadbalancer_cidrs,omitempty"`
}

func (x *GlobalBGPConfigUpdate) Reset() {
	*x = GlobalBGPConfigUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GlobalBGPConfigUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GlobalBGPConfigUpdate) ProtoMessage() {}

func (x *GlobalBGPConfigUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[67]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GlobalBGPConfigUpdate.ProtoReflect.Descriptor instead.
func (*GlobalBGPConfigUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{67}
}

func (x *GlobalBGPConfigUpdate) GetServiceClusterCidrs() []string {
	if x != nil {
		return x.ServiceClusterCidrs
	}
	return nil
}

func (x *GlobalBGPConfigUpdate) GetServiceExternalCidrs() []string {
	if x != nil {
		return x.ServiceExternalCidrs
	}
	return nil
}

func (x *GlobalBGPConfigUpdate) GetServiceLoadbalancerCidrs() []string {
	if x != nil {
		return x.ServiceLoadbalancerCidrs
	}
	return nil
}

type ServicePort struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Protocol string `protobuf:"bytes,1,opt,name=Protocol,proto3" json:"Protocol,omitempty"`
	Port     int32  `protobuf:"varint,2,opt,name=Port,proto3" json:"Port,omitempty"`
	NodePort int32  `protobuf:"varint,3,opt,name=NodePort,proto3" json:"NodePort,omitempty"`
}

func (x *ServicePort) Reset() {
	*x = ServicePort{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServicePort) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServicePort) ProtoMessage() {}

func (x *ServicePort) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[68]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServicePort.ProtoReflect.Descriptor instead.
func (*ServicePort) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{68}
}

func (x *ServicePort) GetProtocol() string {
	if x != nil {
		return x.Protocol
	}
	return ""
}

func (x *ServicePort) GetPort() int32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *ServicePort) GetNodePort() int32 {
	if x != nil {
		return x.NodePort
	}
	return 0
}

type ServiceUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name           string         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Namespace      string         `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Type           string         `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	ClusterIps     []string       `protobuf:"bytes,4,rep,name=cluster_ips,json=clusterIps,proto3" json:"cluster_ips,omitempty"`
	LoadbalancerIp string         `protobuf:"bytes,5,opt,name=loadbalancer_ip,json=loadbalancerIp,proto3" json:"loadbalancer_ip,omitempty"`
	ExternalIps    []string       `protobuf:"bytes,6,rep,name=external_ips,json=externalIps,proto3" json:"external_ips,omitempty"`
	Ports          []*ServicePort `protobuf:"bytes,7,rep,name=ports,proto3" json:"ports,omitempty"`
}

func (x *ServiceUpdate) Reset() {
	*x = ServiceUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceUpdate) ProtoMessage() {}

func (x *ServiceUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[69]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServiceUpdate.ProtoReflect.Descriptor instead.
func (*ServiceUpdate) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{69}
}

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

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

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

func (x *ServiceUpdate) GetClusterIps() []string {
	if x != nil {
		return x.ClusterIps
	}
	return nil
}

func (x *ServiceUpdate) GetLoadbalancerIp() string {
	if x != nil {
		return x.LoadbalancerIp
	}
	return ""
}

func (x *ServiceUpdate) GetExternalIps() []string {
	if x != nil {
		return x.ExternalIps
	}
	return nil
}

func (x *ServiceUpdate) GetPorts() []*ServicePort {
	if x != nil {
		return x.Ports
	}
	return nil
}

type ServiceRemove struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name      string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
}

func (x *ServiceRemove) Reset() {
	*x = ServiceRemove{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceRemove) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceRemove) ProtoMessage() {}

func (x *ServiceRemove) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[70]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ServiceRemove.ProtoReflect.Descriptor instead.
func (*ServiceRemove) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{70}
}

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

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

type HTTPMatch_PathMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to PathMatch:
	//
	//	*HTTPMatch_PathMatch_Exact
	//	*HTTPMatch_PathMatch_Prefix
	PathMatch isHTTPMatch_PathMatch_PathMatch `protobuf_oneof:"path_match"`
}

func (x *HTTPMatch_PathMatch) Reset() {
	*x = HTTPMatch_PathMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_felixbackend_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HTTPMatch_PathMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPMatch_PathMatch) ProtoMessage() {}

func (x *HTTPMatch_PathMatch) ProtoReflect() protoreflect.Message {
	mi := &file_felixbackend_proto_msgTypes[74]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPMatch_PathMatch.ProtoReflect.Descriptor instead.
func (*HTTPMatch_PathMatch) Descriptor() ([]byte, []int) {
	return file_felixbackend_proto_rawDescGZIP(), []int{19, 0}
}

func (m *HTTPMatch_PathMatch) GetPathMatch() isHTTPMatch_PathMatch_PathMatch {
	if m != nil {
		return m.PathMatch
	}
	return nil
}

func (x *HTTPMatch_PathMatch) GetExact() string {
	if x, ok := x.GetPathMatch().(*HTTPMatch_PathMatch_Exact); ok {
		return x.Exact
	}
	return ""
}

func (x *HTTPMatch_PathMatch) GetPrefix() string {
	if x, ok := x.GetPathMatch().(*HTTPMatch_PathMatch_Prefix); ok {
		return x.Prefix
	}
	return ""
}

type isHTTPMatch_PathMatch_PathMatch interface {
	isHTTPMatch_PathMatch_PathMatch()
}

type HTTPMatch_PathMatch_Exact struct {
	Exact string `protobuf:"bytes,1,opt,name=exact,proto3,oneof"`
}

type HTTPMatch_PathMatch_Prefix struct {
	Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3,oneof"`
}

func (*HTTPMatch_PathMatch_Exact) isHTTPMatch_PathMatch_PathMatch() {}

func (*HTTPMatch_PathMatch_Prefix) isHTTPMatch_PathMatch_PathMatch() {}

var File_felixbackend_proto protoreflect.FileDescriptor

var file_felixbackend_proto_rawDesc = []byte{
	0x0a, 0x12, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x22, 0x0d, 0x0a, 0x0b, 0x53,
	0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xcb, 0x16, 0x0a, 0x0b, 0x54,
	0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65,
	0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x6e, 0x53,
	0x79, 0x6e, 0x63, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x37, 0x0a,
	0x0c, 0x69, 0x70, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x53, 0x65,
	0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x73, 0x65, 0x74,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x69, 0x70, 0x73, 0x65, 0x74, 0x5f,
	0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x53, 0x65, 0x74,
	0x44, 0x65, 0x6c, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10, 0x69,
	0x70, 0x73, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
	0x37, 0x0a, 0x0c, 0x69, 0x70, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50,
	0x53, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x73,
	0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x50, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x15, 0x61, 0x63,
	0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x4d, 0x0a, 0x14,
	0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x61,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x72, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x68, 0x6f,
	0x73, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x12, 0x68, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x68, 0x6f, 0x73,
	0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x68, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x59, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b,
	0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x16, 0x77, 0x6f, 0x72,
	0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
	0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x6f,
	0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
	0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x3a,
	0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x68, 0x6f,
	0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x12, 0x68, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x68, 0x6f, 0x73,
	0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x48, 0x00, 0x52, 0x12, 0x68, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x5a, 0x0a, 0x19, 0x68, 0x6f, 0x73, 0x74,
	0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x34, 0x76, 0x36, 0x5f, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x65,
	0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x56, 0x34, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x16, 0x68, 0x6f,
	0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x34, 0x76, 0x36, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x19, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x34, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x34, 0x56, 0x36,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x16, 0x68, 0x6f, 0x73, 0x74, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x34, 0x76, 0x36, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x12, 0x41, 0x0a, 0x10, 0x69, 0x70, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x49, 0x50, 0x41, 0x4d, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, 0x61, 0x6d, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x10, 0x69, 0x70, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6f, 0x6c,
	0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
	0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x41, 0x4d, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, 0x61, 0x6d, 0x50, 0x6f, 0x6f, 0x6c,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x73,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x65,
	0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x12, 0x43, 0x0a, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x16, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x72, 0x6f,
	0x75, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52,
	0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x43, 0x0a, 0x0b,
	0x76, 0x74, 0x65, 0x70, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x54,
	0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x74, 0x65, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x12, 0x43, 0x0a, 0x0b, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x56,
	0x58, 0x4c, 0x41, 0x4e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x74, 0x65, 0x70,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x5c, 0x0a, 0x19, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75,
	0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x17, 0x77, 0x69, 0x72,
	0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x19, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72,
	0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x17, 0x77, 0x69, 0x72, 0x65, 0x67,
	0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x12, 0x57, 0x0a, 0x18, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x62, 0x67, 0x70,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x1d,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x47, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x42, 0x47, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x48, 0x00, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x42, 0x67, 0x70, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x65,
	0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x45, 0x6e, 0x63, 0x61, 0x70,
	0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x61,
	0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0e, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x63, 0x0a, 0x1c, 0x77, 0x69, 0x72, 0x65, 0x67,
	0x75, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x36,
	0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
	0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48,
	0x00, 0x52, 0x19, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1c,
	0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x5f, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x22, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x67,
	0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x36, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x19, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72,
	0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x36, 0x52, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x12, 0x54, 0x0a, 0x17, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x5f, 0x76, 0x36, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x23, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48,
	0x00, 0x52, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56,
	0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x17, 0x68, 0x6f, 0x73, 0x74, 0x5f,
	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x36, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x36, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x09, 0x0a,
	0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd3, 0x05, 0x0a, 0x0d, 0x46, 0x72, 0x6f,
	0x6d, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65,
	0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00,
	0x52, 0x13, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x1b, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x18, 0x68,
	0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x1b, 0x68, 0x6f, 0x73, 0x74, 0x5f,
	0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f,
	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66,
	0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52,
	0x18, 0x68, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x6c, 0x0a, 0x1f, 0x77, 0x6f, 0x72,
	0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c,
	0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x77, 0x6f, 0x72, 0x6b, 0x6c,
	0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x6c, 0x0a, 0x1f, 0x77, 0x6f, 0x72, 0x6b, 0x6c,
	0x6f, 0x61, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
	0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x1c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
	0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x56, 0x0a, 0x17, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61,
	0x72, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57,
	0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x15, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72,
	0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a,
	0x11, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x79,
	0x6e, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x6e, 0x53, 0x79, 0x6e, 0x63,
	0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x6e, 0x53,
	0x79, 0x6e, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd1,
	0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
	0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x12, 0x5b, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x6f, 0x5f,
	0x72, 0x61, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2a, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x52, 0x61,
	0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a,
	0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x56, 0x0a, 0x16, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52, 0x61,
	0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x94, 0x01, 0x0a, 0x09, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x39,
	0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x08, 0x0a, 0x06, 0x49, 0x6e, 0x53,
	0x79, 0x6e, 0x63, 0x22, 0x98, 0x01, 0x0a, 0x0b, 0x49, 0x50, 0x53, 0x65, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x66, 0x65,
	0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x53, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e,
	0x49, 0x50, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22,
	0x2d, 0x0a, 0x09, 0x49, 0x50, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02,
	0x49, 0x50, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50,
	0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x54, 0x10, 0x02, 0x22, 0x70,
	0x0a, 0x10, 0x49, 0x50, 0x53, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x65, 0x64,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
	0x22, 0x1d, 0x0a, 0x0b, 0x49, 0x50, 0x53, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22,
	0x61, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x22, 0x37, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x09, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, 0x0a, 0x07,
	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x0d, 0x69, 0x6e, 0x62, 0x6f, 0x75,
	0x6e, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0c, 0x69, 0x6e, 0x62,
	0x6f, 0x75, 0x6e, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0e, 0x6f, 0x75, 0x74,
	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x0b, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0d,
	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x5c, 0x0a,
	0x12, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x35, 0x0a, 0x12, 0x41,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x52, 0x02,
	0x69, 0x64, 0x22, 0x32, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69,
	0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,
	0x30, 0x0a, 0x0d, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52,
	0x75, 0x6c, 0x65, 0x52, 0x0c, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x75, 0x6c, 0x65,
	0x73, 0x12, 0x32, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x75,
	0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
	0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b,
	0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63,
	0x6b, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x5f, 0x64, 0x6e, 0x61, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x44, 0x6e, 0x61, 0x74, 0x12, 0x2b,
	0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xaa, 0x10, 0x0a, 0x04,
	0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x0a,
	0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x52, 0x09, 0x69, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a,
	0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72,
	0x63, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x72, 0x63,
	0x4e, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50,
	0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72,
	0x74, 0x73, 0x12, 0x37, 0x0a, 0x19, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f,
	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18,
	0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50,
	0x6f, 0x72, 0x74, 0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64,
	0x73, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x73,
	0x74, 0x4e, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74,
	0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x64, 0x73, 0x74, 0x50, 0x6f,
	0x72, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x19, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64,
	0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73,
	0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x64, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64,
	0x50, 0x6f, 0x72, 0x74, 0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x09,
	0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48,
	0x00, 0x52, 0x08, 0x69, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x69,
	0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x63, 0x6d, 0x70,
	0x54, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69,
	0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0e, 0x73,
	0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73,
	0x12, 0x23, 0x0a, 0x0e, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69,
	0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x73, 0x74, 0x49, 0x70, 0x53,
	0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x13, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f,
	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x0f, 0x64, 0x73, 0x74, 0x49, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74,
	0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x50,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x5f, 0x73,
	0x72, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x67, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f,
	0x74, 0x53, 0x72, 0x63, 0x4e, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x5f, 0x73,
	0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x68, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65,
	0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1e, 0x0a,
	0x0b, 0x6e, 0x6f, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x69, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x44, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x12, 0x34, 0x0a,
	0x0d, 0x6e, 0x6f, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x6a,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x50, 0x6f, 0x72,
	0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x44, 0x73, 0x74, 0x50, 0x6f,
	0x72, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x6f,
	0x74, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x12, 0x6e, 0x6f, 0x74,
	0x5f, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
	0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x63,
	0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52,
	0x0f, 0x6e, 0x6f, 0x74, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65,
	0x12, 0x2a, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x73,
	0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x6d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f,
	0x74, 0x53, 0x72, 0x63, 0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x12,
	0x6e, 0x6f, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69,
	0x64, 0x73, 0x18, 0x6e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x74, 0x44, 0x73, 0x74,
	0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x3e, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x5f,
	0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69,
	0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x70, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x17, 0x6e, 0x6f, 0x74, 0x53, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74,
	0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x3e, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x5f,
	0x64, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69,
	0x70, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x71, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x17, 0x6e, 0x6f, 0x74, 0x44, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74,
	0x49, 0x70, 0x53, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x72, 0x69, 0x67,
	0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
	0x72, 0x18, 0x72, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
	0x6c, 0x53, 0x72, 0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x15,
	0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x73, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x69,
	0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
	0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x72, 0x63,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x18, 0x74, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x61, 0x6c, 0x53, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53,
	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x75, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x1c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x4e, 0x61, 0x6d,
	0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x39,
	0x0a, 0x19, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73,
	0x72, 0x63, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x76, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x16, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x53, 0x72,
	0x63, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x19, 0x6f, 0x72, 0x69,
	0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x77, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6f, 0x72,
	0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x44, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65,
	0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c,
	0x5f, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x84, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x72, 0x63,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x1e, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x1b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x72, 0x63, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a,
	0x14, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x72,
	0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x12, 0x44, 0x0a, 0x1e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x73, 0x74,
	0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x61, 0x6c, 0x44, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d,
	0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x16, 0x73, 0x72, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x55, 0x0a,
	0x19, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x16, 0x64, 0x73,
	0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x6d, 0x61, 0x74,
	0x63, 0x68, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x48, 0x54, 0x54, 0x50, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e,
	0x52, 0x75, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69,
	0x64, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64,
	0x42, 0x06, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x5f,
	0x69, 0x63, 0x6d, 0x70, 0x4a, 0x06, 0x08, 0xc8, 0x01, 0x10, 0xc9, 0x01, 0x52, 0x0a, 0x6c, 0x6f,
	0x67, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x47, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
	0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e,
	0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65,
	0x73, 0x22, 0xa4, 0x01, 0x0a, 0x09, 0x48, 0x54, 0x54, 0x50, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
	0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x61, 0x74,
	0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x48, 0x54, 0x54, 0x50, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x1a, 0x4b, 0x0a, 0x09, 0x50,
	0x61, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74,
	0x12, 0x18, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61,
	0x74, 0x68, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6c,
	0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0x39, 0x0a, 0x0f, 0x49, 0x63, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6e, 0x64,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x4c, 0x0a, 0x08,
	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x5f, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x09, 0x50, 0x6f,
	0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x61, 0x73,
	0x74, 0x22, 0x8f, 0x01, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x63, 0x68,
	0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49,
	0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
	0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xf5, 0x03,
	0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x1f,
	0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12,
	0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09,
	0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x69, 0x65,
	0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x54, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x69, 0x65, 0x72, 0x73,
	0x12, 0x29, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x08, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x4e, 0x61, 0x74, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x07, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x08, 0x69,
	0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
	0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x4e, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x69,
	0x70, 0x76, 0x36, 0x4e, 0x61, 0x74, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
	0x73, 0x70, 0x6f, 0x6f, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70,
	0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x61,
	0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x6f, 0x6f, 0x66, 0x65, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x43, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
	0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12,
	0x29, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65,
	0x6c, 0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x22, 0x41, 0x0a, 0x0e, 0x48, 0x6f,
	0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b,
	0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08,
	0x01, 0x10, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a,
	0x12, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x15, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x65, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66,
	0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xf1, 0x02, 0x0a, 0x0c,
	0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64,
	0x73, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x69, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x05, 0x74, 0x69, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0f, 0x75, 0x6e, 0x74, 0x72,
	0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0e, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x69, 0x65,
	0x72, 0x73, 0x12, 0x35, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x5f, 0x64, 0x6e, 0x61, 0x74, 0x5f, 0x74,
	0x69, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x72, 0x65,
	0x44, 0x6e, 0x61, 0x74, 0x54, 0x69, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x0d, 0x66, 0x6f, 0x72,
	0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0c, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x65, 0x72, 0x73, 0x12,
	0x2e, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34,
	0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78,
	0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12,
	0x2e, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36,
	0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78,
	0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x73, 0x22,
	0x3b, 0x0a, 0x12, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x25, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e,
	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x22, 0x99, 0x01, 0x0a,
	0x08, 0x54, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a,
	0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65,
	0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75,
	0x6c, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a, 0x07, 0x4e, 0x61, 0x74, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x49, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x6e,
	0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x49,
	0x70, 0x22, 0x52, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x6f, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x69, 0x73, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a,
	0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x75,
	0x70, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x18, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x12, 0x25, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
	0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78,
	0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x28, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x22, 0x41, 0x0a, 0x18, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x25, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44,
	0x52, 0x02, 0x69, 0x64, 0x22, 0x78, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
	0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61,
	0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x15, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x49,
	0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
	0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x29,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x22, 0x67, 0x0a, 0x15, 0x57, 0x69, 0x72,
	0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65,
	0x79, 0x12, 0x2f, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49,
	0x6e, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x88, 0x02, 0x0a, 0x16, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x34, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76,
	0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70,
	0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x73, 0x6e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x6e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x12, 0x41, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x34, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c,
	0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0x51, 0x0a, 0x16, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x56, 0x34, 0x56, 0x36, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f,
	0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f,
	0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61,
	0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x41,
	0x64, 0x64, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64,
	0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64,
	0x64, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64,
	0x72, 0x22, 0x4f, 0x0a, 0x14, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x56, 0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64,
	0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64,
	0x64, 0x72, 0x22, 0x4f, 0x0a, 0x14, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x56, 0x36, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f,
	0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f,
	0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61,
	0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x41,
	0x64, 0x64, 0x72, 0x22, 0x45, 0x0a, 0x0e, 0x49, 0x50, 0x41, 0x4d, 0x50, 0x6f, 0x6f, 0x6c, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x41, 0x4d,
	0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x20, 0x0a, 0x0e, 0x49, 0x50,
	0x41, 0x4d, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7a, 0x0a, 0x08,
	0x49, 0x50, 0x41, 0x4d, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a,
	0x6d, 0x61, 0x73, 0x71, 0x75, 0x65, 0x72, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0a, 0x6d, 0x61, 0x73, 0x71, 0x75, 0x65, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x69, 0x70, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x69, 0x70, 0x69, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x78, 0x6c,
	0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76,
	0x78, 0x6c, 0x61, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x0d, 0x45, 0x6e, 0x63,
	0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70,
	0x69, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0b, 0x69, 0x70, 0x69, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a,
	0x0d, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x5f, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x76, 0x78,
	0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x56, 0x36, 0x22, 0xbb, 0x01, 0x0a,
	0x14, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f,
	0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65,
	0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a,
	0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3f, 0x0a, 0x14, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x12, 0x27, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x10, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12,
	0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
	0x61, 0x63, 0x65, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x6c, 0x61, 0x62,
	0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x65, 0x6c, 0x69,
	0x78, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c,
	0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0x35, 0x0a, 0x0f, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x0a, 0x54, 0x75,
	0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x70, 0x69, 0x70,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x70, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x78, 0x6c,
	0x61, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64,
	0x22, 0xf9, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10,
	0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x69, 0x70, 0x5f, 0x70, 0x6f, 0x6f,
	0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x66,
	0x65, 0x6c, 0x69, 0x78, 0x2e, 0x49, 0x50, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x0a, 0x69, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64,
	0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x22, 0x0a,
	0x0d, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x70,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49,
	0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x6e,
	0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
	0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x4f, 0x75, 0x74,
	0x67, 0x6f, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x77,
	0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c,
	0x6f, 0x63, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x32, 0x0a, 0x0b,
	0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x08, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x22, 0x1f, 0x0a, 0x0b,
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64,
	0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0xea, 0x01,
	0x0a, 0x19, 0x56, 0x58, 0x4c, 0x41, 0x4e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61,
	0x63, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x12, 0x28,
	0x0a, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x61, 0x63, 0x5f,
	0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x63, 0x56, 0x36, 0x12,
	0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x12,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x70,
	0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x22, 0x2f, 0x0a, 0x19, 0x56, 0x58,
	0x4c, 0x41, 0x4e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x17,
	0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65,
	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b,
	0x65, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f,
	0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64,
	0x64, 0x72, 0x22, 0x35, 0x0a, 0x17, 0x57, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45,
	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x57, 0x69,
	0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56,
	0x36, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65,
	0x79, 0x5f, 0x76, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c,
	0x69, 0x63, 0x4b, 0x65, 0x79, 0x56, 0x36, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72,
	0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49,
	0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x22, 0x37, 0x0a, 0x19, 0x57, 0x69, 0x72, 0x65, 0x67,
	0x75, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x36, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65,
	0x22, 0xbf, 0x01, 0x0a, 0x15, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x42, 0x47, 0x50, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x69,
	0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x69, 0x64, 0x72, 0x73, 0x12, 0x34,
	0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43,
	0x69, 0x64, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x6c, 0x6f, 0x61, 0x64, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x63, 0x69, 0x64,
	0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x4c, 0x6f, 0x61, 0x64, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x43, 0x69, 0x64,
	0x72, 0x73, 0x22, 0x59, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a,
	0x04, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x6f, 0x72,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xec, 0x01,
	0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x5f, 0x69, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x6f, 0x61, 0x64, 0x62, 0x61,
	0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x49, 0x70, 0x12,
	0x21, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x73, 0x18,
	0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49,
	0x70, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x41, 0x0a, 0x0d,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2a,
	0x28, 0x0a, 0x09, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03,
	0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x34, 0x10, 0x04, 0x12,
	0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x06, 0x2a, 0x89, 0x01, 0x0a, 0x09, 0x52, 0x6f,
	0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x49, 0x44, 0x52, 0x5f,
	0x49, 0x4e, 0x46, 0x4f, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45,
	0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52,
	0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e,
	0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x03,
	0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x10, 0x04,
	0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45,
	0x4c, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x54, 0x55, 0x4e,
	0x4e, 0x45, 0x4c, 0x10, 0x06, 0x2a, 0x39, 0x0a, 0x0a, 0x49, 0x50, 0x50, 0x6f, 0x6f, 0x6c, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x4e, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x56,
	0x58, 0x4c, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x49, 0x50, 0x10, 0x03,
	0x32, 0x3e, 0x0a, 0x0a, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x30,
	0x0a, 0x04, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x12, 0x2e, 0x66, 0x65, 0x6c, 0x69, 0x78, 0x2e, 0x53,
	0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x66, 0x65, 0x6c,
	0x69, 0x78, 0x2e, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x30, 0x01,
	0x42, 0x09, 0x5a, 0x07, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_felixbackend_proto_rawDescOnce sync.Once
	file_felixbackend_proto_rawDescData = file_felixbackend_proto_rawDesc
)

func file_felixbackend_proto_rawDescGZIP() []byte {
	file_felixbackend_proto_rawDescOnce.Do(func() {
		file_felixbackend_proto_rawDescData = protoimpl.X.CompressGZIP(file_felixbackend_proto_rawDescData)
	})
	return file_felixbackend_proto_rawDescData
}

var file_felixbackend_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_felixbackend_proto_msgTypes = make([]protoimpl.MessageInfo, 80)
var file_felixbackend_proto_goTypes = []any{
	(IPVersion)(0),                       // 0: felix.IPVersion
	(RouteType)(0),                       // 1: felix.RouteType
	(IPPoolType)(0),                      // 2: felix.IPPoolType
	(IPSetUpdate_IPSetType)(0),           // 3: felix.IPSetUpdate.IPSetType
	(*SyncRequest)(nil),                  // 4: felix.SyncRequest
	(*ToDataplane)(nil),                  // 5: felix.ToDataplane
	(*FromDataplane)(nil),                // 6: felix.FromDataplane
	(*ConfigUpdate)(nil),                 // 7: felix.ConfigUpdate
	(*RawConfig)(nil),                    // 8: felix.RawConfig
	(*InSync)(nil),                       // 9: felix.InSync
	(*IPSetUpdate)(nil),                  // 10: felix.IPSetUpdate
	(*IPSetDeltaUpdate)(nil),             // 11: felix.IPSetDeltaUpdate
	(*IPSetRemove)(nil),                  // 12: felix.IPSetRemove
	(*ActiveProfileUpdate)(nil),          // 13: felix.ActiveProfileUpdate
	(*ActiveProfileRemove)(nil),          // 14: felix.ActiveProfileRemove
	(*ProfileID)(nil),                    // 15: felix.ProfileID
	(*Profile)(nil),                      // 16: felix.Profile
	(*ActivePolicyUpdate)(nil),           // 17: felix.ActivePolicyUpdate
	(*ActivePolicyRemove)(nil),           // 18: felix.ActivePolicyRemove
	(*PolicyID)(nil),                     // 19: felix.PolicyID
	(*Policy)(nil),                       // 20: felix.Policy
	(*Rule)(nil),                         // 21: felix.Rule
	(*ServiceAccountMatch)(nil),          // 22: felix.ServiceAccountMatch
	(*HTTPMatch)(nil),                    // 23: felix.HTTPMatch
	(*RuleMetadata)(nil),                 // 24: felix.RuleMetadata
	(*IcmpTypeAndCode)(nil),              // 25: felix.IcmpTypeAndCode
	(*Protocol)(nil),                     // 26: felix.Protocol
	(*PortRange)(nil),                    // 27: felix.PortRange
	(*WorkloadEndpointID)(nil),           // 28: felix.WorkloadEndpointID
	(*WorkloadEndpointUpdate)(nil),       // 29: felix.WorkloadEndpointUpdate
	(*WorkloadEndpoint)(nil),             // 30: felix.WorkloadEndpoint
	(*WorkloadEndpointRemove)(nil),       // 31: felix.WorkloadEndpointRemove
	(*HostEndpointID)(nil),               // 32: felix.HostEndpointID
	(*HostEndpointUpdate)(nil),           // 33: felix.HostEndpointUpdate
	(*HostEndpoint)(nil),                 // 34: felix.HostEndpoint
	(*HostEndpointRemove)(nil),           // 35: felix.HostEndpointRemove
	(*TierInfo)(nil),                     // 36: felix.TierInfo
	(*NatInfo)(nil),                      // 37: felix.NatInfo
	(*ProcessStatusUpdate)(nil),          // 38: felix.ProcessStatusUpdate
	(*HostEndpointStatusUpdate)(nil),     // 39: felix.HostEndpointStatusUpdate
	(*EndpointStatus)(nil),               // 40: felix.EndpointStatus
	(*HostEndpointStatusRemove)(nil),     // 41: felix.HostEndpointStatusRemove
	(*WorkloadEndpointStatusUpdate)(nil), // 42: felix.WorkloadEndpointStatusUpdate
	(*WorkloadEndpointStatusRemove)(nil), // 43: felix.WorkloadEndpointStatusRemove
	(*WireguardStatusUpdate)(nil),        // 44: felix.WireguardStatusUpdate
	(*DataplaneInSync)(nil),              // 45: felix.DataplaneInSync
	(*HostMetadataV4V6Update)(nil),       // 46: felix.HostMetadataV4V6Update
	(*HostMetadataV4V6Remove)(nil),       // 47: felix.HostMetadataV4V6Remove
	(*HostMetadataUpdate)(nil),           // 48: felix.HostMetadataUpdate
	(*HostMetadataRemove)(nil),           // 49: felix.HostMetadataRemove
	(*HostMetadataV6Update)(nil),         // 50: felix.HostMetadataV6Update
	(*HostMetadataV6Remove)(nil),         // 51: felix.HostMetadataV6Remove
	(*IPAMPoolUpdate)(nil),               // 52: felix.IPAMPoolUpdate
	(*IPAMPoolRemove)(nil),               // 53: felix.IPAMPoolRemove
	(*IPAMPool)(nil),                     // 54: felix.IPAMPool
	(*Encapsulation)(nil),                // 55: felix.Encapsulation
	(*ServiceAccountUpdate)(nil),         // 56: felix.ServiceAccountUpdate
	(*ServiceAccountRemove)(nil),         // 57: felix.ServiceAccountRemove
	(*ServiceAccountID)(nil),             // 58: felix.ServiceAccountID
	(*NamespaceUpdate)(nil),              // 59: felix.NamespaceUpdate
	(*NamespaceRemove)(nil),              // 60: felix.NamespaceRemove
	(*NamespaceID)(nil),                  // 61: felix.NamespaceID
	(*TunnelType)(nil),                   // 62: felix.TunnelType
	(*RouteUpdate)(nil),                  // 63: felix.RouteUpdate
	(*RouteRemove)(nil),                  // 64: felix.RouteRemove
	(*VXLANTunnelEndpointUpdate)(nil),    // 65: felix.VXLANTunnelEndpointUpdate
	(*VXLANTunnelEndpointRemove)(nil),    // 66: felix.VXLANTunnelEndpointRemove
	(*WireguardEndpointUpdate)(nil),      // 67: felix.WireguardEndpointUpdate
	(*WireguardEndpointRemove)(nil),      // 68: felix.WireguardEndpointRemove
	(*WireguardEndpointV6Update)(nil),    // 69: felix.WireguardEndpointV6Update
	(*WireguardEndpointV6Remove)(nil),    // 70: felix.WireguardEndpointV6Remove
	(*GlobalBGPConfigUpdate)(nil),        // 71: felix.GlobalBGPConfigUpdate
	(*ServicePort)(nil),                  // 72: felix.ServicePort
	(*ServiceUpdate)(nil),                // 73: felix.ServiceUpdate
	(*ServiceRemove)(nil),                // 74: felix.ServiceRemove
	nil,                                  // 75: felix.ConfigUpdate.ConfigEntry
	nil,                                  // 76: felix.ConfigUpdate.SourceToRawConfigEntry
	nil,                                  // 77: felix.RawConfig.ConfigEntry
	(*HTTPMatch_PathMatch)(nil),          // 78: felix.HTTPMatch.PathMatch
	nil,                                  // 79: felix.RuleMetadata.AnnotationsEntry
	nil,                                  // 80: felix.WorkloadEndpoint.AnnotationsEntry
	nil,                                  // 81: felix.HostMetadataV4V6Update.LabelsEntry
	nil,                                  // 82: felix.ServiceAccountUpdate.LabelsEntry
	nil,                                  // 83: felix.NamespaceUpdate.LabelsEntry
}
var file_felixbackend_proto_depIdxs = []int32{
	9,   // 0: felix.ToDataplane.in_sync:type_name -> felix.InSync
	10,  // 1: felix.ToDataplane.ipset_update:type_name -> felix.IPSetUpdate
	11,  // 2: felix.ToDataplane.ipset_delta_update:type_name -> felix.IPSetDeltaUpdate
	12,  // 3: felix.ToDataplane.ipset_remove:type_name -> felix.IPSetRemove
	13,  // 4: felix.ToDataplane.active_profile_update:type_name -> felix.ActiveProfileUpdate
	14,  // 5: felix.ToDataplane.active_profile_remove:type_name -> felix.ActiveProfileRemove
	17,  // 6: felix.ToDataplane.active_policy_update:type_name -> felix.ActivePolicyUpdate
	18,  // 7: felix.ToDataplane.active_policy_remove:type_name -> felix.ActivePolicyRemove
	33,  // 8: felix.ToDataplane.host_endpoint_update:type_name -> felix.HostEndpointUpdate
	35,  // 9: felix.ToDataplane.host_endpoint_remove:type_name -> felix.HostEndpointRemove
	29,  // 10: felix.ToDataplane.workload_endpoint_update:type_name -> felix.WorkloadEndpointUpdate
	31,  // 11: felix.ToDataplane.workload_endpoint_remove:type_name -> felix.WorkloadEndpointRemove
	7,   // 12: felix.ToDataplane.config_update:type_name -> felix.ConfigUpdate
	48,  // 13: felix.ToDataplane.host_metadata_update:type_name -> felix.HostMetadataUpdate
	49,  // 14: felix.ToDataplane.host_metadata_remove:type_name -> felix.HostMetadataRemove
	46,  // 15: felix.ToDataplane.host_metadata_v4v6_update:type_name -> felix.HostMetadataV4V6Update
	47,  // 16: felix.ToDataplane.host_metadata_v4v6_remove:type_name -> felix.HostMetadataV4V6Remove
	52,  // 17: felix.ToDataplane.ipam_pool_update:type_name -> felix.IPAMPoolUpdate
	53,  // 18: felix.ToDataplane.ipam_pool_remove:type_name -> felix.IPAMPoolRemove
	56,  // 19: felix.ToDataplane.service_account_update:type_name -> felix.ServiceAccountUpdate
	57,  // 20: felix.ToDataplane.service_account_remove:type_name -> felix.ServiceAccountRemove
	59,  // 21: felix.ToDataplane.namespace_update:type_name -> felix.NamespaceUpdate
	60,  // 22: felix.ToDataplane.namespace_remove:type_name -> felix.NamespaceRemove
	63,  // 23: felix.ToDataplane.route_update:type_name -> felix.RouteUpdate
	64,  // 24: felix.ToDataplane.route_remove:type_name -> felix.RouteRemove
	65,  // 25: felix.ToDataplane.vtep_update:type_name -> felix.VXLANTunnelEndpointUpdate
	66,  // 26: felix.ToDataplane.vtep_remove:type_name -> felix.VXLANTunnelEndpointRemove
	67,  // 27: felix.ToDataplane.wireguard_endpoint_update:type_name -> felix.WireguardEndpointUpdate
	68,  // 28: felix.ToDataplane.wireguard_endpoint_remove:type_name -> felix.WireguardEndpointRemove
	71,  // 29: felix.ToDataplane.global_bgp_config_update:type_name -> felix.GlobalBGPConfigUpdate
	55,  // 30: felix.ToDataplane.encapsulation:type_name -> felix.Encapsulation
	73,  // 31: felix.ToDataplane.service_update:type_name -> felix.ServiceUpdate
	74,  // 32: felix.ToDataplane.service_remove:type_name -> felix.ServiceRemove
	69,  // 33: felix.ToDataplane.wireguard_endpoint_v6_update:type_name -> felix.WireguardEndpointV6Update
	70,  // 34: felix.ToDataplane.wireguard_endpoint_v6_remove:type_name -> felix.WireguardEndpointV6Remove
	50,  // 35: felix.ToDataplane.host_metadata_v6_update:type_name -> felix.HostMetadataV6Update
	51,  // 36: felix.ToDataplane.host_metadata_v6_remove:type_name -> felix.HostMetadataV6Remove
	38,  // 37: felix.FromDataplane.process_status_update:type_name -> felix.ProcessStatusUpdate
	39,  // 38: felix.FromDataplane.host_endpoint_status_update:type_name -> felix.HostEndpointStatusUpdate
	41,  // 39: felix.FromDataplane.host_endpoint_status_remove:type_name -> felix.HostEndpointStatusRemove
	42,  // 40: felix.FromDataplane.workload_endpoint_status_update:type_name -> felix.WorkloadEndpointStatusUpdate
	43,  // 41: felix.FromDataplane.workload_endpoint_status_remove:type_name -> felix.WorkloadEndpointStatusRemove
	44,  // 42: felix.FromDataplane.wireguard_status_update:type_name -> felix.WireguardStatusUpdate
	45,  // 43: felix.FromDataplane.dataplane_in_sync:type_name -> felix.DataplaneInSync
	75,  // 44: felix.ConfigUpdate.config:type_name -> felix.ConfigUpdate.ConfigEntry
	76,  // 45: felix.ConfigUpdate.source_to_raw_config:type_name -> felix.ConfigUpdate.SourceToRawConfigEntry
	77,  // 46: felix.RawConfig.config:type_name -> felix.RawConfig.ConfigEntry
	3,   // 47: felix.IPSetUpdate.type:type_name -> felix.IPSetUpdate.IPSetType
	15,  // 48: felix.ActiveProfileUpdate.id:type_name -> felix.ProfileID
	16,  // 49: felix.ActiveProfileUpdate.profile:type_name -> felix.Profile
	15,  // 50: felix.ActiveProfileRemove.id:type_name -> felix.ProfileID
	21,  // 51: felix.Profile.inbound_rules:type_name -> felix.Rule
	21,  // 52: felix.Profile.outbound_rules:type_name -> felix.Rule
	19,  // 53: felix.ActivePolicyUpdate.id:type_name -> felix.PolicyID
	20,  // 54: felix.ActivePolicyUpdate.policy:type_name -> felix.Policy
	19,  // 55: felix.ActivePolicyRemove.id:type_name -> felix.PolicyID
	21,  // 56: felix.Policy.inbound_rules:type_name -> felix.Rule
	21,  // 57: felix.Policy.outbound_rules:type_name -> felix.Rule
	0,   // 58: felix.Rule.ip_version:type_name -> felix.IPVersion
	26,  // 59: felix.Rule.protocol:type_name -> felix.Protocol
	27,  // 60: felix.Rule.src_ports:type_name -> felix.PortRange
	27,  // 61: felix.Rule.dst_ports:type_name -> felix.PortRange
	25,  // 62: felix.Rule.icmp_type_code:type_name -> felix.IcmpTypeAndCode
	26,  // 63: felix.Rule.not_protocol:type_name -> felix.Protocol
	27,  // 64: felix.Rule.not_src_ports:type_name -> felix.PortRange
	27,  // 65: felix.Rule.not_dst_ports:type_name -> felix.PortRange
	25,  // 66: felix.Rule.not_icmp_type_code:type_name -> felix.IcmpTypeAndCode
	22,  // 67: felix.Rule.src_service_account_match:type_name -> felix.ServiceAccountMatch
	22,  // 68: felix.Rule.dst_service_account_match:type_name -> felix.ServiceAccountMatch
	23,  // 69: felix.Rule.http_match:type_name -> felix.HTTPMatch
	24,  // 70: felix.Rule.metadata:type_name -> felix.RuleMetadata
	78,  // 71: felix.HTTPMatch.paths:type_name -> felix.HTTPMatch.PathMatch
	79,  // 72: felix.RuleMetadata.annotations:type_name -> felix.RuleMetadata.AnnotationsEntry
	28,  // 73: felix.WorkloadEndpointUpdate.id:type_name -> felix.WorkloadEndpointID
	30,  // 74: felix.WorkloadEndpointUpdate.endpoint:type_name -> felix.WorkloadEndpoint
	36,  // 75: felix.WorkloadEndpoint.tiers:type_name -> felix.TierInfo
	37,  // 76: felix.WorkloadEndpoint.ipv4_nat:type_name -> felix.NatInfo
	37,  // 77: felix.WorkloadEndpoint.ipv6_nat:type_name -> felix.NatInfo
	80,  // 78: felix.WorkloadEndpoint.annotations:type_name -> felix.WorkloadEndpoint.AnnotationsEntry
	28,  // 79: felix.WorkloadEndpointRemove.id:type_name -> felix.WorkloadEndpointID
	32,  // 80: felix.HostEndpointUpdate.id:type_name -> felix.HostEndpointID
	34,  // 81: felix.HostEndpointUpdate.endpoint:type_name -> felix.HostEndpoint
	36,  // 82: felix.HostEndpoint.tiers:type_name -> felix.TierInfo
	36,  // 83: felix.HostEndpoint.untracked_tiers:type_name -> felix.TierInfo
	36,  // 84: felix.HostEndpoint.pre_dnat_tiers:type_name -> felix.TierInfo
	36,  // 85: felix.HostEndpoint.forward_tiers:type_name -> felix.TierInfo
	32,  // 86: felix.HostEndpointRemove.id:type_name -> felix.HostEndpointID
	32,  // 87: felix.HostEndpointStatusUpdate.id:type_name -> felix.HostEndpointID
	40,  // 88: felix.HostEndpointStatusUpdate.status:type_name -> felix.EndpointStatus
	32,  // 89: felix.HostEndpointStatusRemove.id:type_name -> felix.HostEndpointID
	28,  // 90: felix.WorkloadEndpointStatusUpdate.id:type_name -> felix.WorkloadEndpointID
	40,  // 91: felix.WorkloadEndpointStatusUpdate.status:type_name -> felix.EndpointStatus
	28,  // 92: felix.WorkloadEndpointStatusRemove.id:type_name -> felix.WorkloadEndpointID
	0,   // 93: felix.WireguardStatusUpdate.ip_version:type_name -> felix.IPVersion
	81,  // 94: felix.HostMetadataV4V6Update.labels:type_name -> felix.HostMetadataV4V6Update.LabelsEntry
	54,  // 95: felix.IPAMPoolUpdate.pool:type_name -> felix.IPAMPool
	58,  // 96: felix.ServiceAccountUpdate.id:type_name -> felix.ServiceAccountID
	82,  // 97: felix.ServiceAccountUpdate.labels:type_name -> felix.ServiceAccountUpdate.LabelsEntry
	58,  // 98: felix.ServiceAccountRemove.id:type_name -> felix.ServiceAccountID
	61,  // 99: felix.NamespaceUpdate.id:type_name -> felix.NamespaceID
	83,  // 100: felix.NamespaceUpdate.labels:type_name -> felix.NamespaceUpdate.LabelsEntry
	61,  // 101: felix.NamespaceRemove.id:type_name -> felix.NamespaceID
	1,   // 102: felix.RouteUpdate.type:type_name -> felix.RouteType
	2,   // 103: felix.RouteUpdate.ip_pool_type:type_name -> felix.IPPoolType
	62,  // 104: felix.RouteUpdate.tunnel_type:type_name -> felix.TunnelType
	72,  // 105: felix.ServiceUpdate.ports:type_name -> felix.ServicePort
	8,   // 106: felix.ConfigUpdate.SourceToRawConfigEntry.value:type_name -> felix.RawConfig
	4,   // 107: felix.PolicySync.Sync:input_type -> felix.SyncRequest
	5,   // 108: felix.PolicySync.Sync:output_type -> felix.ToDataplane
	108, // [108:109] is the sub-list for method output_type
	107, // [107:108] is the sub-list for method input_type
	107, // [107:107] is the sub-list for extension type_name
	107, // [107:107] is the sub-list for extension extendee
	0,   // [0:107] is the sub-list for field type_name
}

func init() { file_felixbackend_proto_init() }
func file_felixbackend_proto_init() {
	if File_felixbackend_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_felixbackend_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*SyncRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*ToDataplane); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*FromDataplane); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*ConfigUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*RawConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*InSync); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*IPSetUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*IPSetDeltaUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*IPSetRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*ActiveProfileUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*ActiveProfileRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*ProfileID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*Profile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*ActivePolicyUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*ActivePolicyRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*PolicyID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*Policy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*Rule); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceAccountMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*HTTPMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*RuleMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*IcmpTypeAndCode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*Protocol); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*PortRange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[24].Exporter = func(v any, i int) any {
			switch v := v.(*WorkloadEndpointID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[25].Exporter = func(v any, i int) any {
			switch v := v.(*WorkloadEndpointUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*WorkloadEndpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[27].Exporter = func(v any, i int) any {
			switch v := v.(*WorkloadEndpointRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[28].Exporter = func(v any, i int) any {
			switch v := v.(*HostEndpointID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[29].Exporter = func(v any, i int) any {
			switch v := v.(*HostEndpointUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[30].Exporter = func(v any, i int) any {
			switch v := v.(*HostEndpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[31].Exporter = func(v any, i int) any {
			switch v := v.(*HostEndpointRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[32].Exporter = func(v any, i int) any {
			switch v := v.(*TierInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[33].Exporter = func(v any, i int) any {
			switch v := v.(*NatInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[34].Exporter = func(v any, i int) any {
			switch v := v.(*ProcessStatusUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[35].Exporter = func(v any, i int) any {
			switch v := v.(*HostEndpointStatusUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[36].Exporter = func(v any, i int) any {
			switch v := v.(*EndpointStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[37].Exporter = func(v any, i int) any {
			switch v := v.(*HostEndpointStatusRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[38].Exporter = func(v any, i int) any {
			switch v := v.(*WorkloadEndpointStatusUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[39].Exporter = func(v any, i int) any {
			switch v := v.(*WorkloadEndpointStatusRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[40].Exporter = func(v any, i int) any {
			switch v := v.(*WireguardStatusUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[41].Exporter = func(v any, i int) any {
			switch v := v.(*DataplaneInSync); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[42].Exporter = func(v any, i int) any {
			switch v := v.(*HostMetadataV4V6Update); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[43].Exporter = func(v any, i int) any {
			switch v := v.(*HostMetadataV4V6Remove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[44].Exporter = func(v any, i int) any {
			switch v := v.(*HostMetadataUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[45].Exporter = func(v any, i int) any {
			switch v := v.(*HostMetadataRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[46].Exporter = func(v any, i int) any {
			switch v := v.(*HostMetadataV6Update); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[47].Exporter = func(v any, i int) any {
			switch v := v.(*HostMetadataV6Remove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[48].Exporter = func(v any, i int) any {
			switch v := v.(*IPAMPoolUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[49].Exporter = func(v any, i int) any {
			switch v := v.(*IPAMPoolRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[50].Exporter = func(v any, i int) any {
			switch v := v.(*IPAMPool); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[51].Exporter = func(v any, i int) any {
			switch v := v.(*Encapsulation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[52].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceAccountUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[53].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceAccountRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[54].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceAccountID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[55].Exporter = func(v any, i int) any {
			switch v := v.(*NamespaceUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[56].Exporter = func(v any, i int) any {
			switch v := v.(*NamespaceRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[57].Exporter = func(v any, i int) any {
			switch v := v.(*NamespaceID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[58].Exporter = func(v any, i int) any {
			switch v := v.(*TunnelType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[59].Exporter = func(v any, i int) any {
			switch v := v.(*RouteUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[60].Exporter = func(v any, i int) any {
			switch v := v.(*RouteRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[61].Exporter = func(v any, i int) any {
			switch v := v.(*VXLANTunnelEndpointUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[62].Exporter = func(v any, i int) any {
			switch v := v.(*VXLANTunnelEndpointRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[63].Exporter = func(v any, i int) any {
			switch v := v.(*WireguardEndpointUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[64].Exporter = func(v any, i int) any {
			switch v := v.(*WireguardEndpointRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[65].Exporter = func(v any, i int) any {
			switch v := v.(*WireguardEndpointV6Update); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[66].Exporter = func(v any, i int) any {
			switch v := v.(*WireguardEndpointV6Remove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[67].Exporter = func(v any, i int) any {
			switch v := v.(*GlobalBGPConfigUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[68].Exporter = func(v any, i int) any {
			switch v := v.(*ServicePort); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[69].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[70].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceRemove); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_felixbackend_proto_msgTypes[74].Exporter = func(v any, i int) any {
			switch v := v.(*HTTPMatch_PathMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_felixbackend_proto_msgTypes[1].OneofWrappers = []any{
		(*ToDataplane_InSync)(nil),
		(*ToDataplane_IpsetUpdate)(nil),
		(*ToDataplane_IpsetDeltaUpdate)(nil),
		(*ToDataplane_IpsetRemove)(nil),
		(*ToDataplane_ActiveProfileUpdate)(nil),
		(*ToDataplane_ActiveProfileRemove)(nil),
		(*ToDataplane_ActivePolicyUpdate)(nil),
		(*ToDataplane_ActivePolicyRemove)(nil),
		(*ToDataplane_HostEndpointUpdate)(nil),
		(*ToDataplane_HostEndpointRemove)(nil),
		(*ToDataplane_WorkloadEndpointUpdate)(nil),
		(*ToDataplane_WorkloadEndpointRemove)(nil),
		(*ToDataplane_ConfigUpdate)(nil),
		(*ToDataplane_HostMetadataUpdate)(nil),
		(*ToDataplane_HostMetadataRemove)(nil),
		(*ToDataplane_HostMetadataV4V6Update)(nil),
		(*ToDataplane_HostMetadataV4V6Remove)(nil),
		(*ToDataplane_IpamPoolUpdate)(nil),
		(*ToDataplane_IpamPoolRemove)(nil),
		(*ToDataplane_ServiceAccountUpdate)(nil),
		(*ToDataplane_ServiceAccountRemove)(nil),
		(*ToDataplane_NamespaceUpdate)(nil),
		(*ToDataplane_NamespaceRemove)(nil),
		(*ToDataplane_RouteUpdate)(nil),
		(*ToDataplane_RouteRemove)(nil),
		(*ToDataplane_VtepUpdate)(nil),
		(*ToDataplane_VtepRemove)(nil),
		(*ToDataplane_WireguardEndpointUpdate)(nil),
		(*ToDataplane_WireguardEndpointRemove)(nil),
		(*ToDataplane_GlobalBgpConfigUpdate)(nil),
		(*ToDataplane_Encapsulation)(nil),
		(*ToDataplane_ServiceUpdate)(nil),
		(*ToDataplane_ServiceRemove)(nil),
		(*ToDataplane_WireguardEndpointV6Update)(nil),
		(*ToDataplane_WireguardEndpointV6Remove)(nil),
		(*ToDataplane_HostMetadataV6Update)(nil),
		(*ToDataplane_HostMetadataV6Remove)(nil),
	}
	file_felixbackend_proto_msgTypes[2].OneofWrappers = []any{
		(*FromDataplane_ProcessStatusUpdate)(nil),
		(*FromDataplane_HostEndpointStatusUpdate)(nil),
		(*FromDataplane_HostEndpointStatusRemove)(nil),
		(*FromDataplane_WorkloadEndpointStatusUpdate)(nil),
		(*FromDataplane_WorkloadEndpointStatusRemove)(nil),
		(*FromDataplane_WireguardStatusUpdate)(nil),
		(*FromDataplane_DataplaneInSync)(nil),
	}
	file_felixbackend_proto_msgTypes[17].OneofWrappers = []any{
		(*Rule_IcmpType)(nil),
		(*Rule_IcmpTypeCode)(nil),
		(*Rule_NotIcmpType)(nil),
		(*Rule_NotIcmpTypeCode)(nil),
	}
	file_felixbackend_proto_msgTypes[22].OneofWrappers = []any{
		(*Protocol_Number)(nil),
		(*Protocol_Name)(nil),
	}
	file_felixbackend_proto_msgTypes[74].OneofWrappers = []any{
		(*HTTPMatch_PathMatch_Exact)(nil),
		(*HTTPMatch_PathMatch_Prefix)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_felixbackend_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   80,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_felixbackend_proto_goTypes,
		DependencyIndexes: file_felixbackend_proto_depIdxs,
		EnumInfos:         file_felixbackend_proto_enumTypes,
		MessageInfos:      file_felixbackend_proto_msgTypes,
	}.Build()
	File_felixbackend_proto = out.File
	file_felixbackend_proto_rawDesc = nil
	file_felixbackend_proto_goTypes = nil
	file_felixbackend_proto_depIdxs = nil
}
