// 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.36.5
// 	protoc        v4.25.6
// 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"
	unsafe "unsafe"
)

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 RouteOriginType int32

const (
	RouteOriginType_ORIGIN_NONE       RouteOriginType = 0
	RouteOriginType_ORIGIN_IGP        RouteOriginType = 1
	RouteOriginType_ORIGIN_EGP        RouteOriginType = 2
	RouteOriginType_ORIGIN_INCOMPLETE RouteOriginType = 3
)

// Enum value maps for RouteOriginType.
var (
	RouteOriginType_name = map[int32]string{
		0: "ORIGIN_NONE",
		1: "ORIGIN_IGP",
		2: "ORIGIN_EGP",
		3: "ORIGIN_INCOMPLETE",
	}
	RouteOriginType_value = map[string]int32{
		"ORIGIN_NONE":       0,
		"ORIGIN_IGP":        1,
		"ORIGIN_EGP":        2,
		"ORIGIN_INCOMPLETE": 3,
	}
)

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

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

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

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

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

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

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[5].Descriptor()
}

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

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{5}
}

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[6].Descriptor()
}

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

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{6}
}

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
	WatchEventRequest_Table_Filter_EOR         WatchEventRequest_Table_Filter_Type = 3
)

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

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[7].Descriptor()
}

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

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[8].Descriptor()
}

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

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[9].Descriptor()
}

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

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[10].Descriptor()
}

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

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[11].Descriptor()
}

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

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[12].Descriptor()
}

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

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[13].Descriptor()
}

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

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[14].Descriptor()
}

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

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[15].Descriptor()
}

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

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[16].Descriptor()
}

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

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[17].Descriptor()
}

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

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[18].Descriptor()
}

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

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[19].Descriptor()
}

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

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[20].Descriptor()
}

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

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[21].Descriptor()
}

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

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 CommunityCount_Type int32

const (
	CommunityCount_EQ CommunityCount_Type = 0
	CommunityCount_GE CommunityCount_Type = 1
	CommunityCount_LE CommunityCount_Type = 2
)

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

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

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

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

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

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

// Deprecated: Use CommunityCount_Type.Descriptor instead.
func (CommunityCount_Type) EnumDescriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{129, 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[23].Descriptor()
}

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

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{130, 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[24].Descriptor()
}

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

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{131, 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[25].Descriptor()
}

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

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{132, 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[26].Descriptor()
}

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

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{150, 0}
}

type StartBgpRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Global        *Global                `protobuf:"bytes,1,opt,name=global,proto3" json:"global,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StartBgpRequest) Reset() {
	*x = StartBgpRequest{}
	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 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 `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StopBgpRequest) Reset() {
	*x = StopBgpRequest{}
	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 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 `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetBgpRequest) Reset() {
	*x = GetBgpRequest{}
	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 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 `protogen:"open.v1"`
	Global        *Global                `protobuf:"bytes,1,opt,name=global,proto3" json:"global,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetBgpResponse) Reset() {
	*x = GetBgpResponse{}
	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 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   `protogen:"open.v1"`
	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"`
	// Max number of paths to include in a single message. 0 for unlimited.
	BatchSize     uint32 `protobuf:"varint,3,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventRequest) Reset() {
	*x = WatchEventRequest{}
	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 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
}

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

type WatchEventResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Event:
	//
	//	*WatchEventResponse_Peer
	//	*WatchEventResponse_Table
	Event         isWatchEventResponse_Event `protobuf_oneof:"event"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventResponse) Reset() {
	*x = WatchEventResponse{}
	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 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 (x *WatchEventResponse) GetEvent() isWatchEventResponse_Event {
	if x != nil {
		return x.Event
	}
	return nil
}

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

func (x *WatchEventResponse) GetTable() *WatchEventResponse_TableEvent {
	if x != nil {
		if x, ok := x.Event.(*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 `protogen:"open.v1"`
	Peer          *Peer                  `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPeerRequest) Reset() {
	*x = AddPeerRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Interface     string                 `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeletePeerRequest) Reset() {
	*x = DeletePeerRequest{}
	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 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 `protogen:"open.v1"`
	Address          string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	EnableAdvertised bool                   `protobuf:"varint,2,opt,name=enableAdvertised,proto3" json:"enableAdvertised,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *ListPeerRequest) Reset() {
	*x = ListPeerRequest{}
	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 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 `protogen:"open.v1"`
	Peer          *Peer                  `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPeerResponse) Reset() {
	*x = ListPeerResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdatePeerRequest) Reset() {
	*x = UpdatePeerRequest{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *UpdatePeerResponse) Reset() {
	*x = UpdatePeerResponse{}
	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 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              `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResetPeerRequest) Reset() {
	*x = ResetPeerRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Communication string                 `protobuf:"bytes,2,opt,name=communication,proto3" json:"communication,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ShutdownPeerRequest) Reset() {
	*x = ShutdownPeerRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EnablePeerRequest) Reset() {
	*x = EnablePeerRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Communication string                 `protobuf:"bytes,2,opt,name=communication,proto3" json:"communication,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DisablePeerRequest) Reset() {
	*x = DisablePeerRequest{}
	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 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 `protogen:"open.v1"`
	PeerGroup     *PeerGroup             `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPeerGroupRequest) Reset() {
	*x = AddPeerGroupRequest{}
	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 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 `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeletePeerGroupRequest) Reset() {
	*x = DeletePeerGroupRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdatePeerGroupRequest) Reset() {
	*x = UpdatePeerGroupRequest{}
	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 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 `protogen:"open.v1"`
	NeedsSoftResetIn bool                   `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn,proto3" json:"needs_soft_reset_in,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *UpdatePeerGroupResponse) Reset() {
	*x = UpdatePeerGroupResponse{}
	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 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 `protogen:"open.v1"`
	PeerGroupName string                 `protobuf:"bytes,1,opt,name=peer_group_name,json=peerGroupName,proto3" json:"peer_group_name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPeerGroupRequest) Reset() {
	*x = ListPeerGroupRequest{}
	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 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 `protogen:"open.v1"`
	PeerGroup     *PeerGroup             `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPeerGroupResponse) Reset() {
	*x = ListPeerGroupResponse{}
	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 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 `protogen:"open.v1"`
	DynamicNeighbor *DynamicNeighbor       `protobuf:"bytes,1,opt,name=dynamic_neighbor,json=dynamicNeighbor,proto3" json:"dynamic_neighbor,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *AddDynamicNeighborRequest) Reset() {
	*x = AddDynamicNeighborRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteDynamicNeighborRequest) Reset() {
	*x = DeleteDynamicNeighborRequest{}
	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 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 `protogen:"open.v1"`
	PeerGroup     string                 `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListDynamicNeighborRequest) Reset() {
	*x = ListDynamicNeighborRequest{}
	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 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 `protogen:"open.v1"`
	DynamicNeighbor *DynamicNeighbor       `protobuf:"bytes,1,opt,name=dynamic_neighbor,json=dynamicNeighbor,proto3" json:"dynamic_neighbor,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *ListDynamicNeighborResponse) Reset() {
	*x = ListDynamicNeighborResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPathRequest) Reset() {
	*x = AddPathRequest{}
	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 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 `protogen:"open.v1"`
	Uuid          []byte                 `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPathResponse) Reset() {
	*x = AddPathResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeletePathRequest) Reset() {
	*x = DeletePathRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TableLookupPrefix) Reset() {
	*x = TableLookupPrefix{}
	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 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   `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPathRequest) Reset() {
	*x = ListPathRequest{}
	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 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 `protogen:"open.v1"`
	Destination   *Destination           `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPathResponse) Reset() {
	*x = ListPathResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPathStreamRequest) Reset() {
	*x = AddPathStreamRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetTableRequest) Reset() {
	*x = GetTableRequest{}
	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 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 `protogen:"open.v1"`
	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
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *GetTableResponse) Reset() {
	*x = GetTableResponse{}
	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 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 `protogen:"open.v1"`
	Vrf           *Vrf                   `protobuf:"bytes,1,opt,name=vrf,proto3" json:"vrf,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddVrfRequest) Reset() {
	*x = AddVrfRequest{}
	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 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 `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteVrfRequest) Reset() {
	*x = DeleteVrfRequest{}
	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 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 `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListVrfRequest) Reset() {
	*x = ListVrfRequest{}
	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 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 `protogen:"open.v1"`
	Vrf           *Vrf                   `protobuf:"bytes,1,opt,name=vrf,proto3" json:"vrf,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListVrfResponse) Reset() {
	*x = ListVrfResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

func (x *AddPolicyRequest) Reset() {
	*x = AddPolicyRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *DeletePolicyRequest) Reset() {
	*x = DeletePolicyRequest{}
	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 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 `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPolicyRequest) Reset() {
	*x = ListPolicyRequest{}
	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 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 `protogen:"open.v1"`
	Policy        *Policy                `protobuf:"bytes,1,opt,name=policy,proto3" json:"policy,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPolicyResponse) Reset() {
	*x = ListPolicyResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetPoliciesRequest) Reset() {
	*x = SetPoliciesRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddDefinedSetRequest) Reset() {
	*x = AddDefinedSetRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteDefinedSetRequest) Reset() {
	*x = DeleteDefinedSetRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListDefinedSetRequest) Reset() {
	*x = ListDefinedSetRequest{}
	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 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 `protogen:"open.v1"`
	DefinedSet    *DefinedSet            `protobuf:"bytes,1,opt,name=defined_set,json=definedSet,proto3" json:"defined_set,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListDefinedSetResponse) Reset() {
	*x = ListDefinedSetResponse{}
	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 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 `protogen:"open.v1"`
	Statement     *Statement             `protobuf:"bytes,1,opt,name=statement,proto3" json:"statement,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddStatementRequest) Reset() {
	*x = AddStatementRequest{}
	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 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 `protogen:"open.v1"`
	Statement     *Statement             `protobuf:"bytes,1,opt,name=statement,proto3" json:"statement,omitempty"`
	All           bool                   `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteStatementRequest) Reset() {
	*x = DeleteStatementRequest{}
	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 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 `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListStatementRequest) Reset() {
	*x = ListStatementRequest{}
	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 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 `protogen:"open.v1"`
	Statement     *Statement             `protobuf:"bytes,1,opt,name=statement,proto3" json:"statement,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListStatementResponse) Reset() {
	*x = ListStatementResponse{}
	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 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 `protogen:"open.v1"`
	Assignment    *PolicyAssignment      `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPolicyAssignmentRequest) Reset() {
	*x = AddPolicyAssignmentRequest{}
	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 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 `protogen:"open.v1"`
	Assignment    *PolicyAssignment      `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
	All           bool                   `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeletePolicyAssignmentRequest) Reset() {
	*x = DeletePolicyAssignmentRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPolicyAssignmentRequest) Reset() {
	*x = ListPolicyAssignmentRequest{}
	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 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 `protogen:"open.v1"`
	Assignment    *PolicyAssignment      `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListPolicyAssignmentResponse) Reset() {
	*x = ListPolicyAssignmentResponse{}
	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 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 `protogen:"open.v1"`
	Assignment    *PolicyAssignment      `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetPolicyAssignmentRequest) Reset() {
	*x = SetPolicyAssignmentRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddRpkiRequest) Reset() {
	*x = AddRpkiRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteRpkiRequest) Reset() {
	*x = DeleteRpkiRequest{}
	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 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 `protogen:"open.v1"`
	Family        *Family                `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRpkiRequest) Reset() {
	*x = ListRpkiRequest{}
	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 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 `protogen:"open.v1"`
	Server        *Rpki                  `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRpkiResponse) Reset() {
	*x = ListRpkiResponse{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EnableRpkiRequest) Reset() {
	*x = EnableRpkiRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DisableRpkiRequest) Reset() {
	*x = DisableRpkiRequest{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResetRpkiRequest) Reset() {
	*x = ResetRpkiRequest{}
	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 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 `protogen:"open.v1"`
	Family        *Family                `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRpkiTableRequest) Reset() {
	*x = ListRpkiTableRequest{}
	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 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 `protogen:"open.v1"`
	Roa           *Roa                   `protobuf:"bytes,1,opt,name=roa,proto3" json:"roa,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListRpkiTableResponse) Reset() {
	*x = ListRpkiTableResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *EnableZebraRequest) Reset() {
	*x = EnableZebraRequest{}
	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 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    `protogen:"open.v1"`
	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"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *EnableMrtRequest) Reset() {
	*x = EnableMrtRequest{}
	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 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 `protogen:"open.v1"`
	Filename      string                 `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DisableMrtRequest) Reset() {
	*x = DisableMrtRequest{}
	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 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         `protogen:"open.v1"`
	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"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *AddBmpRequest) Reset() {
	*x = AddBmpRequest{}
	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 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteBmpRequest) Reset() {
	*x = DeleteBmpRequest{}
	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 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 `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListBmpRequest) Reset() {
	*x = ListBmpRequest{}
	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 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      `protogen:"open.v1"`
	Station       *ListBmpResponse_BmpStation `protobuf:"bytes,1,opt,name=station,proto3" json:"station,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListBmpResponse) Reset() {
	*x = ListBmpResponse{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Family) Reset() {
	*x = Family{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Validation) Reset() {
	*x = Validation{}
	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 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 `protogen:"open.v1"`
	// 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"`
	SendMaxFiltered    bool                   `protobuf:"varint,22,opt,name=send_max_filtered,json=sendMaxFiltered,proto3" json:"send_max_filtered,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *Path) Reset() {
	*x = Path{}
	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 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
}

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

type Destination struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Prefix        string                 `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
	Paths         []*Path                `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Destination) Reset() {
	*x = Destination{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Peer) Reset() {
	*x = Peer{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *PeerGroup) Reset() {
	*x = PeerGroup{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DynamicNeighbor) Reset() {
	*x = DynamicNeighbor{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ApplyPolicy) Reset() {
	*x = ApplyPolicy{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *PrefixLimit) Reset() {
	*x = PrefixLimit{}
	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 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 `protogen:"open.v1"`
	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"`
	AllowAspathLoopLocal bool                   `protobuf:"varint,17,opt,name=allow_aspath_loop_local,json=allowAspathLoopLocal,proto3" json:"allow_aspath_loop_local,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *PeerConf) Reset() {
	*x = PeerConf{}
	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 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
}

func (x *PeerConf) GetAllowAspathLoopLocal() bool {
	if x != nil {
		return x.AllowAspathLoopLocal
	}
	return false
}

type PeerGroupConf struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	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"`
	SendSoftwareVersion bool                   `protobuf:"varint,10,opt,name=send_software_version,json=sendSoftwareVersion,proto3" json:"send_software_version,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *PeerGroupConf) Reset() {
	*x = PeerGroupConf{}
	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 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
}

func (x *PeerGroupConf) GetSendSoftwareVersion() bool {
	if x != nil {
		return x.SendSoftwareVersion
	}
	return false
}

type PeerGroupState struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	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"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *PeerGroupState) Reset() {
	*x = PeerGroupState{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TtlSecurity) Reset() {
	*x = TtlSecurity{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EbgpMultihop) Reset() {
	*x = EbgpMultihop{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

func (x *RouteReflector) Reset() {
	*x = RouteReflector{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PeerState) Reset() {
	*x = PeerState{}
	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 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 `protogen:"open.v1"`
	Received      *Message               `protobuf:"bytes,1,opt,name=received,proto3" json:"received,omitempty"`
	Sent          *Message               `protobuf:"bytes,2,opt,name=sent,proto3" json:"sent,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Messages) Reset() {
	*x = Messages{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *Message) Reset() {
	*x = Message{}
	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 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 `protogen:"open.v1"`
	Input         uint32                 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
	Output        uint32                 `protobuf:"varint,2,opt,name=output,proto3" json:"output,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Queues) Reset() {
	*x = Queues{}
	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 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 `protogen:"open.v1"`
	Config        *TimersConfig          `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *TimersState           `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Timers) Reset() {
	*x = Timers{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

func (x *TimersConfig) Reset() {
	*x = TimersConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

func (x *TimersState) Reset() {
	*x = TimersState{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Transport) Reset() {
	*x = Transport{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *RouteServer) Reset() {
	*x = RouteServer{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *GracefulRestart) Reset() {
	*x = GracefulRestart{}
	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 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 `protogen:"open.v1"`
	Enabled       bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MpGracefulRestartConfig) Reset() {
	*x = MpGracefulRestartConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *MpGracefulRestartState) Reset() {
	*x = MpGracefulRestartState{}
	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 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   `protogen:"open.v1"`
	Config        *MpGracefulRestartConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *MpGracefulRestartState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MpGracefulRestart) Reset() {
	*x = MpGracefulRestart{}
	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 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 `protogen:"open.v1"`
	Family        *Family                `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	Enabled       bool                   `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AfiSafiConfig) Reset() {
	*x = AfiSafiConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AfiSafiState) Reset() {
	*x = AfiSafiState{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

func (x *RouteSelectionOptionsConfig) Reset() {
	*x = RouteSelectionOptionsConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

func (x *RouteSelectionOptionsState) Reset() {
	*x = RouteSelectionOptionsState{}
	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 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       `protogen:"open.v1"`
	Config        *RouteSelectionOptionsConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *RouteSelectionOptionsState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteSelectionOptions) Reset() {
	*x = RouteSelectionOptions{}
	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 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 `protogen:"open.v1"`
	Enabled       bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UseMultiplePathsConfig) Reset() {
	*x = UseMultiplePathsConfig{}
	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 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 `protogen:"open.v1"`
	Enabled       bool                   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UseMultiplePathsState) Reset() {
	*x = UseMultiplePathsState{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *EbgpConfig) Reset() {
	*x = EbgpConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *EbgpState) Reset() {
	*x = EbgpState{}
	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 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 `protogen:"open.v1"`
	Config        *EbgpConfig            `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *EbgpState             `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Ebgp) Reset() {
	*x = Ebgp{}
	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 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 `protogen:"open.v1"`
	MaximumPaths  uint32                 `protobuf:"varint,1,opt,name=maximum_paths,json=maximumPaths,proto3" json:"maximum_paths,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IbgpConfig) Reset() {
	*x = IbgpConfig{}
	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 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 `protogen:"open.v1"`
	MaximumPaths  uint32                 `protobuf:"varint,1,opt,name=maximum_paths,json=maximumPaths,proto3" json:"maximum_paths,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IbgpState) Reset() {
	*x = IbgpState{}
	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 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 `protogen:"open.v1"`
	Config        *IbgpConfig            `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *IbgpState             `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Ibgp) Reset() {
	*x = Ibgp{}
	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 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  `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UseMultiplePaths) Reset() {
	*x = UseMultiplePaths{}
	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 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 `protogen:"open.v1"`
	DeferralTime  uint32                 `protobuf:"varint,1,opt,name=deferral_time,json=deferralTime,proto3" json:"deferral_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteTargetMembershipConfig) Reset() {
	*x = RouteTargetMembershipConfig{}
	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 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 `protogen:"open.v1"`
	DeferralTime  uint32                 `protobuf:"varint,1,opt,name=deferral_time,json=deferralTime,proto3" json:"deferral_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteTargetMembershipState) Reset() {
	*x = RouteTargetMembershipState{}
	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 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       `protogen:"open.v1"`
	Config        *RouteTargetMembershipConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *RouteTargetMembershipState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteTargetMembership) Reset() {
	*x = RouteTargetMembership{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LongLivedGracefulRestartConfig) Reset() {
	*x = LongLivedGracefulRestartConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

func (x *LongLivedGracefulRestartState) Reset() {
	*x = LongLivedGracefulRestartState{}
	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 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          `protogen:"open.v1"`
	Config        *LongLivedGracefulRestartConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *LongLivedGracefulRestartState  `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LongLivedGracefulRestart) Reset() {
	*x = LongLivedGracefulRestart{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

func (x *AfiSafi) Reset() {
	*x = AfiSafi{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPathsConfig) Reset() {
	*x = AddPathsConfig{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPathsState) Reset() {
	*x = AddPathsState{}
	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 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 `protogen:"open.v1"`
	Config        *AddPathsConfig        `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	State         *AddPathsState         `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddPaths) Reset() {
	*x = AddPaths{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Prefix) Reset() {
	*x = Prefix{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DefinedSet) Reset() {
	*x = DefinedSet{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MatchSet) Reset() {
	*x = MatchSet{}
	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 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AsPathLength) Reset() {
	*x = AsPathLength{}
	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 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 CommunityCount struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          CommunityCount_Type    `protobuf:"varint,1,opt,name=type,proto3,enum=apipb.CommunityCount_Type" json:"type,omitempty"`
	Count         uint32                 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CommunityCount) Reset() {
	*x = CommunityCount{}
	mi := &file_gobgp_proto_msgTypes[129]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CommunityCount) ProtoMessage() {}

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

// Deprecated: Use CommunityCount.ProtoReflect.Descriptor instead.
func (*CommunityCount) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{129}
}

func (x *CommunityCount) GetType() CommunityCount_Type {
	if x != nil {
		return x.Type
	}
	return CommunityCount_EQ
}

func (x *CommunityCount) GetCount() uint32 {
	if x != nil {
		return x.Count
	}
	return 0
}

type Conditions struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	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"`
	CommunityCount    *CommunityCount        `protobuf:"bytes,12,opt,name=community_count,json=communityCount,proto3" json:"community_count,omitempty"`
	Origin            RouteOriginType        `protobuf:"varint,13,opt,name=origin,proto3,enum=apipb.RouteOriginType" json:"origin,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *Conditions) Reset() {
	*x = Conditions{}
	mi := &file_gobgp_proto_msgTypes[130]
	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[130]
	if 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{130}
}

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
}

func (x *Conditions) GetCommunityCount() *CommunityCount {
	if x != nil {
		return x.CommunityCount
	}
	return nil
}

func (x *Conditions) GetOrigin() RouteOriginType {
	if x != nil {
		return x.Origin
	}
	return RouteOriginType_ORIGIN_NONE
}

type CommunityAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CommunityAction) Reset() {
	*x = CommunityAction{}
	mi := &file_gobgp_proto_msgTypes[131]
	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[131]
	if 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{131}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MedAction) Reset() {
	*x = MedAction{}
	mi := &file_gobgp_proto_msgTypes[132]
	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[132]
	if 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{132}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AsPrependAction) Reset() {
	*x = AsPrependAction{}
	mi := &file_gobgp_proto_msgTypes[133]
	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[133]
	if 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{133}
}

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 `protogen:"open.v1"`
	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"`
	PeerAddress   bool                   `protobuf:"varint,4,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NexthopAction) Reset() {
	*x = NexthopAction{}
	mi := &file_gobgp_proto_msgTypes[134]
	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[134]
	if 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{134}
}

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
}

func (x *NexthopAction) GetPeerAddress() bool {
	if x != nil {
		return x.PeerAddress
	}
	return false
}

type LocalPrefAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Value         uint32                 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LocalPrefAction) Reset() {
	*x = LocalPrefAction{}
	mi := &file_gobgp_proto_msgTypes[135]
	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[135]
	if 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{135}
}

func (x *LocalPrefAction) GetValue() uint32 {
	if x != nil {
		return x.Value
	}
	return 0
}

type OriginAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Origin        RouteOriginType        `protobuf:"varint,1,opt,name=origin,proto3,enum=apipb.RouteOriginType" json:"origin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OriginAction) Reset() {
	*x = OriginAction{}
	mi := &file_gobgp_proto_msgTypes[136]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*OriginAction) ProtoMessage() {}

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

// Deprecated: Use OriginAction.ProtoReflect.Descriptor instead.
func (*OriginAction) Descriptor() ([]byte, []int) {
	return file_gobgp_proto_rawDescGZIP(), []int{136}
}

func (x *OriginAction) GetOrigin() RouteOriginType {
	if x != nil {
		return x.Origin
	}
	return RouteOriginType_ORIGIN_NONE
}

type Actions struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	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"`
	OriginAction   *OriginAction          `protobuf:"bytes,9,opt,name=origin_action,json=originAction,proto3" json:"origin_action,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *Actions) Reset() {
	*x = Actions{}
	mi := &file_gobgp_proto_msgTypes[137]
	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[137]
	if 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{137}
}

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
}

func (x *Actions) GetOriginAction() *OriginAction {
	if x != nil {
		return x.OriginAction
	}
	return nil
}

type Statement struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Statement) Reset() {
	*x = Statement{}
	mi := &file_gobgp_proto_msgTypes[138]
	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[138]
	if 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{138}
}

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 `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Statements    []*Statement           `protobuf:"bytes,2,rep,name=statements,proto3" json:"statements,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Policy) Reset() {
	*x = Policy{}
	mi := &file_gobgp_proto_msgTypes[139]
	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[139]
	if 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{139}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PolicyAssignment) Reset() {
	*x = PolicyAssignment{}
	mi := &file_gobgp_proto_msgTypes[140]
	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[140]
	if 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{140}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RoutingPolicy) Reset() {
	*x = RoutingPolicy{}
	mi := &file_gobgp_proto_msgTypes[141]
	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[141]
	if 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{141}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Roa) Reset() {
	*x = Roa{}
	mi := &file_gobgp_proto_msgTypes[142]
	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[142]
	if 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{142}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Vrf) Reset() {
	*x = Vrf{}
	mi := &file_gobgp_proto_msgTypes[143]
	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[143]
	if 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{143}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *DefaultRouteDistance) Reset() {
	*x = DefaultRouteDistance{}
	mi := &file_gobgp_proto_msgTypes[144]
	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[144]
	if 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{144}
}

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       `protogen:"open.v1"`
	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"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *Global) Reset() {
	*x = Global{}
	mi := &file_gobgp_proto_msgTypes[145]
	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[145]
	if 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{145}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Confederation) Reset() {
	*x = Confederation{}
	mi := &file_gobgp_proto_msgTypes[146]
	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[146]
	if 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{146}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RPKIConf) Reset() {
	*x = RPKIConf{}
	mi := &file_gobgp_proto_msgTypes[147]
	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[147]
	if 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{147}
}

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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RPKIState) Reset() {
	*x = RPKIState{}
	mi := &file_gobgp_proto_msgTypes[148]
	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[148]
	if 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{148}
}

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 `protogen:"open.v1"`
	Conf          *RPKIConf              `protobuf:"bytes,1,opt,name=conf,proto3" json:"conf,omitempty"`
	State         *RPKIState             `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Rpki) Reset() {
	*x = Rpki{}
	mi := &file_gobgp_proto_msgTypes[149]
	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[149]
	if 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{149}
}

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   `protogen:"open.v1"`
	Level         SetLogLevelRequest_Level `protobuf:"varint,1,opt,name=level,proto3,enum=apipb.SetLogLevelRequest_Level" json:"level,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetLogLevelRequest) Reset() {
	*x = SetLogLevelRequest{}
	mi := &file_gobgp_proto_msgTypes[150]
	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[150]
	if 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{150}
}

func (x *SetLogLevelRequest) GetLevel() SetLogLevelRequest_Level {
	if x != nil {
		return x.Level
	}
	return SetLogLevelRequest_PANIC
}

type WatchEventRequest_Peer struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventRequest_Peer) Reset() {
	*x = WatchEventRequest_Peer{}
	mi := &file_gobgp_proto_msgTypes[151]
	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[151]
	if 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            `protogen:"open.v1"`
	Filters       []*WatchEventRequest_Table_Filter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventRequest_Table) Reset() {
	*x = WatchEventRequest_Table{}
	mi := &file_gobgp_proto_msgTypes[152]
	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[152]
	if 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              `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventRequest_Table_Filter) Reset() {
	*x = WatchEventRequest_Table_Filter{}
	mi := &file_gobgp_proto_msgTypes[153]
	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[153]
	if 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            `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventResponse_PeerEvent) Reset() {
	*x = WatchEventResponse_PeerEvent{}
	mi := &file_gobgp_proto_msgTypes[154]
	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[154]
	if 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 `protogen:"open.v1"`
	Paths         []*Path                `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *WatchEventResponse_TableEvent) Reset() {
	*x = WatchEventResponse_TableEvent{}
	mi := &file_gobgp_proto_msgTypes[155]
	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[155]
	if 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            `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListBmpResponse_BmpStation) Reset() {
	*x = ListBmpResponse_BmpStation{}
	mi := &file_gobgp_proto_msgTypes[156]
	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[156]
	if 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 `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListBmpResponse_BmpStation_Conf) Reset() {
	*x = ListBmpResponse_BmpStation_Conf{}
	mi := &file_gobgp_proto_msgTypes[157]
	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[157]
	if 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 `protogen:"open.v1"`
	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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListBmpResponse_BmpStation_State) Reset() {
	*x = ListBmpResponse_BmpStation_State{}
	mi := &file_gobgp_proto_msgTypes[158]
	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[158]
	if 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 = string([]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, 0xc6, 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, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a,
	0x65, 0x1a, 0x06, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x1a, 0xa0, 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, 0xd5, 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, 0x35, 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, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x4f, 0x52, 0x10, 0x03, 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, 0x85, 0x06, 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, 0x12, 0x2a, 0x0a, 0x11,
	0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65,
	0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x61, 0x78,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 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, 0xa3, 0x05, 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, 0x12, 0x35, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x73, 0x70, 0x61,
	0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x11, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x73, 0x70, 0x61, 0x74, 0x68,
	0x4c, 0x6f, 0x6f, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0xa1, 0x03, 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, 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, 0x0a, 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, 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, 0x76, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
	0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43,
	0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 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, 0x9f,
	0x06, 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, 0x12, 0x3e, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e,
	0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
	0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74,
	0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52,
	0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06,
	0x6f, 0x72, 0x69, 0x67, 0x69, 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, 0x7e,
	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, 0x12, 0x21, 0x0a, 0x0c, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x3e, 0x0a, 0x0c, 0x4f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0xf0, 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,
	0x12, 0x38, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e,
	0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72,
	0x69, 0x67, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x59, 0x0a, 0x0f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x4e, 0x4f,
	0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x49,
	0x47, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x45,
	0x47, 0x50, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x49,
	0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 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 []byte
)

func file_gobgp_proto_rawDescGZIP() []byte {
	file_gobgp_proto_rawDescOnce.Do(func() {
		file_gobgp_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_gobgp_proto_rawDesc), len(file_gobgp_proto_rawDesc)))
	})
	return file_gobgp_proto_rawDescData
}

var file_gobgp_proto_enumTypes = make([]protoimpl.EnumInfo, 27)
var file_gobgp_proto_msgTypes = make([]protoimpl.MessageInfo, 159)
var file_gobgp_proto_goTypes = []any{
	(TableType)(0),                           // 0: apipb.TableType
	(PeerType)(0),                            // 1: apipb.PeerType
	(RemovePrivate)(0),                       // 2: apipb.RemovePrivate
	(DefinedType)(0),                         // 3: apipb.DefinedType
	(RouteOriginType)(0),                     // 4: apipb.RouteOriginType
	(RouteAction)(0),                         // 5: apipb.RouteAction
	(PolicyDirection)(0),                     // 6: apipb.PolicyDirection
	(WatchEventRequest_Table_Filter_Type)(0), // 7: apipb.WatchEventRequest.Table.Filter.Type
	(WatchEventResponse_PeerEvent_Type)(0),   // 8: apipb.WatchEventResponse.PeerEvent.Type
	(ResetPeerRequest_SoftResetDirection)(0), // 9: apipb.ResetPeerRequest.SoftResetDirection
	(TableLookupPrefix_Type)(0),              // 10: apipb.TableLookupPrefix.Type
	(ListPathRequest_SortType)(0),            // 11: apipb.ListPathRequest.SortType
	(EnableMrtRequest_DumpType)(0),           // 12: apipb.EnableMrtRequest.DumpType
	(AddBmpRequest_MonitoringPolicy)(0),      // 13: apipb.AddBmpRequest.MonitoringPolicy
	(Family_Afi)(0),                          // 14: apipb.Family.Afi
	(Family_Safi)(0),                         // 15: apipb.Family.Safi
	(Validation_State)(0),                    // 16: apipb.Validation.State
	(Validation_Reason)(0),                   // 17: apipb.Validation.Reason
	(PeerState_SessionState)(0),              // 18: apipb.PeerState.SessionState
	(PeerState_AdminState)(0),                // 19: apipb.PeerState.AdminState
	(MatchSet_Type)(0),                       // 20: apipb.MatchSet.Type
	(AsPathLength_Type)(0),                   // 21: apipb.AsPathLength.Type
	(CommunityCount_Type)(0),                 // 22: apipb.CommunityCount.Type
	(Conditions_RouteType)(0),                // 23: apipb.Conditions.RouteType
	(CommunityAction_Type)(0),                // 24: apipb.CommunityAction.Type
	(MedAction_Type)(0),                      // 25: apipb.MedAction.Type
	(SetLogLevelRequest_Level)(0),            // 26: apipb.SetLogLevelRequest.Level
	(*StartBgpRequest)(nil),                  // 27: apipb.StartBgpRequest
	(*StopBgpRequest)(nil),                   // 28: apipb.StopBgpRequest
	(*GetBgpRequest)(nil),                    // 29: apipb.GetBgpRequest
	(*GetBgpResponse)(nil),                   // 30: apipb.GetBgpResponse
	(*WatchEventRequest)(nil),                // 31: apipb.WatchEventRequest
	(*WatchEventResponse)(nil),               // 32: apipb.WatchEventResponse
	(*AddPeerRequest)(nil),                   // 33: apipb.AddPeerRequest
	(*DeletePeerRequest)(nil),                // 34: apipb.DeletePeerRequest
	(*ListPeerRequest)(nil),                  // 35: apipb.ListPeerRequest
	(*ListPeerResponse)(nil),                 // 36: apipb.ListPeerResponse
	(*UpdatePeerRequest)(nil),                // 37: apipb.UpdatePeerRequest
	(*UpdatePeerResponse)(nil),               // 38: apipb.UpdatePeerResponse
	(*ResetPeerRequest)(nil),                 // 39: apipb.ResetPeerRequest
	(*ShutdownPeerRequest)(nil),              // 40: apipb.ShutdownPeerRequest
	(*EnablePeerRequest)(nil),                // 41: apipb.EnablePeerRequest
	(*DisablePeerRequest)(nil),               // 42: apipb.DisablePeerRequest
	(*AddPeerGroupRequest)(nil),              // 43: apipb.AddPeerGroupRequest
	(*DeletePeerGroupRequest)(nil),           // 44: apipb.DeletePeerGroupRequest
	(*UpdatePeerGroupRequest)(nil),           // 45: apipb.UpdatePeerGroupRequest
	(*UpdatePeerGroupResponse)(nil),          // 46: apipb.UpdatePeerGroupResponse
	(*ListPeerGroupRequest)(nil),             // 47: apipb.ListPeerGroupRequest
	(*ListPeerGroupResponse)(nil),            // 48: apipb.ListPeerGroupResponse
	(*AddDynamicNeighborRequest)(nil),        // 49: apipb.AddDynamicNeighborRequest
	(*DeleteDynamicNeighborRequest)(nil),     // 50: apipb.DeleteDynamicNeighborRequest
	(*ListDynamicNeighborRequest)(nil),       // 51: apipb.ListDynamicNeighborRequest
	(*ListDynamicNeighborResponse)(nil),      // 52: apipb.ListDynamicNeighborResponse
	(*AddPathRequest)(nil),                   // 53: apipb.AddPathRequest
	(*AddPathResponse)(nil),                  // 54: apipb.AddPathResponse
	(*DeletePathRequest)(nil),                // 55: apipb.DeletePathRequest
	(*TableLookupPrefix)(nil),                // 56: apipb.TableLookupPrefix
	(*ListPathRequest)(nil),                  // 57: apipb.ListPathRequest
	(*ListPathResponse)(nil),                 // 58: apipb.ListPathResponse
	(*AddPathStreamRequest)(nil),             // 59: apipb.AddPathStreamRequest
	(*GetTableRequest)(nil),                  // 60: apipb.GetTableRequest
	(*GetTableResponse)(nil),                 // 61: apipb.GetTableResponse
	(*AddVrfRequest)(nil),                    // 62: apipb.AddVrfRequest
	(*DeleteVrfRequest)(nil),                 // 63: apipb.DeleteVrfRequest
	(*ListVrfRequest)(nil),                   // 64: apipb.ListVrfRequest
	(*ListVrfResponse)(nil),                  // 65: apipb.ListVrfResponse
	(*AddPolicyRequest)(nil),                 // 66: apipb.AddPolicyRequest
	(*DeletePolicyRequest)(nil),              // 67: apipb.DeletePolicyRequest
	(*ListPolicyRequest)(nil),                // 68: apipb.ListPolicyRequest
	(*ListPolicyResponse)(nil),               // 69: apipb.ListPolicyResponse
	(*SetPoliciesRequest)(nil),               // 70: apipb.SetPoliciesRequest
	(*AddDefinedSetRequest)(nil),             // 71: apipb.AddDefinedSetRequest
	(*DeleteDefinedSetRequest)(nil),          // 72: apipb.DeleteDefinedSetRequest
	(*ListDefinedSetRequest)(nil),            // 73: apipb.ListDefinedSetRequest
	(*ListDefinedSetResponse)(nil),           // 74: apipb.ListDefinedSetResponse
	(*AddStatementRequest)(nil),              // 75: apipb.AddStatementRequest
	(*DeleteStatementRequest)(nil),           // 76: apipb.DeleteStatementRequest
	(*ListStatementRequest)(nil),             // 77: apipb.ListStatementRequest
	(*ListStatementResponse)(nil),            // 78: apipb.ListStatementResponse
	(*AddPolicyAssignmentRequest)(nil),       // 79: apipb.AddPolicyAssignmentRequest
	(*DeletePolicyAssignmentRequest)(nil),    // 80: apipb.DeletePolicyAssignmentRequest
	(*ListPolicyAssignmentRequest)(nil),      // 81: apipb.ListPolicyAssignmentRequest
	(*ListPolicyAssignmentResponse)(nil),     // 82: apipb.ListPolicyAssignmentResponse
	(*SetPolicyAssignmentRequest)(nil),       // 83: apipb.SetPolicyAssignmentRequest
	(*AddRpkiRequest)(nil),                   // 84: apipb.AddRpkiRequest
	(*DeleteRpkiRequest)(nil),                // 85: apipb.DeleteRpkiRequest
	(*ListRpkiRequest)(nil),                  // 86: apipb.ListRpkiRequest
	(*ListRpkiResponse)(nil),                 // 87: apipb.ListRpkiResponse
	(*EnableRpkiRequest)(nil),                // 88: apipb.EnableRpkiRequest
	(*DisableRpkiRequest)(nil),               // 89: apipb.DisableRpkiRequest
	(*ResetRpkiRequest)(nil),                 // 90: apipb.ResetRpkiRequest
	(*ListRpkiTableRequest)(nil),             // 91: apipb.ListRpkiTableRequest
	(*ListRpkiTableResponse)(nil),            // 92: apipb.ListRpkiTableResponse
	(*EnableZebraRequest)(nil),               // 93: apipb.EnableZebraRequest
	(*EnableMrtRequest)(nil),                 // 94: apipb.EnableMrtRequest
	(*DisableMrtRequest)(nil),                // 95: apipb.DisableMrtRequest
	(*AddBmpRequest)(nil),                    // 96: apipb.AddBmpRequest
	(*DeleteBmpRequest)(nil),                 // 97: apipb.DeleteBmpRequest
	(*ListBmpRequest)(nil),                   // 98: apipb.ListBmpRequest
	(*ListBmpResponse)(nil),                  // 99: apipb.ListBmpResponse
	(*Family)(nil),                           // 100: apipb.Family
	(*Validation)(nil),                       // 101: apipb.Validation
	(*Path)(nil),                             // 102: apipb.Path
	(*Destination)(nil),                      // 103: apipb.Destination
	(*Peer)(nil),                             // 104: apipb.Peer
	(*PeerGroup)(nil),                        // 105: apipb.PeerGroup
	(*DynamicNeighbor)(nil),                  // 106: apipb.DynamicNeighbor
	(*ApplyPolicy)(nil),                      // 107: apipb.ApplyPolicy
	(*PrefixLimit)(nil),                      // 108: apipb.PrefixLimit
	(*PeerConf)(nil),                         // 109: apipb.PeerConf
	(*PeerGroupConf)(nil),                    // 110: apipb.PeerGroupConf
	(*PeerGroupState)(nil),                   // 111: apipb.PeerGroupState
	(*TtlSecurity)(nil),                      // 112: apipb.TtlSecurity
	(*EbgpMultihop)(nil),                     // 113: apipb.EbgpMultihop
	(*RouteReflector)(nil),                   // 114: apipb.RouteReflector
	(*PeerState)(nil),                        // 115: apipb.PeerState
	(*Messages)(nil),                         // 116: apipb.Messages
	(*Message)(nil),                          // 117: apipb.Message
	(*Queues)(nil),                           // 118: apipb.Queues
	(*Timers)(nil),                           // 119: apipb.Timers
	(*TimersConfig)(nil),                     // 120: apipb.TimersConfig
	(*TimersState)(nil),                      // 121: apipb.TimersState
	(*Transport)(nil),                        // 122: apipb.Transport
	(*RouteServer)(nil),                      // 123: apipb.RouteServer
	(*GracefulRestart)(nil),                  // 124: apipb.GracefulRestart
	(*MpGracefulRestartConfig)(nil),          // 125: apipb.MpGracefulRestartConfig
	(*MpGracefulRestartState)(nil),           // 126: apipb.MpGracefulRestartState
	(*MpGracefulRestart)(nil),                // 127: apipb.MpGracefulRestart
	(*AfiSafiConfig)(nil),                    // 128: apipb.AfiSafiConfig
	(*AfiSafiState)(nil),                     // 129: apipb.AfiSafiState
	(*RouteSelectionOptionsConfig)(nil),      // 130: apipb.RouteSelectionOptionsConfig
	(*RouteSelectionOptionsState)(nil),       // 131: apipb.RouteSelectionOptionsState
	(*RouteSelectionOptions)(nil),            // 132: apipb.RouteSelectionOptions
	(*UseMultiplePathsConfig)(nil),           // 133: apipb.UseMultiplePathsConfig
	(*UseMultiplePathsState)(nil),            // 134: apipb.UseMultiplePathsState
	(*EbgpConfig)(nil),                       // 135: apipb.EbgpConfig
	(*EbgpState)(nil),                        // 136: apipb.EbgpState
	(*Ebgp)(nil),                             // 137: apipb.Ebgp
	(*IbgpConfig)(nil),                       // 138: apipb.IbgpConfig
	(*IbgpState)(nil),                        // 139: apipb.IbgpState
	(*Ibgp)(nil),                             // 140: apipb.Ibgp
	(*UseMultiplePaths)(nil),                 // 141: apipb.UseMultiplePaths
	(*RouteTargetMembershipConfig)(nil),      // 142: apipb.RouteTargetMembershipConfig
	(*RouteTargetMembershipState)(nil),       // 143: apipb.RouteTargetMembershipState
	(*RouteTargetMembership)(nil),            // 144: apipb.RouteTargetMembership
	(*LongLivedGracefulRestartConfig)(nil),   // 145: apipb.LongLivedGracefulRestartConfig
	(*LongLivedGracefulRestartState)(nil),    // 146: apipb.LongLivedGracefulRestartState
	(*LongLivedGracefulRestart)(nil),         // 147: apipb.LongLivedGracefulRestart
	(*AfiSafi)(nil),                          // 148: apipb.AfiSafi
	(*AddPathsConfig)(nil),                   // 149: apipb.AddPathsConfig
	(*AddPathsState)(nil),                    // 150: apipb.AddPathsState
	(*AddPaths)(nil),                         // 151: apipb.AddPaths
	(*Prefix)(nil),                           // 152: apipb.Prefix
	(*DefinedSet)(nil),                       // 153: apipb.DefinedSet
	(*MatchSet)(nil),                         // 154: apipb.MatchSet
	(*AsPathLength)(nil),                     // 155: apipb.AsPathLength
	(*CommunityCount)(nil),                   // 156: apipb.CommunityCount
	(*Conditions)(nil),                       // 157: apipb.Conditions
	(*CommunityAction)(nil),                  // 158: apipb.CommunityAction
	(*MedAction)(nil),                        // 159: apipb.MedAction
	(*AsPrependAction)(nil),                  // 160: apipb.AsPrependAction
	(*NexthopAction)(nil),                    // 161: apipb.NexthopAction
	(*LocalPrefAction)(nil),                  // 162: apipb.LocalPrefAction
	(*OriginAction)(nil),                     // 163: apipb.OriginAction
	(*Actions)(nil),                          // 164: apipb.Actions
	(*Statement)(nil),                        // 165: apipb.Statement
	(*Policy)(nil),                           // 166: apipb.Policy
	(*PolicyAssignment)(nil),                 // 167: apipb.PolicyAssignment
	(*RoutingPolicy)(nil),                    // 168: apipb.RoutingPolicy
	(*Roa)(nil),                              // 169: apipb.Roa
	(*Vrf)(nil),                              // 170: apipb.Vrf
	(*DefaultRouteDistance)(nil),             // 171: apipb.DefaultRouteDistance
	(*Global)(nil),                           // 172: apipb.Global
	(*Confederation)(nil),                    // 173: apipb.Confederation
	(*RPKIConf)(nil),                         // 174: apipb.RPKIConf
	(*RPKIState)(nil),                        // 175: apipb.RPKIState
	(*Rpki)(nil),                             // 176: apipb.Rpki
	(*SetLogLevelRequest)(nil),               // 177: apipb.SetLogLevelRequest
	(*WatchEventRequest_Peer)(nil),           // 178: apipb.WatchEventRequest.Peer
	(*WatchEventRequest_Table)(nil),          // 179: apipb.WatchEventRequest.Table
	(*WatchEventRequest_Table_Filter)(nil),   // 180: apipb.WatchEventRequest.Table.Filter
	(*WatchEventResponse_PeerEvent)(nil),     // 181: apipb.WatchEventResponse.PeerEvent
	(*WatchEventResponse_TableEvent)(nil),    // 182: apipb.WatchEventResponse.TableEvent
	(*ListBmpResponse_BmpStation)(nil),       // 183: apipb.ListBmpResponse.BmpStation
	(*ListBmpResponse_BmpStation_Conf)(nil),  // 184: apipb.ListBmpResponse.BmpStation.Conf
	(*ListBmpResponse_BmpStation_State)(nil), // 185: apipb.ListBmpResponse.BmpStation.State
	(*anypb.Any)(nil),                        // 186: google.protobuf.Any
	(*timestamppb.Timestamp)(nil),            // 187: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),                    // 188: google.protobuf.Empty
}
var file_gobgp_proto_depIdxs = []int32{
	172, // 0: apipb.StartBgpRequest.global:type_name -> apipb.Global
	172, // 1: apipb.GetBgpResponse.global:type_name -> apipb.Global
	178, // 2: apipb.WatchEventRequest.peer:type_name -> apipb.WatchEventRequest.Peer
	179, // 3: apipb.WatchEventRequest.table:type_name -> apipb.WatchEventRequest.Table
	181, // 4: apipb.WatchEventResponse.peer:type_name -> apipb.WatchEventResponse.PeerEvent
	182, // 5: apipb.WatchEventResponse.table:type_name -> apipb.WatchEventResponse.TableEvent
	104, // 6: apipb.AddPeerRequest.peer:type_name -> apipb.Peer
	104, // 7: apipb.ListPeerResponse.peer:type_name -> apipb.Peer
	104, // 8: apipb.UpdatePeerRequest.peer:type_name -> apipb.Peer
	9,   // 9: apipb.ResetPeerRequest.direction:type_name -> apipb.ResetPeerRequest.SoftResetDirection
	105, // 10: apipb.AddPeerGroupRequest.peer_group:type_name -> apipb.PeerGroup
	105, // 11: apipb.UpdatePeerGroupRequest.peer_group:type_name -> apipb.PeerGroup
	105, // 12: apipb.ListPeerGroupResponse.peer_group:type_name -> apipb.PeerGroup
	106, // 13: apipb.AddDynamicNeighborRequest.dynamic_neighbor:type_name -> apipb.DynamicNeighbor
	106, // 14: apipb.ListDynamicNeighborResponse.dynamic_neighbor:type_name -> apipb.DynamicNeighbor
	0,   // 15: apipb.AddPathRequest.table_type:type_name -> apipb.TableType
	102, // 16: apipb.AddPathRequest.path:type_name -> apipb.Path
	0,   // 17: apipb.DeletePathRequest.table_type:type_name -> apipb.TableType
	100, // 18: apipb.DeletePathRequest.family:type_name -> apipb.Family
	102, // 19: apipb.DeletePathRequest.path:type_name -> apipb.Path
	10,  // 20: apipb.TableLookupPrefix.type:type_name -> apipb.TableLookupPrefix.Type
	0,   // 21: apipb.ListPathRequest.table_type:type_name -> apipb.TableType
	100, // 22: apipb.ListPathRequest.family:type_name -> apipb.Family
	56,  // 23: apipb.ListPathRequest.prefixes:type_name -> apipb.TableLookupPrefix
	11,  // 24: apipb.ListPathRequest.sort_type:type_name -> apipb.ListPathRequest.SortType
	103, // 25: apipb.ListPathResponse.destination:type_name -> apipb.Destination
	0,   // 26: apipb.AddPathStreamRequest.table_type:type_name -> apipb.TableType
	102, // 27: apipb.AddPathStreamRequest.paths:type_name -> apipb.Path
	0,   // 28: apipb.GetTableRequest.table_type:type_name -> apipb.TableType
	100, // 29: apipb.GetTableRequest.family:type_name -> apipb.Family
	170, // 30: apipb.AddVrfRequest.vrf:type_name -> apipb.Vrf
	170, // 31: apipb.ListVrfResponse.vrf:type_name -> apipb.Vrf
	166, // 32: apipb.AddPolicyRequest.policy:type_name -> apipb.Policy
	166, // 33: apipb.DeletePolicyRequest.policy:type_name -> apipb.Policy
	166, // 34: apipb.ListPolicyResponse.policy:type_name -> apipb.Policy
	153, // 35: apipb.SetPoliciesRequest.defined_sets:type_name -> apipb.DefinedSet
	166, // 36: apipb.SetPoliciesRequest.policies:type_name -> apipb.Policy
	167, // 37: apipb.SetPoliciesRequest.assignments:type_name -> apipb.PolicyAssignment
	153, // 38: apipb.AddDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet
	153, // 39: apipb.DeleteDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet
	3,   // 40: apipb.ListDefinedSetRequest.defined_type:type_name -> apipb.DefinedType
	153, // 41: apipb.ListDefinedSetResponse.defined_set:type_name -> apipb.DefinedSet
	165, // 42: apipb.AddStatementRequest.statement:type_name -> apipb.Statement
	165, // 43: apipb.DeleteStatementRequest.statement:type_name -> apipb.Statement
	165, // 44: apipb.ListStatementResponse.statement:type_name -> apipb.Statement
	167, // 45: apipb.AddPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment
	167, // 46: apipb.DeletePolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment
	6,   // 47: apipb.ListPolicyAssignmentRequest.direction:type_name -> apipb.PolicyDirection
	167, // 48: apipb.ListPolicyAssignmentResponse.assignment:type_name -> apipb.PolicyAssignment
	167, // 49: apipb.SetPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment
	100, // 50: apipb.ListRpkiRequest.family:type_name -> apipb.Family
	176, // 51: apipb.ListRpkiResponse.server:type_name -> apipb.Rpki
	100, // 52: apipb.ListRpkiTableRequest.family:type_name -> apipb.Family
	169, // 53: apipb.ListRpkiTableResponse.roa:type_name -> apipb.Roa
	12,  // 54: apipb.EnableMrtRequest.type:type_name -> apipb.EnableMrtRequest.DumpType
	13,  // 55: apipb.AddBmpRequest.policy:type_name -> apipb.AddBmpRequest.MonitoringPolicy
	183, // 56: apipb.ListBmpResponse.station:type_name -> apipb.ListBmpResponse.BmpStation
	14,  // 57: apipb.Family.afi:type_name -> apipb.Family.Afi
	15,  // 58: apipb.Family.safi:type_name -> apipb.Family.Safi
	16,  // 59: apipb.Validation.state:type_name -> apipb.Validation.State
	17,  // 60: apipb.Validation.reason:type_name -> apipb.Validation.Reason
	169, // 61: apipb.Validation.matched:type_name -> apipb.Roa
	169, // 62: apipb.Validation.unmatched_asn:type_name -> apipb.Roa
	169, // 63: apipb.Validation.unmatched_length:type_name -> apipb.Roa
	186, // 64: apipb.Path.nlri:type_name -> google.protobuf.Any
	186, // 65: apipb.Path.pattrs:type_name -> google.protobuf.Any
	187, // 66: apipb.Path.age:type_name -> google.protobuf.Timestamp
	101, // 67: apipb.Path.validation:type_name -> apipb.Validation
	100, // 68: apipb.Path.family:type_name -> apipb.Family
	102, // 69: apipb.Destination.paths:type_name -> apipb.Path
	107, // 70: apipb.Peer.apply_policy:type_name -> apipb.ApplyPolicy
	109, // 71: apipb.Peer.conf:type_name -> apipb.PeerConf
	113, // 72: apipb.Peer.ebgp_multihop:type_name -> apipb.EbgpMultihop
	114, // 73: apipb.Peer.route_reflector:type_name -> apipb.RouteReflector
	115, // 74: apipb.Peer.state:type_name -> apipb.PeerState
	119, // 75: apipb.Peer.timers:type_name -> apipb.Timers
	122, // 76: apipb.Peer.transport:type_name -> apipb.Transport
	123, // 77: apipb.Peer.route_server:type_name -> apipb.RouteServer
	124, // 78: apipb.Peer.graceful_restart:type_name -> apipb.GracefulRestart
	148, // 79: apipb.Peer.afi_safis:type_name -> apipb.AfiSafi
	112, // 80: apipb.Peer.ttl_security:type_name -> apipb.TtlSecurity
	107, // 81: apipb.PeerGroup.apply_policy:type_name -> apipb.ApplyPolicy
	110, // 82: apipb.PeerGroup.conf:type_name -> apipb.PeerGroupConf
	113, // 83: apipb.PeerGroup.ebgp_multihop:type_name -> apipb.EbgpMultihop
	114, // 84: apipb.PeerGroup.route_reflector:type_name -> apipb.RouteReflector
	111, // 85: apipb.PeerGroup.info:type_name -> apipb.PeerGroupState
	119, // 86: apipb.PeerGroup.timers:type_name -> apipb.Timers
	122, // 87: apipb.PeerGroup.transport:type_name -> apipb.Transport
	123, // 88: apipb.PeerGroup.route_server:type_name -> apipb.RouteServer
	124, // 89: apipb.PeerGroup.graceful_restart:type_name -> apipb.GracefulRestart
	148, // 90: apipb.PeerGroup.afi_safis:type_name -> apipb.AfiSafi
	112, // 91: apipb.PeerGroup.ttl_security:type_name -> apipb.TtlSecurity
	167, // 92: apipb.ApplyPolicy.in_policy:type_name -> apipb.PolicyAssignment
	167, // 93: apipb.ApplyPolicy.export_policy:type_name -> apipb.PolicyAssignment
	167, // 94: apipb.ApplyPolicy.import_policy:type_name -> apipb.PolicyAssignment
	100, // 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
	116, // 102: apipb.PeerState.messages:type_name -> apipb.Messages
	1,   // 103: apipb.PeerState.type:type_name -> apipb.PeerType
	118, // 104: apipb.PeerState.queues:type_name -> apipb.Queues
	2,   // 105: apipb.PeerState.remove_private:type_name -> apipb.RemovePrivate
	18,  // 106: apipb.PeerState.session_state:type_name -> apipb.PeerState.SessionState
	19,  // 107: apipb.PeerState.admin_state:type_name -> apipb.PeerState.AdminState
	186, // 108: apipb.PeerState.remote_cap:type_name -> google.protobuf.Any
	186, // 109: apipb.PeerState.local_cap:type_name -> google.protobuf.Any
	117, // 110: apipb.Messages.received:type_name -> apipb.Message
	117, // 111: apipb.Messages.sent:type_name -> apipb.Message
	120, // 112: apipb.Timers.config:type_name -> apipb.TimersConfig
	121, // 113: apipb.Timers.state:type_name -> apipb.TimersState
	187, // 114: apipb.TimersState.uptime:type_name -> google.protobuf.Timestamp
	187, // 115: apipb.TimersState.downtime:type_name -> google.protobuf.Timestamp
	125, // 116: apipb.MpGracefulRestart.config:type_name -> apipb.MpGracefulRestartConfig
	126, // 117: apipb.MpGracefulRestart.state:type_name -> apipb.MpGracefulRestartState
	100, // 118: apipb.AfiSafiConfig.family:type_name -> apipb.Family
	100, // 119: apipb.AfiSafiState.family:type_name -> apipb.Family
	130, // 120: apipb.RouteSelectionOptions.config:type_name -> apipb.RouteSelectionOptionsConfig
	131, // 121: apipb.RouteSelectionOptions.state:type_name -> apipb.RouteSelectionOptionsState
	135, // 122: apipb.Ebgp.config:type_name -> apipb.EbgpConfig
	136, // 123: apipb.Ebgp.state:type_name -> apipb.EbgpState
	138, // 124: apipb.Ibgp.config:type_name -> apipb.IbgpConfig
	139, // 125: apipb.Ibgp.state:type_name -> apipb.IbgpState
	133, // 126: apipb.UseMultiplePaths.config:type_name -> apipb.UseMultiplePathsConfig
	134, // 127: apipb.UseMultiplePaths.state:type_name -> apipb.UseMultiplePathsState
	137, // 128: apipb.UseMultiplePaths.ebgp:type_name -> apipb.Ebgp
	140, // 129: apipb.UseMultiplePaths.ibgp:type_name -> apipb.Ibgp
	142, // 130: apipb.RouteTargetMembership.config:type_name -> apipb.RouteTargetMembershipConfig
	143, // 131: apipb.RouteTargetMembership.state:type_name -> apipb.RouteTargetMembershipState
	145, // 132: apipb.LongLivedGracefulRestart.config:type_name -> apipb.LongLivedGracefulRestartConfig
	146, // 133: apipb.LongLivedGracefulRestart.state:type_name -> apipb.LongLivedGracefulRestartState
	127, // 134: apipb.AfiSafi.mp_graceful_restart:type_name -> apipb.MpGracefulRestart
	128, // 135: apipb.AfiSafi.config:type_name -> apipb.AfiSafiConfig
	129, // 136: apipb.AfiSafi.state:type_name -> apipb.AfiSafiState
	107, // 137: apipb.AfiSafi.apply_policy:type_name -> apipb.ApplyPolicy
	132, // 138: apipb.AfiSafi.route_selection_options:type_name -> apipb.RouteSelectionOptions
	141, // 139: apipb.AfiSafi.use_multiple_paths:type_name -> apipb.UseMultiplePaths
	108, // 140: apipb.AfiSafi.prefix_limits:type_name -> apipb.PrefixLimit
	144, // 141: apipb.AfiSafi.route_target_membership:type_name -> apipb.RouteTargetMembership
	147, // 142: apipb.AfiSafi.long_lived_graceful_restart:type_name -> apipb.LongLivedGracefulRestart
	151, // 143: apipb.AfiSafi.add_paths:type_name -> apipb.AddPaths
	149, // 144: apipb.AddPaths.config:type_name -> apipb.AddPathsConfig
	150, // 145: apipb.AddPaths.state:type_name -> apipb.AddPathsState
	3,   // 146: apipb.DefinedSet.defined_type:type_name -> apipb.DefinedType
	152, // 147: apipb.DefinedSet.prefixes:type_name -> apipb.Prefix
	20,  // 148: apipb.MatchSet.type:type_name -> apipb.MatchSet.Type
	21,  // 149: apipb.AsPathLength.type:type_name -> apipb.AsPathLength.Type
	22,  // 150: apipb.CommunityCount.type:type_name -> apipb.CommunityCount.Type
	154, // 151: apipb.Conditions.prefix_set:type_name -> apipb.MatchSet
	154, // 152: apipb.Conditions.neighbor_set:type_name -> apipb.MatchSet
	155, // 153: apipb.Conditions.as_path_length:type_name -> apipb.AsPathLength
	154, // 154: apipb.Conditions.as_path_set:type_name -> apipb.MatchSet
	154, // 155: apipb.Conditions.community_set:type_name -> apipb.MatchSet
	154, // 156: apipb.Conditions.ext_community_set:type_name -> apipb.MatchSet
	23,  // 157: apipb.Conditions.route_type:type_name -> apipb.Conditions.RouteType
	154, // 158: apipb.Conditions.large_community_set:type_name -> apipb.MatchSet
	100, // 159: apipb.Conditions.afi_safi_in:type_name -> apipb.Family
	156, // 160: apipb.Conditions.community_count:type_name -> apipb.CommunityCount
	4,   // 161: apipb.Conditions.origin:type_name -> apipb.RouteOriginType
	24,  // 162: apipb.CommunityAction.type:type_name -> apipb.CommunityAction.Type
	25,  // 163: apipb.MedAction.type:type_name -> apipb.MedAction.Type
	4,   // 164: apipb.OriginAction.origin:type_name -> apipb.RouteOriginType
	5,   // 165: apipb.Actions.route_action:type_name -> apipb.RouteAction
	158, // 166: apipb.Actions.community:type_name -> apipb.CommunityAction
	159, // 167: apipb.Actions.med:type_name -> apipb.MedAction
	160, // 168: apipb.Actions.as_prepend:type_name -> apipb.AsPrependAction
	158, // 169: apipb.Actions.ext_community:type_name -> apipb.CommunityAction
	161, // 170: apipb.Actions.nexthop:type_name -> apipb.NexthopAction
	162, // 171: apipb.Actions.local_pref:type_name -> apipb.LocalPrefAction
	158, // 172: apipb.Actions.large_community:type_name -> apipb.CommunityAction
	163, // 173: apipb.Actions.origin_action:type_name -> apipb.OriginAction
	157, // 174: apipb.Statement.conditions:type_name -> apipb.Conditions
	164, // 175: apipb.Statement.actions:type_name -> apipb.Actions
	165, // 176: apipb.Policy.statements:type_name -> apipb.Statement
	6,   // 177: apipb.PolicyAssignment.direction:type_name -> apipb.PolicyDirection
	166, // 178: apipb.PolicyAssignment.policies:type_name -> apipb.Policy
	5,   // 179: apipb.PolicyAssignment.default_action:type_name -> apipb.RouteAction
	153, // 180: apipb.RoutingPolicy.defined_sets:type_name -> apipb.DefinedSet
	166, // 181: apipb.RoutingPolicy.policies:type_name -> apipb.Policy
	174, // 182: apipb.Roa.conf:type_name -> apipb.RPKIConf
	186, // 183: apipb.Vrf.rd:type_name -> google.protobuf.Any
	186, // 184: apipb.Vrf.import_rt:type_name -> google.protobuf.Any
	186, // 185: apipb.Vrf.export_rt:type_name -> google.protobuf.Any
	130, // 186: apipb.Global.route_selection_options:type_name -> apipb.RouteSelectionOptionsConfig
	171, // 187: apipb.Global.default_route_distance:type_name -> apipb.DefaultRouteDistance
	173, // 188: apipb.Global.confederation:type_name -> apipb.Confederation
	124, // 189: apipb.Global.graceful_restart:type_name -> apipb.GracefulRestart
	107, // 190: apipb.Global.apply_policy:type_name -> apipb.ApplyPolicy
	187, // 191: apipb.RPKIState.uptime:type_name -> google.protobuf.Timestamp
	187, // 192: apipb.RPKIState.downtime:type_name -> google.protobuf.Timestamp
	174, // 193: apipb.Rpki.conf:type_name -> apipb.RPKIConf
	175, // 194: apipb.Rpki.state:type_name -> apipb.RPKIState
	26,  // 195: apipb.SetLogLevelRequest.level:type_name -> apipb.SetLogLevelRequest.Level
	180, // 196: apipb.WatchEventRequest.Table.filters:type_name -> apipb.WatchEventRequest.Table.Filter
	7,   // 197: apipb.WatchEventRequest.Table.Filter.type:type_name -> apipb.WatchEventRequest.Table.Filter.Type
	8,   // 198: apipb.WatchEventResponse.PeerEvent.type:type_name -> apipb.WatchEventResponse.PeerEvent.Type
	104, // 199: apipb.WatchEventResponse.PeerEvent.peer:type_name -> apipb.Peer
	102, // 200: apipb.WatchEventResponse.TableEvent.paths:type_name -> apipb.Path
	184, // 201: apipb.ListBmpResponse.BmpStation.conf:type_name -> apipb.ListBmpResponse.BmpStation.Conf
	185, // 202: apipb.ListBmpResponse.BmpStation.state:type_name -> apipb.ListBmpResponse.BmpStation.State
	187, // 203: apipb.ListBmpResponse.BmpStation.State.uptime:type_name -> google.protobuf.Timestamp
	187, // 204: apipb.ListBmpResponse.BmpStation.State.downtime:type_name -> google.protobuf.Timestamp
	27,  // 205: apipb.GobgpApi.StartBgp:input_type -> apipb.StartBgpRequest
	28,  // 206: apipb.GobgpApi.StopBgp:input_type -> apipb.StopBgpRequest
	29,  // 207: apipb.GobgpApi.GetBgp:input_type -> apipb.GetBgpRequest
	31,  // 208: apipb.GobgpApi.WatchEvent:input_type -> apipb.WatchEventRequest
	33,  // 209: apipb.GobgpApi.AddPeer:input_type -> apipb.AddPeerRequest
	34,  // 210: apipb.GobgpApi.DeletePeer:input_type -> apipb.DeletePeerRequest
	35,  // 211: apipb.GobgpApi.ListPeer:input_type -> apipb.ListPeerRequest
	37,  // 212: apipb.GobgpApi.UpdatePeer:input_type -> apipb.UpdatePeerRequest
	39,  // 213: apipb.GobgpApi.ResetPeer:input_type -> apipb.ResetPeerRequest
	40,  // 214: apipb.GobgpApi.ShutdownPeer:input_type -> apipb.ShutdownPeerRequest
	41,  // 215: apipb.GobgpApi.EnablePeer:input_type -> apipb.EnablePeerRequest
	42,  // 216: apipb.GobgpApi.DisablePeer:input_type -> apipb.DisablePeerRequest
	43,  // 217: apipb.GobgpApi.AddPeerGroup:input_type -> apipb.AddPeerGroupRequest
	44,  // 218: apipb.GobgpApi.DeletePeerGroup:input_type -> apipb.DeletePeerGroupRequest
	47,  // 219: apipb.GobgpApi.ListPeerGroup:input_type -> apipb.ListPeerGroupRequest
	45,  // 220: apipb.GobgpApi.UpdatePeerGroup:input_type -> apipb.UpdatePeerGroupRequest
	49,  // 221: apipb.GobgpApi.AddDynamicNeighbor:input_type -> apipb.AddDynamicNeighborRequest
	51,  // 222: apipb.GobgpApi.ListDynamicNeighbor:input_type -> apipb.ListDynamicNeighborRequest
	50,  // 223: apipb.GobgpApi.DeleteDynamicNeighbor:input_type -> apipb.DeleteDynamicNeighborRequest
	53,  // 224: apipb.GobgpApi.AddPath:input_type -> apipb.AddPathRequest
	55,  // 225: apipb.GobgpApi.DeletePath:input_type -> apipb.DeletePathRequest
	57,  // 226: apipb.GobgpApi.ListPath:input_type -> apipb.ListPathRequest
	59,  // 227: apipb.GobgpApi.AddPathStream:input_type -> apipb.AddPathStreamRequest
	60,  // 228: apipb.GobgpApi.GetTable:input_type -> apipb.GetTableRequest
	62,  // 229: apipb.GobgpApi.AddVrf:input_type -> apipb.AddVrfRequest
	63,  // 230: apipb.GobgpApi.DeleteVrf:input_type -> apipb.DeleteVrfRequest
	64,  // 231: apipb.GobgpApi.ListVrf:input_type -> apipb.ListVrfRequest
	66,  // 232: apipb.GobgpApi.AddPolicy:input_type -> apipb.AddPolicyRequest
	67,  // 233: apipb.GobgpApi.DeletePolicy:input_type -> apipb.DeletePolicyRequest
	68,  // 234: apipb.GobgpApi.ListPolicy:input_type -> apipb.ListPolicyRequest
	70,  // 235: apipb.GobgpApi.SetPolicies:input_type -> apipb.SetPoliciesRequest
	71,  // 236: apipb.GobgpApi.AddDefinedSet:input_type -> apipb.AddDefinedSetRequest
	72,  // 237: apipb.GobgpApi.DeleteDefinedSet:input_type -> apipb.DeleteDefinedSetRequest
	73,  // 238: apipb.GobgpApi.ListDefinedSet:input_type -> apipb.ListDefinedSetRequest
	75,  // 239: apipb.GobgpApi.AddStatement:input_type -> apipb.AddStatementRequest
	76,  // 240: apipb.GobgpApi.DeleteStatement:input_type -> apipb.DeleteStatementRequest
	77,  // 241: apipb.GobgpApi.ListStatement:input_type -> apipb.ListStatementRequest
	79,  // 242: apipb.GobgpApi.AddPolicyAssignment:input_type -> apipb.AddPolicyAssignmentRequest
	80,  // 243: apipb.GobgpApi.DeletePolicyAssignment:input_type -> apipb.DeletePolicyAssignmentRequest
	81,  // 244: apipb.GobgpApi.ListPolicyAssignment:input_type -> apipb.ListPolicyAssignmentRequest
	83,  // 245: apipb.GobgpApi.SetPolicyAssignment:input_type -> apipb.SetPolicyAssignmentRequest
	84,  // 246: apipb.GobgpApi.AddRpki:input_type -> apipb.AddRpkiRequest
	85,  // 247: apipb.GobgpApi.DeleteRpki:input_type -> apipb.DeleteRpkiRequest
	86,  // 248: apipb.GobgpApi.ListRpki:input_type -> apipb.ListRpkiRequest
	88,  // 249: apipb.GobgpApi.EnableRpki:input_type -> apipb.EnableRpkiRequest
	89,  // 250: apipb.GobgpApi.DisableRpki:input_type -> apipb.DisableRpkiRequest
	90,  // 251: apipb.GobgpApi.ResetRpki:input_type -> apipb.ResetRpkiRequest
	91,  // 252: apipb.GobgpApi.ListRpkiTable:input_type -> apipb.ListRpkiTableRequest
	93,  // 253: apipb.GobgpApi.EnableZebra:input_type -> apipb.EnableZebraRequest
	94,  // 254: apipb.GobgpApi.EnableMrt:input_type -> apipb.EnableMrtRequest
	95,  // 255: apipb.GobgpApi.DisableMrt:input_type -> apipb.DisableMrtRequest
	96,  // 256: apipb.GobgpApi.AddBmp:input_type -> apipb.AddBmpRequest
	97,  // 257: apipb.GobgpApi.DeleteBmp:input_type -> apipb.DeleteBmpRequest
	98,  // 258: apipb.GobgpApi.ListBmp:input_type -> apipb.ListBmpRequest
	177, // 259: apipb.GobgpApi.SetLogLevel:input_type -> apipb.SetLogLevelRequest
	188, // 260: apipb.GobgpApi.StartBgp:output_type -> google.protobuf.Empty
	188, // 261: apipb.GobgpApi.StopBgp:output_type -> google.protobuf.Empty
	30,  // 262: apipb.GobgpApi.GetBgp:output_type -> apipb.GetBgpResponse
	32,  // 263: apipb.GobgpApi.WatchEvent:output_type -> apipb.WatchEventResponse
	188, // 264: apipb.GobgpApi.AddPeer:output_type -> google.protobuf.Empty
	188, // 265: apipb.GobgpApi.DeletePeer:output_type -> google.protobuf.Empty
	36,  // 266: apipb.GobgpApi.ListPeer:output_type -> apipb.ListPeerResponse
	38,  // 267: apipb.GobgpApi.UpdatePeer:output_type -> apipb.UpdatePeerResponse
	188, // 268: apipb.GobgpApi.ResetPeer:output_type -> google.protobuf.Empty
	188, // 269: apipb.GobgpApi.ShutdownPeer:output_type -> google.protobuf.Empty
	188, // 270: apipb.GobgpApi.EnablePeer:output_type -> google.protobuf.Empty
	188, // 271: apipb.GobgpApi.DisablePeer:output_type -> google.protobuf.Empty
	188, // 272: apipb.GobgpApi.AddPeerGroup:output_type -> google.protobuf.Empty
	188, // 273: apipb.GobgpApi.DeletePeerGroup:output_type -> google.protobuf.Empty
	48,  // 274: apipb.GobgpApi.ListPeerGroup:output_type -> apipb.ListPeerGroupResponse
	46,  // 275: apipb.GobgpApi.UpdatePeerGroup:output_type -> apipb.UpdatePeerGroupResponse
	188, // 276: apipb.GobgpApi.AddDynamicNeighbor:output_type -> google.protobuf.Empty
	52,  // 277: apipb.GobgpApi.ListDynamicNeighbor:output_type -> apipb.ListDynamicNeighborResponse
	188, // 278: apipb.GobgpApi.DeleteDynamicNeighbor:output_type -> google.protobuf.Empty
	54,  // 279: apipb.GobgpApi.AddPath:output_type -> apipb.AddPathResponse
	188, // 280: apipb.GobgpApi.DeletePath:output_type -> google.protobuf.Empty
	58,  // 281: apipb.GobgpApi.ListPath:output_type -> apipb.ListPathResponse
	188, // 282: apipb.GobgpApi.AddPathStream:output_type -> google.protobuf.Empty
	61,  // 283: apipb.GobgpApi.GetTable:output_type -> apipb.GetTableResponse
	188, // 284: apipb.GobgpApi.AddVrf:output_type -> google.protobuf.Empty
	188, // 285: apipb.GobgpApi.DeleteVrf:output_type -> google.protobuf.Empty
	65,  // 286: apipb.GobgpApi.ListVrf:output_type -> apipb.ListVrfResponse
	188, // 287: apipb.GobgpApi.AddPolicy:output_type -> google.protobuf.Empty
	188, // 288: apipb.GobgpApi.DeletePolicy:output_type -> google.protobuf.Empty
	69,  // 289: apipb.GobgpApi.ListPolicy:output_type -> apipb.ListPolicyResponse
	188, // 290: apipb.GobgpApi.SetPolicies:output_type -> google.protobuf.Empty
	188, // 291: apipb.GobgpApi.AddDefinedSet:output_type -> google.protobuf.Empty
	188, // 292: apipb.GobgpApi.DeleteDefinedSet:output_type -> google.protobuf.Empty
	74,  // 293: apipb.GobgpApi.ListDefinedSet:output_type -> apipb.ListDefinedSetResponse
	188, // 294: apipb.GobgpApi.AddStatement:output_type -> google.protobuf.Empty
	188, // 295: apipb.GobgpApi.DeleteStatement:output_type -> google.protobuf.Empty
	78,  // 296: apipb.GobgpApi.ListStatement:output_type -> apipb.ListStatementResponse
	188, // 297: apipb.GobgpApi.AddPolicyAssignment:output_type -> google.protobuf.Empty
	188, // 298: apipb.GobgpApi.DeletePolicyAssignment:output_type -> google.protobuf.Empty
	82,  // 299: apipb.GobgpApi.ListPolicyAssignment:output_type -> apipb.ListPolicyAssignmentResponse
	188, // 300: apipb.GobgpApi.SetPolicyAssignment:output_type -> google.protobuf.Empty
	188, // 301: apipb.GobgpApi.AddRpki:output_type -> google.protobuf.Empty
	188, // 302: apipb.GobgpApi.DeleteRpki:output_type -> google.protobuf.Empty
	87,  // 303: apipb.GobgpApi.ListRpki:output_type -> apipb.ListRpkiResponse
	188, // 304: apipb.GobgpApi.EnableRpki:output_type -> google.protobuf.Empty
	188, // 305: apipb.GobgpApi.DisableRpki:output_type -> google.protobuf.Empty
	188, // 306: apipb.GobgpApi.ResetRpki:output_type -> google.protobuf.Empty
	92,  // 307: apipb.GobgpApi.ListRpkiTable:output_type -> apipb.ListRpkiTableResponse
	188, // 308: apipb.GobgpApi.EnableZebra:output_type -> google.protobuf.Empty
	188, // 309: apipb.GobgpApi.EnableMrt:output_type -> google.protobuf.Empty
	188, // 310: apipb.GobgpApi.DisableMrt:output_type -> google.protobuf.Empty
	188, // 311: apipb.GobgpApi.AddBmp:output_type -> google.protobuf.Empty
	188, // 312: apipb.GobgpApi.DeleteBmp:output_type -> google.protobuf.Empty
	99,  // 313: apipb.GobgpApi.ListBmp:output_type -> apipb.ListBmpResponse
	188, // 314: apipb.GobgpApi.SetLogLevel:output_type -> google.protobuf.Empty
	260, // [260:315] is the sub-list for method output_type
	205, // [205:260] is the sub-list for method input_type
	205, // [205:205] is the sub-list for extension type_name
	205, // [205:205] is the sub-list for extension extendee
	0,   // [0:205] 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
	}
	file_gobgp_proto_msgTypes[5].OneofWrappers = []any{
		(*WatchEventResponse_Peer)(nil),
		(*WatchEventResponse_Table)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_gobgp_proto_rawDesc), len(file_gobgp_proto_rawDesc)),
			NumEnums:      27,
			NumMessages:   159,
			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_goTypes = nil
	file_gobgp_proto_depIdxs = nil
}
