// Copyright (C) 2015-2017 Nippon Telegraph and Telephone Corporation.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        v3.19.1
// source: gobgp.proto

package apipb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	anypb "google.golang.org/protobuf/types/known/anypb"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

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

type TableType int32

const (
	TableType_GLOBAL  TableType = 0
	TableType_LOCAL   TableType = 1
	TableType_ADJ_IN  TableType = 2
	TableType_ADJ_OUT TableType = 3
	TableType_VRF     TableType = 4
)

// Enum value maps for TableType.
var (
	TableType_name = map[int32]string{
		0: "GLOBAL",
		1: "LOCAL",
		2: "ADJ_IN",
		3: "ADJ_OUT",
		4: "VRF",
	}
	TableType_value = map[string]int32{
		"GLOBAL":  0,
		"LOCAL":   1,
		"ADJ_IN":  2,
		"ADJ_OUT": 3,
		"VRF":     4,
	}
)

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

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

func (TableType) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[0].Descriptor()
}

func (TableType) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[0]
}

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

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

type PeerType int32

const (
	PeerType_INTERNAL PeerType = 0
	PeerType_EXTERNAL PeerType = 1
)

// Enum value maps for PeerType.
var (
	PeerType_name = map[int32]string{
		0: "INTERNAL",
		1: "EXTERNAL",
	}
	PeerType_value = map[string]int32{
		"INTERNAL": 0,
		"EXTERNAL": 1,
	}
)

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

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

func (PeerType) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[1].Descriptor()
}

func (PeerType) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[1]
}

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

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

type RemovePrivate int32

const (
	RemovePrivate_REMOVE_NONE RemovePrivate = 0
	RemovePrivate_REMOVE_ALL  RemovePrivate = 1
	RemovePrivate_REPLACE     RemovePrivate = 2
)

// Enum value maps for RemovePrivate.
var (
	RemovePrivate_name = map[int32]string{
		0: "REMOVE_NONE",
		1: "REMOVE_ALL",
		2: "REPLACE",
	}
	RemovePrivate_value = map[string]int32{
		"REMOVE_NONE": 0,
		"REMOVE_ALL":  1,
		"REPLACE":     2,
	}
)

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

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

func (RemovePrivate) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[2].Descriptor()
}

func (RemovePrivate) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[2]
}

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

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

type DefinedType int32

const (
	DefinedType_PREFIX          DefinedType = 0
	DefinedType_NEIGHBOR        DefinedType = 1
	DefinedType_TAG             DefinedType = 2
	DefinedType_AS_PATH         DefinedType = 3
	DefinedType_COMMUNITY       DefinedType = 4
	DefinedType_EXT_COMMUNITY   DefinedType = 5
	DefinedType_LARGE_COMMUNITY DefinedType = 6
	DefinedType_NEXT_HOP        DefinedType = 7
)

// Enum value maps for DefinedType.
var (
	DefinedType_name = map[int32]string{
		0: "PREFIX",
		1: "NEIGHBOR",
		2: "TAG",
		3: "AS_PATH",
		4: "COMMUNITY",
		5: "EXT_COMMUNITY",
		6: "LARGE_COMMUNITY",
		7: "NEXT_HOP",
	}
	DefinedType_value = map[string]int32{
		"PREFIX":          0,
		"NEIGHBOR":        1,
		"TAG":             2,
		"AS_PATH":         3,
		"COMMUNITY":       4,
		"EXT_COMMUNITY":   5,
		"LARGE_COMMUNITY": 6,
		"NEXT_HOP":        7,
	}
)

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

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

func (DefinedType) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[3].Descriptor()
}

func (DefinedType) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[3]
}

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

// Deprecated: Use DefinedType.Descriptor instead.
func (DefinedType) EnumDescriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{3}
}

type RouteAction int32

const (
	RouteAction_NONE   RouteAction = 0
	RouteAction_ACCEPT RouteAction = 1
	RouteAction_REJECT RouteAction = 2
)

// Enum value maps for RouteAction.
var (
	RouteAction_name = map[int32]string{
		0: "NONE",
		1: "ACCEPT",
		2: "REJECT",
	}
	RouteAction_value = map[string]int32{
		"NONE":   0,
		"ACCEPT": 1,
		"REJECT": 2,
	}
)

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

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

func (RouteAction) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[4].Descriptor()
}

func (RouteAction) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[4]
}

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

// Deprecated: Use RouteAction.Descriptor instead.
func (RouteAction) EnumDescriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{4}
}

type PolicyDirection int32

const (
	PolicyDirection_UNKNOWN PolicyDirection = 0
	PolicyDirection_IMPORT  PolicyDirection = 1
	PolicyDirection_EXPORT  PolicyDirection = 2
)

// Enum value maps for PolicyDirection.
var (
	PolicyDirection_name = map[int32]string{
		0: "UNKNOWN",
		1: "IMPORT",
		2: "EXPORT",
	}
	PolicyDirection_value = map[string]int32{
		"UNKNOWN": 0,
		"IMPORT":  1,
		"EXPORT":  2,
	}
)

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

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

func (PolicyDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[5].Descriptor()
}

func (PolicyDirection) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[5]
}

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

// Deprecated: Use PolicyDirection.Descriptor instead.
func (PolicyDirection) EnumDescriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{5}
}

type WatchEventRequest_Table_Filter_Type int32

const (
	WatchEventRequest_Table_Filter_BEST        WatchEventRequest_Table_Filter_Type = 0
	WatchEventRequest_Table_Filter_ADJIN       WatchEventRequest_Table_Filter_Type = 1
	WatchEventRequest_Table_Filter_POST_POLICY WatchEventRequest_Table_Filter_Type = 2
)

// Enum value maps for WatchEventRequest_Table_Filter_Type.
var (
	WatchEventRequest_Table_Filter_Type_name = map[int32]string{
		0: "BEST",
		1: "ADJIN",
		2: "POST_POLICY",
	}
	WatchEventRequest_Table_Filter_Type_value = map[string]int32{
		"BEST":        0,
		"ADJIN":       1,
		"POST_POLICY": 2,
	}
)

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

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

func (WatchEventRequest_Table_Filter_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[6].Descriptor()
}

func (WatchEventRequest_Table_Filter_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[6]
}

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

// Deprecated: Use WatchEventRequest_Table_Filter_Type.Descriptor instead.
func (WatchEventRequest_Table_Filter_Type) EnumDescriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{4, 1, 0, 0}
}

type WatchEventResponse_PeerEvent_Type int32

const (
	WatchEventResponse_PeerEvent_UNKNOWN     WatchEventResponse_PeerEvent_Type = 0
	WatchEventResponse_PeerEvent_INIT        WatchEventResponse_PeerEvent_Type = 1
	WatchEventResponse_PeerEvent_END_OF_INIT WatchEventResponse_PeerEvent_Type = 2
	WatchEventResponse_PeerEvent_STATE       WatchEventResponse_PeerEvent_Type = 3
)

// Enum value maps for WatchEventResponse_PeerEvent_Type.
var (
	WatchEventResponse_PeerEvent_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "INIT",
		2: "END_OF_INIT",
		3: "STATE",
	}
	WatchEventResponse_PeerEvent_Type_value = map[string]int32{
		"UNKNOWN":     0,
		"INIT":        1,
		"END_OF_INIT": 2,
		"STATE":       3,
	}
)

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

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

func (WatchEventResponse_PeerEvent_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[7].Descriptor()
}

func (WatchEventResponse_PeerEvent_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[7]
}

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

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

type ResetPeerRequest_SoftResetDirection int32

const (
	ResetPeerRequest_IN   ResetPeerRequest_SoftResetDirection = 0
	ResetPeerRequest_OUT  ResetPeerRequest_SoftResetDirection = 1
	ResetPeerRequest_BOTH ResetPeerRequest_SoftResetDirection = 2
)

// Enum value maps for ResetPeerRequest_SoftResetDirection.
var (
	ResetPeerRequest_SoftResetDirection_name = map[int32]string{
		0: "IN",
		1: "OUT",
		2: "BOTH",
	}
	ResetPeerRequest_SoftResetDirection_value = map[string]int32{
		"IN":   0,
		"OUT":  1,
		"BOTH": 2,
	}
)

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

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

func (ResetPeerRequest_SoftResetDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[8].Descriptor()
}

func (ResetPeerRequest_SoftResetDirection) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[8]
}

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

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

// API representation of table.LookupOption
type TableLookupPrefix_Type int32

const (
	TableLookupPrefix_EXACT   TableLookupPrefix_Type = 0
	TableLookupPrefix_LONGER  TableLookupPrefix_Type = 1
	TableLookupPrefix_SHORTER TableLookupPrefix_Type = 2
)

// Enum value maps for TableLookupPrefix_Type.
var (
	TableLookupPrefix_Type_name = map[int32]string{
		0: "EXACT",
		1: "LONGER",
		2: "SHORTER",
	}
	TableLookupPrefix_Type_value = map[string]int32{
		"EXACT":   0,
		"LONGER":  1,
		"SHORTER": 2,
	}
)

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

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

func (TableLookupPrefix_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[9].Descriptor()
}

func (TableLookupPrefix_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[9]
}

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

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

type ListPathRequest_SortType int32

const (
	ListPathRequest_NONE   ListPathRequest_SortType = 0
	ListPathRequest_PREFIX ListPathRequest_SortType = 1
)

// Enum value maps for ListPathRequest_SortType.
var (
	ListPathRequest_SortType_name = map[int32]string{
		0: "NONE",
		1: "PREFIX",
	}
	ListPathRequest_SortType_value = map[string]int32{
		"NONE":   0,
		"PREFIX": 1,
	}
)

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

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

func (ListPathRequest_SortType) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[10].Descriptor()
}

func (ListPathRequest_SortType) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[10]
}

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

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

type EnableMrtRequest_DumpType int32

const (
	EnableMrtRequest_UPDATES EnableMrtRequest_DumpType = 0
	EnableMrtRequest_TABLE   EnableMrtRequest_DumpType = 1
)

// Enum value maps for EnableMrtRequest_DumpType.
var (
	EnableMrtRequest_DumpType_name = map[int32]string{
		0: "UPDATES",
		1: "TABLE",
	}
	EnableMrtRequest_DumpType_value = map[string]int32{
		"UPDATES": 0,
		"TABLE":   1,
	}
)

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

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

func (EnableMrtRequest_DumpType) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[11].Descriptor()
}

func (EnableMrtRequest_DumpType) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[11]
}

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

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

type AddBmpRequest_MonitoringPolicy int32

const (
	AddBmpRequest_PRE   AddBmpRequest_MonitoringPolicy = 0
	AddBmpRequest_POST  AddBmpRequest_MonitoringPolicy = 1
	AddBmpRequest_BOTH  AddBmpRequest_MonitoringPolicy = 2
	AddBmpRequest_LOCAL AddBmpRequest_MonitoringPolicy = 3
	AddBmpRequest_ALL   AddBmpRequest_MonitoringPolicy = 4
)

// Enum value maps for AddBmpRequest_MonitoringPolicy.
var (
	AddBmpRequest_MonitoringPolicy_name = map[int32]string{
		0: "PRE",
		1: "POST",
		2: "BOTH",
		3: "LOCAL",
		4: "ALL",
	}
	AddBmpRequest_MonitoringPolicy_value = map[string]int32{
		"PRE":   0,
		"POST":  1,
		"BOTH":  2,
		"LOCAL": 3,
		"ALL":   4,
	}
)

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

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

func (AddBmpRequest_MonitoringPolicy) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[12].Descriptor()
}

func (AddBmpRequest_MonitoringPolicy) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[12]
}

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

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

type Family_Afi int32

const (
	Family_AFI_UNKNOWN Family_Afi = 0
	Family_AFI_IP      Family_Afi = 1
	Family_AFI_IP6     Family_Afi = 2
	Family_AFI_L2VPN   Family_Afi = 25
	Family_AFI_LS      Family_Afi = 16388
	Family_AFI_OPAQUE  Family_Afi = 16397
)

// Enum value maps for Family_Afi.
var (
	Family_Afi_name = map[int32]string{
		0:     "AFI_UNKNOWN",
		1:     "AFI_IP",
		2:     "AFI_IP6",
		25:    "AFI_L2VPN",
		16388: "AFI_LS",
		16397: "AFI_OPAQUE",
	}
	Family_Afi_value = map[string]int32{
		"AFI_UNKNOWN": 0,
		"AFI_IP":      1,
		"AFI_IP6":     2,
		"AFI_L2VPN":   25,
		"AFI_LS":      16388,
		"AFI_OPAQUE":  16397,
	}
)

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

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

func (Family_Afi) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[13].Descriptor()
}

func (Family_Afi) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[13]
}

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

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

type Family_Safi int32

const (
	Family_SAFI_UNKNOWN                  Family_Safi = 0
	Family_SAFI_UNICAST                  Family_Safi = 1
	Family_SAFI_MULTICAST                Family_Safi = 2
	Family_SAFI_MPLS_LABEL               Family_Safi = 4
	Family_SAFI_ENCAPSULATION            Family_Safi = 7
	Family_SAFI_VPLS                     Family_Safi = 65
	Family_SAFI_EVPN                     Family_Safi = 70
	Family_SAFI_LS                       Family_Safi = 71
	Family_SAFI_SR_POLICY                Family_Safi = 73
	Family_SAFI_MUP                      Family_Safi = 85
	Family_SAFI_MPLS_VPN                 Family_Safi = 128
	Family_SAFI_MPLS_VPN_MULTICAST       Family_Safi = 129
	Family_SAFI_ROUTE_TARGET_CONSTRAINTS Family_Safi = 132
	Family_SAFI_FLOW_SPEC_UNICAST        Family_Safi = 133
	Family_SAFI_FLOW_SPEC_VPN            Family_Safi = 134
	Family_SAFI_KEY_VALUE                Family_Safi = 241
)

// Enum value maps for Family_Safi.
var (
	Family_Safi_name = map[int32]string{
		0:   "SAFI_UNKNOWN",
		1:   "SAFI_UNICAST",
		2:   "SAFI_MULTICAST",
		4:   "SAFI_MPLS_LABEL",
		7:   "SAFI_ENCAPSULATION",
		65:  "SAFI_VPLS",
		70:  "SAFI_EVPN",
		71:  "SAFI_LS",
		73:  "SAFI_SR_POLICY",
		85:  "SAFI_MUP",
		128: "SAFI_MPLS_VPN",
		129: "SAFI_MPLS_VPN_MULTICAST",
		132: "SAFI_ROUTE_TARGET_CONSTRAINTS",
		133: "SAFI_FLOW_SPEC_UNICAST",
		134: "SAFI_FLOW_SPEC_VPN",
		241: "SAFI_KEY_VALUE",
	}
	Family_Safi_value = map[string]int32{
		"SAFI_UNKNOWN":                  0,
		"SAFI_UNICAST":                  1,
		"SAFI_MULTICAST":                2,
		"SAFI_MPLS_LABEL":               4,
		"SAFI_ENCAPSULATION":            7,
		"SAFI_VPLS":                     65,
		"SAFI_EVPN":                     70,
		"SAFI_LS":                       71,
		"SAFI_SR_POLICY":                73,
		"SAFI_MUP":                      85,
		"SAFI_MPLS_VPN":                 128,
		"SAFI_MPLS_VPN_MULTICAST":       129,
		"SAFI_ROUTE_TARGET_CONSTRAINTS": 132,
		"SAFI_FLOW_SPEC_UNICAST":        133,
		"SAFI_FLOW_SPEC_VPN":            134,
		"SAFI_KEY_VALUE":                241,
	}
)

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

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

func (Family_Safi) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[14].Descriptor()
}

func (Family_Safi) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[14]
}

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

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

type Validation_State int32

const (
	Validation_STATE_NONE      Validation_State = 0
	Validation_STATE_NOT_FOUND Validation_State = 1
	Validation_STATE_VALID     Validation_State = 2
	Validation_STATE_INVALID   Validation_State = 3
)

// Enum value maps for Validation_State.
var (
	Validation_State_name = map[int32]string{
		0: "STATE_NONE",
		1: "STATE_NOT_FOUND",
		2: "STATE_VALID",
		3: "STATE_INVALID",
	}
	Validation_State_value = map[string]int32{
		"STATE_NONE":      0,
		"STATE_NOT_FOUND": 1,
		"STATE_VALID":     2,
		"STATE_INVALID":   3,
	}
)

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

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

func (Validation_State) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[15].Descriptor()
}

func (Validation_State) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[15]
}

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

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

type Validation_Reason int32

const (
	Validation_REASON_NONE   Validation_Reason = 0
	Validation_REASON_ASN    Validation_Reason = 1
	Validation_REASON_LENGTH Validation_Reason = 2
)

// Enum value maps for Validation_Reason.
var (
	Validation_Reason_name = map[int32]string{
		0: "REASON_NONE",
		1: "REASON_ASN",
		2: "REASON_LENGTH",
	}
	Validation_Reason_value = map[string]int32{
		"REASON_NONE":   0,
		"REASON_ASN":    1,
		"REASON_LENGTH": 2,
	}
)

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

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

func (Validation_Reason) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[16].Descriptor()
}

func (Validation_Reason) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[16]
}

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

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

type PeerState_SessionState int32

const (
	PeerState_UNKNOWN     PeerState_SessionState = 0
	PeerState_IDLE        PeerState_SessionState = 1
	PeerState_CONNECT     PeerState_SessionState = 2
	PeerState_ACTIVE      PeerState_SessionState = 3
	PeerState_OPENSENT    PeerState_SessionState = 4
	PeerState_OPENCONFIRM PeerState_SessionState = 5
	PeerState_ESTABLISHED PeerState_SessionState = 6
)

// Enum value maps for PeerState_SessionState.
var (
	PeerState_SessionState_name = map[int32]string{
		0: "UNKNOWN",
		1: "IDLE",
		2: "CONNECT",
		3: "ACTIVE",
		4: "OPENSENT",
		5: "OPENCONFIRM",
		6: "ESTABLISHED",
	}
	PeerState_SessionState_value = map[string]int32{
		"UNKNOWN":     0,
		"IDLE":        1,
		"CONNECT":     2,
		"ACTIVE":      3,
		"OPENSENT":    4,
		"OPENCONFIRM": 5,
		"ESTABLISHED": 6,
	}
)

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

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

func (PeerState_SessionState) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[17].Descriptor()
}

func (PeerState_SessionState) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[17]
}

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

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

type PeerState_AdminState int32

const (
	PeerState_UP     PeerState_AdminState = 0
	PeerState_DOWN   PeerState_AdminState = 1
	PeerState_PFX_CT PeerState_AdminState = 2 // prefix counter over limit
)

// Enum value maps for PeerState_AdminState.
var (
	PeerState_AdminState_name = map[int32]string{
		0: "UP",
		1: "DOWN",
		2: "PFX_CT",
	}
	PeerState_AdminState_value = map[string]int32{
		"UP":     0,
		"DOWN":   1,
		"PFX_CT": 2,
	}
)

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

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

func (PeerState_AdminState) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[18].Descriptor()
}

func (PeerState_AdminState) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[18]
}

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

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

type MatchSet_Type int32

const (
	MatchSet_ANY    MatchSet_Type = 0
	MatchSet_ALL    MatchSet_Type = 1
	MatchSet_INVERT MatchSet_Type = 2
)

// Enum value maps for MatchSet_Type.
var (
	MatchSet_Type_name = map[int32]string{
		0: "ANY",
		1: "ALL",
		2: "INVERT",
	}
	MatchSet_Type_value = map[string]int32{
		"ANY":    0,
		"ALL":    1,
		"INVERT": 2,
	}
)

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

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

func (MatchSet_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[19].Descriptor()
}

func (MatchSet_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[19]
}

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

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

type AsPathLength_Type int32

const (
	AsPathLength_EQ AsPathLength_Type = 0
	AsPathLength_GE AsPathLength_Type = 1
	AsPathLength_LE AsPathLength_Type = 2
)

// Enum value maps for AsPathLength_Type.
var (
	AsPathLength_Type_name = map[int32]string{
		0: "EQ",
		1: "GE",
		2: "LE",
	}
	AsPathLength_Type_value = map[string]int32{
		"EQ": 0,
		"GE": 1,
		"LE": 2,
	}
)

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

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

func (AsPathLength_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[20].Descriptor()
}

func (AsPathLength_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[20]
}

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

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

type Conditions_RouteType int32

const (
	Conditions_ROUTE_TYPE_NONE     Conditions_RouteType = 0
	Conditions_ROUTE_TYPE_INTERNAL Conditions_RouteType = 1
	Conditions_ROUTE_TYPE_EXTERNAL Conditions_RouteType = 2
	Conditions_ROUTE_TYPE_LOCAL    Conditions_RouteType = 3
)

// Enum value maps for Conditions_RouteType.
var (
	Conditions_RouteType_name = map[int32]string{
		0: "ROUTE_TYPE_NONE",
		1: "ROUTE_TYPE_INTERNAL",
		2: "ROUTE_TYPE_EXTERNAL",
		3: "ROUTE_TYPE_LOCAL",
	}
	Conditions_RouteType_value = map[string]int32{
		"ROUTE_TYPE_NONE":     0,
		"ROUTE_TYPE_INTERNAL": 1,
		"ROUTE_TYPE_EXTERNAL": 2,
		"ROUTE_TYPE_LOCAL":    3,
	}
)

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

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

func (Conditions_RouteType) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[21].Descriptor()
}

func (Conditions_RouteType) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[21]
}

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

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

type CommunityAction_Type int32

const (
	CommunityAction_ADD     CommunityAction_Type = 0
	CommunityAction_REMOVE  CommunityAction_Type = 1
	CommunityAction_REPLACE CommunityAction_Type = 2
)

// Enum value maps for CommunityAction_Type.
var (
	CommunityAction_Type_name = map[int32]string{
		0: "ADD",
		1: "REMOVE",
		2: "REPLACE",
	}
	CommunityAction_Type_value = map[string]int32{
		"ADD":     0,
		"REMOVE":  1,
		"REPLACE": 2,
	}
)

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

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

func (CommunityAction_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[22].Descriptor()
}

func (CommunityAction_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[22]
}

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

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

type MedAction_Type int32

const (
	MedAction_MOD     MedAction_Type = 0
	MedAction_REPLACE MedAction_Type = 1
)

// Enum value maps for MedAction_Type.
var (
	MedAction_Type_name = map[int32]string{
		0: "MOD",
		1: "REPLACE",
	}
	MedAction_Type_value = map[string]int32{
		"MOD":     0,
		"REPLACE": 1,
	}
)

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

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

func (MedAction_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[23].Descriptor()
}

func (MedAction_Type) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[23]
}

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

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

type SetLogLevelRequest_Level int32

const (
	SetLogLevelRequest_PANIC SetLogLevelRequest_Level = 0
	SetLogLevelRequest_FATAL SetLogLevelRequest_Level = 1
	SetLogLevelRequest_ERROR SetLogLevelRequest_Level = 2
	SetLogLevelRequest_WARN  SetLogLevelRequest_Level = 3
	SetLogLevelRequest_INFO  SetLogLevelRequest_Level = 4
	SetLogLevelRequest_DEBUG SetLogLevelRequest_Level = 5
	SetLogLevelRequest_TRACE SetLogLevelRequest_Level = 6
)

// Enum value maps for SetLogLevelRequest_Level.
var (
	SetLogLevelRequest_Level_name = map[int32]string{
		0: "PANIC",
		1: "FATAL",
		2: "ERROR",
		3: "WARN",
		4: "INFO",
		5: "DEBUG",
		6: "TRACE",
	}
	SetLogLevelRequest_Level_value = map[string]int32{
		"PANIC": 0,
		"FATAL": 1,
		"ERROR": 2,
		"WARN":  3,
		"INFO":  4,
		"DEBUG": 5,
		"TRACE": 6,
	}
)

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

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

func (SetLogLevelRequest_Level) Descriptor() protoreflect.EnumDescriptor {
	return file_gobgp_proto_enumTypes[24].Descriptor()
}

func (SetLogLevelRequest_Level) Type() protoreflect.EnumType {
	return &file_gobgp_proto_enumTypes[24]
}

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

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

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

	Global *Global `protobuf:"bytes,1,opt,name=global,proto3" json:"global,omitempty"`
}

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

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

func (*StartBgpRequest) ProtoMessage() {}

func (x *StartBgpRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 StartBgpRequest.ProtoReflect.Descriptor instead.
func (*StartBgpRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{0}
}

func (x *StartBgpRequest) GetGlobal() *Global {
	if x != nil {
		return x.Global
	}
	return nil
}

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

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

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

func (*StopBgpRequest) ProtoMessage() {}

func (x *StopBgpRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 StopBgpRequest.ProtoReflect.Descriptor instead.
func (*StopBgpRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{1}
}

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

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

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

func (*GetBgpRequest) ProtoMessage() {}

func (x *GetBgpRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 GetBgpRequest.ProtoReflect.Descriptor instead.
func (*GetBgpRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{2}
}

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

	Global *Global `protobuf:"bytes,1,opt,name=global,proto3" json:"global,omitempty"`
}

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

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

func (*GetBgpResponse) ProtoMessage() {}

func (x *GetBgpResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 GetBgpResponse.ProtoReflect.Descriptor instead.
func (*GetBgpResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{3}
}

func (x *GetBgpResponse) GetGlobal() *Global {
	if x != nil {
		return x.Global
	}
	return nil
}

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

	Peer  *WatchEventRequest_Peer  `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
	Table *WatchEventRequest_Table `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
}

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

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

func (*WatchEventRequest) ProtoMessage() {}

func (x *WatchEventRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 WatchEventRequest.ProtoReflect.Descriptor instead.
func (*WatchEventRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{4}
}

func (x *WatchEventRequest) GetPeer() *WatchEventRequest_Peer {
	if x != nil {
		return x.Peer
	}
	return nil
}

func (x *WatchEventRequest) GetTable() *WatchEventRequest_Table {
	if x != nil {
		return x.Table
	}
	return nil
}

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

	// Types that are assignable to Event:
	//
	//	*WatchEventResponse_Peer
	//	*WatchEventResponse_Table
	Event isWatchEventResponse_Event `protobuf_oneof:"event"`
}

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

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

func (*WatchEventResponse) ProtoMessage() {}

func (x *WatchEventResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 WatchEventResponse.ProtoReflect.Descriptor instead.
func (*WatchEventResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{5}
}

func (m *WatchEventResponse) GetEvent() isWatchEventResponse_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (x *WatchEventResponse) GetPeer() *WatchEventResponse_PeerEvent {
	if x, ok := x.GetEvent().(*WatchEventResponse_Peer); ok {
		return x.Peer
	}
	return nil
}

func (x *WatchEventResponse) GetTable() *WatchEventResponse_TableEvent {
	if x, ok := x.GetEvent().(*WatchEventResponse_Table); ok {
		return x.Table
	}
	return nil
}

type isWatchEventResponse_Event interface {
	isWatchEventResponse_Event()
}

type WatchEventResponse_Peer struct {
	Peer *WatchEventResponse_PeerEvent `protobuf:"bytes,2,opt,name=peer,proto3,oneof"`
}

type WatchEventResponse_Table struct {
	Table *WatchEventResponse_TableEvent `protobuf:"bytes,3,opt,name=table,proto3,oneof"`
}

func (*WatchEventResponse_Peer) isWatchEventResponse_Event() {}

func (*WatchEventResponse_Table) isWatchEventResponse_Event() {}

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

	Peer *Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
}

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

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

func (*AddPeerRequest) ProtoMessage() {}

func (x *AddPeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPeerRequest.ProtoReflect.Descriptor instead.
func (*AddPeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{6}
}

func (x *AddPeerRequest) GetPeer() *Peer {
	if x != nil {
		return x.Peer
	}
	return nil
}

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

	Address   string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Interface string `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"`
}

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

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

func (*DeletePeerRequest) ProtoMessage() {}

func (x *DeletePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeletePeerRequest.ProtoReflect.Descriptor instead.
func (*DeletePeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{7}
}

func (x *DeletePeerRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *DeletePeerRequest) GetInterface() string {
	if x != nil {
		return x.Interface
	}
	return ""
}

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

	Address          string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	EnableAdvertised bool   `protobuf:"varint,2,opt,name=enableAdvertised,proto3" json:"enableAdvertised,omitempty"`
}

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

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

func (*ListPeerRequest) ProtoMessage() {}

func (x *ListPeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPeerRequest.ProtoReflect.Descriptor instead.
func (*ListPeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{8}
}

func (x *ListPeerRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *ListPeerRequest) GetEnableAdvertised() bool {
	if x != nil {
		return x.EnableAdvertised
	}
	return false
}

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

	Peer *Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
}

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

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

func (*ListPeerResponse) ProtoMessage() {}

func (x *ListPeerResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPeerResponse.ProtoReflect.Descriptor instead.
func (*ListPeerResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{9}
}

func (x *ListPeerResponse) GetPeer() *Peer {
	if x != nil {
		return x.Peer
	}
	return nil
}

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

	Peer *Peer `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
	// Calls SoftResetIn after updating the peer configuration if needed.
	DoSoftResetIn bool `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn,proto3" json:"do_soft_reset_in,omitempty"`
}

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

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

func (*UpdatePeerRequest) ProtoMessage() {}

func (x *UpdatePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 UpdatePeerRequest.ProtoReflect.Descriptor instead.
func (*UpdatePeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{10}
}

func (x *UpdatePeerRequest) GetPeer() *Peer {
	if x != nil {
		return x.Peer
	}
	return nil
}

func (x *UpdatePeerRequest) GetDoSoftResetIn() bool {
	if x != nil {
		return x.DoSoftResetIn
	}
	return false
}

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

	// Indicates whether calling SoftResetIn is required due to this update. If
	// "true" is set, the client should call SoftResetIn manually. If
	// "do_soft_reset_in = true" is set in the request, always returned with
	// "false".
	NeedsSoftResetIn bool `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn,proto3" json:"needs_soft_reset_in,omitempty"`
}

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

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

func (*UpdatePeerResponse) ProtoMessage() {}

func (x *UpdatePeerResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 UpdatePeerResponse.ProtoReflect.Descriptor instead.
func (*UpdatePeerResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{11}
}

func (x *UpdatePeerResponse) GetNeedsSoftResetIn() bool {
	if x != nil {
		return x.NeedsSoftResetIn
	}
	return false
}

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

	Address       string                              `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Communication string                              `protobuf:"bytes,2,opt,name=communication,proto3" json:"communication,omitempty"`
	Soft          bool                                `protobuf:"varint,3,opt,name=soft,proto3" json:"soft,omitempty"`
	Direction     ResetPeerRequest_SoftResetDirection `protobuf:"varint,4,opt,name=direction,proto3,enum=apipb.ResetPeerRequest_SoftResetDirection" json:"direction,omitempty"`
}

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

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

func (*ResetPeerRequest) ProtoMessage() {}

func (x *ResetPeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ResetPeerRequest.ProtoReflect.Descriptor instead.
func (*ResetPeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{12}
}

func (x *ResetPeerRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *ResetPeerRequest) GetCommunication() string {
	if x != nil {
		return x.Communication
	}
	return ""
}

func (x *ResetPeerRequest) GetSoft() bool {
	if x != nil {
		return x.Soft
	}
	return false
}

func (x *ResetPeerRequest) GetDirection() ResetPeerRequest_SoftResetDirection {
	if x != nil {
		return x.Direction
	}
	return ResetPeerRequest_IN
}

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

	Address       string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Communication string `protobuf:"bytes,2,opt,name=communication,proto3" json:"communication,omitempty"`
}

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

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

func (*ShutdownPeerRequest) ProtoMessage() {}

func (x *ShutdownPeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ShutdownPeerRequest.ProtoReflect.Descriptor instead.
func (*ShutdownPeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{13}
}

func (x *ShutdownPeerRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *ShutdownPeerRequest) GetCommunication() string {
	if x != nil {
		return x.Communication
	}
	return ""
}

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

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

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

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

func (*EnablePeerRequest) ProtoMessage() {}

func (x *EnablePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 EnablePeerRequest.ProtoReflect.Descriptor instead.
func (*EnablePeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{14}
}

func (x *EnablePeerRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

	Address       string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Communication string `protobuf:"bytes,2,opt,name=communication,proto3" json:"communication,omitempty"`
}

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

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

func (*DisablePeerRequest) ProtoMessage() {}

func (x *DisablePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DisablePeerRequest.ProtoReflect.Descriptor instead.
func (*DisablePeerRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{15}
}

func (x *DisablePeerRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *DisablePeerRequest) GetCommunication() string {
	if x != nil {
		return x.Communication
	}
	return ""
}

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

	PeerGroup *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
}

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

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

func (*AddPeerGroupRequest) ProtoMessage() {}

func (x *AddPeerGroupRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPeerGroupRequest.ProtoReflect.Descriptor instead.
func (*AddPeerGroupRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{16}
}

func (x *AddPeerGroupRequest) GetPeerGroup() *PeerGroup {
	if x != nil {
		return x.PeerGroup
	}
	return nil
}

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

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

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

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

func (*DeletePeerGroupRequest) ProtoMessage() {}

func (x *DeletePeerGroupRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeletePeerGroupRequest.ProtoReflect.Descriptor instead.
func (*DeletePeerGroupRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{17}
}

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

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

	PeerGroup     *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
	DoSoftResetIn bool       `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn,proto3" json:"do_soft_reset_in,omitempty"`
}

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

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

func (*UpdatePeerGroupRequest) ProtoMessage() {}

func (x *UpdatePeerGroupRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 UpdatePeerGroupRequest.ProtoReflect.Descriptor instead.
func (*UpdatePeerGroupRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{18}
}

func (x *UpdatePeerGroupRequest) GetPeerGroup() *PeerGroup {
	if x != nil {
		return x.PeerGroup
	}
	return nil
}

func (x *UpdatePeerGroupRequest) GetDoSoftResetIn() bool {
	if x != nil {
		return x.DoSoftResetIn
	}
	return false
}

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

	NeedsSoftResetIn bool `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn,proto3" json:"needs_soft_reset_in,omitempty"`
}

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

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

func (*UpdatePeerGroupResponse) ProtoMessage() {}

func (x *UpdatePeerGroupResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 UpdatePeerGroupResponse.ProtoReflect.Descriptor instead.
func (*UpdatePeerGroupResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{19}
}

func (x *UpdatePeerGroupResponse) GetNeedsSoftResetIn() bool {
	if x != nil {
		return x.NeedsSoftResetIn
	}
	return false
}

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

	PeerGroupName string `protobuf:"bytes,1,opt,name=peer_group_name,json=peerGroupName,proto3" json:"peer_group_name,omitempty"`
}

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

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

func (*ListPeerGroupRequest) ProtoMessage() {}

func (x *ListPeerGroupRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPeerGroupRequest.ProtoReflect.Descriptor instead.
func (*ListPeerGroupRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{20}
}

func (x *ListPeerGroupRequest) GetPeerGroupName() string {
	if x != nil {
		return x.PeerGroupName
	}
	return ""
}

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

	PeerGroup *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
}

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

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

func (*ListPeerGroupResponse) ProtoMessage() {}

func (x *ListPeerGroupResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPeerGroupResponse.ProtoReflect.Descriptor instead.
func (*ListPeerGroupResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{21}
}

func (x *ListPeerGroupResponse) GetPeerGroup() *PeerGroup {
	if x != nil {
		return x.PeerGroup
	}
	return nil
}

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

	DynamicNeighbor *DynamicNeighbor `protobuf:"bytes,1,opt,name=dynamic_neighbor,json=dynamicNeighbor,proto3" json:"dynamic_neighbor,omitempty"`
}

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

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

func (*AddDynamicNeighborRequest) ProtoMessage() {}

func (x *AddDynamicNeighborRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddDynamicNeighborRequest.ProtoReflect.Descriptor instead.
func (*AddDynamicNeighborRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{22}
}

func (x *AddDynamicNeighborRequest) GetDynamicNeighbor() *DynamicNeighbor {
	if x != nil {
		return x.DynamicNeighbor
	}
	return nil
}

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

	Prefix    string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
	PeerGroup string `protobuf:"bytes,2,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
}

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

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

func (*DeleteDynamicNeighborRequest) ProtoMessage() {}

func (x *DeleteDynamicNeighborRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeleteDynamicNeighborRequest.ProtoReflect.Descriptor instead.
func (*DeleteDynamicNeighborRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{23}
}

func (x *DeleteDynamicNeighborRequest) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

func (x *DeleteDynamicNeighborRequest) GetPeerGroup() string {
	if x != nil {
		return x.PeerGroup
	}
	return ""
}

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

	PeerGroup string `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
}

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

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

func (*ListDynamicNeighborRequest) ProtoMessage() {}

func (x *ListDynamicNeighborRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListDynamicNeighborRequest.ProtoReflect.Descriptor instead.
func (*ListDynamicNeighborRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{24}
}

func (x *ListDynamicNeighborRequest) GetPeerGroup() string {
	if x != nil {
		return x.PeerGroup
	}
	return ""
}

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

	DynamicNeighbor *DynamicNeighbor `protobuf:"bytes,1,opt,name=dynamic_neighbor,json=dynamicNeighbor,proto3" json:"dynamic_neighbor,omitempty"`
}

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

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

func (*ListDynamicNeighborResponse) ProtoMessage() {}

func (x *ListDynamicNeighborResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListDynamicNeighborResponse.ProtoReflect.Descriptor instead.
func (*ListDynamicNeighborResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{25}
}

func (x *ListDynamicNeighborResponse) GetDynamicNeighbor() *DynamicNeighbor {
	if x != nil {
		return x.DynamicNeighbor
	}
	return nil
}

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

	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,proto3,enum=apipb.TableType" json:"table_type,omitempty"`
	VrfId     string    `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId,proto3" json:"vrf_id,omitempty"`
	Path      *Path     `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
}

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

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

func (*AddPathRequest) ProtoMessage() {}

func (x *AddPathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPathRequest.ProtoReflect.Descriptor instead.
func (*AddPathRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{26}
}

func (x *AddPathRequest) GetTableType() TableType {
	if x != nil {
		return x.TableType
	}
	return TableType_GLOBAL
}

func (x *AddPathRequest) GetVrfId() string {
	if x != nil {
		return x.VrfId
	}
	return ""
}

func (x *AddPathRequest) GetPath() *Path {
	if x != nil {
		return x.Path
	}
	return nil
}

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

	Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
}

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

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

func (*AddPathResponse) ProtoMessage() {}

func (x *AddPathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPathResponse.ProtoReflect.Descriptor instead.
func (*AddPathResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{27}
}

func (x *AddPathResponse) GetUuid() []byte {
	if x != nil {
		return x.Uuid
	}
	return nil
}

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

	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,proto3,enum=apipb.TableType" json:"table_type,omitempty"`
	VrfId     string    `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId,proto3" json:"vrf_id,omitempty"`
	Family    *Family   `protobuf:"bytes,3,opt,name=family,proto3" json:"family,omitempty"`
	Path      *Path     `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	Uuid      []byte    `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"`
}

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

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

func (*DeletePathRequest) ProtoMessage() {}

func (x *DeletePathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeletePathRequest.ProtoReflect.Descriptor instead.
func (*DeletePathRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{28}
}

func (x *DeletePathRequest) GetTableType() TableType {
	if x != nil {
		return x.TableType
	}
	return TableType_GLOBAL
}

func (x *DeletePathRequest) GetVrfId() string {
	if x != nil {
		return x.VrfId
	}
	return ""
}

func (x *DeletePathRequest) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

func (x *DeletePathRequest) GetPath() *Path {
	if x != nil {
		return x.Path
	}
	return nil
}

func (x *DeletePathRequest) GetUuid() []byte {
	if x != nil {
		return x.Uuid
	}
	return nil
}

// API representation of table.LookupPrefix
type TableLookupPrefix struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Prefix string                 `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
	Type   TableLookupPrefix_Type `protobuf:"varint,2,opt,name=type,proto3,enum=apipb.TableLookupPrefix_Type" json:"type,omitempty"`
	Rd     string                 `protobuf:"bytes,3,opt,name=rd,proto3" json:"rd,omitempty"`
}

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

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

func (*TableLookupPrefix) ProtoMessage() {}

func (x *TableLookupPrefix) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 TableLookupPrefix.ProtoReflect.Descriptor instead.
func (*TableLookupPrefix) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{29}
}

func (x *TableLookupPrefix) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

func (x *TableLookupPrefix) GetType() TableLookupPrefix_Type {
	if x != nil {
		return x.Type
	}
	return TableLookupPrefix_EXACT
}

func (x *TableLookupPrefix) GetRd() string {
	if x != nil {
		return x.Rd
	}
	return ""
}

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

	TableType             TableType                `protobuf:"varint,1,opt,name=table_type,json=tableType,proto3,enum=apipb.TableType" json:"table_type,omitempty"`
	Name                  string                   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Family                *Family                  `protobuf:"bytes,3,opt,name=family,proto3" json:"family,omitempty"`
	Prefixes              []*TableLookupPrefix     `protobuf:"bytes,4,rep,name=prefixes,proto3" json:"prefixes,omitempty"`
	SortType              ListPathRequest_SortType `protobuf:"varint,5,opt,name=sort_type,json=sortType,proto3,enum=apipb.ListPathRequest_SortType" json:"sort_type,omitempty"`
	EnableFiltered        bool                     `protobuf:"varint,6,opt,name=enable_filtered,json=enableFiltered,proto3" json:"enable_filtered,omitempty"`
	EnableNlriBinary      bool                     `protobuf:"varint,7,opt,name=enable_nlri_binary,json=enableNlriBinary,proto3" json:"enable_nlri_binary,omitempty"`
	EnableAttributeBinary bool                     `protobuf:"varint,8,opt,name=enable_attribute_binary,json=enableAttributeBinary,proto3" json:"enable_attribute_binary,omitempty"`
	// enable_only_binary == true means that only nlri_binary and pattrs_binary
	// will be used instead of nlri and pattrs for each Path in ListPathResponse.
	EnableOnlyBinary bool `protobuf:"varint,9,opt,name=enable_only_binary,json=enableOnlyBinary,proto3" json:"enable_only_binary,omitempty"`
	// max ammount of paths to be allocated, unlimited by default
	BatchSize uint64 `protobuf:"varint,10,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
}

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

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

func (*ListPathRequest) ProtoMessage() {}

func (x *ListPathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPathRequest.ProtoReflect.Descriptor instead.
func (*ListPathRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{30}
}

func (x *ListPathRequest) GetTableType() TableType {
	if x != nil {
		return x.TableType
	}
	return TableType_GLOBAL
}

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

func (x *ListPathRequest) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

func (x *ListPathRequest) GetPrefixes() []*TableLookupPrefix {
	if x != nil {
		return x.Prefixes
	}
	return nil
}

func (x *ListPathRequest) GetSortType() ListPathRequest_SortType {
	if x != nil {
		return x.SortType
	}
	return ListPathRequest_NONE
}

func (x *ListPathRequest) GetEnableFiltered() bool {
	if x != nil {
		return x.EnableFiltered
	}
	return false
}

func (x *ListPathRequest) GetEnableNlriBinary() bool {
	if x != nil {
		return x.EnableNlriBinary
	}
	return false
}

func (x *ListPathRequest) GetEnableAttributeBinary() bool {
	if x != nil {
		return x.EnableAttributeBinary
	}
	return false
}

func (x *ListPathRequest) GetEnableOnlyBinary() bool {
	if x != nil {
		return x.EnableOnlyBinary
	}
	return false
}

func (x *ListPathRequest) GetBatchSize() uint64 {
	if x != nil {
		return x.BatchSize
	}
	return 0
}

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

	Destination *Destination `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"`
}

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

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

func (*ListPathResponse) ProtoMessage() {}

func (x *ListPathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPathResponse.ProtoReflect.Descriptor instead.
func (*ListPathResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{31}
}

func (x *ListPathResponse) GetDestination() *Destination {
	if x != nil {
		return x.Destination
	}
	return nil
}

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

	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,proto3,enum=apipb.TableType" json:"table_type,omitempty"`
	VrfId     string    `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId,proto3" json:"vrf_id,omitempty"`
	Paths     []*Path   `protobuf:"bytes,3,rep,name=paths,proto3" json:"paths,omitempty"`
}

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

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

func (*AddPathStreamRequest) ProtoMessage() {}

func (x *AddPathStreamRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPathStreamRequest.ProtoReflect.Descriptor instead.
func (*AddPathStreamRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{32}
}

func (x *AddPathStreamRequest) GetTableType() TableType {
	if x != nil {
		return x.TableType
	}
	return TableType_GLOBAL
}

func (x *AddPathStreamRequest) GetVrfId() string {
	if x != nil {
		return x.VrfId
	}
	return ""
}

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

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

	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,proto3,enum=apipb.TableType" json:"table_type,omitempty"`
	Family    *Family   `protobuf:"bytes,2,opt,name=family,proto3" json:"family,omitempty"`
	Name      string    `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*GetTableRequest) ProtoMessage() {}

func (x *GetTableRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 GetTableRequest.ProtoReflect.Descriptor instead.
func (*GetTableRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{33}
}

func (x *GetTableRequest) GetTableType() TableType {
	if x != nil {
		return x.TableType
	}
	return TableType_GLOBAL
}

func (x *GetTableRequest) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

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

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

	NumDestination uint64 `protobuf:"varint,1,opt,name=num_destination,json=numDestination,proto3" json:"num_destination,omitempty"`
	NumPath        uint64 `protobuf:"varint,2,opt,name=num_path,json=numPath,proto3" json:"num_path,omitempty"`
	NumAccepted    uint64 `protobuf:"varint,3,opt,name=num_accepted,json=numAccepted,proto3" json:"num_accepted,omitempty"` // only meaningful when type == ADJ_IN
}

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

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

func (*GetTableResponse) ProtoMessage() {}

func (x *GetTableResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 GetTableResponse.ProtoReflect.Descriptor instead.
func (*GetTableResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{34}
}

func (x *GetTableResponse) GetNumDestination() uint64 {
	if x != nil {
		return x.NumDestination
	}
	return 0
}

func (x *GetTableResponse) GetNumPath() uint64 {
	if x != nil {
		return x.NumPath
	}
	return 0
}

func (x *GetTableResponse) GetNumAccepted() uint64 {
	if x != nil {
		return x.NumAccepted
	}
	return 0
}

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

	Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf,proto3" json:"vrf,omitempty"`
}

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

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

func (*AddVrfRequest) ProtoMessage() {}

func (x *AddVrfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddVrfRequest.ProtoReflect.Descriptor instead.
func (*AddVrfRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{35}
}

func (x *AddVrfRequest) GetVrf() *Vrf {
	if x != nil {
		return x.Vrf
	}
	return nil
}

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

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

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

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

func (*DeleteVrfRequest) ProtoMessage() {}

func (x *DeleteVrfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeleteVrfRequest.ProtoReflect.Descriptor instead.
func (*DeleteVrfRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{36}
}

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

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

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

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

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

func (*ListVrfRequest) ProtoMessage() {}

func (x *ListVrfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListVrfRequest.ProtoReflect.Descriptor instead.
func (*ListVrfRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{37}
}

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

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

	Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf,proto3" json:"vrf,omitempty"`
}

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

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

func (*ListVrfResponse) ProtoMessage() {}

func (x *ListVrfResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListVrfResponse.ProtoReflect.Descriptor instead.
func (*ListVrfResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{38}
}

func (x *ListVrfResponse) GetVrf() *Vrf {
	if x != nil {
		return x.Vrf
	}
	return nil
}

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

	Policy *Policy `protobuf:"bytes,1,opt,name=policy,proto3" json:"policy,omitempty"`
	// if this flag is set, gobgpd won't define new statements
	// but refer existing statements using statement's names in this arguments.
	ReferExistingStatements bool `protobuf:"varint,2,opt,name=refer_existing_statements,json=referExistingStatements,proto3" json:"refer_existing_statements,omitempty"`
}

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

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

func (*AddPolicyRequest) ProtoMessage() {}

func (x *AddPolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPolicyRequest.ProtoReflect.Descriptor instead.
func (*AddPolicyRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{39}
}

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

func (x *AddPolicyRequest) GetReferExistingStatements() bool {
	if x != nil {
		return x.ReferExistingStatements
	}
	return false
}

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

	Policy *Policy `protobuf:"bytes,1,opt,name=policy,proto3" json:"policy,omitempty"`
	// if this flag is set, gobgpd won't delete any statements
	// even if some statements get not used by any policy by this operation.
	PreserveStatements bool `protobuf:"varint,2,opt,name=preserve_statements,json=preserveStatements,proto3" json:"preserve_statements,omitempty"`
	All                bool `protobuf:"varint,3,opt,name=all,proto3" json:"all,omitempty"`
}

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

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

func (*DeletePolicyRequest) ProtoMessage() {}

func (x *DeletePolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeletePolicyRequest.ProtoReflect.Descriptor instead.
func (*DeletePolicyRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{40}
}

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

func (x *DeletePolicyRequest) GetPreserveStatements() bool {
	if x != nil {
		return x.PreserveStatements
	}
	return false
}

func (x *DeletePolicyRequest) GetAll() bool {
	if x != nil {
		return x.All
	}
	return false
}

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

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

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

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

func (*ListPolicyRequest) ProtoMessage() {}

func (x *ListPolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPolicyRequest.ProtoReflect.Descriptor instead.
func (*ListPolicyRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{41}
}

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

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

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

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

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

func (*ListPolicyResponse) ProtoMessage() {}

func (x *ListPolicyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPolicyResponse.ProtoReflect.Descriptor instead.
func (*ListPolicyResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{42}
}

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

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

	DefinedSets []*DefinedSet       `protobuf:"bytes,1,rep,name=defined_sets,json=definedSets,proto3" json:"defined_sets,omitempty"`
	Policies    []*Policy           `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty"`
	Assignments []*PolicyAssignment `protobuf:"bytes,3,rep,name=assignments,proto3" json:"assignments,omitempty"`
}

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

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

func (*SetPoliciesRequest) ProtoMessage() {}

func (x *SetPoliciesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 SetPoliciesRequest.ProtoReflect.Descriptor instead.
func (*SetPoliciesRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{43}
}

func (x *SetPoliciesRequest) GetDefinedSets() []*DefinedSet {
	if x != nil {
		return x.DefinedSets
	}
	return nil
}

func (x *SetPoliciesRequest) GetPolicies() []*Policy {
	if x != nil {
		return x.Policies
	}
	return nil
}

func (x *SetPoliciesRequest) GetAssignments() []*PolicyAssignment {
	if x != nil {
		return x.Assignments
	}
	return nil
}

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

	DefinedSet *DefinedSet `protobuf:"bytes,1,opt,name=defined_set,json=definedSet,proto3" json:"defined_set,omitempty"`
	Replace    bool        `protobuf:"varint,2,opt,name=replace,proto3" json:"replace,omitempty"`
}

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

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

func (*AddDefinedSetRequest) ProtoMessage() {}

func (x *AddDefinedSetRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddDefinedSetRequest.ProtoReflect.Descriptor instead.
func (*AddDefinedSetRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{44}
}

func (x *AddDefinedSetRequest) GetDefinedSet() *DefinedSet {
	if x != nil {
		return x.DefinedSet
	}
	return nil
}

func (x *AddDefinedSetRequest) GetReplace() bool {
	if x != nil {
		return x.Replace
	}
	return false
}

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

	DefinedSet *DefinedSet `protobuf:"bytes,1,opt,name=defined_set,json=definedSet,proto3" json:"defined_set,omitempty"`
	All        bool        `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
}

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

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

func (*DeleteDefinedSetRequest) ProtoMessage() {}

func (x *DeleteDefinedSetRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeleteDefinedSetRequest.ProtoReflect.Descriptor instead.
func (*DeleteDefinedSetRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{45}
}

func (x *DeleteDefinedSetRequest) GetDefinedSet() *DefinedSet {
	if x != nil {
		return x.DefinedSet
	}
	return nil
}

func (x *DeleteDefinedSetRequest) GetAll() bool {
	if x != nil {
		return x.All
	}
	return false
}

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

	DefinedType DefinedType `protobuf:"varint,1,opt,name=defined_type,json=definedType,proto3,enum=apipb.DefinedType" json:"defined_type,omitempty"`
	Name        string      `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*ListDefinedSetRequest) ProtoMessage() {}

func (x *ListDefinedSetRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListDefinedSetRequest.ProtoReflect.Descriptor instead.
func (*ListDefinedSetRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{46}
}

func (x *ListDefinedSetRequest) GetDefinedType() DefinedType {
	if x != nil {
		return x.DefinedType
	}
	return DefinedType_PREFIX
}

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

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

	DefinedSet *DefinedSet `protobuf:"bytes,1,opt,name=defined_set,json=definedSet,proto3" json:"defined_set,omitempty"`
}

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

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

func (*ListDefinedSetResponse) ProtoMessage() {}

func (x *ListDefinedSetResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListDefinedSetResponse.ProtoReflect.Descriptor instead.
func (*ListDefinedSetResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{47}
}

func (x *ListDefinedSetResponse) GetDefinedSet() *DefinedSet {
	if x != nil {
		return x.DefinedSet
	}
	return nil
}

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

	Statement *Statement `protobuf:"bytes,1,opt,name=statement,proto3" json:"statement,omitempty"`
}

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

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

func (*AddStatementRequest) ProtoMessage() {}

func (x *AddStatementRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddStatementRequest.ProtoReflect.Descriptor instead.
func (*AddStatementRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{48}
}

func (x *AddStatementRequest) GetStatement() *Statement {
	if x != nil {
		return x.Statement
	}
	return nil
}

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

	Statement *Statement `protobuf:"bytes,1,opt,name=statement,proto3" json:"statement,omitempty"`
	All       bool       `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
}

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

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

func (*DeleteStatementRequest) ProtoMessage() {}

func (x *DeleteStatementRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeleteStatementRequest.ProtoReflect.Descriptor instead.
func (*DeleteStatementRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{49}
}

func (x *DeleteStatementRequest) GetStatement() *Statement {
	if x != nil {
		return x.Statement
	}
	return nil
}

func (x *DeleteStatementRequest) GetAll() bool {
	if x != nil {
		return x.All
	}
	return false
}

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

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

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

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

func (*ListStatementRequest) ProtoMessage() {}

func (x *ListStatementRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListStatementRequest.ProtoReflect.Descriptor instead.
func (*ListStatementRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{50}
}

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

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

	Statement *Statement `protobuf:"bytes,1,opt,name=statement,proto3" json:"statement,omitempty"`
}

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

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

func (*ListStatementResponse) ProtoMessage() {}

func (x *ListStatementResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListStatementResponse.ProtoReflect.Descriptor instead.
func (*ListStatementResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{51}
}

func (x *ListStatementResponse) GetStatement() *Statement {
	if x != nil {
		return x.Statement
	}
	return nil
}

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

	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
}

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

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

func (*AddPolicyAssignmentRequest) ProtoMessage() {}

func (x *AddPolicyAssignmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddPolicyAssignmentRequest.ProtoReflect.Descriptor instead.
func (*AddPolicyAssignmentRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{52}
}

func (x *AddPolicyAssignmentRequest) GetAssignment() *PolicyAssignment {
	if x != nil {
		return x.Assignment
	}
	return nil
}

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

	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
	All        bool              `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
}

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

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

func (*DeletePolicyAssignmentRequest) ProtoMessage() {}

func (x *DeletePolicyAssignmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeletePolicyAssignmentRequest.ProtoReflect.Descriptor instead.
func (*DeletePolicyAssignmentRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{53}
}

func (x *DeletePolicyAssignmentRequest) GetAssignment() *PolicyAssignment {
	if x != nil {
		return x.Assignment
	}
	return nil
}

func (x *DeletePolicyAssignmentRequest) GetAll() bool {
	if x != nil {
		return x.All
	}
	return false
}

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

	Name      string          `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Direction PolicyDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=apipb.PolicyDirection" json:"direction,omitempty"`
}

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

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

func (*ListPolicyAssignmentRequest) ProtoMessage() {}

func (x *ListPolicyAssignmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPolicyAssignmentRequest.ProtoReflect.Descriptor instead.
func (*ListPolicyAssignmentRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{54}
}

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

func (x *ListPolicyAssignmentRequest) GetDirection() PolicyDirection {
	if x != nil {
		return x.Direction
	}
	return PolicyDirection_UNKNOWN
}

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

	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
}

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

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

func (*ListPolicyAssignmentResponse) ProtoMessage() {}

func (x *ListPolicyAssignmentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListPolicyAssignmentResponse.ProtoReflect.Descriptor instead.
func (*ListPolicyAssignmentResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{55}
}

func (x *ListPolicyAssignmentResponse) GetAssignment() *PolicyAssignment {
	if x != nil {
		return x.Assignment
	}
	return nil
}

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

	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
}

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

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

func (*SetPolicyAssignmentRequest) ProtoMessage() {}

func (x *SetPolicyAssignmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 SetPolicyAssignmentRequest.ProtoReflect.Descriptor instead.
func (*SetPolicyAssignmentRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{56}
}

func (x *SetPolicyAssignmentRequest) GetAssignment() *PolicyAssignment {
	if x != nil {
		return x.Assignment
	}
	return nil
}

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

	Address  string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port     uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	Lifetime int64  `protobuf:"varint,3,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
}

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

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

func (*AddRpkiRequest) ProtoMessage() {}

func (x *AddRpkiRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddRpkiRequest.ProtoReflect.Descriptor instead.
func (*AddRpkiRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{57}
}

func (x *AddRpkiRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

func (x *AddRpkiRequest) GetLifetime() int64 {
	if x != nil {
		return x.Lifetime
	}
	return 0
}

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

	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

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

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

func (*DeleteRpkiRequest) ProtoMessage() {}

func (x *DeleteRpkiRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeleteRpkiRequest.ProtoReflect.Descriptor instead.
func (*DeleteRpkiRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{58}
}

func (x *DeleteRpkiRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

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

	Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
}

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

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

func (*ListRpkiRequest) ProtoMessage() {}

func (x *ListRpkiRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListRpkiRequest.ProtoReflect.Descriptor instead.
func (*ListRpkiRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{59}
}

func (x *ListRpkiRequest) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

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

	Server *Rpki `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
}

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

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

func (*ListRpkiResponse) ProtoMessage() {}

func (x *ListRpkiResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListRpkiResponse.ProtoReflect.Descriptor instead.
func (*ListRpkiResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{60}
}

func (x *ListRpkiResponse) GetServer() *Rpki {
	if x != nil {
		return x.Server
	}
	return nil
}

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

	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

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

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

func (*EnableRpkiRequest) ProtoMessage() {}

func (x *EnableRpkiRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 EnableRpkiRequest.ProtoReflect.Descriptor instead.
func (*EnableRpkiRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{61}
}

func (x *EnableRpkiRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

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

	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

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

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

func (*DisableRpkiRequest) ProtoMessage() {}

func (x *DisableRpkiRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DisableRpkiRequest.ProtoReflect.Descriptor instead.
func (*DisableRpkiRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{62}
}

func (x *DisableRpkiRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

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

	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	Soft    bool   `protobuf:"varint,3,opt,name=soft,proto3" json:"soft,omitempty"`
}

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

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

func (*ResetRpkiRequest) ProtoMessage() {}

func (x *ResetRpkiRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ResetRpkiRequest.ProtoReflect.Descriptor instead.
func (*ResetRpkiRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{63}
}

func (x *ResetRpkiRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

func (x *ResetRpkiRequest) GetSoft() bool {
	if x != nil {
		return x.Soft
	}
	return false
}

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

	Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
}

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

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

func (*ListRpkiTableRequest) ProtoMessage() {}

func (x *ListRpkiTableRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListRpkiTableRequest.ProtoReflect.Descriptor instead.
func (*ListRpkiTableRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{64}
}

func (x *ListRpkiTableRequest) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

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

	Roa *Roa `protobuf:"bytes,1,opt,name=roa,proto3" json:"roa,omitempty"`
}

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

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

func (*ListRpkiTableResponse) ProtoMessage() {}

func (x *ListRpkiTableResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 ListRpkiTableResponse.ProtoReflect.Descriptor instead.
func (*ListRpkiTableResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{65}
}

func (x *ListRpkiTableResponse) GetRoa() *Roa {
	if x != nil {
		return x.Roa
	}
	return nil
}

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

	Url                  string   `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	RouteTypes           []string `protobuf:"bytes,2,rep,name=route_types,json=routeTypes,proto3" json:"route_types,omitempty"`
	Version              uint32   `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
	NexthopTriggerEnable bool     `protobuf:"varint,4,opt,name=nexthop_trigger_enable,json=nexthopTriggerEnable,proto3" json:"nexthop_trigger_enable,omitempty"`
	NexthopTriggerDelay  uint32   `protobuf:"varint,5,opt,name=nexthop_trigger_delay,json=nexthopTriggerDelay,proto3" json:"nexthop_trigger_delay,omitempty"`
	MplsLabelRangeSize   uint32   `protobuf:"varint,6,opt,name=mpls_label_range_size,json=mplsLabelRangeSize,proto3" json:"mpls_label_range_size,omitempty"`
	SoftwareName         string   `protobuf:"bytes,7,opt,name=software_name,json=softwareName,proto3" json:"software_name,omitempty"`
}

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

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

func (*EnableZebraRequest) ProtoMessage() {}

func (x *EnableZebraRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 EnableZebraRequest.ProtoReflect.Descriptor instead.
func (*EnableZebraRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{66}
}

func (x *EnableZebraRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *EnableZebraRequest) GetRouteTypes() []string {
	if x != nil {
		return x.RouteTypes
	}
	return nil
}

func (x *EnableZebraRequest) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *EnableZebraRequest) GetNexthopTriggerEnable() bool {
	if x != nil {
		return x.NexthopTriggerEnable
	}
	return false
}

func (x *EnableZebraRequest) GetNexthopTriggerDelay() uint32 {
	if x != nil {
		return x.NexthopTriggerDelay
	}
	return 0
}

func (x *EnableZebraRequest) GetMplsLabelRangeSize() uint32 {
	if x != nil {
		return x.MplsLabelRangeSize
	}
	return 0
}

func (x *EnableZebraRequest) GetSoftwareName() string {
	if x != nil {
		return x.SoftwareName
	}
	return ""
}

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

	Type             EnableMrtRequest_DumpType `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.EnableMrtRequest_DumpType" json:"type,omitempty"`
	Filename         string                    `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"`
	DumpInterval     uint64                    `protobuf:"varint,3,opt,name=dump_interval,json=dumpInterval,proto3" json:"dump_interval,omitempty"`
	RotationInterval uint64                    `protobuf:"varint,4,opt,name=rotation_interval,json=rotationInterval,proto3" json:"rotation_interval,omitempty"`
}

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

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

func (*EnableMrtRequest) ProtoMessage() {}

func (x *EnableMrtRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 EnableMrtRequest.ProtoReflect.Descriptor instead.
func (*EnableMrtRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{67}
}

func (x *EnableMrtRequest) GetType() EnableMrtRequest_DumpType {
	if x != nil {
		return x.Type
	}
	return EnableMrtRequest_UPDATES
}

func (x *EnableMrtRequest) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

func (x *EnableMrtRequest) GetDumpInterval() uint64 {
	if x != nil {
		return x.DumpInterval
	}
	return 0
}

func (x *EnableMrtRequest) GetRotationInterval() uint64 {
	if x != nil {
		return x.RotationInterval
	}
	return 0
}

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

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

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

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

func (*DisableMrtRequest) ProtoMessage() {}

func (x *DisableMrtRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DisableMrtRequest.ProtoReflect.Descriptor instead.
func (*DisableMrtRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{68}
}

func (x *DisableMrtRequest) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

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

	Address           string                         `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port              uint32                         `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	Policy            AddBmpRequest_MonitoringPolicy `protobuf:"varint,3,opt,name=policy,proto3,enum=apipb.AddBmpRequest_MonitoringPolicy" json:"policy,omitempty"`
	StatisticsTimeout int32                          `protobuf:"varint,4,opt,name=StatisticsTimeout,proto3" json:"StatisticsTimeout,omitempty"`
	SysName           string                         `protobuf:"bytes,5,opt,name=SysName,proto3" json:"SysName,omitempty"`
	SysDescr          string                         `protobuf:"bytes,6,opt,name=SysDescr,proto3" json:"SysDescr,omitempty"`
}

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

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

func (*AddBmpRequest) ProtoMessage() {}

func (x *AddBmpRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 AddBmpRequest.ProtoReflect.Descriptor instead.
func (*AddBmpRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{69}
}

func (x *AddBmpRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

func (x *AddBmpRequest) GetPolicy() AddBmpRequest_MonitoringPolicy {
	if x != nil {
		return x.Policy
	}
	return AddBmpRequest_PRE
}

func (x *AddBmpRequest) GetStatisticsTimeout() int32 {
	if x != nil {
		return x.StatisticsTimeout
	}
	return 0
}

func (x *AddBmpRequest) GetSysName() string {
	if x != nil {
		return x.SysName
	}
	return ""
}

func (x *AddBmpRequest) GetSysDescr() string {
	if x != nil {
		return x.SysDescr
	}
	return ""
}

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

	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

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

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

func (*DeleteBmpRequest) ProtoMessage() {}

func (x *DeleteBmpRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 DeleteBmpRequest.ProtoReflect.Descriptor instead.
func (*DeleteBmpRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{70}
}

func (x *DeleteBmpRequest) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

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

func (x *ListBmpRequest) Reset() {
	*x = ListBmpRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListBmpRequest) ProtoMessage() {}

func (x *ListBmpRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[71]
	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 ListBmpRequest.ProtoReflect.Descriptor instead.
func (*ListBmpRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{71}
}

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

	Station *ListBmpResponse_BmpStation `protobuf:"bytes,1,opt,name=station,proto3" json:"station,omitempty"`
}

func (x *ListBmpResponse) Reset() {
	*x = ListBmpResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListBmpResponse) ProtoMessage() {}

func (x *ListBmpResponse) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[72]
	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 ListBmpResponse.ProtoReflect.Descriptor instead.
func (*ListBmpResponse) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{72}
}

func (x *ListBmpResponse) GetStation() *ListBmpResponse_BmpStation {
	if x != nil {
		return x.Station
	}
	return nil
}

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

	Afi  Family_Afi  `protobuf:"varint,1,opt,name=afi,proto3,enum=apipb.Family_Afi" json:"afi,omitempty"`
	Safi Family_Safi `protobuf:"varint,2,opt,name=safi,proto3,enum=apipb.Family_Safi" json:"safi,omitempty"`
}

func (x *Family) Reset() {
	*x = Family{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Family) ProtoMessage() {}

func (x *Family) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[73]
	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 Family.ProtoReflect.Descriptor instead.
func (*Family) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{73}
}

func (x *Family) GetAfi() Family_Afi {
	if x != nil {
		return x.Afi
	}
	return Family_AFI_UNKNOWN
}

func (x *Family) GetSafi() Family_Safi {
	if x != nil {
		return x.Safi
	}
	return Family_SAFI_UNKNOWN
}

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

	State           Validation_State  `protobuf:"varint,1,opt,name=state,proto3,enum=apipb.Validation_State" json:"state,omitempty"`
	Reason          Validation_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=apipb.Validation_Reason" json:"reason,omitempty"`
	Matched         []*Roa            `protobuf:"bytes,3,rep,name=matched,proto3" json:"matched,omitempty"`
	UnmatchedAsn    []*Roa            `protobuf:"bytes,4,rep,name=unmatched_asn,json=unmatchedAsn,proto3" json:"unmatched_asn,omitempty"`
	UnmatchedLength []*Roa            `protobuf:"bytes,5,rep,name=unmatched_length,json=unmatchedLength,proto3" json:"unmatched_length,omitempty"`
}

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

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

func (*Validation) ProtoMessage() {}

func (x *Validation) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_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 Validation.ProtoReflect.Descriptor instead.
func (*Validation) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{74}
}

func (x *Validation) GetState() Validation_State {
	if x != nil {
		return x.State
	}
	return Validation_STATE_NONE
}

func (x *Validation) GetReason() Validation_Reason {
	if x != nil {
		return x.Reason
	}
	return Validation_REASON_NONE
}

func (x *Validation) GetMatched() []*Roa {
	if x != nil {
		return x.Matched
	}
	return nil
}

func (x *Validation) GetUnmatchedAsn() []*Roa {
	if x != nil {
		return x.UnmatchedAsn
	}
	return nil
}

func (x *Validation) GetUnmatchedLength() []*Roa {
	if x != nil {
		return x.UnmatchedLength
	}
	return nil
}

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

	// One of the following defined in "api/attribute.proto":
	// - IPAddressPrefix
	// - LabeledIPAddressPrefix
	// - EncapsulationNLRI
	// - VPLSNLRI
	// - EVPNEthernetAutoDiscoveryRoute
	// - EVPNMACIPAdvertisementRoute
	// - EVPNInclusiveMulticastEthernetTagRoute
	// - EVPNEthernetSegmentRoute
	// - EVPNIPPrefixRoute
	// - EVPNIPMSIRoute
	// - LabeledVPNIPAddressPrefix
	// - RouteTargetMembershipNLRI
	// - FlowSpecNLRI
	// - VPNFlowSpecNLRI
	// - OpaqueNLRI
	// - LsAddrPrefix
	// - SRPolicyNLRI
	// - MUPInterworkSegmentDiscoveryRoute
	// - MUPDirectSegmentDiscoveryRoute
	// - MUPType1SessionTransformedRoute
	// - MUPType2SessionTransformedRoute
	Nlri *anypb.Any `protobuf:"bytes,1,opt,name=nlri,proto3" json:"nlri,omitempty"`
	// Each attribute must be one of *Attribute defined in
	// "api/attribute.proto".
	Pattrs             []*anypb.Any           `protobuf:"bytes,2,rep,name=pattrs,proto3" json:"pattrs,omitempty"`
	Age                *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=age,proto3" json:"age,omitempty"`
	Best               bool                   `protobuf:"varint,4,opt,name=best,proto3" json:"best,omitempty"`
	IsWithdraw         bool                   `protobuf:"varint,5,opt,name=is_withdraw,json=isWithdraw,proto3" json:"is_withdraw,omitempty"`
	Validation         *Validation            `protobuf:"bytes,7,opt,name=validation,proto3" json:"validation,omitempty"`
	NoImplicitWithdraw bool                   `protobuf:"varint,8,opt,name=no_implicit_withdraw,json=noImplicitWithdraw,proto3" json:"no_implicit_withdraw,omitempty"`
	Family             *Family                `protobuf:"bytes,9,opt,name=family,proto3" json:"family,omitempty"`
	SourceAsn          uint32                 `protobuf:"varint,10,opt,name=source_asn,json=sourceAsn,proto3" json:"source_asn,omitempty"`
	SourceId           string                 `protobuf:"bytes,11,opt,name=source_id,json=sourceId,proto3" json:"source_id,omitempty"`
	Filtered           bool                   `protobuf:"varint,12,opt,name=filtered,proto3" json:"filtered,omitempty"`
	Stale              bool                   `protobuf:"varint,13,opt,name=stale,proto3" json:"stale,omitempty"`
	IsFromExternal     bool                   `protobuf:"varint,14,opt,name=is_from_external,json=isFromExternal,proto3" json:"is_from_external,omitempty"`
	NeighborIp         string                 `protobuf:"bytes,15,opt,name=neighbor_ip,json=neighborIp,proto3" json:"neighbor_ip,omitempty"`
	Uuid               []byte                 `protobuf:"bytes,16,opt,name=uuid,proto3" json:"uuid,omitempty"` // only paths installed by AddPath API have this
	IsNexthopInvalid   bool                   `protobuf:"varint,17,opt,name=is_nexthop_invalid,json=isNexthopInvalid,proto3" json:"is_nexthop_invalid,omitempty"`
	Identifier         uint32                 `protobuf:"varint,18,opt,name=identifier,proto3" json:"identifier,omitempty"`
	LocalIdentifier    uint32                 `protobuf:"varint,19,opt,name=local_identifier,json=localIdentifier,proto3" json:"local_identifier,omitempty"`
	NlriBinary         []byte                 `protobuf:"bytes,20,opt,name=nlri_binary,json=nlriBinary,proto3" json:"nlri_binary,omitempty"`
	PattrsBinary       [][]byte               `protobuf:"bytes,21,rep,name=pattrs_binary,json=pattrsBinary,proto3" json:"pattrs_binary,omitempty"`
}

func (x *Path) Reset() {
	*x = Path{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Path) ProtoMessage() {}

func (x *Path) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[75]
	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 Path.ProtoReflect.Descriptor instead.
func (*Path) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{75}
}

func (x *Path) GetNlri() *anypb.Any {
	if x != nil {
		return x.Nlri
	}
	return nil
}

func (x *Path) GetPattrs() []*anypb.Any {
	if x != nil {
		return x.Pattrs
	}
	return nil
}

func (x *Path) GetAge() *timestamppb.Timestamp {
	if x != nil {
		return x.Age
	}
	return nil
}

func (x *Path) GetBest() bool {
	if x != nil {
		return x.Best
	}
	return false
}

func (x *Path) GetIsWithdraw() bool {
	if x != nil {
		return x.IsWithdraw
	}
	return false
}

func (x *Path) GetValidation() *Validation {
	if x != nil {
		return x.Validation
	}
	return nil
}

func (x *Path) GetNoImplicitWithdraw() bool {
	if x != nil {
		return x.NoImplicitWithdraw
	}
	return false
}

func (x *Path) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

func (x *Path) GetSourceAsn() uint32 {
	if x != nil {
		return x.SourceAsn
	}
	return 0
}

func (x *Path) GetSourceId() string {
	if x != nil {
		return x.SourceId
	}
	return ""
}

func (x *Path) GetFiltered() bool {
	if x != nil {
		return x.Filtered
	}
	return false
}

func (x *Path) GetStale() bool {
	if x != nil {
		return x.Stale
	}
	return false
}

func (x *Path) GetIsFromExternal() bool {
	if x != nil {
		return x.IsFromExternal
	}
	return false
}

func (x *Path) GetNeighborIp() string {
	if x != nil {
		return x.NeighborIp
	}
	return ""
}

func (x *Path) GetUuid() []byte {
	if x != nil {
		return x.Uuid
	}
	return nil
}

func (x *Path) GetIsNexthopInvalid() bool {
	if x != nil {
		return x.IsNexthopInvalid
	}
	return false
}

func (x *Path) GetIdentifier() uint32 {
	if x != nil {
		return x.Identifier
	}
	return 0
}

func (x *Path) GetLocalIdentifier() uint32 {
	if x != nil {
		return x.LocalIdentifier
	}
	return 0
}

func (x *Path) GetNlriBinary() []byte {
	if x != nil {
		return x.NlriBinary
	}
	return nil
}

func (x *Path) GetPattrsBinary() [][]byte {
	if x != nil {
		return x.PattrsBinary
	}
	return nil
}

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

	Prefix string  `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
	Paths  []*Path `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
}

func (x *Destination) Reset() {
	*x = Destination{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Destination) ProtoMessage() {}

func (x *Destination) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[76]
	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 Destination.ProtoReflect.Descriptor instead.
func (*Destination) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{76}
}

func (x *Destination) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

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

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

	ApplyPolicy     *ApplyPolicy     `protobuf:"bytes,1,opt,name=apply_policy,json=applyPolicy,proto3" json:"apply_policy,omitempty"`
	Conf            *PeerConf        `protobuf:"bytes,2,opt,name=conf,proto3" json:"conf,omitempty"`
	EbgpMultihop    *EbgpMultihop    `protobuf:"bytes,3,opt,name=ebgp_multihop,json=ebgpMultihop,proto3" json:"ebgp_multihop,omitempty"`
	RouteReflector  *RouteReflector  `protobuf:"bytes,4,opt,name=route_reflector,json=routeReflector,proto3" json:"route_reflector,omitempty"`
	State           *PeerState       `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"`
	Timers          *Timers          `protobuf:"bytes,6,opt,name=timers,proto3" json:"timers,omitempty"`
	Transport       *Transport       `protobuf:"bytes,7,opt,name=transport,proto3" json:"transport,omitempty"`
	RouteServer     *RouteServer     `protobuf:"bytes,8,opt,name=route_server,json=routeServer,proto3" json:"route_server,omitempty"`
	GracefulRestart *GracefulRestart `protobuf:"bytes,9,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"`
	AfiSafis        []*AfiSafi       `protobuf:"bytes,10,rep,name=afi_safis,json=afiSafis,proto3" json:"afi_safis,omitempty"`
	TtlSecurity     *TtlSecurity     `protobuf:"bytes,11,opt,name=ttl_security,json=ttlSecurity,proto3" json:"ttl_security,omitempty"`
}

func (x *Peer) Reset() {
	*x = Peer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Peer) ProtoMessage() {}

func (x *Peer) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[77]
	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 Peer.ProtoReflect.Descriptor instead.
func (*Peer) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{77}
}

func (x *Peer) GetApplyPolicy() *ApplyPolicy {
	if x != nil {
		return x.ApplyPolicy
	}
	return nil
}

func (x *Peer) GetConf() *PeerConf {
	if x != nil {
		return x.Conf
	}
	return nil
}

func (x *Peer) GetEbgpMultihop() *EbgpMultihop {
	if x != nil {
		return x.EbgpMultihop
	}
	return nil
}

func (x *Peer) GetRouteReflector() *RouteReflector {
	if x != nil {
		return x.RouteReflector
	}
	return nil
}

func (x *Peer) GetState() *PeerState {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *Peer) GetTimers() *Timers {
	if x != nil {
		return x.Timers
	}
	return nil
}

func (x *Peer) GetTransport() *Transport {
	if x != nil {
		return x.Transport
	}
	return nil
}

func (x *Peer) GetRouteServer() *RouteServer {
	if x != nil {
		return x.RouteServer
	}
	return nil
}

func (x *Peer) GetGracefulRestart() *GracefulRestart {
	if x != nil {
		return x.GracefulRestart
	}
	return nil
}

func (x *Peer) GetAfiSafis() []*AfiSafi {
	if x != nil {
		return x.AfiSafis
	}
	return nil
}

func (x *Peer) GetTtlSecurity() *TtlSecurity {
	if x != nil {
		return x.TtlSecurity
	}
	return nil
}

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

	ApplyPolicy     *ApplyPolicy     `protobuf:"bytes,1,opt,name=apply_policy,json=applyPolicy,proto3" json:"apply_policy,omitempty"`
	Conf            *PeerGroupConf   `protobuf:"bytes,2,opt,name=conf,proto3" json:"conf,omitempty"`
	EbgpMultihop    *EbgpMultihop    `protobuf:"bytes,3,opt,name=ebgp_multihop,json=ebgpMultihop,proto3" json:"ebgp_multihop,omitempty"`
	RouteReflector  *RouteReflector  `protobuf:"bytes,4,opt,name=route_reflector,json=routeReflector,proto3" json:"route_reflector,omitempty"`
	Info            *PeerGroupState  `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"`
	Timers          *Timers          `protobuf:"bytes,6,opt,name=timers,proto3" json:"timers,omitempty"`
	Transport       *Transport       `protobuf:"bytes,7,opt,name=transport,proto3" json:"transport,omitempty"`
	RouteServer     *RouteServer     `protobuf:"bytes,8,opt,name=route_server,json=routeServer,proto3" json:"route_server,omitempty"`
	GracefulRestart *GracefulRestart `protobuf:"bytes,9,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"`
	AfiSafis        []*AfiSafi       `protobuf:"bytes,10,rep,name=afi_safis,json=afiSafis,proto3" json:"afi_safis,omitempty"`
	TtlSecurity     *TtlSecurity     `protobuf:"bytes,11,opt,name=ttl_security,json=ttlSecurity,proto3" json:"ttl_security,omitempty"`
}

func (x *PeerGroup) Reset() {
	*x = PeerGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PeerGroup) ProtoMessage() {}

func (x *PeerGroup) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[78]
	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 PeerGroup.ProtoReflect.Descriptor instead.
func (*PeerGroup) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{78}
}

func (x *PeerGroup) GetApplyPolicy() *ApplyPolicy {
	if x != nil {
		return x.ApplyPolicy
	}
	return nil
}

func (x *PeerGroup) GetConf() *PeerGroupConf {
	if x != nil {
		return x.Conf
	}
	return nil
}

func (x *PeerGroup) GetEbgpMultihop() *EbgpMultihop {
	if x != nil {
		return x.EbgpMultihop
	}
	return nil
}

func (x *PeerGroup) GetRouteReflector() *RouteReflector {
	if x != nil {
		return x.RouteReflector
	}
	return nil
}

func (x *PeerGroup) GetInfo() *PeerGroupState {
	if x != nil {
		return x.Info
	}
	return nil
}

func (x *PeerGroup) GetTimers() *Timers {
	if x != nil {
		return x.Timers
	}
	return nil
}

func (x *PeerGroup) GetTransport() *Transport {
	if x != nil {
		return x.Transport
	}
	return nil
}

func (x *PeerGroup) GetRouteServer() *RouteServer {
	if x != nil {
		return x.RouteServer
	}
	return nil
}

func (x *PeerGroup) GetGracefulRestart() *GracefulRestart {
	if x != nil {
		return x.GracefulRestart
	}
	return nil
}

func (x *PeerGroup) GetAfiSafis() []*AfiSafi {
	if x != nil {
		return x.AfiSafis
	}
	return nil
}

func (x *PeerGroup) GetTtlSecurity() *TtlSecurity {
	if x != nil {
		return x.TtlSecurity
	}
	return nil
}

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

	Prefix    string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
	PeerGroup string `protobuf:"bytes,2,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
}

func (x *DynamicNeighbor) Reset() {
	*x = DynamicNeighbor{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DynamicNeighbor) ProtoMessage() {}

func (x *DynamicNeighbor) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[79]
	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 DynamicNeighbor.ProtoReflect.Descriptor instead.
func (*DynamicNeighbor) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{79}
}

func (x *DynamicNeighbor) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

func (x *DynamicNeighbor) GetPeerGroup() string {
	if x != nil {
		return x.PeerGroup
	}
	return ""
}

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

	InPolicy     *PolicyAssignment `protobuf:"bytes,1,opt,name=in_policy,json=inPolicy,proto3" json:"in_policy,omitempty"`
	ExportPolicy *PolicyAssignment `protobuf:"bytes,2,opt,name=export_policy,json=exportPolicy,proto3" json:"export_policy,omitempty"`
	ImportPolicy *PolicyAssignment `protobuf:"bytes,3,opt,name=import_policy,json=importPolicy,proto3" json:"import_policy,omitempty"`
}

func (x *ApplyPolicy) Reset() {
	*x = ApplyPolicy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyPolicy) ProtoMessage() {}

func (x *ApplyPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[80]
	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 ApplyPolicy.ProtoReflect.Descriptor instead.
func (*ApplyPolicy) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{80}
}

func (x *ApplyPolicy) GetInPolicy() *PolicyAssignment {
	if x != nil {
		return x.InPolicy
	}
	return nil
}

func (x *ApplyPolicy) GetExportPolicy() *PolicyAssignment {
	if x != nil {
		return x.ExportPolicy
	}
	return nil
}

func (x *ApplyPolicy) GetImportPolicy() *PolicyAssignment {
	if x != nil {
		return x.ImportPolicy
	}
	return nil
}

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

	Family               *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	MaxPrefixes          uint32  `protobuf:"varint,2,opt,name=max_prefixes,json=maxPrefixes,proto3" json:"max_prefixes,omitempty"`
	ShutdownThresholdPct uint32  `protobuf:"varint,3,opt,name=shutdown_threshold_pct,json=shutdownThresholdPct,proto3" json:"shutdown_threshold_pct,omitempty"`
}

func (x *PrefixLimit) Reset() {
	*x = PrefixLimit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PrefixLimit) ProtoMessage() {}

func (x *PrefixLimit) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[81]
	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 PrefixLimit.ProtoReflect.Descriptor instead.
func (*PrefixLimit) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{81}
}

func (x *PrefixLimit) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

func (x *PrefixLimit) GetMaxPrefixes() uint32 {
	if x != nil {
		return x.MaxPrefixes
	}
	return 0
}

func (x *PrefixLimit) GetShutdownThresholdPct() uint32 {
	if x != nil {
		return x.ShutdownThresholdPct
	}
	return 0
}

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

	AuthPassword        string        `protobuf:"bytes,1,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"`
	Description         string        `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	LocalAsn            uint32        `protobuf:"varint,3,opt,name=local_asn,json=localAsn,proto3" json:"local_asn,omitempty"`
	NeighborAddress     string        `protobuf:"bytes,4,opt,name=neighbor_address,json=neighborAddress,proto3" json:"neighbor_address,omitempty"`
	PeerAsn             uint32        `protobuf:"varint,5,opt,name=peer_asn,json=peerAsn,proto3" json:"peer_asn,omitempty"`
	PeerGroup           string        `protobuf:"bytes,6,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
	Type                PeerType      `protobuf:"varint,7,opt,name=type,proto3,enum=apipb.PeerType" json:"type,omitempty"`
	RemovePrivate       RemovePrivate `protobuf:"varint,8,opt,name=remove_private,json=removePrivate,proto3,enum=apipb.RemovePrivate" json:"remove_private,omitempty"`
	RouteFlapDamping    bool          `protobuf:"varint,9,opt,name=route_flap_damping,json=routeFlapDamping,proto3" json:"route_flap_damping,omitempty"`
	SendCommunity       uint32        `protobuf:"varint,10,opt,name=send_community,json=sendCommunity,proto3" json:"send_community,omitempty"`
	NeighborInterface   string        `protobuf:"bytes,11,opt,name=neighbor_interface,json=neighborInterface,proto3" json:"neighbor_interface,omitempty"`
	Vrf                 string        `protobuf:"bytes,12,opt,name=vrf,proto3" json:"vrf,omitempty"`
	AllowOwnAsn         uint32        `protobuf:"varint,13,opt,name=allow_own_asn,json=allowOwnAsn,proto3" json:"allow_own_asn,omitempty"`
	ReplacePeerAsn      bool          `protobuf:"varint,14,opt,name=replace_peer_asn,json=replacePeerAsn,proto3" json:"replace_peer_asn,omitempty"`
	AdminDown           bool          `protobuf:"varint,15,opt,name=admin_down,json=adminDown,proto3" json:"admin_down,omitempty"`
	SendSoftwareVersion bool          `protobuf:"varint,16,opt,name=send_software_version,json=sendSoftwareVersion,proto3" json:"send_software_version,omitempty"`
}

func (x *PeerConf) Reset() {
	*x = PeerConf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PeerConf) ProtoMessage() {}

func (x *PeerConf) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[82]
	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 PeerConf.ProtoReflect.Descriptor instead.
func (*PeerConf) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{82}
}

func (x *PeerConf) GetAuthPassword() string {
	if x != nil {
		return x.AuthPassword
	}
	return ""
}

func (x *PeerConf) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *PeerConf) GetLocalAsn() uint32 {
	if x != nil {
		return x.LocalAsn
	}
	return 0
}

func (x *PeerConf) GetNeighborAddress() string {
	if x != nil {
		return x.NeighborAddress
	}
	return ""
}

func (x *PeerConf) GetPeerAsn() uint32 {
	if x != nil {
		return x.PeerAsn
	}
	return 0
}

func (x *PeerConf) GetPeerGroup() string {
	if x != nil {
		return x.PeerGroup
	}
	return ""
}

func (x *PeerConf) GetType() PeerType {
	if x != nil {
		return x.Type
	}
	return PeerType_INTERNAL
}

func (x *PeerConf) GetRemovePrivate() RemovePrivate {
	if x != nil {
		return x.RemovePrivate
	}
	return RemovePrivate_REMOVE_NONE
}

func (x *PeerConf) GetRouteFlapDamping() bool {
	if x != nil {
		return x.RouteFlapDamping
	}
	return false
}

func (x *PeerConf) GetSendCommunity() uint32 {
	if x != nil {
		return x.SendCommunity
	}
	return 0
}

func (x *PeerConf) GetNeighborInterface() string {
	if x != nil {
		return x.NeighborInterface
	}
	return ""
}

func (x *PeerConf) GetVrf() string {
	if x != nil {
		return x.Vrf
	}
	return ""
}

func (x *PeerConf) GetAllowOwnAsn() uint32 {
	if x != nil {
		return x.AllowOwnAsn
	}
	return 0
}

func (x *PeerConf) GetReplacePeerAsn() bool {
	if x != nil {
		return x.ReplacePeerAsn
	}
	return false
}

func (x *PeerConf) GetAdminDown() bool {
	if x != nil {
		return x.AdminDown
	}
	return false
}

func (x *PeerConf) GetSendSoftwareVersion() bool {
	if x != nil {
		return x.SendSoftwareVersion
	}
	return false
}

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

	AuthPassword     string        `protobuf:"bytes,1,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"`
	Description      string        `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	LocalAsn         uint32        `protobuf:"varint,3,opt,name=local_asn,json=localAsn,proto3" json:"local_asn,omitempty"`
	PeerAsn          uint32        `protobuf:"varint,4,opt,name=peer_asn,json=peerAsn,proto3" json:"peer_asn,omitempty"`
	PeerGroupName    string        `protobuf:"bytes,5,opt,name=peer_group_name,json=peerGroupName,proto3" json:"peer_group_name,omitempty"`
	Type             PeerType      `protobuf:"varint,6,opt,name=type,proto3,enum=apipb.PeerType" json:"type,omitempty"`
	RemovePrivate    RemovePrivate `protobuf:"varint,7,opt,name=remove_private,json=removePrivate,proto3,enum=apipb.RemovePrivate" json:"remove_private,omitempty"`
	RouteFlapDamping bool          `protobuf:"varint,8,opt,name=route_flap_damping,json=routeFlapDamping,proto3" json:"route_flap_damping,omitempty"`
	SendCommunity    uint32        `protobuf:"varint,9,opt,name=send_community,json=sendCommunity,proto3" json:"send_community,omitempty"`
}

func (x *PeerGroupConf) Reset() {
	*x = PeerGroupConf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PeerGroupConf) ProtoMessage() {}

func (x *PeerGroupConf) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[83]
	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 PeerGroupConf.ProtoReflect.Descriptor instead.
func (*PeerGroupConf) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{83}
}

func (x *PeerGroupConf) GetAuthPassword() string {
	if x != nil {
		return x.AuthPassword
	}
	return ""
}

func (x *PeerGroupConf) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *PeerGroupConf) GetLocalAsn() uint32 {
	if x != nil {
		return x.LocalAsn
	}
	return 0
}

func (x *PeerGroupConf) GetPeerAsn() uint32 {
	if x != nil {
		return x.PeerAsn
	}
	return 0
}

func (x *PeerGroupConf) GetPeerGroupName() string {
	if x != nil {
		return x.PeerGroupName
	}
	return ""
}

func (x *PeerGroupConf) GetType() PeerType {
	if x != nil {
		return x.Type
	}
	return PeerType_INTERNAL
}

func (x *PeerGroupConf) GetRemovePrivate() RemovePrivate {
	if x != nil {
		return x.RemovePrivate
	}
	return RemovePrivate_REMOVE_NONE
}

func (x *PeerGroupConf) GetRouteFlapDamping() bool {
	if x != nil {
		return x.RouteFlapDamping
	}
	return false
}

func (x *PeerGroupConf) GetSendCommunity() uint32 {
	if x != nil {
		return x.SendCommunity
	}
	return 0
}

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

	AuthPassword     string        `protobuf:"bytes,1,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"`
	Description      string        `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	LocalAsn         uint32        `protobuf:"varint,3,opt,name=local_asn,json=localAsn,proto3" json:"local_asn,omitempty"`
	PeerAsn          uint32        `protobuf:"varint,4,opt,name=peer_asn,json=peerAsn,proto3" json:"peer_asn,omitempty"`
	PeerGroupName    string        `protobuf:"bytes,5,opt,name=peer_group_name,json=peerGroupName,proto3" json:"peer_group_name,omitempty"`
	Type             PeerType      `protobuf:"varint,6,opt,name=type,proto3,enum=apipb.PeerType" json:"type,omitempty"`
	RemovePrivate    RemovePrivate `protobuf:"varint,7,opt,name=remove_private,json=removePrivate,proto3,enum=apipb.RemovePrivate" json:"remove_private,omitempty"`
	RouteFlapDamping bool          `protobuf:"varint,8,opt,name=route_flap_damping,json=routeFlapDamping,proto3" json:"route_flap_damping,omitempty"`
	SendCommunity    uint32        `protobuf:"varint,9,opt,name=send_community,json=sendCommunity,proto3" json:"send_community,omitempty"`
	TotalPaths       uint32        `protobuf:"varint,10,opt,name=total_paths,json=totalPaths,proto3" json:"total_paths,omitempty"`
	TotalPrefixes    uint32        `protobuf:"varint,11,opt,name=total_prefixes,json=totalPrefixes,proto3" json:"total_prefixes,omitempty"`
}

func (x *PeerGroupState) Reset() {
	*x = PeerGroupState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PeerGroupState) ProtoMessage() {}

func (x *PeerGroupState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[84]
	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 PeerGroupState.ProtoReflect.Descriptor instead.
func (*PeerGroupState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{84}
}

func (x *PeerGroupState) GetAuthPassword() string {
	if x != nil {
		return x.AuthPassword
	}
	return ""
}

func (x *PeerGroupState) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *PeerGroupState) GetLocalAsn() uint32 {
	if x != nil {
		return x.LocalAsn
	}
	return 0
}

func (x *PeerGroupState) GetPeerAsn() uint32 {
	if x != nil {
		return x.PeerAsn
	}
	return 0
}

func (x *PeerGroupState) GetPeerGroupName() string {
	if x != nil {
		return x.PeerGroupName
	}
	return ""
}

func (x *PeerGroupState) GetType() PeerType {
	if x != nil {
		return x.Type
	}
	return PeerType_INTERNAL
}

func (x *PeerGroupState) GetRemovePrivate() RemovePrivate {
	if x != nil {
		return x.RemovePrivate
	}
	return RemovePrivate_REMOVE_NONE
}

func (x *PeerGroupState) GetRouteFlapDamping() bool {
	if x != nil {
		return x.RouteFlapDamping
	}
	return false
}

func (x *PeerGroupState) GetSendCommunity() uint32 {
	if x != nil {
		return x.SendCommunity
	}
	return 0
}

func (x *PeerGroupState) GetTotalPaths() uint32 {
	if x != nil {
		return x.TotalPaths
	}
	return 0
}

func (x *PeerGroupState) GetTotalPrefixes() uint32 {
	if x != nil {
		return x.TotalPrefixes
	}
	return 0
}

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

	Enabled bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	TtlMin  uint32 `protobuf:"varint,2,opt,name=ttl_min,json=ttlMin,proto3" json:"ttl_min,omitempty"`
}

func (x *TtlSecurity) Reset() {
	*x = TtlSecurity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TtlSecurity) ProtoMessage() {}

func (x *TtlSecurity) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[85]
	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 TtlSecurity.ProtoReflect.Descriptor instead.
func (*TtlSecurity) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{85}
}

func (x *TtlSecurity) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *TtlSecurity) GetTtlMin() uint32 {
	if x != nil {
		return x.TtlMin
	}
	return 0
}

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

	Enabled     bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	MultihopTtl uint32 `protobuf:"varint,2,opt,name=multihop_ttl,json=multihopTtl,proto3" json:"multihop_ttl,omitempty"`
}

func (x *EbgpMultihop) Reset() {
	*x = EbgpMultihop{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EbgpMultihop) ProtoMessage() {}

func (x *EbgpMultihop) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[86]
	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 EbgpMultihop.ProtoReflect.Descriptor instead.
func (*EbgpMultihop) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{86}
}

func (x *EbgpMultihop) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *EbgpMultihop) GetMultihopTtl() uint32 {
	if x != nil {
		return x.MultihopTtl
	}
	return 0
}

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

	RouteReflectorClient    bool   `protobuf:"varint,1,opt,name=route_reflector_client,json=routeReflectorClient,proto3" json:"route_reflector_client,omitempty"`
	RouteReflectorClusterId string `protobuf:"bytes,2,opt,name=route_reflector_cluster_id,json=routeReflectorClusterId,proto3" json:"route_reflector_cluster_id,omitempty"`
}

func (x *RouteReflector) Reset() {
	*x = RouteReflector{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteReflector) ProtoMessage() {}

func (x *RouteReflector) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[87]
	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 RouteReflector.ProtoReflect.Descriptor instead.
func (*RouteReflector) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{87}
}

func (x *RouteReflector) GetRouteReflectorClient() bool {
	if x != nil {
		return x.RouteReflectorClient
	}
	return false
}

func (x *RouteReflector) GetRouteReflectorClusterId() string {
	if x != nil {
		return x.RouteReflectorClusterId
	}
	return ""
}

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

	AuthPassword     string                 `protobuf:"bytes,1,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"`
	Description      string                 `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	LocalAsn         uint32                 `protobuf:"varint,3,opt,name=local_asn,json=localAsn,proto3" json:"local_asn,omitempty"`
	Messages         *Messages              `protobuf:"bytes,4,opt,name=messages,proto3" json:"messages,omitempty"`
	NeighborAddress  string                 `protobuf:"bytes,5,opt,name=neighbor_address,json=neighborAddress,proto3" json:"neighbor_address,omitempty"`
	PeerAsn          uint32                 `protobuf:"varint,6,opt,name=peer_asn,json=peerAsn,proto3" json:"peer_asn,omitempty"`
	PeerGroup        string                 `protobuf:"bytes,7,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
	Type             PeerType               `protobuf:"varint,8,opt,name=type,proto3,enum=apipb.PeerType" json:"type,omitempty"`
	Queues           *Queues                `protobuf:"bytes,9,opt,name=queues,proto3" json:"queues,omitempty"`
	RemovePrivate    RemovePrivate          `protobuf:"varint,10,opt,name=remove_private,json=removePrivate,proto3,enum=apipb.RemovePrivate" json:"remove_private,omitempty"`
	RouteFlapDamping bool                   `protobuf:"varint,11,opt,name=route_flap_damping,json=routeFlapDamping,proto3" json:"route_flap_damping,omitempty"`
	SendCommunity    uint32                 `protobuf:"varint,12,opt,name=send_community,json=sendCommunity,proto3" json:"send_community,omitempty"`
	SessionState     PeerState_SessionState `protobuf:"varint,13,opt,name=session_state,json=sessionState,proto3,enum=apipb.PeerState_SessionState" json:"session_state,omitempty"`
	AdminState       PeerState_AdminState   `protobuf:"varint,15,opt,name=admin_state,json=adminState,proto3,enum=apipb.PeerState_AdminState" json:"admin_state,omitempty"`
	OutQ             uint32                 `protobuf:"varint,16,opt,name=out_q,json=outQ,proto3" json:"out_q,omitempty"`
	Flops            uint32                 `protobuf:"varint,17,opt,name=flops,proto3" json:"flops,omitempty"`
	// Each attribute must be one of *Capability defined in
	// "api/capability.proto".
	RemoteCap []*anypb.Any `protobuf:"bytes,18,rep,name=remote_cap,json=remoteCap,proto3" json:"remote_cap,omitempty"`
	LocalCap  []*anypb.Any `protobuf:"bytes,19,rep,name=local_cap,json=localCap,proto3" json:"local_cap,omitempty"`
	RouterId  string       `protobuf:"bytes,20,opt,name=router_id,json=routerId,proto3" json:"router_id,omitempty"`
}

func (x *PeerState) Reset() {
	*x = PeerState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PeerState) ProtoMessage() {}

func (x *PeerState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[88]
	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 PeerState.ProtoReflect.Descriptor instead.
func (*PeerState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{88}
}

func (x *PeerState) GetAuthPassword() string {
	if x != nil {
		return x.AuthPassword
	}
	return ""
}

func (x *PeerState) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *PeerState) GetLocalAsn() uint32 {
	if x != nil {
		return x.LocalAsn
	}
	return 0
}

func (x *PeerState) GetMessages() *Messages {
	if x != nil {
		return x.Messages
	}
	return nil
}

func (x *PeerState) GetNeighborAddress() string {
	if x != nil {
		return x.NeighborAddress
	}
	return ""
}

func (x *PeerState) GetPeerAsn() uint32 {
	if x != nil {
		return x.PeerAsn
	}
	return 0
}

func (x *PeerState) GetPeerGroup() string {
	if x != nil {
		return x.PeerGroup
	}
	return ""
}

func (x *PeerState) GetType() PeerType {
	if x != nil {
		return x.Type
	}
	return PeerType_INTERNAL
}

func (x *PeerState) GetQueues() *Queues {
	if x != nil {
		return x.Queues
	}
	return nil
}

func (x *PeerState) GetRemovePrivate() RemovePrivate {
	if x != nil {
		return x.RemovePrivate
	}
	return RemovePrivate_REMOVE_NONE
}

func (x *PeerState) GetRouteFlapDamping() bool {
	if x != nil {
		return x.RouteFlapDamping
	}
	return false
}

func (x *PeerState) GetSendCommunity() uint32 {
	if x != nil {
		return x.SendCommunity
	}
	return 0
}

func (x *PeerState) GetSessionState() PeerState_SessionState {
	if x != nil {
		return x.SessionState
	}
	return PeerState_UNKNOWN
}

func (x *PeerState) GetAdminState() PeerState_AdminState {
	if x != nil {
		return x.AdminState
	}
	return PeerState_UP
}

func (x *PeerState) GetOutQ() uint32 {
	if x != nil {
		return x.OutQ
	}
	return 0
}

func (x *PeerState) GetFlops() uint32 {
	if x != nil {
		return x.Flops
	}
	return 0
}

func (x *PeerState) GetRemoteCap() []*anypb.Any {
	if x != nil {
		return x.RemoteCap
	}
	return nil
}

func (x *PeerState) GetLocalCap() []*anypb.Any {
	if x != nil {
		return x.LocalCap
	}
	return nil
}

func (x *PeerState) GetRouterId() string {
	if x != nil {
		return x.RouterId
	}
	return ""
}

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

	Received *Message `protobuf:"bytes,1,opt,name=received,proto3" json:"received,omitempty"`
	Sent     *Message `protobuf:"bytes,2,opt,name=sent,proto3" json:"sent,omitempty"`
}

func (x *Messages) Reset() {
	*x = Messages{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Messages) ProtoMessage() {}

func (x *Messages) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[89]
	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 Messages.ProtoReflect.Descriptor instead.
func (*Messages) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{89}
}

func (x *Messages) GetReceived() *Message {
	if x != nil {
		return x.Received
	}
	return nil
}

func (x *Messages) GetSent() *Message {
	if x != nil {
		return x.Sent
	}
	return nil
}

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

	Notification   uint64 `protobuf:"varint,1,opt,name=notification,proto3" json:"notification,omitempty"`
	Update         uint64 `protobuf:"varint,2,opt,name=update,proto3" json:"update,omitempty"`
	Open           uint64 `protobuf:"varint,3,opt,name=open,proto3" json:"open,omitempty"`
	Keepalive      uint64 `protobuf:"varint,4,opt,name=keepalive,proto3" json:"keepalive,omitempty"`
	Refresh        uint64 `protobuf:"varint,5,opt,name=refresh,proto3" json:"refresh,omitempty"`
	Discarded      uint64 `protobuf:"varint,6,opt,name=discarded,proto3" json:"discarded,omitempty"`
	Total          uint64 `protobuf:"varint,7,opt,name=total,proto3" json:"total,omitempty"`
	WithdrawUpdate uint64 `protobuf:"varint,8,opt,name=withdraw_update,json=withdrawUpdate,proto3" json:"withdraw_update,omitempty"`
	WithdrawPrefix uint64 `protobuf:"varint,9,opt,name=withdraw_prefix,json=withdrawPrefix,proto3" json:"withdraw_prefix,omitempty"`
}

func (x *Message) Reset() {
	*x = Message{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Message) ProtoMessage() {}

func (x *Message) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[90]
	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 Message.ProtoReflect.Descriptor instead.
func (*Message) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{90}
}

func (x *Message) GetNotification() uint64 {
	if x != nil {
		return x.Notification
	}
	return 0
}

func (x *Message) GetUpdate() uint64 {
	if x != nil {
		return x.Update
	}
	return 0
}

func (x *Message) GetOpen() uint64 {
	if x != nil {
		return x.Open
	}
	return 0
}

func (x *Message) GetKeepalive() uint64 {
	if x != nil {
		return x.Keepalive
	}
	return 0
}

func (x *Message) GetRefresh() uint64 {
	if x != nil {
		return x.Refresh
	}
	return 0
}

func (x *Message) GetDiscarded() uint64 {
	if x != nil {
		return x.Discarded
	}
	return 0
}

func (x *Message) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *Message) GetWithdrawUpdate() uint64 {
	if x != nil {
		return x.WithdrawUpdate
	}
	return 0
}

func (x *Message) GetWithdrawPrefix() uint64 {
	if x != nil {
		return x.WithdrawPrefix
	}
	return 0
}

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

	Input  uint32 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
	Output uint32 `protobuf:"varint,2,opt,name=output,proto3" json:"output,omitempty"`
}

func (x *Queues) Reset() {
	*x = Queues{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Queues) ProtoMessage() {}

func (x *Queues) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[91]
	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 Queues.ProtoReflect.Descriptor instead.
func (*Queues) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{91}
}

func (x *Queues) GetInput() uint32 {
	if x != nil {
		return x.Input
	}
	return 0
}

func (x *Queues) GetOutput() uint32 {
	if x != nil {
		return x.Output
	}
	return 0
}

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

	Config *TimersConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *TimersState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *Timers) Reset() {
	*x = Timers{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Timers) ProtoMessage() {}

func (x *Timers) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[92]
	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 Timers.ProtoReflect.Descriptor instead.
func (*Timers) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{92}
}

func (x *Timers) GetConfig() *TimersConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *Timers) GetState() *TimersState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	ConnectRetry                 uint64 `protobuf:"varint,1,opt,name=connect_retry,json=connectRetry,proto3" json:"connect_retry,omitempty"`
	HoldTime                     uint64 `protobuf:"varint,2,opt,name=hold_time,json=holdTime,proto3" json:"hold_time,omitempty"`
	KeepaliveInterval            uint64 `protobuf:"varint,3,opt,name=keepalive_interval,json=keepaliveInterval,proto3" json:"keepalive_interval,omitempty"`
	MinimumAdvertisementInterval uint64 `protobuf:"varint,4,opt,name=minimum_advertisement_interval,json=minimumAdvertisementInterval,proto3" json:"minimum_advertisement_interval,omitempty"`
	IdleHoldTimeAfterReset       uint64 `protobuf:"varint,5,opt,name=idle_hold_time_after_reset,json=idleHoldTimeAfterReset,proto3" json:"idle_hold_time_after_reset,omitempty"`
}

func (x *TimersConfig) Reset() {
	*x = TimersConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TimersConfig) ProtoMessage() {}

func (x *TimersConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[93]
	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 TimersConfig.ProtoReflect.Descriptor instead.
func (*TimersConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{93}
}

func (x *TimersConfig) GetConnectRetry() uint64 {
	if x != nil {
		return x.ConnectRetry
	}
	return 0
}

func (x *TimersConfig) GetHoldTime() uint64 {
	if x != nil {
		return x.HoldTime
	}
	return 0
}

func (x *TimersConfig) GetKeepaliveInterval() uint64 {
	if x != nil {
		return x.KeepaliveInterval
	}
	return 0
}

func (x *TimersConfig) GetMinimumAdvertisementInterval() uint64 {
	if x != nil {
		return x.MinimumAdvertisementInterval
	}
	return 0
}

func (x *TimersConfig) GetIdleHoldTimeAfterReset() uint64 {
	if x != nil {
		return x.IdleHoldTimeAfterReset
	}
	return 0
}

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

	ConnectRetry                 uint64                 `protobuf:"varint,1,opt,name=connect_retry,json=connectRetry,proto3" json:"connect_retry,omitempty"`
	HoldTime                     uint64                 `protobuf:"varint,2,opt,name=hold_time,json=holdTime,proto3" json:"hold_time,omitempty"`
	KeepaliveInterval            uint64                 `protobuf:"varint,3,opt,name=keepalive_interval,json=keepaliveInterval,proto3" json:"keepalive_interval,omitempty"`
	MinimumAdvertisementInterval uint64                 `protobuf:"varint,4,opt,name=minimum_advertisement_interval,json=minimumAdvertisementInterval,proto3" json:"minimum_advertisement_interval,omitempty"`
	NegotiatedHoldTime           uint64                 `protobuf:"varint,5,opt,name=negotiated_hold_time,json=negotiatedHoldTime,proto3" json:"negotiated_hold_time,omitempty"`
	Uptime                       *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=uptime,proto3" json:"uptime,omitempty"`
	Downtime                     *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=downtime,proto3" json:"downtime,omitempty"`
}

func (x *TimersState) Reset() {
	*x = TimersState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TimersState) ProtoMessage() {}

func (x *TimersState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[94]
	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 TimersState.ProtoReflect.Descriptor instead.
func (*TimersState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{94}
}

func (x *TimersState) GetConnectRetry() uint64 {
	if x != nil {
		return x.ConnectRetry
	}
	return 0
}

func (x *TimersState) GetHoldTime() uint64 {
	if x != nil {
		return x.HoldTime
	}
	return 0
}

func (x *TimersState) GetKeepaliveInterval() uint64 {
	if x != nil {
		return x.KeepaliveInterval
	}
	return 0
}

func (x *TimersState) GetMinimumAdvertisementInterval() uint64 {
	if x != nil {
		return x.MinimumAdvertisementInterval
	}
	return 0
}

func (x *TimersState) GetNegotiatedHoldTime() uint64 {
	if x != nil {
		return x.NegotiatedHoldTime
	}
	return 0
}

func (x *TimersState) GetUptime() *timestamppb.Timestamp {
	if x != nil {
		return x.Uptime
	}
	return nil
}

func (x *TimersState) GetDowntime() *timestamppb.Timestamp {
	if x != nil {
		return x.Downtime
	}
	return nil
}

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

	LocalAddress  string `protobuf:"bytes,1,opt,name=local_address,json=localAddress,proto3" json:"local_address,omitempty"`
	LocalPort     uint32 `protobuf:"varint,2,opt,name=local_port,json=localPort,proto3" json:"local_port,omitempty"`
	MtuDiscovery  bool   `protobuf:"varint,3,opt,name=mtu_discovery,json=mtuDiscovery,proto3" json:"mtu_discovery,omitempty"`
	PassiveMode   bool   `protobuf:"varint,4,opt,name=passive_mode,json=passiveMode,proto3" json:"passive_mode,omitempty"`
	RemoteAddress string `protobuf:"bytes,5,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"`
	RemotePort    uint32 `protobuf:"varint,6,opt,name=remote_port,json=remotePort,proto3" json:"remote_port,omitempty"`
	TcpMss        uint32 `protobuf:"varint,7,opt,name=tcp_mss,json=tcpMss,proto3" json:"tcp_mss,omitempty"`
	BindInterface string `protobuf:"bytes,8,opt,name=bind_interface,json=bindInterface,proto3" json:"bind_interface,omitempty"`
}

func (x *Transport) Reset() {
	*x = Transport{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Transport) ProtoMessage() {}

func (x *Transport) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[95]
	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 Transport.ProtoReflect.Descriptor instead.
func (*Transport) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{95}
}

func (x *Transport) GetLocalAddress() string {
	if x != nil {
		return x.LocalAddress
	}
	return ""
}

func (x *Transport) GetLocalPort() uint32 {
	if x != nil {
		return x.LocalPort
	}
	return 0
}

func (x *Transport) GetMtuDiscovery() bool {
	if x != nil {
		return x.MtuDiscovery
	}
	return false
}

func (x *Transport) GetPassiveMode() bool {
	if x != nil {
		return x.PassiveMode
	}
	return false
}

func (x *Transport) GetRemoteAddress() string {
	if x != nil {
		return x.RemoteAddress
	}
	return ""
}

func (x *Transport) GetRemotePort() uint32 {
	if x != nil {
		return x.RemotePort
	}
	return 0
}

func (x *Transport) GetTcpMss() uint32 {
	if x != nil {
		return x.TcpMss
	}
	return 0
}

func (x *Transport) GetBindInterface() string {
	if x != nil {
		return x.BindInterface
	}
	return ""
}

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

	RouteServerClient bool `protobuf:"varint,1,opt,name=route_server_client,json=routeServerClient,proto3" json:"route_server_client,omitempty"`
	SecondaryRoute    bool `protobuf:"varint,2,opt,name=secondary_route,json=secondaryRoute,proto3" json:"secondary_route,omitempty"`
}

func (x *RouteServer) Reset() {
	*x = RouteServer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteServer) ProtoMessage() {}

func (x *RouteServer) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[96]
	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 RouteServer.ProtoReflect.Descriptor instead.
func (*RouteServer) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{96}
}

func (x *RouteServer) GetRouteServerClient() bool {
	if x != nil {
		return x.RouteServerClient
	}
	return false
}

func (x *RouteServer) GetSecondaryRoute() bool {
	if x != nil {
		return x.SecondaryRoute
	}
	return false
}

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

	Enabled             bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	RestartTime         uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3" json:"restart_time,omitempty"`
	HelperOnly          bool   `protobuf:"varint,3,opt,name=helper_only,json=helperOnly,proto3" json:"helper_only,omitempty"`
	DeferralTime        uint32 `protobuf:"varint,4,opt,name=deferral_time,json=deferralTime,proto3" json:"deferral_time,omitempty"`
	NotificationEnabled bool   `protobuf:"varint,5,opt,name=notification_enabled,json=notificationEnabled,proto3" json:"notification_enabled,omitempty"`
	LonglivedEnabled    bool   `protobuf:"varint,6,opt,name=longlived_enabled,json=longlivedEnabled,proto3" json:"longlived_enabled,omitempty"`
	StaleRoutesTime     uint32 `protobuf:"varint,7,opt,name=stale_routes_time,json=staleRoutesTime,proto3" json:"stale_routes_time,omitempty"`
	PeerRestartTime     uint32 `protobuf:"varint,8,opt,name=peer_restart_time,json=peerRestartTime,proto3" json:"peer_restart_time,omitempty"`
	PeerRestarting      bool   `protobuf:"varint,9,opt,name=peer_restarting,json=peerRestarting,proto3" json:"peer_restarting,omitempty"`
	LocalRestarting     bool   `protobuf:"varint,10,opt,name=local_restarting,json=localRestarting,proto3" json:"local_restarting,omitempty"`
	Mode                string `protobuf:"bytes,11,opt,name=mode,proto3" json:"mode,omitempty"`
}

func (x *GracefulRestart) Reset() {
	*x = GracefulRestart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GracefulRestart) ProtoMessage() {}

func (x *GracefulRestart) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[97]
	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 GracefulRestart.ProtoReflect.Descriptor instead.
func (*GracefulRestart) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{97}
}

func (x *GracefulRestart) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *GracefulRestart) GetRestartTime() uint32 {
	if x != nil {
		return x.RestartTime
	}
	return 0
}

func (x *GracefulRestart) GetHelperOnly() bool {
	if x != nil {
		return x.HelperOnly
	}
	return false
}

func (x *GracefulRestart) GetDeferralTime() uint32 {
	if x != nil {
		return x.DeferralTime
	}
	return 0
}

func (x *GracefulRestart) GetNotificationEnabled() bool {
	if x != nil {
		return x.NotificationEnabled
	}
	return false
}

func (x *GracefulRestart) GetLonglivedEnabled() bool {
	if x != nil {
		return x.LonglivedEnabled
	}
	return false
}

func (x *GracefulRestart) GetStaleRoutesTime() uint32 {
	if x != nil {
		return x.StaleRoutesTime
	}
	return 0
}

func (x *GracefulRestart) GetPeerRestartTime() uint32 {
	if x != nil {
		return x.PeerRestartTime
	}
	return 0
}

func (x *GracefulRestart) GetPeerRestarting() bool {
	if x != nil {
		return x.PeerRestarting
	}
	return false
}

func (x *GracefulRestart) GetLocalRestarting() bool {
	if x != nil {
		return x.LocalRestarting
	}
	return false
}

func (x *GracefulRestart) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

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

	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *MpGracefulRestartConfig) Reset() {
	*x = MpGracefulRestartConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MpGracefulRestartConfig) ProtoMessage() {}

func (x *MpGracefulRestartConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[98]
	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 MpGracefulRestartConfig.ProtoReflect.Descriptor instead.
func (*MpGracefulRestartConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{98}
}

func (x *MpGracefulRestartConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

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

	Enabled          bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Received         bool `protobuf:"varint,2,opt,name=received,proto3" json:"received,omitempty"`
	Advertised       bool `protobuf:"varint,3,opt,name=advertised,proto3" json:"advertised,omitempty"`
	EndOfRibReceived bool `protobuf:"varint,4,opt,name=end_of_rib_received,json=endOfRibReceived,proto3" json:"end_of_rib_received,omitempty"`
	EndOfRibSent     bool `protobuf:"varint,5,opt,name=end_of_rib_sent,json=endOfRibSent,proto3" json:"end_of_rib_sent,omitempty"`
}

func (x *MpGracefulRestartState) Reset() {
	*x = MpGracefulRestartState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[99]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MpGracefulRestartState) ProtoMessage() {}

func (x *MpGracefulRestartState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[99]
	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 MpGracefulRestartState.ProtoReflect.Descriptor instead.
func (*MpGracefulRestartState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{99}
}

func (x *MpGracefulRestartState) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *MpGracefulRestartState) GetReceived() bool {
	if x != nil {
		return x.Received
	}
	return false
}

func (x *MpGracefulRestartState) GetAdvertised() bool {
	if x != nil {
		return x.Advertised
	}
	return false
}

func (x *MpGracefulRestartState) GetEndOfRibReceived() bool {
	if x != nil {
		return x.EndOfRibReceived
	}
	return false
}

func (x *MpGracefulRestartState) GetEndOfRibSent() bool {
	if x != nil {
		return x.EndOfRibSent
	}
	return false
}

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

	Config *MpGracefulRestartConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *MpGracefulRestartState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *MpGracefulRestart) Reset() {
	*x = MpGracefulRestart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[100]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MpGracefulRestart) ProtoMessage() {}

func (x *MpGracefulRestart) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[100]
	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 MpGracefulRestart.ProtoReflect.Descriptor instead.
func (*MpGracefulRestart) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{100}
}

func (x *MpGracefulRestart) GetConfig() *MpGracefulRestartConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *MpGracefulRestart) GetState() *MpGracefulRestartState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	Family  *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	Enabled bool    `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *AfiSafiConfig) Reset() {
	*x = AfiSafiConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[101]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AfiSafiConfig) ProtoMessage() {}

func (x *AfiSafiConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[101]
	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 AfiSafiConfig.ProtoReflect.Descriptor instead.
func (*AfiSafiConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{101}
}

func (x *AfiSafiConfig) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

func (x *AfiSafiConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

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

	Family     *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	Enabled    bool    `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Received   uint64  `protobuf:"varint,3,opt,name=received,proto3" json:"received,omitempty"`
	Accepted   uint64  `protobuf:"varint,4,opt,name=accepted,proto3" json:"accepted,omitempty"`
	Advertised uint64  `protobuf:"varint,5,opt,name=advertised,proto3" json:"advertised,omitempty"`
}

func (x *AfiSafiState) Reset() {
	*x = AfiSafiState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[102]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AfiSafiState) ProtoMessage() {}

func (x *AfiSafiState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[102]
	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 AfiSafiState.ProtoReflect.Descriptor instead.
func (*AfiSafiState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{102}
}

func (x *AfiSafiState) GetFamily() *Family {
	if x != nil {
		return x.Family
	}
	return nil
}

func (x *AfiSafiState) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *AfiSafiState) GetReceived() uint64 {
	if x != nil {
		return x.Received
	}
	return 0
}

func (x *AfiSafiState) GetAccepted() uint64 {
	if x != nil {
		return x.Accepted
	}
	return 0
}

func (x *AfiSafiState) GetAdvertised() uint64 {
	if x != nil {
		return x.Advertised
	}
	return 0
}

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

	AlwaysCompareMed         bool `protobuf:"varint,1,opt,name=always_compare_med,json=alwaysCompareMed,proto3" json:"always_compare_med,omitempty"`
	IgnoreAsPathLength       bool `protobuf:"varint,2,opt,name=ignore_as_path_length,json=ignoreAsPathLength,proto3" json:"ignore_as_path_length,omitempty"`
	ExternalCompareRouterId  bool `protobuf:"varint,3,opt,name=external_compare_router_id,json=externalCompareRouterId,proto3" json:"external_compare_router_id,omitempty"`
	AdvertiseInactiveRoutes  bool `protobuf:"varint,4,opt,name=advertise_inactive_routes,json=advertiseInactiveRoutes,proto3" json:"advertise_inactive_routes,omitempty"`
	EnableAigp               bool `protobuf:"varint,5,opt,name=enable_aigp,json=enableAigp,proto3" json:"enable_aigp,omitempty"`
	IgnoreNextHopIgpMetric   bool `protobuf:"varint,6,opt,name=ignore_next_hop_igp_metric,json=ignoreNextHopIgpMetric,proto3" json:"ignore_next_hop_igp_metric,omitempty"`
	DisableBestPathSelection bool `protobuf:"varint,7,opt,name=disable_best_path_selection,json=disableBestPathSelection,proto3" json:"disable_best_path_selection,omitempty"`
}

func (x *RouteSelectionOptionsConfig) Reset() {
	*x = RouteSelectionOptionsConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[103]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteSelectionOptionsConfig) ProtoMessage() {}

func (x *RouteSelectionOptionsConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[103]
	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 RouteSelectionOptionsConfig.ProtoReflect.Descriptor instead.
func (*RouteSelectionOptionsConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{103}
}

func (x *RouteSelectionOptionsConfig) GetAlwaysCompareMed() bool {
	if x != nil {
		return x.AlwaysCompareMed
	}
	return false
}

func (x *RouteSelectionOptionsConfig) GetIgnoreAsPathLength() bool {
	if x != nil {
		return x.IgnoreAsPathLength
	}
	return false
}

func (x *RouteSelectionOptionsConfig) GetExternalCompareRouterId() bool {
	if x != nil {
		return x.ExternalCompareRouterId
	}
	return false
}

func (x *RouteSelectionOptionsConfig) GetAdvertiseInactiveRoutes() bool {
	if x != nil {
		return x.AdvertiseInactiveRoutes
	}
	return false
}

func (x *RouteSelectionOptionsConfig) GetEnableAigp() bool {
	if x != nil {
		return x.EnableAigp
	}
	return false
}

func (x *RouteSelectionOptionsConfig) GetIgnoreNextHopIgpMetric() bool {
	if x != nil {
		return x.IgnoreNextHopIgpMetric
	}
	return false
}

func (x *RouteSelectionOptionsConfig) GetDisableBestPathSelection() bool {
	if x != nil {
		return x.DisableBestPathSelection
	}
	return false
}

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

	AlwaysCompareMed         bool `protobuf:"varint,1,opt,name=always_compare_med,json=alwaysCompareMed,proto3" json:"always_compare_med,omitempty"`
	IgnoreAsPathLength       bool `protobuf:"varint,2,opt,name=ignore_as_path_length,json=ignoreAsPathLength,proto3" json:"ignore_as_path_length,omitempty"`
	ExternalCompareRouterId  bool `protobuf:"varint,3,opt,name=external_compare_router_id,json=externalCompareRouterId,proto3" json:"external_compare_router_id,omitempty"`
	AdvertiseInactiveRoutes  bool `protobuf:"varint,4,opt,name=advertise_inactive_routes,json=advertiseInactiveRoutes,proto3" json:"advertise_inactive_routes,omitempty"`
	EnableAigp               bool `protobuf:"varint,5,opt,name=enable_aigp,json=enableAigp,proto3" json:"enable_aigp,omitempty"`
	IgnoreNextHopIgpMetric   bool `protobuf:"varint,6,opt,name=ignore_next_hop_igp_metric,json=ignoreNextHopIgpMetric,proto3" json:"ignore_next_hop_igp_metric,omitempty"`
	DisableBestPathSelection bool `protobuf:"varint,7,opt,name=disable_best_path_selection,json=disableBestPathSelection,proto3" json:"disable_best_path_selection,omitempty"`
}

func (x *RouteSelectionOptionsState) Reset() {
	*x = RouteSelectionOptionsState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteSelectionOptionsState) ProtoMessage() {}

func (x *RouteSelectionOptionsState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[104]
	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 RouteSelectionOptionsState.ProtoReflect.Descriptor instead.
func (*RouteSelectionOptionsState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{104}
}

func (x *RouteSelectionOptionsState) GetAlwaysCompareMed() bool {
	if x != nil {
		return x.AlwaysCompareMed
	}
	return false
}

func (x *RouteSelectionOptionsState) GetIgnoreAsPathLength() bool {
	if x != nil {
		return x.IgnoreAsPathLength
	}
	return false
}

func (x *RouteSelectionOptionsState) GetExternalCompareRouterId() bool {
	if x != nil {
		return x.ExternalCompareRouterId
	}
	return false
}

func (x *RouteSelectionOptionsState) GetAdvertiseInactiveRoutes() bool {
	if x != nil {
		return x.AdvertiseInactiveRoutes
	}
	return false
}

func (x *RouteSelectionOptionsState) GetEnableAigp() bool {
	if x != nil {
		return x.EnableAigp
	}
	return false
}

func (x *RouteSelectionOptionsState) GetIgnoreNextHopIgpMetric() bool {
	if x != nil {
		return x.IgnoreNextHopIgpMetric
	}
	return false
}

func (x *RouteSelectionOptionsState) GetDisableBestPathSelection() bool {
	if x != nil {
		return x.DisableBestPathSelection
	}
	return false
}

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

	Config *RouteSelectionOptionsConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *RouteSelectionOptionsState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *RouteSelectionOptions) Reset() {
	*x = RouteSelectionOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[105]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteSelectionOptions) ProtoMessage() {}

func (x *RouteSelectionOptions) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[105]
	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 RouteSelectionOptions.ProtoReflect.Descriptor instead.
func (*RouteSelectionOptions) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{105}
}

func (x *RouteSelectionOptions) GetConfig() *RouteSelectionOptionsConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *RouteSelectionOptions) GetState() *RouteSelectionOptionsState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *UseMultiplePathsConfig) Reset() {
	*x = UseMultiplePathsConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[106]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UseMultiplePathsConfig) ProtoMessage() {}

func (x *UseMultiplePathsConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[106]
	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 UseMultiplePathsConfig.ProtoReflect.Descriptor instead.
func (*UseMultiplePathsConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{106}
}

func (x *UseMultiplePathsConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

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

	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *UseMultiplePathsState) Reset() {
	*x = UseMultiplePathsState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[107]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UseMultiplePathsState) ProtoMessage() {}

func (x *UseMultiplePathsState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[107]
	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 UseMultiplePathsState.ProtoReflect.Descriptor instead.
func (*UseMultiplePathsState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{107}
}

func (x *UseMultiplePathsState) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

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

	AllowMultipleAsn bool   `protobuf:"varint,1,opt,name=allow_multiple_asn,json=allowMultipleAsn,proto3" json:"allow_multiple_asn,omitempty"`
	MaximumPaths     uint32 `protobuf:"varint,2,opt,name=maximum_paths,json=maximumPaths,proto3" json:"maximum_paths,omitempty"`
}

func (x *EbgpConfig) Reset() {
	*x = EbgpConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[108]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EbgpConfig) ProtoMessage() {}

func (x *EbgpConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[108]
	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 EbgpConfig.ProtoReflect.Descriptor instead.
func (*EbgpConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{108}
}

func (x *EbgpConfig) GetAllowMultipleAsn() bool {
	if x != nil {
		return x.AllowMultipleAsn
	}
	return false
}

func (x *EbgpConfig) GetMaximumPaths() uint32 {
	if x != nil {
		return x.MaximumPaths
	}
	return 0
}

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

	AllowMultipleAsn bool   `protobuf:"varint,1,opt,name=allow_multiple_asn,json=allowMultipleAsn,proto3" json:"allow_multiple_asn,omitempty"`
	MaximumPaths     uint32 `protobuf:"varint,2,opt,name=maximum_paths,json=maximumPaths,proto3" json:"maximum_paths,omitempty"`
}

func (x *EbgpState) Reset() {
	*x = EbgpState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[109]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EbgpState) ProtoMessage() {}

func (x *EbgpState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[109]
	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 EbgpState.ProtoReflect.Descriptor instead.
func (*EbgpState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{109}
}

func (x *EbgpState) GetAllowMultipleAsn() bool {
	if x != nil {
		return x.AllowMultipleAsn
	}
	return false
}

func (x *EbgpState) GetMaximumPaths() uint32 {
	if x != nil {
		return x.MaximumPaths
	}
	return 0
}

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

	Config *EbgpConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *EbgpState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *Ebgp) Reset() {
	*x = Ebgp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[110]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Ebgp) ProtoMessage() {}

func (x *Ebgp) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[110]
	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 Ebgp.ProtoReflect.Descriptor instead.
func (*Ebgp) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{110}
}

func (x *Ebgp) GetConfig() *EbgpConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *Ebgp) GetState() *EbgpState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	MaximumPaths uint32 `protobuf:"varint,1,opt,name=maximum_paths,json=maximumPaths,proto3" json:"maximum_paths,omitempty"`
}

func (x *IbgpConfig) Reset() {
	*x = IbgpConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[111]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*IbgpConfig) ProtoMessage() {}

func (x *IbgpConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[111]
	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 IbgpConfig.ProtoReflect.Descriptor instead.
func (*IbgpConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{111}
}

func (x *IbgpConfig) GetMaximumPaths() uint32 {
	if x != nil {
		return x.MaximumPaths
	}
	return 0
}

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

	MaximumPaths uint32 `protobuf:"varint,1,opt,name=maximum_paths,json=maximumPaths,proto3" json:"maximum_paths,omitempty"`
}

func (x *IbgpState) Reset() {
	*x = IbgpState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[112]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*IbgpState) ProtoMessage() {}

func (x *IbgpState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[112]
	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 IbgpState.ProtoReflect.Descriptor instead.
func (*IbgpState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{112}
}

func (x *IbgpState) GetMaximumPaths() uint32 {
	if x != nil {
		return x.MaximumPaths
	}
	return 0
}

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

	Config *IbgpConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *IbgpState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *Ibgp) Reset() {
	*x = Ibgp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[113]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Ibgp) ProtoMessage() {}

func (x *Ibgp) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[113]
	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 Ibgp.ProtoReflect.Descriptor instead.
func (*Ibgp) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{113}
}

func (x *Ibgp) GetConfig() *IbgpConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *Ibgp) GetState() *IbgpState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	Config *UseMultiplePathsConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *UseMultiplePathsState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	Ebgp   *Ebgp                   `protobuf:"bytes,3,opt,name=ebgp,proto3" json:"ebgp,omitempty"`
	Ibgp   *Ibgp                   `protobuf:"bytes,4,opt,name=ibgp,proto3" json:"ibgp,omitempty"`
}

func (x *UseMultiplePaths) Reset() {
	*x = UseMultiplePaths{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[114]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UseMultiplePaths) ProtoMessage() {}

func (x *UseMultiplePaths) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[114]
	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 UseMultiplePaths.ProtoReflect.Descriptor instead.
func (*UseMultiplePaths) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{114}
}

func (x *UseMultiplePaths) GetConfig() *UseMultiplePathsConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *UseMultiplePaths) GetState() *UseMultiplePathsState {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *UseMultiplePaths) GetEbgp() *Ebgp {
	if x != nil {
		return x.Ebgp
	}
	return nil
}

func (x *UseMultiplePaths) GetIbgp() *Ibgp {
	if x != nil {
		return x.Ibgp
	}
	return nil
}

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

	DeferralTime uint32 `protobuf:"varint,1,opt,name=deferral_time,json=deferralTime,proto3" json:"deferral_time,omitempty"`
}

func (x *RouteTargetMembershipConfig) Reset() {
	*x = RouteTargetMembershipConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[115]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteTargetMembershipConfig) ProtoMessage() {}

func (x *RouteTargetMembershipConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[115]
	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 RouteTargetMembershipConfig.ProtoReflect.Descriptor instead.
func (*RouteTargetMembershipConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{115}
}

func (x *RouteTargetMembershipConfig) GetDeferralTime() uint32 {
	if x != nil {
		return x.DeferralTime
	}
	return 0
}

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

	DeferralTime uint32 `protobuf:"varint,1,opt,name=deferral_time,json=deferralTime,proto3" json:"deferral_time,omitempty"`
}

func (x *RouteTargetMembershipState) Reset() {
	*x = RouteTargetMembershipState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[116]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteTargetMembershipState) ProtoMessage() {}

func (x *RouteTargetMembershipState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[116]
	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 RouteTargetMembershipState.ProtoReflect.Descriptor instead.
func (*RouteTargetMembershipState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{116}
}

func (x *RouteTargetMembershipState) GetDeferralTime() uint32 {
	if x != nil {
		return x.DeferralTime
	}
	return 0
}

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

	Config *RouteTargetMembershipConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *RouteTargetMembershipState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *RouteTargetMembership) Reset() {
	*x = RouteTargetMembership{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[117]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RouteTargetMembership) ProtoMessage() {}

func (x *RouteTargetMembership) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[117]
	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 RouteTargetMembership.ProtoReflect.Descriptor instead.
func (*RouteTargetMembership) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{117}
}

func (x *RouteTargetMembership) GetConfig() *RouteTargetMembershipConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *RouteTargetMembership) GetState() *RouteTargetMembershipState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	Enabled     bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	RestartTime uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3" json:"restart_time,omitempty"`
}

func (x *LongLivedGracefulRestartConfig) Reset() {
	*x = LongLivedGracefulRestartConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[118]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LongLivedGracefulRestartConfig) ProtoMessage() {}

func (x *LongLivedGracefulRestartConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[118]
	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 LongLivedGracefulRestartConfig.ProtoReflect.Descriptor instead.
func (*LongLivedGracefulRestartConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{118}
}

func (x *LongLivedGracefulRestartConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *LongLivedGracefulRestartConfig) GetRestartTime() uint32 {
	if x != nil {
		return x.RestartTime
	}
	return 0
}

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

	Enabled                 bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Received                bool   `protobuf:"varint,2,opt,name=received,proto3" json:"received,omitempty"`
	Advertised              bool   `protobuf:"varint,3,opt,name=advertised,proto3" json:"advertised,omitempty"`
	PeerRestartTime         uint32 `protobuf:"varint,4,opt,name=peer_restart_time,json=peerRestartTime,proto3" json:"peer_restart_time,omitempty"`
	PeerRestartTimerExpired bool   `protobuf:"varint,5,opt,name=peer_restart_timer_expired,json=peerRestartTimerExpired,proto3" json:"peer_restart_timer_expired,omitempty"`
}

func (x *LongLivedGracefulRestartState) Reset() {
	*x = LongLivedGracefulRestartState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[119]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LongLivedGracefulRestartState) ProtoMessage() {}

func (x *LongLivedGracefulRestartState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[119]
	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 LongLivedGracefulRestartState.ProtoReflect.Descriptor instead.
func (*LongLivedGracefulRestartState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{119}
}

func (x *LongLivedGracefulRestartState) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *LongLivedGracefulRestartState) GetReceived() bool {
	if x != nil {
		return x.Received
	}
	return false
}

func (x *LongLivedGracefulRestartState) GetAdvertised() bool {
	if x != nil {
		return x.Advertised
	}
	return false
}

func (x *LongLivedGracefulRestartState) GetPeerRestartTime() uint32 {
	if x != nil {
		return x.PeerRestartTime
	}
	return 0
}

func (x *LongLivedGracefulRestartState) GetPeerRestartTimerExpired() bool {
	if x != nil {
		return x.PeerRestartTimerExpired
	}
	return false
}

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

	Config *LongLivedGracefulRestartConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *LongLivedGracefulRestartState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *LongLivedGracefulRestart) Reset() {
	*x = LongLivedGracefulRestart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[120]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LongLivedGracefulRestart) ProtoMessage() {}

func (x *LongLivedGracefulRestart) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[120]
	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 LongLivedGracefulRestart.ProtoReflect.Descriptor instead.
func (*LongLivedGracefulRestart) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{120}
}

func (x *LongLivedGracefulRestart) GetConfig() *LongLivedGracefulRestartConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *LongLivedGracefulRestart) GetState() *LongLivedGracefulRestartState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	MpGracefulRestart *MpGracefulRestart `protobuf:"bytes,1,opt,name=mp_graceful_restart,json=mpGracefulRestart,proto3" json:"mp_graceful_restart,omitempty"`
	Config            *AfiSafiConfig     `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	State             *AfiSafiState      `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
	ApplyPolicy       *ApplyPolicy       `protobuf:"bytes,4,opt,name=apply_policy,json=applyPolicy,proto3" json:"apply_policy,omitempty"`
	// TODO:
	// Support the following structures:
	// - Ipv4Unicast
	// - Ipv6Unicast
	// - Ipv4LabelledUnicast
	// - Ipv6LabelledUnicast
	// - L3vpnIpv4Unicast
	// - L3vpnIpv6Unicast
	// - L3vpnIpv4Multicast
	// - L3vpnIpv6Multicast
	// - L2vpnVpls
	// - L2vpnEvpn
	RouteSelectionOptions    *RouteSelectionOptions    `protobuf:"bytes,5,opt,name=route_selection_options,json=routeSelectionOptions,proto3" json:"route_selection_options,omitempty"`
	UseMultiplePaths         *UseMultiplePaths         `protobuf:"bytes,6,opt,name=use_multiple_paths,json=useMultiplePaths,proto3" json:"use_multiple_paths,omitempty"`
	PrefixLimits             *PrefixLimit              `protobuf:"bytes,7,opt,name=prefix_limits,json=prefixLimits,proto3" json:"prefix_limits,omitempty"`
	RouteTargetMembership    *RouteTargetMembership    `protobuf:"bytes,8,opt,name=route_target_membership,json=routeTargetMembership,proto3" json:"route_target_membership,omitempty"`
	LongLivedGracefulRestart *LongLivedGracefulRestart `protobuf:"bytes,9,opt,name=long_lived_graceful_restart,json=longLivedGracefulRestart,proto3" json:"long_lived_graceful_restart,omitempty"`
	AddPaths                 *AddPaths                 `protobuf:"bytes,10,opt,name=add_paths,json=addPaths,proto3" json:"add_paths,omitempty"`
}

func (x *AfiSafi) Reset() {
	*x = AfiSafi{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[121]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AfiSafi) ProtoMessage() {}

func (x *AfiSafi) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[121]
	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 AfiSafi.ProtoReflect.Descriptor instead.
func (*AfiSafi) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{121}
}

func (x *AfiSafi) GetMpGracefulRestart() *MpGracefulRestart {
	if x != nil {
		return x.MpGracefulRestart
	}
	return nil
}

func (x *AfiSafi) GetConfig() *AfiSafiConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *AfiSafi) GetState() *AfiSafiState {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *AfiSafi) GetApplyPolicy() *ApplyPolicy {
	if x != nil {
		return x.ApplyPolicy
	}
	return nil
}

func (x *AfiSafi) GetRouteSelectionOptions() *RouteSelectionOptions {
	if x != nil {
		return x.RouteSelectionOptions
	}
	return nil
}

func (x *AfiSafi) GetUseMultiplePaths() *UseMultiplePaths {
	if x != nil {
		return x.UseMultiplePaths
	}
	return nil
}

func (x *AfiSafi) GetPrefixLimits() *PrefixLimit {
	if x != nil {
		return x.PrefixLimits
	}
	return nil
}

func (x *AfiSafi) GetRouteTargetMembership() *RouteTargetMembership {
	if x != nil {
		return x.RouteTargetMembership
	}
	return nil
}

func (x *AfiSafi) GetLongLivedGracefulRestart() *LongLivedGracefulRestart {
	if x != nil {
		return x.LongLivedGracefulRestart
	}
	return nil
}

func (x *AfiSafi) GetAddPaths() *AddPaths {
	if x != nil {
		return x.AddPaths
	}
	return nil
}

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

	Receive bool   `protobuf:"varint,1,opt,name=receive,proto3" json:"receive,omitempty"`
	SendMax uint32 `protobuf:"varint,2,opt,name=send_max,json=sendMax,proto3" json:"send_max,omitempty"`
}

func (x *AddPathsConfig) Reset() {
	*x = AddPathsConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[122]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AddPathsConfig) ProtoMessage() {}

func (x *AddPathsConfig) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[122]
	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 AddPathsConfig.ProtoReflect.Descriptor instead.
func (*AddPathsConfig) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{122}
}

func (x *AddPathsConfig) GetReceive() bool {
	if x != nil {
		return x.Receive
	}
	return false
}

func (x *AddPathsConfig) GetSendMax() uint32 {
	if x != nil {
		return x.SendMax
	}
	return 0
}

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

	Receive bool   `protobuf:"varint,1,opt,name=receive,proto3" json:"receive,omitempty"`
	SendMax uint32 `protobuf:"varint,2,opt,name=send_max,json=sendMax,proto3" json:"send_max,omitempty"`
}

func (x *AddPathsState) Reset() {
	*x = AddPathsState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[123]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AddPathsState) ProtoMessage() {}

func (x *AddPathsState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[123]
	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 AddPathsState.ProtoReflect.Descriptor instead.
func (*AddPathsState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{123}
}

func (x *AddPathsState) GetReceive() bool {
	if x != nil {
		return x.Receive
	}
	return false
}

func (x *AddPathsState) GetSendMax() uint32 {
	if x != nil {
		return x.SendMax
	}
	return 0
}

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

	Config *AddPathsConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State  *AddPathsState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *AddPaths) Reset() {
	*x = AddPaths{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[124]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AddPaths) ProtoMessage() {}

func (x *AddPaths) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[124]
	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 AddPaths.ProtoReflect.Descriptor instead.
func (*AddPaths) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{124}
}

func (x *AddPaths) GetConfig() *AddPathsConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *AddPaths) GetState() *AddPathsState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	IpPrefix      string `protobuf:"bytes,1,opt,name=ip_prefix,json=ipPrefix,proto3" json:"ip_prefix,omitempty"`
	MaskLengthMin uint32 `protobuf:"varint,2,opt,name=mask_length_min,json=maskLengthMin,proto3" json:"mask_length_min,omitempty"`
	MaskLengthMax uint32 `protobuf:"varint,3,opt,name=mask_length_max,json=maskLengthMax,proto3" json:"mask_length_max,omitempty"`
}

func (x *Prefix) Reset() {
	*x = Prefix{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[125]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Prefix) ProtoMessage() {}

func (x *Prefix) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[125]
	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 Prefix.ProtoReflect.Descriptor instead.
func (*Prefix) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{125}
}

func (x *Prefix) GetIpPrefix() string {
	if x != nil {
		return x.IpPrefix
	}
	return ""
}

func (x *Prefix) GetMaskLengthMin() uint32 {
	if x != nil {
		return x.MaskLengthMin
	}
	return 0
}

func (x *Prefix) GetMaskLengthMax() uint32 {
	if x != nil {
		return x.MaskLengthMax
	}
	return 0
}

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

	DefinedType DefinedType `protobuf:"varint,1,opt,name=defined_type,json=definedType,proto3,enum=apipb.DefinedType" json:"defined_type,omitempty"`
	Name        string      `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	List        []string    `protobuf:"bytes,3,rep,name=list,proto3" json:"list,omitempty"`
	Prefixes    []*Prefix   `protobuf:"bytes,4,rep,name=prefixes,proto3" json:"prefixes,omitempty"`
}

func (x *DefinedSet) Reset() {
	*x = DefinedSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[126]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DefinedSet) ProtoMessage() {}

func (x *DefinedSet) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[126]
	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 DefinedSet.ProtoReflect.Descriptor instead.
func (*DefinedSet) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{126}
}

func (x *DefinedSet) GetDefinedType() DefinedType {
	if x != nil {
		return x.DefinedType
	}
	return DefinedType_PREFIX
}

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

func (x *DefinedSet) GetList() []string {
	if x != nil {
		return x.List
	}
	return nil
}

func (x *DefinedSet) GetPrefixes() []*Prefix {
	if x != nil {
		return x.Prefixes
	}
	return nil
}

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

	Type MatchSet_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.MatchSet_Type" json:"type,omitempty"`
	Name string        `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *MatchSet) Reset() {
	*x = MatchSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[127]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MatchSet) ProtoMessage() {}

func (x *MatchSet) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[127]
	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 MatchSet.ProtoReflect.Descriptor instead.
func (*MatchSet) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{127}
}

func (x *MatchSet) GetType() MatchSet_Type {
	if x != nil {
		return x.Type
	}
	return MatchSet_ANY
}

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

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

	Type   AsPathLength_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.AsPathLength_Type" json:"type,omitempty"`
	Length uint32            `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
}

func (x *AsPathLength) Reset() {
	*x = AsPathLength{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[128]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AsPathLength) ProtoMessage() {}

func (x *AsPathLength) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[128]
	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 AsPathLength.ProtoReflect.Descriptor instead.
func (*AsPathLength) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{128}
}

func (x *AsPathLength) GetType() AsPathLength_Type {
	if x != nil {
		return x.Type
	}
	return AsPathLength_EQ
}

func (x *AsPathLength) GetLength() uint32 {
	if x != nil {
		return x.Length
	}
	return 0
}

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

	PrefixSet         *MatchSet            `protobuf:"bytes,1,opt,name=prefix_set,json=prefixSet,proto3" json:"prefix_set,omitempty"`
	NeighborSet       *MatchSet            `protobuf:"bytes,2,opt,name=neighbor_set,json=neighborSet,proto3" json:"neighbor_set,omitempty"`
	AsPathLength      *AsPathLength        `protobuf:"bytes,3,opt,name=as_path_length,json=asPathLength,proto3" json:"as_path_length,omitempty"`
	AsPathSet         *MatchSet            `protobuf:"bytes,4,opt,name=as_path_set,json=asPathSet,proto3" json:"as_path_set,omitempty"`
	CommunitySet      *MatchSet            `protobuf:"bytes,5,opt,name=community_set,json=communitySet,proto3" json:"community_set,omitempty"`
	ExtCommunitySet   *MatchSet            `protobuf:"bytes,6,opt,name=ext_community_set,json=extCommunitySet,proto3" json:"ext_community_set,omitempty"`
	RpkiResult        int32                `protobuf:"varint,7,opt,name=rpki_result,json=rpkiResult,proto3" json:"rpki_result,omitempty"`
	RouteType         Conditions_RouteType `protobuf:"varint,8,opt,name=route_type,json=routeType,proto3,enum=apipb.Conditions_RouteType" json:"route_type,omitempty"`
	LargeCommunitySet *MatchSet            `protobuf:"bytes,9,opt,name=large_community_set,json=largeCommunitySet,proto3" json:"large_community_set,omitempty"`
	NextHopInList     []string             `protobuf:"bytes,10,rep,name=next_hop_in_list,json=nextHopInList,proto3" json:"next_hop_in_list,omitempty"`
	AfiSafiIn         []*Family            `protobuf:"bytes,11,rep,name=afi_safi_in,json=afiSafiIn,proto3" json:"afi_safi_in,omitempty"`
}

func (x *Conditions) Reset() {
	*x = Conditions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[129]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Conditions) ProtoMessage() {}

func (x *Conditions) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[129]
	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 Conditions.ProtoReflect.Descriptor instead.
func (*Conditions) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{129}
}

func (x *Conditions) GetPrefixSet() *MatchSet {
	if x != nil {
		return x.PrefixSet
	}
	return nil
}

func (x *Conditions) GetNeighborSet() *MatchSet {
	if x != nil {
		return x.NeighborSet
	}
	return nil
}

func (x *Conditions) GetAsPathLength() *AsPathLength {
	if x != nil {
		return x.AsPathLength
	}
	return nil
}

func (x *Conditions) GetAsPathSet() *MatchSet {
	if x != nil {
		return x.AsPathSet
	}
	return nil
}

func (x *Conditions) GetCommunitySet() *MatchSet {
	if x != nil {
		return x.CommunitySet
	}
	return nil
}

func (x *Conditions) GetExtCommunitySet() *MatchSet {
	if x != nil {
		return x.ExtCommunitySet
	}
	return nil
}

func (x *Conditions) GetRpkiResult() int32 {
	if x != nil {
		return x.RpkiResult
	}
	return 0
}

func (x *Conditions) GetRouteType() Conditions_RouteType {
	if x != nil {
		return x.RouteType
	}
	return Conditions_ROUTE_TYPE_NONE
}

func (x *Conditions) GetLargeCommunitySet() *MatchSet {
	if x != nil {
		return x.LargeCommunitySet
	}
	return nil
}

func (x *Conditions) GetNextHopInList() []string {
	if x != nil {
		return x.NextHopInList
	}
	return nil
}

func (x *Conditions) GetAfiSafiIn() []*Family {
	if x != nil {
		return x.AfiSafiIn
	}
	return nil
}

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

	Type        CommunityAction_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.CommunityAction_Type" json:"type,omitempty"`
	Communities []string             `protobuf:"bytes,2,rep,name=communities,proto3" json:"communities,omitempty"`
}

func (x *CommunityAction) Reset() {
	*x = CommunityAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[130]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CommunityAction) ProtoMessage() {}

func (x *CommunityAction) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[130]
	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 CommunityAction.ProtoReflect.Descriptor instead.
func (*CommunityAction) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{130}
}

func (x *CommunityAction) GetType() CommunityAction_Type {
	if x != nil {
		return x.Type
	}
	return CommunityAction_ADD
}

func (x *CommunityAction) GetCommunities() []string {
	if x != nil {
		return x.Communities
	}
	return nil
}

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

	Type  MedAction_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.MedAction_Type" json:"type,omitempty"`
	Value int64          `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *MedAction) Reset() {
	*x = MedAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[131]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MedAction) ProtoMessage() {}

func (x *MedAction) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[131]
	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 MedAction.ProtoReflect.Descriptor instead.
func (*MedAction) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{131}
}

func (x *MedAction) GetType() MedAction_Type {
	if x != nil {
		return x.Type
	}
	return MedAction_MOD
}

func (x *MedAction) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

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

	Asn         uint32 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	Repeat      uint32 `protobuf:"varint,2,opt,name=repeat,proto3" json:"repeat,omitempty"`
	UseLeftMost bool   `protobuf:"varint,3,opt,name=use_left_most,json=useLeftMost,proto3" json:"use_left_most,omitempty"`
}

func (x *AsPrependAction) Reset() {
	*x = AsPrependAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[132]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AsPrependAction) ProtoMessage() {}

func (x *AsPrependAction) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[132]
	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 AsPrependAction.ProtoReflect.Descriptor instead.
func (*AsPrependAction) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{132}
}

func (x *AsPrependAction) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *AsPrependAction) GetRepeat() uint32 {
	if x != nil {
		return x.Repeat
	}
	return 0
}

func (x *AsPrependAction) GetUseLeftMost() bool {
	if x != nil {
		return x.UseLeftMost
	}
	return false
}

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

	Address   string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Self      bool   `protobuf:"varint,2,opt,name=self,proto3" json:"self,omitempty"`
	Unchanged bool   `protobuf:"varint,3,opt,name=unchanged,proto3" json:"unchanged,omitempty"`
}

func (x *NexthopAction) Reset() {
	*x = NexthopAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[133]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NexthopAction) ProtoMessage() {}

func (x *NexthopAction) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[133]
	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 NexthopAction.ProtoReflect.Descriptor instead.
func (*NexthopAction) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{133}
}

func (x *NexthopAction) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *NexthopAction) GetSelf() bool {
	if x != nil {
		return x.Self
	}
	return false
}

func (x *NexthopAction) GetUnchanged() bool {
	if x != nil {
		return x.Unchanged
	}
	return false
}

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

	Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *LocalPrefAction) Reset() {
	*x = LocalPrefAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[134]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LocalPrefAction) ProtoMessage() {}

func (x *LocalPrefAction) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[134]
	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 LocalPrefAction.ProtoReflect.Descriptor instead.
func (*LocalPrefAction) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{134}
}

func (x *LocalPrefAction) GetValue() uint32 {
	if x != nil {
		return x.Value
	}
	return 0
}

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

	RouteAction    RouteAction      `protobuf:"varint,1,opt,name=route_action,json=routeAction,proto3,enum=apipb.RouteAction" json:"route_action,omitempty"`
	Community      *CommunityAction `protobuf:"bytes,2,opt,name=community,proto3" json:"community,omitempty"`
	Med            *MedAction       `protobuf:"bytes,3,opt,name=med,proto3" json:"med,omitempty"`
	AsPrepend      *AsPrependAction `protobuf:"bytes,4,opt,name=as_prepend,json=asPrepend,proto3" json:"as_prepend,omitempty"`
	ExtCommunity   *CommunityAction `protobuf:"bytes,5,opt,name=ext_community,json=extCommunity,proto3" json:"ext_community,omitempty"`
	Nexthop        *NexthopAction   `protobuf:"bytes,6,opt,name=nexthop,proto3" json:"nexthop,omitempty"`
	LocalPref      *LocalPrefAction `protobuf:"bytes,7,opt,name=local_pref,json=localPref,proto3" json:"local_pref,omitempty"`
	LargeCommunity *CommunityAction `protobuf:"bytes,8,opt,name=large_community,json=largeCommunity,proto3" json:"large_community,omitempty"`
}

func (x *Actions) Reset() {
	*x = Actions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[135]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Actions) ProtoMessage() {}

func (x *Actions) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[135]
	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 Actions.ProtoReflect.Descriptor instead.
func (*Actions) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{135}
}

func (x *Actions) GetRouteAction() RouteAction {
	if x != nil {
		return x.RouteAction
	}
	return RouteAction_NONE
}

func (x *Actions) GetCommunity() *CommunityAction {
	if x != nil {
		return x.Community
	}
	return nil
}

func (x *Actions) GetMed() *MedAction {
	if x != nil {
		return x.Med
	}
	return nil
}

func (x *Actions) GetAsPrepend() *AsPrependAction {
	if x != nil {
		return x.AsPrepend
	}
	return nil
}

func (x *Actions) GetExtCommunity() *CommunityAction {
	if x != nil {
		return x.ExtCommunity
	}
	return nil
}

func (x *Actions) GetNexthop() *NexthopAction {
	if x != nil {
		return x.Nexthop
	}
	return nil
}

func (x *Actions) GetLocalPref() *LocalPrefAction {
	if x != nil {
		return x.LocalPref
	}
	return nil
}

func (x *Actions) GetLargeCommunity() *CommunityAction {
	if x != nil {
		return x.LargeCommunity
	}
	return nil
}

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

	Name       string      `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Conditions *Conditions `protobuf:"bytes,2,opt,name=conditions,proto3" json:"conditions,omitempty"`
	Actions    *Actions    `protobuf:"bytes,3,opt,name=actions,proto3" json:"actions,omitempty"`
}

func (x *Statement) Reset() {
	*x = Statement{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[136]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Statement) ProtoMessage() {}

func (x *Statement) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[136]
	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 Statement.ProtoReflect.Descriptor instead.
func (*Statement) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{136}
}

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

func (x *Statement) GetConditions() *Conditions {
	if x != nil {
		return x.Conditions
	}
	return nil
}

func (x *Statement) GetActions() *Actions {
	if x != nil {
		return x.Actions
	}
	return nil
}

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

	Name       string       `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Statements []*Statement `protobuf:"bytes,2,rep,name=statements,proto3" json:"statements,omitempty"`
}

func (x *Policy) Reset() {
	*x = Policy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[137]
		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_gobgp_proto_msgTypes[137]
	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_gobgp_proto_rawDescGZIP(), []int{137}
}

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

func (x *Policy) GetStatements() []*Statement {
	if x != nil {
		return x.Statements
	}
	return nil
}

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

	Name          string          `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Direction     PolicyDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=apipb.PolicyDirection" json:"direction,omitempty"`
	Policies      []*Policy       `protobuf:"bytes,4,rep,name=policies,proto3" json:"policies,omitempty"`
	DefaultAction RouteAction     `protobuf:"varint,5,opt,name=default_action,json=defaultAction,proto3,enum=apipb.RouteAction" json:"default_action,omitempty"`
}

func (x *PolicyAssignment) Reset() {
	*x = PolicyAssignment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[138]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PolicyAssignment) ProtoMessage() {}

func (x *PolicyAssignment) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[138]
	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 PolicyAssignment.ProtoReflect.Descriptor instead.
func (*PolicyAssignment) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{138}
}

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

func (x *PolicyAssignment) GetDirection() PolicyDirection {
	if x != nil {
		return x.Direction
	}
	return PolicyDirection_UNKNOWN
}

func (x *PolicyAssignment) GetPolicies() []*Policy {
	if x != nil {
		return x.Policies
	}
	return nil
}

func (x *PolicyAssignment) GetDefaultAction() RouteAction {
	if x != nil {
		return x.DefaultAction
	}
	return RouteAction_NONE
}

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

	DefinedSets []*DefinedSet `protobuf:"bytes,1,rep,name=defined_sets,json=definedSets,proto3" json:"defined_sets,omitempty"`
	Policies    []*Policy     `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty"`
}

func (x *RoutingPolicy) Reset() {
	*x = RoutingPolicy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[139]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RoutingPolicy) ProtoMessage() {}

func (x *RoutingPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[139]
	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 RoutingPolicy.ProtoReflect.Descriptor instead.
func (*RoutingPolicy) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{139}
}

func (x *RoutingPolicy) GetDefinedSets() []*DefinedSet {
	if x != nil {
		return x.DefinedSets
	}
	return nil
}

func (x *RoutingPolicy) GetPolicies() []*Policy {
	if x != nil {
		return x.Policies
	}
	return nil
}

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

	Asn       uint32    `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	Prefixlen uint32    `protobuf:"varint,2,opt,name=prefixlen,proto3" json:"prefixlen,omitempty"`
	Maxlen    uint32    `protobuf:"varint,3,opt,name=maxlen,proto3" json:"maxlen,omitempty"`
	Prefix    string    `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"`
	Conf      *RPKIConf `protobuf:"bytes,5,opt,name=conf,proto3" json:"conf,omitempty"`
}

func (x *Roa) Reset() {
	*x = Roa{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[140]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Roa) ProtoMessage() {}

func (x *Roa) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[140]
	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 Roa.ProtoReflect.Descriptor instead.
func (*Roa) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{140}
}

func (x *Roa) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *Roa) GetPrefixlen() uint32 {
	if x != nil {
		return x.Prefixlen
	}
	return 0
}

func (x *Roa) GetMaxlen() uint32 {
	if x != nil {
		return x.Maxlen
	}
	return 0
}

func (x *Roa) GetPrefix() string {
	if x != nil {
		return x.Prefix
	}
	return ""
}

func (x *Roa) GetConf() *RPKIConf {
	if x != nil {
		return x.Conf
	}
	return nil
}

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

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Route Distinguisher must be one of
	// RouteDistinguisherTwoOctetAS,
	// RouteDistinguisherIPAddressAS,
	// or RouteDistinguisherFourOctetAS.
	Rd *anypb.Any `protobuf:"bytes,2,opt,name=rd,proto3" json:"rd,omitempty"`
	// List of the Import Route Targets. Each must be one of
	// TwoOctetAsSpecificExtended,
	// IPv4AddressSpecificExtended,
	// or FourOctetAsSpecificExtended.
	ImportRt []*anypb.Any `protobuf:"bytes,3,rep,name=import_rt,json=importRt,proto3" json:"import_rt,omitempty"`
	// List of the Export Route Targets. Each must be one of
	// TwoOctetAsSpecificExtended,
	// IPv4AddressSpecificExtended,
	// or FourOctetAsSpecificExtended.
	ExportRt []*anypb.Any `protobuf:"bytes,4,rep,name=export_rt,json=exportRt,proto3" json:"export_rt,omitempty"`
	Id       uint32       `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *Vrf) Reset() {
	*x = Vrf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[141]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Vrf) ProtoMessage() {}

func (x *Vrf) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[141]
	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 Vrf.ProtoReflect.Descriptor instead.
func (*Vrf) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{141}
}

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

func (x *Vrf) GetRd() *anypb.Any {
	if x != nil {
		return x.Rd
	}
	return nil
}

func (x *Vrf) GetImportRt() []*anypb.Any {
	if x != nil {
		return x.ImportRt
	}
	return nil
}

func (x *Vrf) GetExportRt() []*anypb.Any {
	if x != nil {
		return x.ExportRt
	}
	return nil
}

func (x *Vrf) GetId() uint32 {
	if x != nil {
		return x.Id
	}
	return 0
}

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

	ExternalRouteDistance uint32 `protobuf:"varint,1,opt,name=external_route_distance,json=externalRouteDistance,proto3" json:"external_route_distance,omitempty"`
	InternalRouteDistance uint32 `protobuf:"varint,2,opt,name=internal_route_distance,json=internalRouteDistance,proto3" json:"internal_route_distance,omitempty"`
}

func (x *DefaultRouteDistance) Reset() {
	*x = DefaultRouteDistance{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[142]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DefaultRouteDistance) ProtoMessage() {}

func (x *DefaultRouteDistance) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[142]
	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 DefaultRouteDistance.ProtoReflect.Descriptor instead.
func (*DefaultRouteDistance) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{142}
}

func (x *DefaultRouteDistance) GetExternalRouteDistance() uint32 {
	if x != nil {
		return x.ExternalRouteDistance
	}
	return 0
}

func (x *DefaultRouteDistance) GetInternalRouteDistance() uint32 {
	if x != nil {
		return x.InternalRouteDistance
	}
	return 0
}

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

	Asn                   uint32                       `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	RouterId              string                       `protobuf:"bytes,2,opt,name=router_id,json=routerId,proto3" json:"router_id,omitempty"`
	ListenPort            int32                        `protobuf:"varint,3,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
	ListenAddresses       []string                     `protobuf:"bytes,4,rep,name=listen_addresses,json=listenAddresses,proto3" json:"listen_addresses,omitempty"`
	Families              []uint32                     `protobuf:"varint,5,rep,packed,name=families,proto3" json:"families,omitempty"`
	UseMultiplePaths      bool                         `protobuf:"varint,6,opt,name=use_multiple_paths,json=useMultiplePaths,proto3" json:"use_multiple_paths,omitempty"`
	RouteSelectionOptions *RouteSelectionOptionsConfig `protobuf:"bytes,7,opt,name=route_selection_options,json=routeSelectionOptions,proto3" json:"route_selection_options,omitempty"`
	DefaultRouteDistance  *DefaultRouteDistance        `protobuf:"bytes,8,opt,name=default_route_distance,json=defaultRouteDistance,proto3" json:"default_route_distance,omitempty"`
	Confederation         *Confederation               `protobuf:"bytes,9,opt,name=confederation,proto3" json:"confederation,omitempty"`
	GracefulRestart       *GracefulRestart             `protobuf:"bytes,10,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"`
	ApplyPolicy           *ApplyPolicy                 `protobuf:"bytes,11,opt,name=apply_policy,json=applyPolicy,proto3" json:"apply_policy,omitempty"`
	BindToDevice          string                       `protobuf:"bytes,12,opt,name=bind_to_device,json=bindToDevice,proto3" json:"bind_to_device,omitempty"`
}

func (x *Global) Reset() {
	*x = Global{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[143]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Global) ProtoMessage() {}

func (x *Global) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[143]
	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 Global.ProtoReflect.Descriptor instead.
func (*Global) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{143}
}

func (x *Global) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *Global) GetRouterId() string {
	if x != nil {
		return x.RouterId
	}
	return ""
}

func (x *Global) GetListenPort() int32 {
	if x != nil {
		return x.ListenPort
	}
	return 0
}

func (x *Global) GetListenAddresses() []string {
	if x != nil {
		return x.ListenAddresses
	}
	return nil
}

func (x *Global) GetFamilies() []uint32 {
	if x != nil {
		return x.Families
	}
	return nil
}

func (x *Global) GetUseMultiplePaths() bool {
	if x != nil {
		return x.UseMultiplePaths
	}
	return false
}

func (x *Global) GetRouteSelectionOptions() *RouteSelectionOptionsConfig {
	if x != nil {
		return x.RouteSelectionOptions
	}
	return nil
}

func (x *Global) GetDefaultRouteDistance() *DefaultRouteDistance {
	if x != nil {
		return x.DefaultRouteDistance
	}
	return nil
}

func (x *Global) GetConfederation() *Confederation {
	if x != nil {
		return x.Confederation
	}
	return nil
}

func (x *Global) GetGracefulRestart() *GracefulRestart {
	if x != nil {
		return x.GracefulRestart
	}
	return nil
}

func (x *Global) GetApplyPolicy() *ApplyPolicy {
	if x != nil {
		return x.ApplyPolicy
	}
	return nil
}

func (x *Global) GetBindToDevice() string {
	if x != nil {
		return x.BindToDevice
	}
	return ""
}

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

	Enabled      bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Identifier   uint32   `protobuf:"varint,2,opt,name=identifier,proto3" json:"identifier,omitempty"`
	MemberAsList []uint32 `protobuf:"varint,3,rep,packed,name=member_as_list,json=memberAsList,proto3" json:"member_as_list,omitempty"`
}

func (x *Confederation) Reset() {
	*x = Confederation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[144]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Confederation) ProtoMessage() {}

func (x *Confederation) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[144]
	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 Confederation.ProtoReflect.Descriptor instead.
func (*Confederation) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{144}
}

func (x *Confederation) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *Confederation) GetIdentifier() uint32 {
	if x != nil {
		return x.Identifier
	}
	return 0
}

func (x *Confederation) GetMemberAsList() []uint32 {
	if x != nil {
		return x.MemberAsList
	}
	return nil
}

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

	Address    string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	RemotePort uint32 `protobuf:"varint,2,opt,name=remote_port,json=remotePort,proto3" json:"remote_port,omitempty"`
}

func (x *RPKIConf) Reset() {
	*x = RPKIConf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[145]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RPKIConf) ProtoMessage() {}

func (x *RPKIConf) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[145]
	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 RPKIConf.ProtoReflect.Descriptor instead.
func (*RPKIConf) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{145}
}

func (x *RPKIConf) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *RPKIConf) GetRemotePort() uint32 {
	if x != nil {
		return x.RemotePort
	}
	return 0
}

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

	Uptime        *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=uptime,proto3" json:"uptime,omitempty"`
	Downtime      *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=downtime,proto3" json:"downtime,omitempty"`
	Up            bool                   `protobuf:"varint,3,opt,name=up,proto3" json:"up,omitempty"`
	RecordIpv4    uint32                 `protobuf:"varint,4,opt,name=record_ipv4,json=recordIpv4,proto3" json:"record_ipv4,omitempty"`
	RecordIpv6    uint32                 `protobuf:"varint,5,opt,name=record_ipv6,json=recordIpv6,proto3" json:"record_ipv6,omitempty"`
	PrefixIpv4    uint32                 `protobuf:"varint,6,opt,name=prefix_ipv4,json=prefixIpv4,proto3" json:"prefix_ipv4,omitempty"`
	PrefixIpv6    uint32                 `protobuf:"varint,7,opt,name=prefix_ipv6,json=prefixIpv6,proto3" json:"prefix_ipv6,omitempty"`
	Serial        uint32                 `protobuf:"varint,8,opt,name=serial,proto3" json:"serial,omitempty"`
	ReceivedIpv4  int64                  `protobuf:"varint,9,opt,name=received_ipv4,json=receivedIpv4,proto3" json:"received_ipv4,omitempty"`
	ReceivedIpv6  int64                  `protobuf:"varint,10,opt,name=received_ipv6,json=receivedIpv6,proto3" json:"received_ipv6,omitempty"`
	SerialNotify  int64                  `protobuf:"varint,11,opt,name=serial_notify,json=serialNotify,proto3" json:"serial_notify,omitempty"`
	CacheReset    int64                  `protobuf:"varint,12,opt,name=cache_reset,json=cacheReset,proto3" json:"cache_reset,omitempty"`
	CacheResponse int64                  `protobuf:"varint,13,opt,name=cache_response,json=cacheResponse,proto3" json:"cache_response,omitempty"`
	EndOfData     int64                  `protobuf:"varint,14,opt,name=end_of_data,json=endOfData,proto3" json:"end_of_data,omitempty"`
	Error         int64                  `protobuf:"varint,15,opt,name=error,proto3" json:"error,omitempty"`
	SerialQuery   int64                  `protobuf:"varint,16,opt,name=serial_query,json=serialQuery,proto3" json:"serial_query,omitempty"`
	ResetQuery    int64                  `protobuf:"varint,17,opt,name=reset_query,json=resetQuery,proto3" json:"reset_query,omitempty"`
}

func (x *RPKIState) Reset() {
	*x = RPKIState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[146]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RPKIState) ProtoMessage() {}

func (x *RPKIState) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[146]
	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 RPKIState.ProtoReflect.Descriptor instead.
func (*RPKIState) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{146}
}

func (x *RPKIState) GetUptime() *timestamppb.Timestamp {
	if x != nil {
		return x.Uptime
	}
	return nil
}

func (x *RPKIState) GetDowntime() *timestamppb.Timestamp {
	if x != nil {
		return x.Downtime
	}
	return nil
}

func (x *RPKIState) GetUp() bool {
	if x != nil {
		return x.Up
	}
	return false
}

func (x *RPKIState) GetRecordIpv4() uint32 {
	if x != nil {
		return x.RecordIpv4
	}
	return 0
}

func (x *RPKIState) GetRecordIpv6() uint32 {
	if x != nil {
		return x.RecordIpv6
	}
	return 0
}

func (x *RPKIState) GetPrefixIpv4() uint32 {
	if x != nil {
		return x.PrefixIpv4
	}
	return 0
}

func (x *RPKIState) GetPrefixIpv6() uint32 {
	if x != nil {
		return x.PrefixIpv6
	}
	return 0
}

func (x *RPKIState) GetSerial() uint32 {
	if x != nil {
		return x.Serial
	}
	return 0
}

func (x *RPKIState) GetReceivedIpv4() int64 {
	if x != nil {
		return x.ReceivedIpv4
	}
	return 0
}

func (x *RPKIState) GetReceivedIpv6() int64 {
	if x != nil {
		return x.ReceivedIpv6
	}
	return 0
}

func (x *RPKIState) GetSerialNotify() int64 {
	if x != nil {
		return x.SerialNotify
	}
	return 0
}

func (x *RPKIState) GetCacheReset() int64 {
	if x != nil {
		return x.CacheReset
	}
	return 0
}

func (x *RPKIState) GetCacheResponse() int64 {
	if x != nil {
		return x.CacheResponse
	}
	return 0
}

func (x *RPKIState) GetEndOfData() int64 {
	if x != nil {
		return x.EndOfData
	}
	return 0
}

func (x *RPKIState) GetError() int64 {
	if x != nil {
		return x.Error
	}
	return 0
}

func (x *RPKIState) GetSerialQuery() int64 {
	if x != nil {
		return x.SerialQuery
	}
	return 0
}

func (x *RPKIState) GetResetQuery() int64 {
	if x != nil {
		return x.ResetQuery
	}
	return 0
}

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

	Conf  *RPKIConf  `protobuf:"bytes,1,opt,name=conf,proto3" json:"conf,omitempty"`
	State *RPKIState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *Rpki) Reset() {
	*x = Rpki{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[147]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Rpki) ProtoMessage() {}

func (x *Rpki) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[147]
	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 Rpki.ProtoReflect.Descriptor instead.
func (*Rpki) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{147}
}

func (x *Rpki) GetConf() *RPKIConf {
	if x != nil {
		return x.Conf
	}
	return nil
}

func (x *Rpki) GetState() *RPKIState {
	if x != nil {
		return x.State
	}
	return nil
}

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

	Level SetLogLevelRequest_Level `protobuf:"varint,1,opt,name=level,proto3,enum=apipb.SetLogLevelRequest_Level" json:"level,omitempty"`
}

func (x *SetLogLevelRequest) Reset() {
	*x = SetLogLevelRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[148]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SetLogLevelRequest) ProtoMessage() {}

func (x *SetLogLevelRequest) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[148]
	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 SetLogLevelRequest.ProtoReflect.Descriptor instead.
func (*SetLogLevelRequest) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{148}
}

func (x *SetLogLevelRequest) GetLevel() SetLogLevelRequest_Level {
	if x != nil {
		return x.Level
	}
	return SetLogLevelRequest_PANIC
}

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

func (x *WatchEventRequest_Peer) Reset() {
	*x = WatchEventRequest_Peer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[149]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WatchEventRequest_Peer) ProtoMessage() {}

func (x *WatchEventRequest_Peer) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[149]
	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 WatchEventRequest_Peer.ProtoReflect.Descriptor instead.
func (*WatchEventRequest_Peer) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{4, 0}
}

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

	Filters []*WatchEventRequest_Table_Filter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
}

func (x *WatchEventRequest_Table) Reset() {
	*x = WatchEventRequest_Table{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[150]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WatchEventRequest_Table) ProtoMessage() {}

func (x *WatchEventRequest_Table) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[150]
	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 WatchEventRequest_Table.ProtoReflect.Descriptor instead.
func (*WatchEventRequest_Table) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{4, 1}
}

func (x *WatchEventRequest_Table) GetFilters() []*WatchEventRequest_Table_Filter {
	if x != nil {
		return x.Filters
	}
	return nil
}

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

	Type        WatchEventRequest_Table_Filter_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.WatchEventRequest_Table_Filter_Type" json:"type,omitempty"`
	Init        bool                                `protobuf:"varint,2,opt,name=init,proto3" json:"init,omitempty"`
	PeerAddress string                              `protobuf:"bytes,3,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"`
	PeerGroup   string                              `protobuf:"bytes,4,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
}

func (x *WatchEventRequest_Table_Filter) Reset() {
	*x = WatchEventRequest_Table_Filter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[151]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WatchEventRequest_Table_Filter) ProtoMessage() {}

func (x *WatchEventRequest_Table_Filter) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[151]
	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 WatchEventRequest_Table_Filter.ProtoReflect.Descriptor instead.
func (*WatchEventRequest_Table_Filter) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{4, 1, 0}
}

func (x *WatchEventRequest_Table_Filter) GetType() WatchEventRequest_Table_Filter_Type {
	if x != nil {
		return x.Type
	}
	return WatchEventRequest_Table_Filter_BEST
}

func (x *WatchEventRequest_Table_Filter) GetInit() bool {
	if x != nil {
		return x.Init
	}
	return false
}

func (x *WatchEventRequest_Table_Filter) GetPeerAddress() string {
	if x != nil {
		return x.PeerAddress
	}
	return ""
}

func (x *WatchEventRequest_Table_Filter) GetPeerGroup() string {
	if x != nil {
		return x.PeerGroup
	}
	return ""
}

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

	Type WatchEventResponse_PeerEvent_Type `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.WatchEventResponse_PeerEvent_Type" json:"type,omitempty"`
	Peer *Peer                             `protobuf:"bytes,2,opt,name=peer,proto3" json:"peer,omitempty"`
}

func (x *WatchEventResponse_PeerEvent) Reset() {
	*x = WatchEventResponse_PeerEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[152]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WatchEventResponse_PeerEvent) ProtoMessage() {}

func (x *WatchEventResponse_PeerEvent) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[152]
	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 WatchEventResponse_PeerEvent.ProtoReflect.Descriptor instead.
func (*WatchEventResponse_PeerEvent) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{5, 0}
}

func (x *WatchEventResponse_PeerEvent) GetType() WatchEventResponse_PeerEvent_Type {
	if x != nil {
		return x.Type
	}
	return WatchEventResponse_PeerEvent_UNKNOWN
}

func (x *WatchEventResponse_PeerEvent) GetPeer() *Peer {
	if x != nil {
		return x.Peer
	}
	return nil
}

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

	Paths []*Path `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
}

func (x *WatchEventResponse_TableEvent) Reset() {
	*x = WatchEventResponse_TableEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[153]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WatchEventResponse_TableEvent) ProtoMessage() {}

func (x *WatchEventResponse_TableEvent) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[153]
	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 WatchEventResponse_TableEvent.ProtoReflect.Descriptor instead.
func (*WatchEventResponse_TableEvent) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{5, 1}
}

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

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

	Conf  *ListBmpResponse_BmpStation_Conf  `protobuf:"bytes,1,opt,name=conf,proto3" json:"conf,omitempty"`
	State *ListBmpResponse_BmpStation_State `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *ListBmpResponse_BmpStation) Reset() {
	*x = ListBmpResponse_BmpStation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[154]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListBmpResponse_BmpStation) ProtoMessage() {}

func (x *ListBmpResponse_BmpStation) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[154]
	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 ListBmpResponse_BmpStation.ProtoReflect.Descriptor instead.
func (*ListBmpResponse_BmpStation) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{72, 0}
}

func (x *ListBmpResponse_BmpStation) GetConf() *ListBmpResponse_BmpStation_Conf {
	if x != nil {
		return x.Conf
	}
	return nil
}

func (x *ListBmpResponse_BmpStation) GetState() *ListBmpResponse_BmpStation_State {
	if x != nil {
		return x.State
	}
	return nil
}

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

	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

func (x *ListBmpResponse_BmpStation_Conf) Reset() {
	*x = ListBmpResponse_BmpStation_Conf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[155]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListBmpResponse_BmpStation_Conf) ProtoMessage() {}

func (x *ListBmpResponse_BmpStation_Conf) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[155]
	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 ListBmpResponse_BmpStation_Conf.ProtoReflect.Descriptor instead.
func (*ListBmpResponse_BmpStation_Conf) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{72, 0, 0}
}

func (x *ListBmpResponse_BmpStation_Conf) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

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

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

	Uptime   *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=uptime,proto3" json:"uptime,omitempty"`
	Downtime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=downtime,proto3" json:"downtime,omitempty"`
}

func (x *ListBmpResponse_BmpStation_State) Reset() {
	*x = ListBmpResponse_BmpStation_State{}
	if protoimpl.UnsafeEnabled {
		mi := &file_gobgp_proto_msgTypes[156]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListBmpResponse_BmpStation_State) ProtoMessage() {}

func (x *ListBmpResponse_BmpStation_State) ProtoReflect() protoreflect.Message {
	mi := &file_gobgp_proto_msgTypes[156]
	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 ListBmpResponse_BmpStation_State.ProtoReflect.Descriptor instead.
func (*ListBmpResponse_BmpStation_State) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{72, 0, 1}
}

func (x *ListBmpResponse_BmpStation_State) GetUptime() *timestamppb.Timestamp {
	if x != nil {
		return x.Uptime
	}
	return nil
}

func (x *ListBmpResponse_BmpStation_State) GetDowntime() *timestamppb.Timestamp {
	if x != nil {
		return x.Downtime
	}
	return nil
}

var File_gobgp_proto protoreflect.FileDescriptor

var file_gobgp_proto_rawDesc = []byte{
	0x0a, 0x0b, 0x67, 0x6f, 0x62, 0x67, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x38, 0x0a,
	0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x25, 0x0a, 0x06, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52,
	0x06, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x42,
	0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x47, 0x65, 0x74,
	0x42, 0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x37, 0x0a, 0x0e, 0x47, 0x65,
	0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x06, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x22, 0x9e, 0x03, 0x0a, 0x11, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x70, 0x65, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x05,
	0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x74, 0x61, 0x62,
	0x6c, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x97, 0x02, 0x0a, 0x05, 0x54,
	0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61,
	0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
	0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0xcc, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x46,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
	0x69, 0x6e, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65,
	0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08,
	0x0a, 0x04, 0x42, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x44, 0x4a, 0x49,
	0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49,
	0x43, 0x59, 0x10, 0x02, 0x22, 0xef, 0x02, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x70,
	0x65, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00,
	0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61,
	0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x74,
	0x61, 0x62, 0x6c, 0x65, 0x1a, 0xa5, 0x01, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x12, 0x1f, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65,
	0x72, 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01,
	0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x46, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10,
	0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x1a, 0x2f, 0x0a, 0x0a,
	0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x70, 0x61,
	0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x42, 0x07, 0x0a,
	0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x31, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50,
	0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x22, 0x4b, 0x0a, 0x11, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18,
	0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74,
	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x76,
	0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x22,
	0x33, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04,
	0x70, 0x65, 0x65, 0x72, 0x22, 0x5d, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x70, 0x65, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x10, 0x64, 0x6f,
	0x5f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x53, 0x6f, 0x66, 0x74, 0x52, 0x65, 0x73, 0x65,
	0x74, 0x49, 0x6e, 0x22, 0x43, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x65, 0x65,
	0x64, 0x73, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x53, 0x6f, 0x66,
	0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x22, 0xe1, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
	0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75,
	0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
	0x04, 0x73, 0x6f, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6f, 0x66,
	0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6f,
	0x66, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x12, 0x53,
	0x6f, 0x66, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x55, 0x54,
	0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x13,
	0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a,
	0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x11, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x22, 0x54, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75,
	0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50,
	0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x2f, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x22, 0x2c, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x72,
	0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72,
	0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09,
	0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x10, 0x64, 0x6f, 0x5f,
	0x73, 0x6f, 0x66, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x53, 0x6f, 0x66, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74,
	0x49, 0x6e, 0x22, 0x48, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a,
	0x13, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65,
	0x74, 0x5f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64,
	0x73, 0x53, 0x6f, 0x66, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x22, 0x3e, 0x0a, 0x14,
	0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70,
	0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x15,
	0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x70, 0x65, 0x65,
	0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x5e, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x44, 0x79, 0x6e,
	0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6e,
	0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69,
	0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x0f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65,
	0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x22, 0x55, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1d,
	0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3b, 0x0a,
	0x1a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67,
	0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x60, 0x0a, 0x1b, 0x4c, 0x69,
	0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x10, 0x64, 0x79, 0x6e,
	0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x79, 0x6e, 0x61,
	0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x0f, 0x64, 0x79, 0x6e,
	0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x22, 0x79, 0x0a, 0x0e,
	0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f,
	0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x15, 0x0a, 0x06, 0x76, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x72, 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x74,
	0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x25, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x50, 0x61,
	0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0xb7,
	0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x76, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x72, 0x66, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06,
	0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61, 0x6d,
	0x69, 0x6c, 0x79, 0x12, 0x1f, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04,
	0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x9a, 0x01, 0x0a, 0x11, 0x54, 0x61, 0x62,
	0x6c, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16,
	0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62,
	0x6c, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x72, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x58, 0x41, 0x43, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
	0x4c, 0x4f, 0x4e, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x48, 0x4f, 0x52,
	0x54, 0x45, 0x52, 0x10, 0x02, 0x22, 0xef, 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61,
	0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, 0x62,
	0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25,
	0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66,
	0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69,
	0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x73,
	0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6c, 0x72,
	0x69, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6c, 0x72, 0x69, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
	0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6e, 0x6c, 0x79,
	0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f,
	0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63,
	0x68, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x20, 0x0a, 0x08, 0x53, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50,
	0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x01, 0x22, 0x48, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50,
	0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x64,
	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x81, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61,
	0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x76,
	0x72, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x72, 0x66,
	0x49, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05,
	0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x7d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c,
	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
	0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d,
	0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f,
	0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c,
	0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22,
	0x2d, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x1c, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x56, 0x72, 0x66, 0x52, 0x03, 0x76, 0x72, 0x66, 0x22, 0x26,
	0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72,
	0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2f, 0x0a, 0x0f,
	0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x1c, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x56, 0x72, 0x66, 0x52, 0x03, 0x76, 0x72, 0x66, 0x22, 0x75, 0x0a,
	0x10, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x25, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
	0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x72, 0x65, 0x66, 0x65,
	0x72, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x72, 0x65, 0x66,
	0x65, 0x72, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x22, 0x7f, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x06, 0x70,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x12, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x03, 0x61, 0x6c, 0x6c, 0x22, 0x27, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3b,
	0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x12,
	0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x65,
	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x66,
	0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69,
	0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63,
	0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x64,
	0x0a, 0x14, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
	0x64, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0a,
	0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65,
	0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70,
	0x6c, 0x61, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65,
	0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x32, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66,
	0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64,
	0x53, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x03, 0x61, 0x6c, 0x6c, 0x22, 0x62, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x66,
	0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35,
	0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66,
	0x69, 0x6e, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
	0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x4c, 0x69, 0x73,
	0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73,
	0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x66,
	0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x22, 0x45, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e,
	0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5a,
	0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x22, 0x2a, 0x0a, 0x14, 0x4c, 0x69,
	0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x2e, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22,
	0x55, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69,
	0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a,
	0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
	0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x69,
	0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x6a, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61,
	0x6c, 0x6c, 0x22, 0x67, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
	0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x57, 0x0a, 0x1c, 0x4c,
	0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61,
	0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73,
	0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52,
	0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5a, 0x0a, 0x0e, 0x41,
	0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
	0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c,
	0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c,
	0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07,
	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x38, 0x0a, 0x0f, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a,
	0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61,
	0x6d, 0x69, 0x6c, 0x79, 0x22, 0x37, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x41, 0x0a,
	0x11, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
	0x22, 0x42, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x22, 0x54, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x70, 0x6b,
	0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x66, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6f, 0x66, 0x74, 0x22, 0x3d, 0x0a, 0x14, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c,
	0x79, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x35, 0x0a, 0x15, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x1c, 0x0a, 0x03, 0x72, 0x6f, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x61, 0x52, 0x03, 0x72, 0x6f, 0x61,
	0x22, 0xa3, 0x02, 0x0a, 0x12, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5a, 0x65, 0x62, 0x72, 0x61,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f,
	0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x54, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x65,
	0x78, 0x74, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x64, 0x65,
	0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x68,
	0x6f, 0x70, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x31,
	0x0a, 0x15, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x6e,
	0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d,
	0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61,
	0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a,
	0x0d, 0x64, 0x75, 0x6d, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x75, 0x6d, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
	0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x72,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22,
	0x22, 0x0a, 0x08, 0x44, 0x75, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55,
	0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x41, 0x42, 0x4c,
	0x45, 0x10, 0x01, 0x22, 0x2f, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa5, 0x02, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x42, 0x6d, 0x70, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64,
	0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74,
	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63,
	0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
	0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x79, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x53, 0x79, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53,
	0x79, 0x73, 0x44, 0x65, 0x73, 0x63, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53,
	0x79, 0x73, 0x44, 0x65, 0x73, 0x63, 0x72, 0x22, 0x43, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x69, 0x74,
	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x07, 0x0a, 0x03, 0x50,
	0x52, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x12, 0x08,
	0x0a, 0x04, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41,
	0x4c, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x04, 0x22, 0x40, 0x0a, 0x10,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f,
	0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x10,
	0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x22, 0x83, 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6d,
	0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x1a, 0xb2, 0x02, 0x0a, 0x0a, 0x42, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x3a, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x12, 0x3d, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x34, 0x0a, 0x04, 0x43,
	0x6f, 0x6e, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a,
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72,
	0x74, 0x1a, 0x73, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x75, 0x70,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36,
	0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x64, 0x6f,
	0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x91, 0x04, 0x0a, 0x06, 0x46, 0x61, 0x6d, 0x69, 0x6c,
	0x79, 0x12, 0x23, 0x0a, 0x03, 0x61, 0x66, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x41, 0x66,
	0x69, 0x52, 0x03, 0x61, 0x66, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x61, 0x66, 0x69, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d,
	0x69, 0x6c, 0x79, 0x2e, 0x53, 0x61, 0x66, 0x69, 0x52, 0x04, 0x73, 0x61, 0x66, 0x69, 0x22, 0x5e,
	0x0a, 0x03, 0x41, 0x66, 0x69, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x46, 0x49, 0x5f, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x46, 0x49, 0x5f, 0x49, 0x50,
	0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x46, 0x49, 0x5f, 0x49, 0x50, 0x36, 0x10, 0x02, 0x12,
	0x0d, 0x0a, 0x09, 0x41, 0x46, 0x49, 0x5f, 0x4c, 0x32, 0x56, 0x50, 0x4e, 0x10, 0x19, 0x12, 0x0c,
	0x0a, 0x06, 0x41, 0x46, 0x49, 0x5f, 0x4c, 0x53, 0x10, 0x84, 0x80, 0x01, 0x12, 0x10, 0x0a, 0x0a,
	0x41, 0x46, 0x49, 0x5f, 0x4f, 0x50, 0x41, 0x51, 0x55, 0x45, 0x10, 0x8d, 0x80, 0x01, 0x22, 0xd9,
	0x02, 0x0a, 0x04, 0x53, 0x61, 0x66, 0x69, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, 0x46, 0x49, 0x5f,
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, 0x46,
	0x49, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53,
	0x41, 0x46, 0x49, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12,
	0x13, 0x0a, 0x0f, 0x53, 0x41, 0x46, 0x49, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x4c, 0x41, 0x42,
	0x45, 0x4c, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x41, 0x46, 0x49, 0x5f, 0x45, 0x4e, 0x43,
	0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09,
	0x53, 0x41, 0x46, 0x49, 0x5f, 0x56, 0x50, 0x4c, 0x53, 0x10, 0x41, 0x12, 0x0d, 0x0a, 0x09, 0x53,
	0x41, 0x46, 0x49, 0x5f, 0x45, 0x56, 0x50, 0x4e, 0x10, 0x46, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x41,
	0x46, 0x49, 0x5f, 0x4c, 0x53, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x41, 0x46, 0x49, 0x5f,
	0x53, 0x52, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x49, 0x12, 0x0c, 0x0a, 0x08, 0x53,
	0x41, 0x46, 0x49, 0x5f, 0x4d, 0x55, 0x50, 0x10, 0x55, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x41, 0x46,
	0x49, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x56, 0x50, 0x4e, 0x10, 0x80, 0x01, 0x12, 0x1c, 0x0a,
	0x17, 0x53, 0x41, 0x46, 0x49, 0x5f, 0x4d, 0x50, 0x4c, 0x53, 0x5f, 0x56, 0x50, 0x4e, 0x5f, 0x4d,
	0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x81, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x53,
	0x41, 0x46, 0x49, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54,
	0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x84, 0x01, 0x12,
	0x1b, 0x0a, 0x16, 0x53, 0x41, 0x46, 0x49, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x50, 0x45,
	0x43, 0x5f, 0x55, 0x4e, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x85, 0x01, 0x12, 0x17, 0x0a, 0x12,
	0x53, 0x41, 0x46, 0x49, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x5f, 0x56,
	0x50, 0x4e, 0x10, 0x86, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x41, 0x46, 0x49, 0x5f, 0x4b, 0x45,
	0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0xf1, 0x01, 0x22, 0x8b, 0x03, 0x0a, 0x0a, 0x56,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x07, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x61, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64,
	0x12, 0x2f, 0x0a, 0x0d, 0x75, 0x6e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x73,
	0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x52, 0x6f, 0x61, 0x52, 0x0c, 0x75, 0x6e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x41, 0x73,
	0x6e, 0x12, 0x35, 0x0a, 0x10, 0x75, 0x6e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x61, 0x52, 0x0f, 0x75, 0x6e, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x65, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x50, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10,
	0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46,
	0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
	0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45,
	0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x03, 0x22, 0x3c, 0x0a, 0x06, 0x52, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e,
	0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
	0x41, 0x53, 0x4e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
	0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x02, 0x22, 0xd9, 0x05, 0x0a, 0x04, 0x50, 0x61, 0x74,
	0x68, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x6c, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x6e, 0x6c, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x06, 0x70,
	0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
	0x79, 0x52, 0x06, 0x70, 0x61, 0x74, 0x74, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x67, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x65, 0x73, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69,
	0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0a, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x31, 0x0a, 0x0a,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x30, 0x0a, 0x14, 0x6e, 0x6f, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x77,
	0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e,
	0x6f, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61,
	0x77, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79,
	0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x41, 0x73, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64,
	0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x05, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x66, 0x72, 0x6f,
	0x6d, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0e, 0x69, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
	0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49,
	0x70, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x6e, 0x65, 0x78, 0x74,
	0x68, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x10, 0x69, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x49, 0x6e, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
	0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
	0x69, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6c,
	0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1f,
	0x0a, 0x0b, 0x6e, 0x6c, 0x72, 0x69, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x14, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x6c, 0x72, 0x69, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12,
	0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x74, 0x72, 0x73, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79,
	0x18, 0x15, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x74, 0x72, 0x73, 0x42, 0x69,
	0x6e, 0x61, 0x72, 0x79, 0x22, 0x48, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x21, 0x0a, 0x05, 0x70,
	0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0xb9,
	0x04, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79,
	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x23,
	0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63,
	0x6f, 0x6e, 0x66, 0x12, 0x38, 0x0a, 0x0d, 0x65, 0x62, 0x67, 0x70, 0x5f, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x68, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x45, 0x62, 0x67, 0x70, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x52,
	0x0c, 0x65, 0x62, 0x67, 0x70, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x12, 0x3e, 0x0a,
	0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52,
	0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x72,
	0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x26, 0x0a,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x72, 0x73, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09,
	0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
	0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x0c,
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f,
	0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52,
	0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x09, 0x61, 0x66, 0x69, 0x5f, 0x73, 0x61,
	0x66, 0x69, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x41, 0x66, 0x69, 0x53, 0x61, 0x66, 0x69, 0x52, 0x08, 0x61, 0x66, 0x69, 0x53, 0x61,
	0x66, 0x69, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72,
	0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x54, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x74,
	0x74, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x22, 0xc6, 0x04, 0x0a, 0x09, 0x50,
	0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c,
	0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
	0x28, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43,
	0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x12, 0x38, 0x0a, 0x0d, 0x65, 0x62, 0x67,
	0x70, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x62, 0x67, 0x70, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x68, 0x6f, 0x70, 0x52, 0x0c, 0x65, 0x62, 0x67, 0x70, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x68, 0x6f, 0x70, 0x12, 0x3e, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x25,
	0x0a, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x52, 0x06, 0x74,
	0x69, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
	0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e,
	0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
	0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x10,
	0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47,
	0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f,
	0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12,
	0x2b, 0x0a, 0x09, 0x61, 0x66, 0x69, 0x5f, 0x73, 0x61, 0x66, 0x69, 0x73, 0x18, 0x0a, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x66, 0x69, 0x53, 0x61,
	0x66, 0x69, 0x52, 0x08, 0x61, 0x66, 0x69, 0x53, 0x61, 0x66, 0x69, 0x73, 0x12, 0x35, 0x0a, 0x0c,
	0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x74, 0x6c, 0x53, 0x65,
	0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72,
	0x69, 0x74, 0x79, 0x22, 0x48, 0x0a, 0x0f, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65,
	0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1d,
	0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xbf, 0x01,
	0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a,
	0x09, 0x69, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41,
	0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x69, 0x6e, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x12, 0x3c, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x12, 0x3c, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22,
	0x8d, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12,
	0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06,
	0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72,
	0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61,
	0x78, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x68, 0x75,
	0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f,
	0x70, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x73, 0x68, 0x75, 0x74, 0x64,
	0x6f, 0x77, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x50, 0x63, 0x74, 0x22,
	0xec, 0x04, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x23, 0x0a, 0x0d,
	0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x6e,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x73, 0x6e,
	0x12, 0x29, 0x0a, 0x10, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x69, 0x67,
	0x68, 0x62, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70,
	0x65, 0x65, 0x72, 0x41, 0x73, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65,
	0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x70, 0x44, 0x61,
	0x6d, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73,
	0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x12,
	0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
	0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
	0x6f, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76,
	0x72, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x72, 0x66, 0x12, 0x22, 0x0a,
	0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x77, 0x6e, 0x41, 0x73,
	0x6e, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x65,
	0x72, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70,
	0x6c, 0x61, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x41, 0x73, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65,
	0x6e, 0x64, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x53,
	0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xed,
	0x02, 0x0a, 0x0d, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66,
	0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
	0x5f, 0x61, 0x73, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61,
	0x6c, 0x41, 0x73, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x6e,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x41, 0x73, 0x6e, 0x12,
	0x26, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65,
	0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0e,
	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x70,
	0x44, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x5f,
	0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0d, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x22, 0xb6,
	0x03, 0x0a, 0x0e, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
	0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61,
	0x6c, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63,
	0x61, 0x6c, 0x41, 0x73, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73,
	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x41, 0x73, 0x6e,
	0x12, 0x26, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50,
	0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a,
	0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6f,
	0x75, 0x74, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x6c, 0x61,
	0x70, 0x44, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64,
	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12,
	0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x73,
	0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50,
	0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x0b, 0x54, 0x74, 0x6c, 0x53, 0x65,
	0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x12, 0x17, 0x0a, 0x07, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x74, 0x74, 0x6c, 0x4d, 0x69, 0x6e, 0x22, 0x4b, 0x0a, 0x0c, 0x45, 0x62, 0x67,
	0x70, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x68, 0x6f, 0x70, 0x5f,
	0x74, 0x74, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69,
	0x68, 0x6f, 0x70, 0x54, 0x74, 0x6c, 0x22, 0x83, 0x01, 0x0a, 0x0e, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65,
	0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12,
	0x3b, 0x0a, 0x1a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x17, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0xad, 0x07, 0x0a,
	0x09, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75,
	0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x73, 0x6e, 0x12, 0x2b,
	0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x73, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6e,
	0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x41,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61,
	0x73, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x41, 0x73,
	0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x51, 0x75,
	0x65, 0x75, 0x65, 0x73, 0x52, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0e,
	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x6d,
	0x6f, 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x64, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x70,
	0x44, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x5f,
	0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0d, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x42,
	0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x65,
	0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x13, 0x0a, 0x05, 0x6f, 0x75, 0x74, 0x5f, 0x71, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x04, 0x6f, 0x75, 0x74, 0x51, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x70, 0x73, 0x18, 0x11,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x72,
	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x61, 0x70,
	0x12, 0x31, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x13, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
	0x43, 0x61, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64,
	0x22, 0x6e, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a,
	0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x4e, 0x45,
	0x43, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03,
	0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x45, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x0f,
	0x0a, 0x0b, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x05, 0x12,
	0x0f, 0x0a, 0x0b, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x06,
	0x22, 0x2a, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06,
	0x0a, 0x02, 0x55, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01,
	0x12, 0x0a, 0x0a, 0x06, 0x50, 0x46, 0x58, 0x5f, 0x43, 0x54, 0x10, 0x02, 0x22, 0x5a, 0x0a, 0x08,
	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x74, 0x22, 0x97, 0x02, 0x0a, 0x07, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69,
	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
	0x6f, 0x70, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69,
	0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09,
	0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x09, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
	0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64,
	0x72, 0x61, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74,
	0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x66,
	0x69, 0x78, 0x22, 0x36, 0x0a, 0x06, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x5f, 0x0a, 0x06, 0x54, 0x69,
	0x6d, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x0c,
	0x54, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d,
	0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x74, 0x72,
	0x79, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d,
	0x0a, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6b, 0x65, 0x65, 0x70,
	0x61, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x44, 0x0a,
	0x1e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69,
	0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x41, 0x64,
	0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72,
	0x76, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x1a, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x68, 0x6f, 0x6c, 0x64,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x69, 0x64, 0x6c, 0x65, 0x48, 0x6f, 0x6c,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22,
	0xe2, 0x02, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52,
	0x65, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x2d, 0x0a, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6b,
	0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
	0x12, 0x44, 0x0a, 0x1e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x61, 0x64, 0x76, 0x65,
	0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76,
	0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
	0x6d, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e,
	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69,
	0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64,
	0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x08,
	0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e,
	0x74, 0x69, 0x6d, 0x65, 0x22, 0x9f, 0x02, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
	0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
	0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x63,
	0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x74, 0x75, 0x5f, 0x64, 0x69,
	0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d,
	0x74, 0x75, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x70,
	0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25,
	0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f,
	0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f,
	0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x5f, 0x6d, 0x73,
	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x63, 0x70, 0x4d, 0x73, 0x73, 0x12,
	0x25, 0x0a, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x74,
	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x66, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61,
	0x72, 0x79, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e,
	0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xb4,
	0x03, 0x0a, 0x0f, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c,
	0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x79,
	0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61,
	0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x6f, 0x6e, 0x67,
	0x6c, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x72,
	0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a,
	0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
	0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e,
	0x67, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x33, 0x0a, 0x17, 0x4d, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65,
	0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x16, 0x4d,
	0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
	0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61,
	0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x65,
	0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
	0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52,
	0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0f, 0x65, 0x6e,
	0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x53, 0x65, 0x6e,
	0x74, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x4d, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c,
	0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x4d, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75,
	0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x22, 0x50, 0x0a, 0x0d, 0x41, 0x66, 0x69, 0x53, 0x61, 0x66, 0x69, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61,
	0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x0c, 0x41, 0x66, 0x69, 0x53, 0x61,
	0x66, 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x18,
	0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64,
	0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64,
	0x22, 0x93, 0x03, 0x0a, 0x1b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61,
	0x72, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c,
	0x77, 0x61, 0x79, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x4d, 0x65, 0x64, 0x12, 0x31,
	0x0a, 0x15, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68,
	0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69,
	0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74,
	0x68, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
	0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43,
	0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a,
	0x0a, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63,
	0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x49, 0x6e, 0x61, 0x63,
	0x74, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x69, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x69, 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x1a, 0x69,
	0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69,
	0x67, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x16, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x67,
	0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x5f, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x64, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x03, 0x0a, 0x1a, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x5f,
	0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x10, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65,
	0x4d, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x73,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68,
	0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65,
	0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73,
	0x65, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12,
	0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x69, 0x67, 0x70, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x69, 0x67, 0x70,
	0x12, 0x3a, 0x0a, 0x1a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f,
	0x68, 0x6f, 0x70, 0x5f, 0x69, 0x67, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4e, 0x65, 0x78, 0x74,
	0x48, 0x6f, 0x70, 0x49, 0x67, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x3d, 0x0a, 0x1b,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74,
	0x68, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x65, 0x73, 0x74, 0x50, 0x61,
	0x74, 0x68, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x15,
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f,
	0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x32, 0x0a, 0x16, 0x55, 0x73,
	0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31,
	0x0a, 0x15, 0x55, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74,
	0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x22, 0x5f, 0x0a, 0x0a, 0x45, 0x62, 0x67, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,
	0x65, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c,
	0x6f, 0x77, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x41, 0x73, 0x6e, 0x12, 0x23, 0x0a,
	0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x74,
	0x68, 0x73, 0x22, 0x5e, 0x0a, 0x09, 0x45, 0x62, 0x67, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,
	0x65, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c,
	0x6f, 0x77, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x41, 0x73, 0x6e, 0x12, 0x23, 0x0a,
	0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x74,
	0x68, 0x73, 0x22, 0x59, 0x0a, 0x04, 0x45, 0x62, 0x67, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x45, 0x62, 0x67, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x62, 0x67,
	0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x31, 0x0a,
	0x0a, 0x49, 0x62, 0x67, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x6d,
	0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x74, 0x68, 0x73,
	0x22, 0x30, 0x0a, 0x09, 0x49, 0x62, 0x67, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a,
	0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x74,
	0x68, 0x73, 0x22, 0x59, 0x0a, 0x04, 0x49, 0x62, 0x67, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x49, 0x62, 0x67, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x49, 0x62, 0x67,
	0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xbf, 0x01,
	0x0a, 0x10, 0x55, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74,
	0x68, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x4d, 0x75,
	0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x55, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68,
	0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a,
	0x04, 0x65, 0x62, 0x67, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x45, 0x62, 0x67, 0x70, 0x52, 0x04, 0x65, 0x62, 0x67, 0x70, 0x12, 0x1f,
	0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x49, 0x62, 0x67, 0x70, 0x52, 0x04, 0x69, 0x62, 0x67, 0x70, 0x22,
	0x42, 0x0a, 0x1b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23,
	0x0a, 0x0d, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, 0x54,
	0x69, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x1a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x6c, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72,
	0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70,
	0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d,
	0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x5d, 0x0a, 0x1e, 0x4c, 0x6f, 0x6e, 0x67, 0x4c, 0x69, 0x76,
	0x65, 0x64, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x1d, 0x4c, 0x6f, 0x6e, 0x67, 0x4c, 0x69, 0x76,
	0x65, 0x64, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
	0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11,
	0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x65, 0x65, 0x72,
	0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x70, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78,
	0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x18, 0x4c, 0x6f, 0x6e, 0x67, 0x4c, 0x69,
	0x76, 0x65, 0x64, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x4c,
	0x69, 0x76, 0x65, 0x64, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x4c, 0x69, 0x76,
	0x65, 0x64, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9d, 0x05,
	0x0a, 0x07, 0x41, 0x66, 0x69, 0x53, 0x61, 0x66, 0x69, 0x12, 0x48, 0x0a, 0x13, 0x6d, 0x70, 0x5f,
	0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d,
	0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x52, 0x11, 0x6d, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x66, 0x69, 0x53,
	0x61, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x66, 0x69, 0x53, 0x61, 0x66, 0x69,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x0c,
	0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x12, 0x54, 0x0a, 0x17, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75,
	0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x52, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x12, 0x75, 0x73, 0x65,
	0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x73,
	0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x10,
	0x75, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73,
	0x12, 0x37, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74,
	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0c, 0x70, 0x72, 0x65,
	0x66, 0x69, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72,
	0x73, 0x68, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12,
	0x5e, 0x0a, 0x1b, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x67, 0x72,
	0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x6e,
	0x67, 0x4c, 0x69, 0x76, 0x65, 0x64, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x18, 0x6c, 0x6f, 0x6e, 0x67, 0x4c, 0x69, 0x76, 0x65, 0x64,
	0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12,
	0x2c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61,
	0x74, 0x68, 0x73, 0x52, 0x08, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x73, 0x22, 0x45, 0x0a,
	0x0e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x65, 0x6e,
	0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x6e,
	0x64, 0x4d, 0x61, 0x78, 0x22, 0x44, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x73,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12,
	0x19, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x22, 0x65, 0x0a, 0x08, 0x41, 0x64,
	0x64, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41,
	0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64,
	0x50, 0x61, 0x74, 0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x22, 0x75, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x69,
	0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x73, 0x6b,
	0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x69, 0x6e,
	0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f,
	0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x4c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x22, 0x96, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x66,
	0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e,
	0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65,
	0x73, 0x22, 0x6e, 0x0a, 0x08, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x12, 0x28, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x2e, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x04, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
	0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x56, 0x45, 0x52, 0x54, 0x10,
	0x02, 0x22, 0x74, 0x0a, 0x0c, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74,
	0x68, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65,
	0x6e, 0x67, 0x74, 0x68, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x1e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, 0x01, 0x12,
	0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xaf, 0x05, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x52, 0x09, 0x70, 0x72, 0x65,
	0x66, 0x69, 0x78, 0x53, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x0c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
	0x6f, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x52, 0x0b, 0x6e,
	0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x73,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x73, 0x50, 0x61, 0x74,
	0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0c, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x4c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2f, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68,
	0x5f, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x52, 0x09, 0x61, 0x73, 0x50,
	0x61, 0x74, 0x68, 0x53, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
	0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x52, 0x0c,
	0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x11,
	0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65,
	0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d,
	0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x70, 0x6b,
	0x69, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
	0x72, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x72, 0x6f,
	0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x13, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f,
	0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63,
	0x68, 0x53, 0x65, 0x74, 0x52, 0x11, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x75,
	0x6e, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f,
	0x68, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x6e, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x2d, 0x0a, 0x0b, 0x61, 0x66, 0x69, 0x5f, 0x73, 0x61, 0x66, 0x69, 0x5f, 0x69, 0x6e, 0x18,
	0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x46, 0x61,
	0x6d, 0x69, 0x6c, 0x79, 0x52, 0x09, 0x61, 0x66, 0x69, 0x53, 0x61, 0x66, 0x69, 0x49, 0x6e, 0x22,
	0x68, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f,
	0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10,
	0x00, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
	0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x4f,
	0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41,
	0x4c, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x03, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x43, 0x6f,
	0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20,
	0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73,
	0x22, 0x28, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10,
	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a,
	0x07, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x22, 0x6a, 0x0a, 0x09, 0x4d, 0x65,
	0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x65,
	0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x07, 0x0a, 0x03, 0x4d, 0x4f, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x50,
	0x4c, 0x41, 0x43, 0x45, 0x10, 0x01, 0x22, 0x5f, 0x0a, 0x0f, 0x41, 0x73, 0x50, 0x72, 0x65, 0x70,
	0x65, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72,
	0x65, 0x70, 0x65, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x70,
	0x65, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f,
	0x6d, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x4c,
	0x65, 0x66, 0x74, 0x4d, 0x6f, 0x73, 0x74, 0x22, 0x5b, 0x0a, 0x0d, 0x4e, 0x65, 0x78, 0x74, 0x68,
	0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x04, 0x73, 0x65, 0x6c, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x6e, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65,
	0x66, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb6, 0x03,
	0x0a, 0x07, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x34, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
	0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6d,
	0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x03, 0x6d, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x64, 0x41,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6d, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0a, 0x61, 0x73,
	0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x73, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x73, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e,
	0x64, 0x12, 0x3b, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69,
	0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x0c, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x2e,
	0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x41,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x68, 0x6f, 0x70, 0x12, 0x35,
	0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
	0x50, 0x72, 0x65, 0x66, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61,
	0x6c, 0x50, 0x72, 0x65, 0x66, 0x12, 0x3f, 0x0a, 0x0f, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x63,
	0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d,
	0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x22, 0x7c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a,
	0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4e, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41,
	0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a,
	0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x39,
	0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52,
	0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61,
	0x75, 0x6c, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x0d, 0x52, 0x6f, 0x75,
	0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x65,
	0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64,
	0x53, 0x65, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x73,
	0x12, 0x29, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x03,
	0x52, 0x6f, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c,
	0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x6c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70,
	0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65,
	0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f,
	0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0xb5, 0x01, 0x0a, 0x03, 0x56, 0x72, 0x66,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x09, 0x69, 0x6d,
	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x41, 0x6e, 0x79, 0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, 0x12, 0x31, 0x0a,
	0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64,
	0x22, 0x86, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74,
	0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x12, 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x6f,
	0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74,
	0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd8, 0x04, 0x0a, 0x06, 0x47, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f,
	0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
	0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12,
	0x1a, 0x0a, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0d, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75,
	0x73, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68,
	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74,
	0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x72, 0x6f, 0x75,
	0x74, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15,
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65,
	0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66,
	0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c,
	0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52,
	0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c,
	0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79,
	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24,
	0x0a, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x22, 0x6f, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
	0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
	0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x73,
	0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41,
	0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x08, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, 0x6e,
	0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xd4, 0x04, 0x0a,
	0x09, 0x52, 0x50, 0x4b, 0x49, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x75, 0x70,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36,
	0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x64, 0x6f,
	0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65,
	0x63, 0x6f, 0x72, 0x64, 0x49, 0x70, 0x76, 0x36, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66,
	0x69, 0x78, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70,
	0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65,
	0x66, 0x69, 0x78, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
	0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65,
	0x72, 0x69, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69,
	0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69,
	0x70, 0x76, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x49, 0x70, 0x76, 0x36, 0x12, 0x23, 0x0a, 0x0d,
	0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66,
	0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x61, 0x63, 0x68,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x6e, 0x64,
	0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x65, 0x6e, 0x64, 0x4f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12,
	0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x22, 0x53, 0x0a, 0x04, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x23, 0x0a, 0x04, 0x63,
	0x6f, 0x6e, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66,
	0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74,
	0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x35, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76,
	0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52,
	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x52, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
	0x09, 0x0a, 0x05, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41,
	0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02,
	0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e,
	0x46, 0x4f, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12,
	0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x2a, 0x44, 0x0a, 0x09, 0x54, 0x61,
	0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x4c, 0x4f, 0x42, 0x41,
	0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0a,
	0x0a, 0x06, 0x41, 0x44, 0x4a, 0x5f, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x44,
	0x4a, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x52, 0x46, 0x10, 0x04,
	0x2a, 0x26, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08,
	0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58,
	0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x2a, 0x3d, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f,
	0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d,
	0x4f, 0x56, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45,
	0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45,
	0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x2a, 0x82, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x66, 0x69,
	0x6e, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x45, 0x46, 0x49,
	0x58, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x10,
	0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53,
	0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x4d, 0x55,
	0x4e, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x5f, 0x43, 0x4f,
	0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x52,
	0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, 0x0c,
	0x0a, 0x08, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x07, 0x2a, 0x2f, 0x0a, 0x0b,
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e,
	0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10,
	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x2a, 0x36, 0x0a,
	0x0f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a,
	0x06, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x58, 0x50,
	0x4f, 0x52, 0x54, 0x10, 0x02, 0x32, 0xc2, 0x1d, 0x0a, 0x08, 0x47, 0x6f, 0x62, 0x67, 0x70, 0x41,
	0x70, 0x69, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x67, 0x70, 0x12, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x67, 0x70, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38,
	0x0a, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x67, 0x70, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x42,
	0x67, 0x70, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x67,
	0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x47, 0x65, 0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x43, 0x0a, 0x0a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x30, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12,
	0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e,
	0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d,
	0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50,
	0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x41, 0x0a,
	0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x3c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x17, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42,
	0x0a, 0x0c, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1a,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x50,
	0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50,
	0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65,
	0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64,
	0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65,
	0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01,
	0x12, 0x50, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63,
	0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x41, 0x64, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68,
	0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x5e, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69,
	0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69,
	0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63,
	0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x30, 0x01, 0x12, 0x54, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x79, 0x6e, 0x61,
	0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x23, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69,
	0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50,
	0x61, 0x74, 0x68, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50,
	0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68,
	0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50,
	0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30,
	0x01, 0x12, 0x46, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61,
	0x74, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x28, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x47, 0x65, 0x74,
	0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65,
	0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x56, 0x72, 0x66,
	0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x56, 0x72, 0x66, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c,
	0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, 0x12, 0x17, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x07,
	0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64,
	0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0a, 0x4c, 0x69,
	0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12,
	0x40, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x19,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69,
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
	0x79, 0x12, 0x44, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53,
	0x65, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65,
	0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65,
	0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
	0x70, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e,
	0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01,
	0x12, 0x50, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73,
	0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x56, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x61,
	0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x61, 0x0a, 0x14, 0x4c, 0x69,
	0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x50, 0x0a,
	0x13, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
	0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69,
	0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e,
	0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x52, 0x65,
	0x73, 0x65, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70,
	0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x5a, 0x65, 0x62, 0x72, 0x61, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x5a, 0x65, 0x62, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x4d, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x4d, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x42, 0x6d, 0x70,
	0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6d, 0x70, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c,
	0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6d, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70,
	0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x07,
	0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x4c,
	0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69,
	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x73, 0x72, 0x67, 0x2f, 0x67, 0x6f,
	0x62, 0x67, 0x70, 0x2f, 0x76, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x3b, 0x61, 0x70, 0x69, 0x70, 0x62,
	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_gobgp_proto_rawDescOnce sync.Once
	file_gobgp_proto_rawDescData = file_gobgp_proto_rawDesc
)

func file_gobgp_proto_rawDescGZIP() []byte {
	file_gobgp_proto_rawDescOnce.Do(func() {
		file_gobgp_proto_rawDescData = protoimpl.X.CompressGZIP(file_gobgp_proto_rawDescData)
	})
	return file_gobgp_proto_rawDescData
}

var file_gobgp_proto_enumTypes = make([]protoimpl.EnumInfo, 25)
var file_gobgp_proto_msgTypes = make([]protoimpl.MessageInfo, 157)
var file_gobgp_proto_goTypes = []interface{}{
	(TableType)(0),                           // 0: apipb.TableType
	(PeerType)(0),                            // 1: apipb.PeerType
	(RemovePrivate)(0),                       // 2: apipb.RemovePrivate
	(DefinedType)(0),                         // 3: apipb.DefinedType
	(RouteAction)(0),                         // 4: apipb.RouteAction
	(PolicyDirection)(0),                     // 5: apipb.PolicyDirection
	(WatchEventRequest_Table_Filter_Type)(0), // 6: apipb.WatchEventRequest.Table.Filter.Type
	(WatchEventResponse_PeerEvent_Type)(0),   // 7: apipb.WatchEventResponse.PeerEvent.Type
	(ResetPeerRequest_SoftResetDirection)(0), // 8: apipb.ResetPeerRequest.SoftResetDirection
	(TableLookupPrefix_Type)(0),              // 9: apipb.TableLookupPrefix.Type
	(ListPathRequest_SortType)(0),            // 10: apipb.ListPathRequest.SortType
	(EnableMrtRequest_DumpType)(0),           // 11: apipb.EnableMrtRequest.DumpType
	(AddBmpRequest_MonitoringPolicy)(0),      // 12: apipb.AddBmpRequest.MonitoringPolicy
	(Family_Afi)(0),                          // 13: apipb.Family.Afi
	(Family_Safi)(0),                         // 14: apipb.Family.Safi
	(Validation_State)(0),                    // 15: apipb.Validation.State
	(Validation_Reason)(0),                   // 16: apipb.Validation.Reason
	(PeerState_SessionState)(0),              // 17: apipb.PeerState.SessionState
	(PeerState_AdminState)(0),                // 18: apipb.PeerState.AdminState
	(MatchSet_Type)(0),                       // 19: apipb.MatchSet.Type
	(AsPathLength_Type)(0),                   // 20: apipb.AsPathLength.Type
	(Conditions_RouteType)(0),                // 21: apipb.Conditions.RouteType
	(CommunityAction_Type)(0),                // 22: apipb.CommunityAction.Type
	(MedAction_Type)(0),                      // 23: apipb.MedAction.Type
	(SetLogLevelRequest_Level)(0),            // 24: apipb.SetLogLevelRequest.Level
	(*StartBgpRequest)(nil),                  // 25: apipb.StartBgpRequest
	(*StopBgpRequest)(nil),                   // 26: apipb.StopBgpRequest
	(*GetBgpRequest)(nil),                    // 27: apipb.GetBgpRequest
	(*GetBgpResponse)(nil),                   // 28: apipb.GetBgpResponse
	(*WatchEventRequest)(nil),                // 29: apipb.WatchEventRequest
	(*WatchEventResponse)(nil),               // 30: apipb.WatchEventResponse
	(*AddPeerRequest)(nil),                   // 31: apipb.AddPeerRequest
	(*DeletePeerRequest)(nil),                // 32: apipb.DeletePeerRequest
	(*ListPeerRequest)(nil),                  // 33: apipb.ListPeerRequest
	(*ListPeerResponse)(nil),                 // 34: apipb.ListPeerResponse
	(*UpdatePeerRequest)(nil),                // 35: apipb.UpdatePeerRequest
	(*UpdatePeerResponse)(nil),               // 36: apipb.UpdatePeerResponse
	(*ResetPeerRequest)(nil),                 // 37: apipb.ResetPeerRequest
	(*ShutdownPeerRequest)(nil),              // 38: apipb.ShutdownPeerRequest
	(*EnablePeerRequest)(nil),                // 39: apipb.EnablePeerRequest
	(*DisablePeerRequest)(nil),               // 40: apipb.DisablePeerRequest
	(*AddPeerGroupRequest)(nil),              // 41: apipb.AddPeerGroupRequest
	(*DeletePeerGroupRequest)(nil),           // 42: apipb.DeletePeerGroupRequest
	(*UpdatePeerGroupRequest)(nil),           // 43: apipb.UpdatePeerGroupRequest
	(*UpdatePeerGroupResponse)(nil),          // 44: apipb.UpdatePeerGroupResponse
	(*ListPeerGroupRequest)(nil),             // 45: apipb.ListPeerGroupRequest
	(*ListPeerGroupResponse)(nil),            // 46: apipb.ListPeerGroupResponse
	(*AddDynamicNeighborRequest)(nil),        // 47: apipb.AddDynamicNeighborRequest
	(*DeleteDynamicNeighborRequest)(nil),     // 48: apipb.DeleteDynamicNeighborRequest
	(*ListDynamicNeighborRequest)(nil),       // 49: apipb.ListDynamicNeighborRequest
	(*ListDynamicNeighborResponse)(nil),      // 50: apipb.ListDynamicNeighborResponse
	(*AddPathRequest)(nil),                   // 51: apipb.AddPathRequest
	(*AddPathResponse)(nil),                  // 52: apipb.AddPathResponse
	(*DeletePathRequest)(nil),                // 53: apipb.DeletePathRequest
	(*TableLookupPrefix)(nil),                // 54: apipb.TableLookupPrefix
	(*ListPathRequest)(nil),                  // 55: apipb.ListPathRequest
	(*ListPathResponse)(nil),                 // 56: apipb.ListPathResponse
	(*AddPathStreamRequest)(nil),             // 57: apipb.AddPathStreamRequest
	(*GetTableRequest)(nil),                  // 58: apipb.GetTableRequest
	(*GetTableResponse)(nil),                 // 59: apipb.GetTableResponse
	(*AddVrfRequest)(nil),                    // 60: apipb.AddVrfRequest
	(*DeleteVrfRequest)(nil),                 // 61: apipb.DeleteVrfRequest
	(*ListVrfRequest)(nil),                   // 62: apipb.ListVrfRequest
	(*ListVrfResponse)(nil),                  // 63: apipb.ListVrfResponse
	(*AddPolicyRequest)(nil),                 // 64: apipb.AddPolicyRequest
	(*DeletePolicyRequest)(nil),              // 65: apipb.DeletePolicyRequest
	(*ListPolicyRequest)(nil),                // 66: apipb.ListPolicyRequest
	(*ListPolicyResponse)(nil),               // 67: apipb.ListPolicyResponse
	(*SetPoliciesRequest)(nil),               // 68: apipb.SetPoliciesRequest
	(*AddDefinedSetRequest)(nil),             // 69: apipb.AddDefinedSetRequest
	(*DeleteDefinedSetRequest)(nil),          // 70: apipb.DeleteDefinedSetRequest
	(*ListDefinedSetRequest)(nil),            // 71: apipb.ListDefinedSetRequest
	(*ListDefinedSetResponse)(nil),           // 72: apipb.ListDefinedSetResponse
	(*AddStatementRequest)(nil),              // 73: apipb.AddStatementRequest
	(*DeleteStatementRequest)(nil),           // 74: apipb.DeleteStatementRequest
	(*ListStatementRequest)(nil),             // 75: apipb.ListStatementRequest
	(*ListStatementResponse)(nil),            // 76: apipb.ListStatementResponse
	(*AddPolicyAssignmentRequest)(nil),       // 77: apipb.AddPolicyAssignmentRequest
	(*DeletePolicyAssignmentRequest)(nil),    // 78: apipb.DeletePolicyAssignmentRequest
	(*ListPolicyAssignmentRequest)(nil),      // 79: apipb.ListPolicyAssignmentRequest
	(*ListPolicyAssignmentResponse)(nil),     // 80: apipb.ListPolicyAssignmentResponse
	(*SetPolicyAssignmentRequest)(nil),       // 81: apipb.SetPolicyAssignmentRequest
	(*AddRpkiRequest)(nil),                   // 82: apipb.AddRpkiRequest
	(*DeleteRpkiRequest)(nil),                // 83: apipb.DeleteRpkiRequest
	(*ListRpkiRequest)(nil),                  // 84: apipb.ListRpkiRequest
	(*ListRpkiResponse)(nil),                 // 85: apipb.ListRpkiResponse
	(*EnableRpkiRequest)(nil),                // 86: apipb.EnableRpkiRequest
	(*DisableRpkiRequest)(nil),               // 87: apipb.DisableRpkiRequest
	(*ResetRpkiRequest)(nil),                 // 88: apipb.ResetRpkiRequest
	(*ListRpkiTableRequest)(nil),             // 89: apipb.ListRpkiTableRequest
	(*ListRpkiTableResponse)(nil),            // 90: apipb.ListRpkiTableResponse
	(*EnableZebraRequest)(nil),               // 91: apipb.EnableZebraRequest
	(*EnableMrtRequest)(nil),                 // 92: apipb.EnableMrtRequest
	(*DisableMrtRequest)(nil),                // 93: apipb.DisableMrtRequest
	(*AddBmpRequest)(nil),                    // 94: apipb.AddBmpRequest
	(*DeleteBmpRequest)(nil),                 // 95: apipb.DeleteBmpRequest
	(*ListBmpRequest)(nil),                   // 96: apipb.ListBmpRequest
	(*ListBmpResponse)(nil),                  // 97: apipb.ListBmpResponse
	(*Family)(nil),                           // 98: apipb.Family
	(*Validation)(nil),                       // 99: apipb.Validation
	(*Path)(nil),                             // 100: apipb.Path
	(*Destination)(nil),                      // 101: apipb.Destination
	(*Peer)(nil),                             // 102: apipb.Peer
	(*PeerGroup)(nil),                        // 103: apipb.PeerGroup
	(*DynamicNeighbor)(nil),                  // 104: apipb.DynamicNeighbor
	(*ApplyPolicy)(nil),                      // 105: apipb.ApplyPolicy
	(*PrefixLimit)(nil),                      // 106: apipb.PrefixLimit
	(*PeerConf)(nil),                         // 107: apipb.PeerConf
	(*PeerGroupConf)(nil),                    // 108: apipb.PeerGroupConf
	(*PeerGroupState)(nil),                   // 109: apipb.PeerGroupState
	(*TtlSecurity)(nil),                      // 110: apipb.TtlSecurity
	(*EbgpMultihop)(nil),                     // 111: apipb.EbgpMultihop
	(*RouteReflector)(nil),                   // 112: apipb.RouteReflector
	(*PeerState)(nil),                        // 113: apipb.PeerState
	(*Messages)(nil),                         // 114: apipb.Messages
	(*Message)(nil),                          // 115: apipb.Message
	(*Queues)(nil),                           // 116: apipb.Queues
	(*Timers)(nil),                           // 117: apipb.Timers
	(*TimersConfig)(nil),                     // 118: apipb.TimersConfig
	(*TimersState)(nil),                      // 119: apipb.TimersState
	(*Transport)(nil),                        // 120: apipb.Transport
	(*RouteServer)(nil),                      // 121: apipb.RouteServer
	(*GracefulRestart)(nil),                  // 122: apipb.GracefulRestart
	(*MpGracefulRestartConfig)(nil),          // 123: apipb.MpGracefulRestartConfig
	(*MpGracefulRestartState)(nil),           // 124: apipb.MpGracefulRestartState
	(*MpGracefulRestart)(nil),                // 125: apipb.MpGracefulRestart
	(*AfiSafiConfig)(nil),                    // 126: apipb.AfiSafiConfig
	(*AfiSafiState)(nil),                     // 127: apipb.AfiSafiState
	(*RouteSelectionOptionsConfig)(nil),      // 128: apipb.RouteSelectionOptionsConfig
	(*RouteSelectionOptionsState)(nil),       // 129: apipb.RouteSelectionOptionsState
	(*RouteSelectionOptions)(nil),            // 130: apipb.RouteSelectionOptions
	(*UseMultiplePathsConfig)(nil),           // 131: apipb.UseMultiplePathsConfig
	(*UseMultiplePathsState)(nil),            // 132: apipb.UseMultiplePathsState
	(*EbgpConfig)(nil),                       // 133: apipb.EbgpConfig
	(*EbgpState)(nil),                        // 134: apipb.EbgpState
	(*Ebgp)(nil),                             // 135: apipb.Ebgp
	(*IbgpConfig)(nil),                       // 136: apipb.IbgpConfig
	(*IbgpState)(nil),                        // 137: apipb.IbgpState
	(*Ibgp)(nil),                             // 138: apipb.Ibgp
	(*UseMultiplePaths)(nil),                 // 139: apipb.UseMultiplePaths
	(*RouteTargetMembershipConfig)(nil),      // 140: apipb.RouteTargetMembershipConfig
	(*RouteTargetMembershipState)(nil),       // 141: apipb.RouteTargetMembershipState
	(*RouteTargetMembership)(nil),            // 142: apipb.RouteTargetMembership
	(*LongLivedGracefulRestartConfig)(nil),   // 143: apipb.LongLivedGracefulRestartConfig
	(*LongLivedGracefulRestartState)(nil),    // 144: apipb.LongLivedGracefulRestartState
	(*LongLivedGracefulRestart)(nil),         // 145: apipb.LongLivedGracefulRestart
	(*AfiSafi)(nil),                          // 146: apipb.AfiSafi
	(*AddPathsConfig)(nil),                   // 147: apipb.AddPathsConfig
	(*AddPathsState)(nil),                    // 148: apipb.AddPathsState
	(*AddPaths)(nil),                         // 149: apipb.AddPaths
	(*Prefix)(nil),                           // 150: apipb.Prefix
	(*DefinedSet)(nil),                       // 151: apipb.DefinedSet
	(*MatchSet)(nil),                         // 152: apipb.MatchSet
	(*AsPathLength)(nil),                     // 153: apipb.AsPathLength
	(*Conditions)(nil),                       // 154: apipb.Conditions
	(*CommunityAction)(nil),                  // 155: apipb.CommunityAction
	(*MedAction)(nil),                        // 156: apipb.MedAction
	(*AsPrependAction)(nil),                  // 157: apipb.AsPrependAction
	(*NexthopAction)(nil),                    // 158: apipb.NexthopAction
	(*LocalPrefAction)(nil),                  // 159: apipb.LocalPrefAction
	(*Actions)(nil),                          // 160: apipb.Actions
	(*Statement)(nil),                        // 161: apipb.Statement
	(*Policy)(nil),                           // 162: apipb.Policy
	(*PolicyAssignment)(nil),                 // 163: apipb.PolicyAssignment
	(*RoutingPolicy)(nil),                    // 164: apipb.RoutingPolicy
	(*Roa)(nil),                              // 165: apipb.Roa
	(*Vrf)(nil),                              // 166: apipb.Vrf
	(*DefaultRouteDistance)(nil),             // 167: apipb.DefaultRouteDistance
	(*Global)(nil),                           // 168: apipb.Global
	(*Confederation)(nil),                    // 169: apipb.Confederation
	(*RPKIConf)(nil),                         // 170: apipb.RPKIConf
	(*RPKIState)(nil),                        // 171: apipb.RPKIState
	(*Rpki)(nil),                             // 172: apipb.Rpki
	(*SetLogLevelRequest)(nil),               // 173: apipb.SetLogLevelRequest
	(*WatchEventRequest_Peer)(nil),           // 174: apipb.WatchEventRequest.Peer
	(*WatchEventRequest_Table)(nil),          // 175: apipb.WatchEventRequest.Table
	(*WatchEventRequest_Table_Filter)(nil),   // 176: apipb.WatchEventRequest.Table.Filter
	(*WatchEventResponse_PeerEvent)(nil),     // 177: apipb.WatchEventResponse.PeerEvent
	(*WatchEventResponse_TableEvent)(nil),    // 178: apipb.WatchEventResponse.TableEvent
	(*ListBmpResponse_BmpStation)(nil),       // 179: apipb.ListBmpResponse.BmpStation
	(*ListBmpResponse_BmpStation_Conf)(nil),  // 180: apipb.ListBmpResponse.BmpStation.Conf
	(*ListBmpResponse_BmpStation_State)(nil), // 181: apipb.ListBmpResponse.BmpStation.State
	(*anypb.Any)(nil),                        // 182: google.protobuf.Any
	(*timestamppb.Timestamp)(nil),            // 183: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),                    // 184: google.protobuf.Empty
}
var file_gobgp_proto_depIdxs = []int32{
	168, // 0: apipb.StartBgpRequest.global:type_name -> apipb.Global
	168, // 1: apipb.GetBgpResponse.global:type_name -> apipb.Global
	174, // 2: apipb.WatchEventRequest.peer:type_name -> apipb.WatchEventRequest.Peer
	175, // 3: apipb.WatchEventRequest.table:type_name -> apipb.WatchEventRequest.Table
	177, // 4: apipb.WatchEventResponse.peer:type_name -> apipb.WatchEventResponse.PeerEvent
	178, // 5: apipb.WatchEventResponse.table:type_name -> apipb.WatchEventResponse.TableEvent
	102, // 6: apipb.AddPeerRequest.peer:type_name -> apipb.Peer
	102, // 7: apipb.ListPeerResponse.peer:type_name -> apipb.Peer
	102, // 8: apipb.UpdatePeerRequest.peer:type_name -> apipb.Peer
	8,   // 9: apipb.ResetPeerRequest.direction:type_name -> apipb.ResetPeerRequest.SoftResetDirection
	103, // 10: apipb.AddPeerGroupRequest.peer_group:type_name -> apipb.PeerGroup
	103, // 11: apipb.UpdatePeerGroupRequest.peer_group:type_name -> apipb.PeerGroup
	103, // 12: apipb.ListPeerGroupResponse.peer_group:type_name -> apipb.PeerGroup
	104, // 13: apipb.AddDynamicNeighborRequest.dynamic_neighbor:type_name -> apipb.DynamicNeighbor
	104, // 14: apipb.ListDynamicNeighborResponse.dynamic_neighbor:type_name -> apipb.DynamicNeighbor
	0,   // 15: apipb.AddPathRequest.table_type:type_name -> apipb.TableType
	100, // 16: apipb.AddPathRequest.path:type_name -> apipb.Path
	0,   // 17: apipb.DeletePathRequest.table_type:type_name -> apipb.TableType
	98,  // 18: apipb.DeletePathRequest.family:type_name -> apipb.Family
	100, // 19: apipb.DeletePathRequest.path:type_name -> apipb.Path
	9,   // 20: apipb.TableLookupPrefix.type:type_name -> apipb.TableLookupPrefix.Type
	0,   // 21: apipb.ListPathRequest.table_type:type_name -> apipb.TableType
	98,  // 22: apipb.ListPathRequest.family:type_name -> apipb.Family
	54,  // 23: apipb.ListPathRequest.prefixes:type_name -> apipb.TableLookupPrefix
	10,  // 24: apipb.ListPathRequest.sort_type:type_name -> apipb.ListPathRequest.SortType
	101, // 25: apipb.ListPathResponse.destination:type_name -> apipb.Destination
	0,   // 26: apipb.AddPathStreamRequest.table_type:type_name -> apipb.TableType
	100, // 27: apipb.AddPathStreamRequest.paths:type_name -> apipb.Path
	0,   // 28: apipb.GetTableRequest.table_type:type_name -> apipb.TableType
	98,  // 29: apipb.GetTableRequest.family:type_name -> apipb.Family
	166, // 30: apipb.AddVrfRequest.vrf:type_name -> apipb.Vrf
	166, // 31: apipb.ListVrfResponse.vrf:type_name -> apipb.Vrf
	162, // 32: apipb.AddPolicyRequest.policy:type_name -> apipb.Policy
	162, // 33: apipb.DeletePolicyRequest.policy:type_name -> apipb.Policy
	162, // 34: apipb.ListPolicyResponse.policy:type_name -> apipb.Policy
	151, // 35: apipb.SetPoliciesRequest.defined_sets:type_name -> apipb.DefinedSet
	162, // 36: apipb.SetPoliciesRequest.policies:type_name -> apipb.Policy
	163, // 37: apipb.SetPoliciesRequest.assignments:type_name -> apipb.PolicyAssignment
	151, // 38: apipb.AddDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet
	151, // 39: apipb.DeleteDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet
	3,   // 40: apipb.ListDefinedSetRequest.defined_type:type_name -> apipb.DefinedType
	151, // 41: apipb.ListDefinedSetResponse.defined_set:type_name -> apipb.DefinedSet
	161, // 42: apipb.AddStatementRequest.statement:type_name -> apipb.Statement
	161, // 43: apipb.DeleteStatementRequest.statement:type_name -> apipb.Statement
	161, // 44: apipb.ListStatementResponse.statement:type_name -> apipb.Statement
	163, // 45: apipb.AddPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment
	163, // 46: apipb.DeletePolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment
	5,   // 47: apipb.ListPolicyAssignmentRequest.direction:type_name -> apipb.PolicyDirection
	163, // 48: apipb.ListPolicyAssignmentResponse.assignment:type_name -> apipb.PolicyAssignment
	163, // 49: apipb.SetPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment
	98,  // 50: apipb.ListRpkiRequest.family:type_name -> apipb.Family
	172, // 51: apipb.ListRpkiResponse.server:type_name -> apipb.Rpki
	98,  // 52: apipb.ListRpkiTableRequest.family:type_name -> apipb.Family
	165, // 53: apipb.ListRpkiTableResponse.roa:type_name -> apipb.Roa
	11,  // 54: apipb.EnableMrtRequest.type:type_name -> apipb.EnableMrtRequest.DumpType
	12,  // 55: apipb.AddBmpRequest.policy:type_name -> apipb.AddBmpRequest.MonitoringPolicy
	179, // 56: apipb.ListBmpResponse.station:type_name -> apipb.ListBmpResponse.BmpStation
	13,  // 57: apipb.Family.afi:type_name -> apipb.Family.Afi
	14,  // 58: apipb.Family.safi:type_name -> apipb.Family.Safi
	15,  // 59: apipb.Validation.state:type_name -> apipb.Validation.State
	16,  // 60: apipb.Validation.reason:type_name -> apipb.Validation.Reason
	165, // 61: apipb.Validation.matched:type_name -> apipb.Roa
	165, // 62: apipb.Validation.unmatched_asn:type_name -> apipb.Roa
	165, // 63: apipb.Validation.unmatched_length:type_name -> apipb.Roa
	182, // 64: apipb.Path.nlri:type_name -> google.protobuf.Any
	182, // 65: apipb.Path.pattrs:type_name -> google.protobuf.Any
	183, // 66: apipb.Path.age:type_name -> google.protobuf.Timestamp
	99,  // 67: apipb.Path.validation:type_name -> apipb.Validation
	98,  // 68: apipb.Path.family:type_name -> apipb.Family
	100, // 69: apipb.Destination.paths:type_name -> apipb.Path
	105, // 70: apipb.Peer.apply_policy:type_name -> apipb.ApplyPolicy
	107, // 71: apipb.Peer.conf:type_name -> apipb.PeerConf
	111, // 72: apipb.Peer.ebgp_multihop:type_name -> apipb.EbgpMultihop
	112, // 73: apipb.Peer.route_reflector:type_name -> apipb.RouteReflector
	113, // 74: apipb.Peer.state:type_name -> apipb.PeerState
	117, // 75: apipb.Peer.timers:type_name -> apipb.Timers
	120, // 76: apipb.Peer.transport:type_name -> apipb.Transport
	121, // 77: apipb.Peer.route_server:type_name -> apipb.RouteServer
	122, // 78: apipb.Peer.graceful_restart:type_name -> apipb.GracefulRestart
	146, // 79: apipb.Peer.afi_safis:type_name -> apipb.AfiSafi
	110, // 80: apipb.Peer.ttl_security:type_name -> apipb.TtlSecurity
	105, // 81: apipb.PeerGroup.apply_policy:type_name -> apipb.ApplyPolicy
	108, // 82: apipb.PeerGroup.conf:type_name -> apipb.PeerGroupConf
	111, // 83: apipb.PeerGroup.ebgp_multihop:type_name -> apipb.EbgpMultihop
	112, // 84: apipb.PeerGroup.route_reflector:type_name -> apipb.RouteReflector
	109, // 85: apipb.PeerGroup.info:type_name -> apipb.PeerGroupState
	117, // 86: apipb.PeerGroup.timers:type_name -> apipb.Timers
	120, // 87: apipb.PeerGroup.transport:type_name -> apipb.Transport
	121, // 88: apipb.PeerGroup.route_server:type_name -> apipb.RouteServer
	122, // 89: apipb.PeerGroup.graceful_restart:type_name -> apipb.GracefulRestart
	146, // 90: apipb.PeerGroup.afi_safis:type_name -> apipb.AfiSafi
	110, // 91: apipb.PeerGroup.ttl_security:type_name -> apipb.TtlSecurity
	163, // 92: apipb.ApplyPolicy.in_policy:type_name -> apipb.PolicyAssignment
	163, // 93: apipb.ApplyPolicy.export_policy:type_name -> apipb.PolicyAssignment
	163, // 94: apipb.ApplyPolicy.import_policy:type_name -> apipb.PolicyAssignment
	98,  // 95: apipb.PrefixLimit.family:type_name -> apipb.Family
	1,   // 96: apipb.PeerConf.type:type_name -> apipb.PeerType
	2,   // 97: apipb.PeerConf.remove_private:type_name -> apipb.RemovePrivate
	1,   // 98: apipb.PeerGroupConf.type:type_name -> apipb.PeerType
	2,   // 99: apipb.PeerGroupConf.remove_private:type_name -> apipb.RemovePrivate
	1,   // 100: apipb.PeerGroupState.type:type_name -> apipb.PeerType
	2,   // 101: apipb.PeerGroupState.remove_private:type_name -> apipb.RemovePrivate
	114, // 102: apipb.PeerState.messages:type_name -> apipb.Messages
	1,   // 103: apipb.PeerState.type:type_name -> apipb.PeerType
	116, // 104: apipb.PeerState.queues:type_name -> apipb.Queues
	2,   // 105: apipb.PeerState.remove_private:type_name -> apipb.RemovePrivate
	17,  // 106: apipb.PeerState.session_state:type_name -> apipb.PeerState.SessionState
	18,  // 107: apipb.PeerState.admin_state:type_name -> apipb.PeerState.AdminState
	182, // 108: apipb.PeerState.remote_cap:type_name -> google.protobuf.Any
	182, // 109: apipb.PeerState.local_cap:type_name -> google.protobuf.Any
	115, // 110: apipb.Messages.received:type_name -> apipb.Message
	115, // 111: apipb.Messages.sent:type_name -> apipb.Message
	118, // 112: apipb.Timers.config:type_name -> apipb.TimersConfig
	119, // 113: apipb.Timers.state:type_name -> apipb.TimersState
	183, // 114: apipb.TimersState.uptime:type_name -> google.protobuf.Timestamp
	183, // 115: apipb.TimersState.downtime:type_name -> google.protobuf.Timestamp
	123, // 116: apipb.MpGracefulRestart.config:type_name -> apipb.MpGracefulRestartConfig
	124, // 117: apipb.MpGracefulRestart.state:type_name -> apipb.MpGracefulRestartState
	98,  // 118: apipb.AfiSafiConfig.family:type_name -> apipb.Family
	98,  // 119: apipb.AfiSafiState.family:type_name -> apipb.Family
	128, // 120: apipb.RouteSelectionOptions.config:type_name -> apipb.RouteSelectionOptionsConfig
	129, // 121: apipb.RouteSelectionOptions.state:type_name -> apipb.RouteSelectionOptionsState
	133, // 122: apipb.Ebgp.config:type_name -> apipb.EbgpConfig
	134, // 123: apipb.Ebgp.state:type_name -> apipb.EbgpState
	136, // 124: apipb.Ibgp.config:type_name -> apipb.IbgpConfig
	137, // 125: apipb.Ibgp.state:type_name -> apipb.IbgpState
	131, // 126: apipb.UseMultiplePaths.config:type_name -> apipb.UseMultiplePathsConfig
	132, // 127: apipb.UseMultiplePaths.state:type_name -> apipb.UseMultiplePathsState
	135, // 128: apipb.UseMultiplePaths.ebgp:type_name -> apipb.Ebgp
	138, // 129: apipb.UseMultiplePaths.ibgp:type_name -> apipb.Ibgp
	140, // 130: apipb.RouteTargetMembership.config:type_name -> apipb.RouteTargetMembershipConfig
	141, // 131: apipb.RouteTargetMembership.state:type_name -> apipb.RouteTargetMembershipState
	143, // 132: apipb.LongLivedGracefulRestart.config:type_name -> apipb.LongLivedGracefulRestartConfig
	144, // 133: apipb.LongLivedGracefulRestart.state:type_name -> apipb.LongLivedGracefulRestartState
	125, // 134: apipb.AfiSafi.mp_graceful_restart:type_name -> apipb.MpGracefulRestart
	126, // 135: apipb.AfiSafi.config:type_name -> apipb.AfiSafiConfig
	127, // 136: apipb.AfiSafi.state:type_name -> apipb.AfiSafiState
	105, // 137: apipb.AfiSafi.apply_policy:type_name -> apipb.ApplyPolicy
	130, // 138: apipb.AfiSafi.route_selection_options:type_name -> apipb.RouteSelectionOptions
	139, // 139: apipb.AfiSafi.use_multiple_paths:type_name -> apipb.UseMultiplePaths
	106, // 140: apipb.AfiSafi.prefix_limits:type_name -> apipb.PrefixLimit
	142, // 141: apipb.AfiSafi.route_target_membership:type_name -> apipb.RouteTargetMembership
	145, // 142: apipb.AfiSafi.long_lived_graceful_restart:type_name -> apipb.LongLivedGracefulRestart
	149, // 143: apipb.AfiSafi.add_paths:type_name -> apipb.AddPaths
	147, // 144: apipb.AddPaths.config:type_name -> apipb.AddPathsConfig
	148, // 145: apipb.AddPaths.state:type_name -> apipb.AddPathsState
	3,   // 146: apipb.DefinedSet.defined_type:type_name -> apipb.DefinedType
	150, // 147: apipb.DefinedSet.prefixes:type_name -> apipb.Prefix
	19,  // 148: apipb.MatchSet.type:type_name -> apipb.MatchSet.Type
	20,  // 149: apipb.AsPathLength.type:type_name -> apipb.AsPathLength.Type
	152, // 150: apipb.Conditions.prefix_set:type_name -> apipb.MatchSet
	152, // 151: apipb.Conditions.neighbor_set:type_name -> apipb.MatchSet
	153, // 152: apipb.Conditions.as_path_length:type_name -> apipb.AsPathLength
	152, // 153: apipb.Conditions.as_path_set:type_name -> apipb.MatchSet
	152, // 154: apipb.Conditions.community_set:type_name -> apipb.MatchSet
	152, // 155: apipb.Conditions.ext_community_set:type_name -> apipb.MatchSet
	21,  // 156: apipb.Conditions.route_type:type_name -> apipb.Conditions.RouteType
	152, // 157: apipb.Conditions.large_community_set:type_name -> apipb.MatchSet
	98,  // 158: apipb.Conditions.afi_safi_in:type_name -> apipb.Family
	22,  // 159: apipb.CommunityAction.type:type_name -> apipb.CommunityAction.Type
	23,  // 160: apipb.MedAction.type:type_name -> apipb.MedAction.Type
	4,   // 161: apipb.Actions.route_action:type_name -> apipb.RouteAction
	155, // 162: apipb.Actions.community:type_name -> apipb.CommunityAction
	156, // 163: apipb.Actions.med:type_name -> apipb.MedAction
	157, // 164: apipb.Actions.as_prepend:type_name -> apipb.AsPrependAction
	155, // 165: apipb.Actions.ext_community:type_name -> apipb.CommunityAction
	158, // 166: apipb.Actions.nexthop:type_name -> apipb.NexthopAction
	159, // 167: apipb.Actions.local_pref:type_name -> apipb.LocalPrefAction
	155, // 168: apipb.Actions.large_community:type_name -> apipb.CommunityAction
	154, // 169: apipb.Statement.conditions:type_name -> apipb.Conditions
	160, // 170: apipb.Statement.actions:type_name -> apipb.Actions
	161, // 171: apipb.Policy.statements:type_name -> apipb.Statement
	5,   // 172: apipb.PolicyAssignment.direction:type_name -> apipb.PolicyDirection
	162, // 173: apipb.PolicyAssignment.policies:type_name -> apipb.Policy
	4,   // 174: apipb.PolicyAssignment.default_action:type_name -> apipb.RouteAction
	151, // 175: apipb.RoutingPolicy.defined_sets:type_name -> apipb.DefinedSet
	162, // 176: apipb.RoutingPolicy.policies:type_name -> apipb.Policy
	170, // 177: apipb.Roa.conf:type_name -> apipb.RPKIConf
	182, // 178: apipb.Vrf.rd:type_name -> google.protobuf.Any
	182, // 179: apipb.Vrf.import_rt:type_name -> google.protobuf.Any
	182, // 180: apipb.Vrf.export_rt:type_name -> google.protobuf.Any
	128, // 181: apipb.Global.route_selection_options:type_name -> apipb.RouteSelectionOptionsConfig
	167, // 182: apipb.Global.default_route_distance:type_name -> apipb.DefaultRouteDistance
	169, // 183: apipb.Global.confederation:type_name -> apipb.Confederation
	122, // 184: apipb.Global.graceful_restart:type_name -> apipb.GracefulRestart
	105, // 185: apipb.Global.apply_policy:type_name -> apipb.ApplyPolicy
	183, // 186: apipb.RPKIState.uptime:type_name -> google.protobuf.Timestamp
	183, // 187: apipb.RPKIState.downtime:type_name -> google.protobuf.Timestamp
	170, // 188: apipb.Rpki.conf:type_name -> apipb.RPKIConf
	171, // 189: apipb.Rpki.state:type_name -> apipb.RPKIState
	24,  // 190: apipb.SetLogLevelRequest.level:type_name -> apipb.SetLogLevelRequest.Level
	176, // 191: apipb.WatchEventRequest.Table.filters:type_name -> apipb.WatchEventRequest.Table.Filter
	6,   // 192: apipb.WatchEventRequest.Table.Filter.type:type_name -> apipb.WatchEventRequest.Table.Filter.Type
	7,   // 193: apipb.WatchEventResponse.PeerEvent.type:type_name -> apipb.WatchEventResponse.PeerEvent.Type
	102, // 194: apipb.WatchEventResponse.PeerEvent.peer:type_name -> apipb.Peer
	100, // 195: apipb.WatchEventResponse.TableEvent.paths:type_name -> apipb.Path
	180, // 196: apipb.ListBmpResponse.BmpStation.conf:type_name -> apipb.ListBmpResponse.BmpStation.Conf
	181, // 197: apipb.ListBmpResponse.BmpStation.state:type_name -> apipb.ListBmpResponse.BmpStation.State
	183, // 198: apipb.ListBmpResponse.BmpStation.State.uptime:type_name -> google.protobuf.Timestamp
	183, // 199: apipb.ListBmpResponse.BmpStation.State.downtime:type_name -> google.protobuf.Timestamp
	25,  // 200: apipb.GobgpApi.StartBgp:input_type -> apipb.StartBgpRequest
	26,  // 201: apipb.GobgpApi.StopBgp:input_type -> apipb.StopBgpRequest
	27,  // 202: apipb.GobgpApi.GetBgp:input_type -> apipb.GetBgpRequest
	29,  // 203: apipb.GobgpApi.WatchEvent:input_type -> apipb.WatchEventRequest
	31,  // 204: apipb.GobgpApi.AddPeer:input_type -> apipb.AddPeerRequest
	32,  // 205: apipb.GobgpApi.DeletePeer:input_type -> apipb.DeletePeerRequest
	33,  // 206: apipb.GobgpApi.ListPeer:input_type -> apipb.ListPeerRequest
	35,  // 207: apipb.GobgpApi.UpdatePeer:input_type -> apipb.UpdatePeerRequest
	37,  // 208: apipb.GobgpApi.ResetPeer:input_type -> apipb.ResetPeerRequest
	38,  // 209: apipb.GobgpApi.ShutdownPeer:input_type -> apipb.ShutdownPeerRequest
	39,  // 210: apipb.GobgpApi.EnablePeer:input_type -> apipb.EnablePeerRequest
	40,  // 211: apipb.GobgpApi.DisablePeer:input_type -> apipb.DisablePeerRequest
	41,  // 212: apipb.GobgpApi.AddPeerGroup:input_type -> apipb.AddPeerGroupRequest
	42,  // 213: apipb.GobgpApi.DeletePeerGroup:input_type -> apipb.DeletePeerGroupRequest
	45,  // 214: apipb.GobgpApi.ListPeerGroup:input_type -> apipb.ListPeerGroupRequest
	43,  // 215: apipb.GobgpApi.UpdatePeerGroup:input_type -> apipb.UpdatePeerGroupRequest
	47,  // 216: apipb.GobgpApi.AddDynamicNeighbor:input_type -> apipb.AddDynamicNeighborRequest
	49,  // 217: apipb.GobgpApi.ListDynamicNeighbor:input_type -> apipb.ListDynamicNeighborRequest
	48,  // 218: apipb.GobgpApi.DeleteDynamicNeighbor:input_type -> apipb.DeleteDynamicNeighborRequest
	51,  // 219: apipb.GobgpApi.AddPath:input_type -> apipb.AddPathRequest
	53,  // 220: apipb.GobgpApi.DeletePath:input_type -> apipb.DeletePathRequest
	55,  // 221: apipb.GobgpApi.ListPath:input_type -> apipb.ListPathRequest
	57,  // 222: apipb.GobgpApi.AddPathStream:input_type -> apipb.AddPathStreamRequest
	58,  // 223: apipb.GobgpApi.GetTable:input_type -> apipb.GetTableRequest
	60,  // 224: apipb.GobgpApi.AddVrf:input_type -> apipb.AddVrfRequest
	61,  // 225: apipb.GobgpApi.DeleteVrf:input_type -> apipb.DeleteVrfRequest
	62,  // 226: apipb.GobgpApi.ListVrf:input_type -> apipb.ListVrfRequest
	64,  // 227: apipb.GobgpApi.AddPolicy:input_type -> apipb.AddPolicyRequest
	65,  // 228: apipb.GobgpApi.DeletePolicy:input_type -> apipb.DeletePolicyRequest
	66,  // 229: apipb.GobgpApi.ListPolicy:input_type -> apipb.ListPolicyRequest
	68,  // 230: apipb.GobgpApi.SetPolicies:input_type -> apipb.SetPoliciesRequest
	69,  // 231: apipb.GobgpApi.AddDefinedSet:input_type -> apipb.AddDefinedSetRequest
	70,  // 232: apipb.GobgpApi.DeleteDefinedSet:input_type -> apipb.DeleteDefinedSetRequest
	71,  // 233: apipb.GobgpApi.ListDefinedSet:input_type -> apipb.ListDefinedSetRequest
	73,  // 234: apipb.GobgpApi.AddStatement:input_type -> apipb.AddStatementRequest
	74,  // 235: apipb.GobgpApi.DeleteStatement:input_type -> apipb.DeleteStatementRequest
	75,  // 236: apipb.GobgpApi.ListStatement:input_type -> apipb.ListStatementRequest
	77,  // 237: apipb.GobgpApi.AddPolicyAssignment:input_type -> apipb.AddPolicyAssignmentRequest
	78,  // 238: apipb.GobgpApi.DeletePolicyAssignment:input_type -> apipb.DeletePolicyAssignmentRequest
	79,  // 239: apipb.GobgpApi.ListPolicyAssignment:input_type -> apipb.ListPolicyAssignmentRequest
	81,  // 240: apipb.GobgpApi.SetPolicyAssignment:input_type -> apipb.SetPolicyAssignmentRequest
	82,  // 241: apipb.GobgpApi.AddRpki:input_type -> apipb.AddRpkiRequest
	83,  // 242: apipb.GobgpApi.DeleteRpki:input_type -> apipb.DeleteRpkiRequest
	84,  // 243: apipb.GobgpApi.ListRpki:input_type -> apipb.ListRpkiRequest
	86,  // 244: apipb.GobgpApi.EnableRpki:input_type -> apipb.EnableRpkiRequest
	87,  // 245: apipb.GobgpApi.DisableRpki:input_type -> apipb.DisableRpkiRequest
	88,  // 246: apipb.GobgpApi.ResetRpki:input_type -> apipb.ResetRpkiRequest
	89,  // 247: apipb.GobgpApi.ListRpkiTable:input_type -> apipb.ListRpkiTableRequest
	91,  // 248: apipb.GobgpApi.EnableZebra:input_type -> apipb.EnableZebraRequest
	92,  // 249: apipb.GobgpApi.EnableMrt:input_type -> apipb.EnableMrtRequest
	93,  // 250: apipb.GobgpApi.DisableMrt:input_type -> apipb.DisableMrtRequest
	94,  // 251: apipb.GobgpApi.AddBmp:input_type -> apipb.AddBmpRequest
	95,  // 252: apipb.GobgpApi.DeleteBmp:input_type -> apipb.DeleteBmpRequest
	96,  // 253: apipb.GobgpApi.ListBmp:input_type -> apipb.ListBmpRequest
	173, // 254: apipb.GobgpApi.SetLogLevel:input_type -> apipb.SetLogLevelRequest
	184, // 255: apipb.GobgpApi.StartBgp:output_type -> google.protobuf.Empty
	184, // 256: apipb.GobgpApi.StopBgp:output_type -> google.protobuf.Empty
	28,  // 257: apipb.GobgpApi.GetBgp:output_type -> apipb.GetBgpResponse
	30,  // 258: apipb.GobgpApi.WatchEvent:output_type -> apipb.WatchEventResponse
	184, // 259: apipb.GobgpApi.AddPeer:output_type -> google.protobuf.Empty
	184, // 260: apipb.GobgpApi.DeletePeer:output_type -> google.protobuf.Empty
	34,  // 261: apipb.GobgpApi.ListPeer:output_type -> apipb.ListPeerResponse
	36,  // 262: apipb.GobgpApi.UpdatePeer:output_type -> apipb.UpdatePeerResponse
	184, // 263: apipb.GobgpApi.ResetPeer:output_type -> google.protobuf.Empty
	184, // 264: apipb.GobgpApi.ShutdownPeer:output_type -> google.protobuf.Empty
	184, // 265: apipb.GobgpApi.EnablePeer:output_type -> google.protobuf.Empty
	184, // 266: apipb.GobgpApi.DisablePeer:output_type -> google.protobuf.Empty
	184, // 267: apipb.GobgpApi.AddPeerGroup:output_type -> google.protobuf.Empty
	184, // 268: apipb.GobgpApi.DeletePeerGroup:output_type -> google.protobuf.Empty
	46,  // 269: apipb.GobgpApi.ListPeerGroup:output_type -> apipb.ListPeerGroupResponse
	44,  // 270: apipb.GobgpApi.UpdatePeerGroup:output_type -> apipb.UpdatePeerGroupResponse
	184, // 271: apipb.GobgpApi.AddDynamicNeighbor:output_type -> google.protobuf.Empty
	50,  // 272: apipb.GobgpApi.ListDynamicNeighbor:output_type -> apipb.ListDynamicNeighborResponse
	184, // 273: apipb.GobgpApi.DeleteDynamicNeighbor:output_type -> google.protobuf.Empty
	52,  // 274: apipb.GobgpApi.AddPath:output_type -> apipb.AddPathResponse
	184, // 275: apipb.GobgpApi.DeletePath:output_type -> google.protobuf.Empty
	56,  // 276: apipb.GobgpApi.ListPath:output_type -> apipb.ListPathResponse
	184, // 277: apipb.GobgpApi.AddPathStream:output_type -> google.protobuf.Empty
	59,  // 278: apipb.GobgpApi.GetTable:output_type -> apipb.GetTableResponse
	184, // 279: apipb.GobgpApi.AddVrf:output_type -> google.protobuf.Empty
	184, // 280: apipb.GobgpApi.DeleteVrf:output_type -> google.protobuf.Empty
	63,  // 281: apipb.GobgpApi.ListVrf:output_type -> apipb.ListVrfResponse
	184, // 282: apipb.GobgpApi.AddPolicy:output_type -> google.protobuf.Empty
	184, // 283: apipb.GobgpApi.DeletePolicy:output_type -> google.protobuf.Empty
	67,  // 284: apipb.GobgpApi.ListPolicy:output_type -> apipb.ListPolicyResponse
	184, // 285: apipb.GobgpApi.SetPolicies:output_type -> google.protobuf.Empty
	184, // 286: apipb.GobgpApi.AddDefinedSet:output_type -> google.protobuf.Empty
	184, // 287: apipb.GobgpApi.DeleteDefinedSet:output_type -> google.protobuf.Empty
	72,  // 288: apipb.GobgpApi.ListDefinedSet:output_type -> apipb.ListDefinedSetResponse
	184, // 289: apipb.GobgpApi.AddStatement:output_type -> google.protobuf.Empty
	184, // 290: apipb.GobgpApi.DeleteStatement:output_type -> google.protobuf.Empty
	76,  // 291: apipb.GobgpApi.ListStatement:output_type -> apipb.ListStatementResponse
	184, // 292: apipb.GobgpApi.AddPolicyAssignment:output_type -> google.protobuf.Empty
	184, // 293: apipb.GobgpApi.DeletePolicyAssignment:output_type -> google.protobuf.Empty
	80,  // 294: apipb.GobgpApi.ListPolicyAssignment:output_type -> apipb.ListPolicyAssignmentResponse
	184, // 295: apipb.GobgpApi.SetPolicyAssignment:output_type -> google.protobuf.Empty
	184, // 296: apipb.GobgpApi.AddRpki:output_type -> google.protobuf.Empty
	184, // 297: apipb.GobgpApi.DeleteRpki:output_type -> google.protobuf.Empty
	85,  // 298: apipb.GobgpApi.ListRpki:output_type -> apipb.ListRpkiResponse
	184, // 299: apipb.GobgpApi.EnableRpki:output_type -> google.protobuf.Empty
	184, // 300: apipb.GobgpApi.DisableRpki:output_type -> google.protobuf.Empty
	184, // 301: apipb.GobgpApi.ResetRpki:output_type -> google.protobuf.Empty
	90,  // 302: apipb.GobgpApi.ListRpkiTable:output_type -> apipb.ListRpkiTableResponse
	184, // 303: apipb.GobgpApi.EnableZebra:output_type -> google.protobuf.Empty
	184, // 304: apipb.GobgpApi.EnableMrt:output_type -> google.protobuf.Empty
	184, // 305: apipb.GobgpApi.DisableMrt:output_type -> google.protobuf.Empty
	184, // 306: apipb.GobgpApi.AddBmp:output_type -> google.protobuf.Empty
	184, // 307: apipb.GobgpApi.DeleteBmp:output_type -> google.protobuf.Empty
	97,  // 308: apipb.GobgpApi.ListBmp:output_type -> apipb.ListBmpResponse
	184, // 309: apipb.GobgpApi.SetLogLevel:output_type -> google.protobuf.Empty
	255, // [255:310] is the sub-list for method output_type
	200, // [200:255] is the sub-list for method input_type
	200, // [200:200] is the sub-list for extension type_name
	200, // [200:200] is the sub-list for extension extendee
	0,   // [0:200] is the sub-list for field type_name
}

func init() { file_gobgp_proto_init() }
func file_gobgp_proto_init() {
	if File_gobgp_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_gobgp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartBgpRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopBgpRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetBgpRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetBgpResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPeerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdatePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdatePeerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ShutdownPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnablePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisablePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPeerGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePeerGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdatePeerGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdatePeerGroupResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPeerGroupRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPeerGroupResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddDynamicNeighborRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteDynamicNeighborRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListDynamicNeighborRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListDynamicNeighborResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TableLookupPrefix); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPathStreamRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetTableRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetTableResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddVrfRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteVrfRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListVrfRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListVrfResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPolicyRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePolicyRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPolicyRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPolicyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetPoliciesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddDefinedSetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteDefinedSetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListDefinedSetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListDefinedSetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddStatementRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteStatementRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListStatementRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListStatementResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPolicyAssignmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePolicyAssignmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPolicyAssignmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPolicyAssignmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetPolicyAssignmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddRpkiRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteRpkiRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRpkiRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRpkiResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableRpkiRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisableRpkiRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetRpkiRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRpkiTableRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRpkiTableResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableZebraRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableMrtRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisableMrtRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddBmpRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteBmpRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListBmpRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListBmpResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Family); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Validation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Path); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Destination); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Peer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DynamicNeighbor); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyPolicy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrefixLimit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerConf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerGroupConf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerGroupState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TtlSecurity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EbgpMultihop); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteReflector); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Messages); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Message); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Queues); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Timers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TimersConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TimersState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Transport); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteServer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GracefulRestart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MpGracefulRestartConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MpGracefulRestartState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MpGracefulRestart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AfiSafiConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AfiSafiState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteSelectionOptionsConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteSelectionOptionsState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteSelectionOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UseMultiplePathsConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UseMultiplePathsState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EbgpConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EbgpState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Ebgp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IbgpConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IbgpState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Ibgp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UseMultiplePaths); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteTargetMembershipConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteTargetMembershipState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteTargetMembership); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LongLivedGracefulRestartConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LongLivedGracefulRestartState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LongLivedGracefulRestart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AfiSafi); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPathsConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPathsState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddPaths); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Prefix); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DefinedSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MatchSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AsPathLength); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Conditions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommunityAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MedAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AsPrependAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NexthopAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LocalPrefAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Actions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Statement); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Policy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PolicyAssignment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoutingPolicy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Roa); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Vrf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DefaultRouteDistance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Global); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Confederation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RPKIConf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RPKIState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Rpki); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetLogLevelRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventRequest_Peer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventRequest_Table); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventRequest_Table_Filter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventResponse_PeerEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchEventResponse_TableEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListBmpResponse_BmpStation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListBmpResponse_BmpStation_Conf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_gobgp_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListBmpResponse_BmpStation_State); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_gobgp_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*WatchEventResponse_Peer)(nil),
		(*WatchEventResponse_Table)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_gobgp_proto_rawDesc,
			NumEnums:      25,
			NumMessages:   157,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_gobgp_proto_goTypes,
		DependencyIndexes: file_gobgp_proto_depIdxs,
		EnumInfos:         file_gobgp_proto_enumTypes,
		MessageInfos:      file_gobgp_proto_msgTypes,
	}.Build()
	File_gobgp_proto = out.File
	file_gobgp_proto_rawDesc = nil
	file_gobgp_proto_goTypes = nil
	file_gobgp_proto_depIdxs = nil
}
