// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: api/extcom.proto

package api

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 TwoOctetAsSpecificExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsTransitive  bool                   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
	SubType       uint32                 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
	Asn           uint32                 `protobuf:"varint,3,opt,name=asn,proto3" json:"asn,omitempty"`
	LocalAdmin    uint32                 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TwoOctetAsSpecificExtended) Reset() {
	*x = TwoOctetAsSpecificExtended{}
	mi := &file_api_extcom_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TwoOctetAsSpecificExtended) ProtoMessage() {}

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

func (x *TwoOctetAsSpecificExtended) GetIsTransitive() bool {
	if x != nil {
		return x.IsTransitive
	}
	return false
}

func (x *TwoOctetAsSpecificExtended) GetSubType() uint32 {
	if x != nil {
		return x.SubType
	}
	return 0
}

func (x *TwoOctetAsSpecificExtended) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *TwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if x != nil {
		return x.LocalAdmin
	}
	return 0
}

type IPv4AddressSpecificExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsTransitive  bool                   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
	SubType       uint32                 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
	Address       string                 `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
	LocalAdmin    uint32                 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *IPv4AddressSpecificExtended) Reset() {
	*x = IPv4AddressSpecificExtended{}
	mi := &file_api_extcom_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*IPv4AddressSpecificExtended) ProtoMessage() {}

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

func (x *IPv4AddressSpecificExtended) GetIsTransitive() bool {
	if x != nil {
		return x.IsTransitive
	}
	return false
}

func (x *IPv4AddressSpecificExtended) GetSubType() uint32 {
	if x != nil {
		return x.SubType
	}
	return 0
}

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

func (x *IPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
	if x != nil {
		return x.LocalAdmin
	}
	return 0
}

type FourOctetAsSpecificExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsTransitive  bool                   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
	SubType       uint32                 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
	Asn           uint32                 `protobuf:"varint,3,opt,name=asn,proto3" json:"asn,omitempty"`
	LocalAdmin    uint32                 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FourOctetAsSpecificExtended) Reset() {
	*x = FourOctetAsSpecificExtended{}
	mi := &file_api_extcom_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FourOctetAsSpecificExtended) ProtoMessage() {}

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

func (x *FourOctetAsSpecificExtended) GetIsTransitive() bool {
	if x != nil {
		return x.IsTransitive
	}
	return false
}

func (x *FourOctetAsSpecificExtended) GetSubType() uint32 {
	if x != nil {
		return x.SubType
	}
	return 0
}

func (x *FourOctetAsSpecificExtended) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *FourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if x != nil {
		return x.LocalAdmin
	}
	return 0
}

type LinkBandwidthExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Asn           uint32                 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	Bandwidth     float32                `protobuf:"fixed32,2,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LinkBandwidthExtended) Reset() {
	*x = LinkBandwidthExtended{}
	mi := &file_api_extcom_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*LinkBandwidthExtended) ProtoMessage() {}

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

func (x *LinkBandwidthExtended) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *LinkBandwidthExtended) GetBandwidth() float32 {
	if x != nil {
		return x.Bandwidth
	}
	return 0
}

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

func (x *ValidationExtended) Reset() {
	*x = ValidationExtended{}
	mi := &file_api_extcom_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ValidationExtended) ProtoMessage() {}

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

func (x *ValidationExtended) GetState() uint32 {
	if x != nil {
		return x.State
	}
	return 0
}

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

func (x *ColorExtended) Reset() {
	*x = ColorExtended{}
	mi := &file_api_extcom_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ColorExtended) ProtoMessage() {}

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

func (x *ColorExtended) GetColor() uint32 {
	if x != nil {
		return x.Color
	}
	return 0
}

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

func (x *EncapExtended) Reset() {
	*x = EncapExtended{}
	mi := &file_api_extcom_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*EncapExtended) ProtoMessage() {}

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

func (x *EncapExtended) GetTunnelType() uint32 {
	if x != nil {
		return x.TunnelType
	}
	return 0
}

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

func (x *DefaultGatewayExtended) Reset() {
	*x = DefaultGatewayExtended{}
	mi := &file_api_extcom_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DefaultGatewayExtended) ProtoMessage() {}

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

type OpaqueExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsTransitive  bool                   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive,proto3" json:"is_transitive,omitempty"`
	Value         []byte                 `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OpaqueExtended) Reset() {
	*x = OpaqueExtended{}
	mi := &file_api_extcom_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*OpaqueExtended) ProtoMessage() {}

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

func (x *OpaqueExtended) GetIsTransitive() bool {
	if x != nil {
		return x.IsTransitive
	}
	return false
}

func (x *OpaqueExtended) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

type ESILabelExtended struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	IsSingleActive bool                   `protobuf:"varint,1,opt,name=is_single_active,json=isSingleActive,proto3" json:"is_single_active,omitempty"`
	Label          uint32                 `protobuf:"varint,2,opt,name=label,proto3" json:"label,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *ESILabelExtended) Reset() {
	*x = ESILabelExtended{}
	mi := &file_api_extcom_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ESILabelExtended) ProtoMessage() {}

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

func (x *ESILabelExtended) GetIsSingleActive() bool {
	if x != nil {
		return x.IsSingleActive
	}
	return false
}

func (x *ESILabelExtended) GetLabel() uint32 {
	if x != nil {
		return x.Label
	}
	return 0
}

type ESImportRouteTarget struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	EsImport      string                 `protobuf:"bytes,1,opt,name=es_import,json=esImport,proto3" json:"es_import,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ESImportRouteTarget) Reset() {
	*x = ESImportRouteTarget{}
	mi := &file_api_extcom_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ESImportRouteTarget) ProtoMessage() {}

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

func (x *ESImportRouteTarget) GetEsImport() string {
	if x != nil {
		return x.EsImport
	}
	return ""
}

type MacMobilityExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsSticky      bool                   `protobuf:"varint,1,opt,name=is_sticky,json=isSticky,proto3" json:"is_sticky,omitempty"`
	SequenceNum   uint32                 `protobuf:"varint,2,opt,name=sequence_num,json=sequenceNum,proto3" json:"sequence_num,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MacMobilityExtended) Reset() {
	*x = MacMobilityExtended{}
	mi := &file_api_extcom_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*MacMobilityExtended) ProtoMessage() {}

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

func (x *MacMobilityExtended) GetIsSticky() bool {
	if x != nil {
		return x.IsSticky
	}
	return false
}

func (x *MacMobilityExtended) GetSequenceNum() uint32 {
	if x != nil {
		return x.SequenceNum
	}
	return 0
}

type RouterMacExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Mac           string                 `protobuf:"bytes,1,opt,name=mac,proto3" json:"mac,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouterMacExtended) Reset() {
	*x = RouterMacExtended{}
	mi := &file_api_extcom_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RouterMacExtended) ProtoMessage() {}

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

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

type TrafficRateExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Asn           uint32                 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	Rate          float32                `protobuf:"fixed32,2,opt,name=rate,proto3" json:"rate,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TrafficRateExtended) Reset() {
	*x = TrafficRateExtended{}
	mi := &file_api_extcom_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TrafficRateExtended) ProtoMessage() {}

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

func (x *TrafficRateExtended) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *TrafficRateExtended) GetRate() float32 {
	if x != nil {
		return x.Rate
	}
	return 0
}

type TrafficActionExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Terminal      bool                   `protobuf:"varint,1,opt,name=terminal,proto3" json:"terminal,omitempty"`
	Sample        bool                   `protobuf:"varint,2,opt,name=sample,proto3" json:"sample,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TrafficActionExtended) Reset() {
	*x = TrafficActionExtended{}
	mi := &file_api_extcom_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TrafficActionExtended) ProtoMessage() {}

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

func (x *TrafficActionExtended) GetTerminal() bool {
	if x != nil {
		return x.Terminal
	}
	return false
}

func (x *TrafficActionExtended) GetSample() bool {
	if x != nil {
		return x.Sample
	}
	return false
}

type RedirectTwoOctetAsSpecificExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Asn           uint32                 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	LocalAdmin    uint32                 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RedirectTwoOctetAsSpecificExtended) Reset() {
	*x = RedirectTwoOctetAsSpecificExtended{}
	mi := &file_api_extcom_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RedirectTwoOctetAsSpecificExtended) ProtoMessage() {}

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

func (x *RedirectTwoOctetAsSpecificExtended) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *RedirectTwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if x != nil {
		return x.LocalAdmin
	}
	return 0
}

type RedirectIPv4AddressSpecificExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Address       string                 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	LocalAdmin    uint32                 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RedirectIPv4AddressSpecificExtended) Reset() {
	*x = RedirectIPv4AddressSpecificExtended{}
	mi := &file_api_extcom_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RedirectIPv4AddressSpecificExtended) ProtoMessage() {}

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

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

func (x *RedirectIPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
	if x != nil {
		return x.LocalAdmin
	}
	return 0
}

type RedirectFourOctetAsSpecificExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Asn           uint32                 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"`
	LocalAdmin    uint32                 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin,proto3" json:"local_admin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RedirectFourOctetAsSpecificExtended) Reset() {
	*x = RedirectFourOctetAsSpecificExtended{}
	mi := &file_api_extcom_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RedirectFourOctetAsSpecificExtended) ProtoMessage() {}

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

func (x *RedirectFourOctetAsSpecificExtended) GetAsn() uint32 {
	if x != nil {
		return x.Asn
	}
	return 0
}

func (x *RedirectFourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if x != nil {
		return x.LocalAdmin
	}
	return 0
}

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

func (x *TrafficRemarkExtended) Reset() {
	*x = TrafficRemarkExtended{}
	mi := &file_api_extcom_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TrafficRemarkExtended) ProtoMessage() {}

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

func (x *TrafficRemarkExtended) GetDscp() uint32 {
	if x != nil {
		return x.Dscp
	}
	return 0
}

type MUPExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SubType       uint32                 `protobuf:"varint,1,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"`
	SegmentId2    uint32                 `protobuf:"varint,2,opt,name=segment_id2,json=segmentId2,proto3" json:"segment_id2,omitempty"`
	SegmentId4    uint32                 `protobuf:"varint,3,opt,name=segment_id4,json=segmentId4,proto3" json:"segment_id4,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MUPExtended) Reset() {
	*x = MUPExtended{}
	mi := &file_api_extcom_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*MUPExtended) ProtoMessage() {}

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

func (x *MUPExtended) GetSubType() uint32 {
	if x != nil {
		return x.SubType
	}
	return 0
}

func (x *MUPExtended) GetSegmentId2() uint32 {
	if x != nil {
		return x.SegmentId2
	}
	return 0
}

func (x *MUPExtended) GetSegmentId4() uint32 {
	if x != nil {
		return x.SegmentId4
	}
	return 0
}

type VPLSExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ControlFlags  uint32                 `protobuf:"varint,1,opt,name=control_flags,json=controlFlags,proto3" json:"control_flags,omitempty"`
	Mtu           uint32                 `protobuf:"varint,2,opt,name=mtu,proto3" json:"mtu,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *VPLSExtended) Reset() {
	*x = VPLSExtended{}
	mi := &file_api_extcom_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*VPLSExtended) ProtoMessage() {}

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

func (x *VPLSExtended) GetControlFlags() uint32 {
	if x != nil {
		return x.ControlFlags
	}
	return 0
}

func (x *VPLSExtended) GetMtu() uint32 {
	if x != nil {
		return x.Mtu
	}
	return 0
}

type ETreeExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsLeaf        bool                   `protobuf:"varint,1,opt,name=is_leaf,json=isLeaf,proto3" json:"is_leaf,omitempty"`
	Label         uint32                 `protobuf:"varint,2,opt,name=label,proto3" json:"label,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ETreeExtended) Reset() {
	*x = ETreeExtended{}
	mi := &file_api_extcom_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ETreeExtended) ProtoMessage() {}

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

func (x *ETreeExtended) GetIsLeaf() bool {
	if x != nil {
		return x.IsLeaf
	}
	return false
}

func (x *ETreeExtended) GetLabel() uint32 {
	if x != nil {
		return x.Label
	}
	return 0
}

type MulticastFlagsExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	IsIgmpProxy   bool                   `protobuf:"varint,1,opt,name=is_igmp_proxy,json=isIgmpProxy,proto3" json:"is_igmp_proxy,omitempty"`
	IsMldProxy    bool                   `protobuf:"varint,2,opt,name=is_mld_proxy,json=isMldProxy,proto3" json:"is_mld_proxy,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MulticastFlagsExtended) Reset() {
	*x = MulticastFlagsExtended{}
	mi := &file_api_extcom_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*MulticastFlagsExtended) ProtoMessage() {}

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

func (x *MulticastFlagsExtended) GetIsIgmpProxy() bool {
	if x != nil {
		return x.IsIgmpProxy
	}
	return false
}

func (x *MulticastFlagsExtended) GetIsMldProxy() bool {
	if x != nil {
		return x.IsMldProxy
	}
	return false
}

type UnknownExtended struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Type          uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Value         []byte                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UnknownExtended) Reset() {
	*x = UnknownExtended{}
	mi := &file_api_extcom_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UnknownExtended) ProtoMessage() {}

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

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

func (x *UnknownExtended) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

type ExtendedCommunity struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Extcom:
	//
	//	*ExtendedCommunity_Unknown
	//	*ExtendedCommunity_TwoOctetAsSpecific
	//	*ExtendedCommunity_Ipv4AddressSpecific
	//	*ExtendedCommunity_FourOctetAsSpecific
	//	*ExtendedCommunity_LinkBandwidth
	//	*ExtendedCommunity_Validation
	//	*ExtendedCommunity_Color
	//	*ExtendedCommunity_Encap
	//	*ExtendedCommunity_DefaultGateway
	//	*ExtendedCommunity_Opaque
	//	*ExtendedCommunity_EsiLabel
	//	*ExtendedCommunity_EsImport
	//	*ExtendedCommunity_MacMobility
	//	*ExtendedCommunity_RouterMac
	//	*ExtendedCommunity_TrafficRate
	//	*ExtendedCommunity_TrafficAction
	//	*ExtendedCommunity_RedirectTwoOctetAsSpecific
	//	*ExtendedCommunity_RedirectIpv4AddressSpecific
	//	*ExtendedCommunity_RedirectFourOctetAsSpecific
	//	*ExtendedCommunity_TrafficRemark
	//	*ExtendedCommunity_Mup
	//	*ExtendedCommunity_Vpls
	//	*ExtendedCommunity_Etree
	//	*ExtendedCommunity_MulticastFlags
	Extcom        isExtendedCommunity_Extcom `protobuf_oneof:"extcom"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ExtendedCommunity) Reset() {
	*x = ExtendedCommunity{}
	mi := &file_api_extcom_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ExtendedCommunity) ProtoMessage() {}

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

func (x *ExtendedCommunity) GetExtcom() isExtendedCommunity_Extcom {
	if x != nil {
		return x.Extcom
	}
	return nil
}

func (x *ExtendedCommunity) GetUnknown() *UnknownExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Unknown); ok {
			return x.Unknown
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetTwoOctetAsSpecific() *TwoOctetAsSpecificExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_TwoOctetAsSpecific); ok {
			return x.TwoOctetAsSpecific
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetIpv4AddressSpecific() *IPv4AddressSpecificExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Ipv4AddressSpecific); ok {
			return x.Ipv4AddressSpecific
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetFourOctetAsSpecific() *FourOctetAsSpecificExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_FourOctetAsSpecific); ok {
			return x.FourOctetAsSpecific
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetLinkBandwidth() *LinkBandwidthExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_LinkBandwidth); ok {
			return x.LinkBandwidth
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetValidation() *ValidationExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Validation); ok {
			return x.Validation
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetColor() *ColorExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Color); ok {
			return x.Color
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetEncap() *EncapExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Encap); ok {
			return x.Encap
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetDefaultGateway() *DefaultGatewayExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_DefaultGateway); ok {
			return x.DefaultGateway
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetOpaque() *OpaqueExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Opaque); ok {
			return x.Opaque
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetEsiLabel() *ESILabelExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_EsiLabel); ok {
			return x.EsiLabel
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetEsImport() *ESImportRouteTarget {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_EsImport); ok {
			return x.EsImport
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetMacMobility() *MacMobilityExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_MacMobility); ok {
			return x.MacMobility
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetRouterMac() *RouterMacExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_RouterMac); ok {
			return x.RouterMac
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetTrafficRate() *TrafficRateExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_TrafficRate); ok {
			return x.TrafficRate
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetTrafficAction() *TrafficActionExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_TrafficAction); ok {
			return x.TrafficAction
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetRedirectTwoOctetAsSpecific() *RedirectTwoOctetAsSpecificExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_RedirectTwoOctetAsSpecific); ok {
			return x.RedirectTwoOctetAsSpecific
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetRedirectIpv4AddressSpecific() *RedirectIPv4AddressSpecificExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_RedirectIpv4AddressSpecific); ok {
			return x.RedirectIpv4AddressSpecific
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetRedirectFourOctetAsSpecific() *RedirectFourOctetAsSpecificExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_RedirectFourOctetAsSpecific); ok {
			return x.RedirectFourOctetAsSpecific
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetTrafficRemark() *TrafficRemarkExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_TrafficRemark); ok {
			return x.TrafficRemark
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetMup() *MUPExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Mup); ok {
			return x.Mup
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetVpls() *VPLSExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Vpls); ok {
			return x.Vpls
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetEtree() *ETreeExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_Etree); ok {
			return x.Etree
		}
	}
	return nil
}

func (x *ExtendedCommunity) GetMulticastFlags() *MulticastFlagsExtended {
	if x != nil {
		if x, ok := x.Extcom.(*ExtendedCommunity_MulticastFlags); ok {
			return x.MulticastFlags
		}
	}
	return nil
}

type isExtendedCommunity_Extcom interface {
	isExtendedCommunity_Extcom()
}

type ExtendedCommunity_Unknown struct {
	Unknown *UnknownExtended `protobuf:"bytes,1,opt,name=unknown,proto3,oneof"`
}

type ExtendedCommunity_TwoOctetAsSpecific struct {
	TwoOctetAsSpecific *TwoOctetAsSpecificExtended `protobuf:"bytes,2,opt,name=two_octet_as_specific,json=twoOctetAsSpecific,proto3,oneof"`
}

type ExtendedCommunity_Ipv4AddressSpecific struct {
	Ipv4AddressSpecific *IPv4AddressSpecificExtended `protobuf:"bytes,3,opt,name=ipv4_address_specific,json=ipv4AddressSpecific,proto3,oneof"`
}

type ExtendedCommunity_FourOctetAsSpecific struct {
	FourOctetAsSpecific *FourOctetAsSpecificExtended `protobuf:"bytes,4,opt,name=four_octet_as_specific,json=fourOctetAsSpecific,proto3,oneof"`
}

type ExtendedCommunity_LinkBandwidth struct {
	LinkBandwidth *LinkBandwidthExtended `protobuf:"bytes,5,opt,name=link_bandwidth,json=linkBandwidth,proto3,oneof"`
}

type ExtendedCommunity_Validation struct {
	Validation *ValidationExtended `protobuf:"bytes,6,opt,name=validation,proto3,oneof"`
}

type ExtendedCommunity_Color struct {
	Color *ColorExtended `protobuf:"bytes,7,opt,name=color,proto3,oneof"`
}

type ExtendedCommunity_Encap struct {
	Encap *EncapExtended `protobuf:"bytes,8,opt,name=encap,proto3,oneof"`
}

type ExtendedCommunity_DefaultGateway struct {
	DefaultGateway *DefaultGatewayExtended `protobuf:"bytes,9,opt,name=default_gateway,json=defaultGateway,proto3,oneof"`
}

type ExtendedCommunity_Opaque struct {
	Opaque *OpaqueExtended `protobuf:"bytes,10,opt,name=opaque,proto3,oneof"`
}

type ExtendedCommunity_EsiLabel struct {
	EsiLabel *ESILabelExtended `protobuf:"bytes,11,opt,name=esi_label,json=esiLabel,proto3,oneof"`
}

type ExtendedCommunity_EsImport struct {
	EsImport *ESImportRouteTarget `protobuf:"bytes,12,opt,name=es_import,json=esImport,proto3,oneof"`
}

type ExtendedCommunity_MacMobility struct {
	MacMobility *MacMobilityExtended `protobuf:"bytes,13,opt,name=mac_mobility,json=macMobility,proto3,oneof"`
}

type ExtendedCommunity_RouterMac struct {
	RouterMac *RouterMacExtended `protobuf:"bytes,14,opt,name=router_mac,json=routerMac,proto3,oneof"`
}

type ExtendedCommunity_TrafficRate struct {
	TrafficRate *TrafficRateExtended `protobuf:"bytes,15,opt,name=traffic_rate,json=trafficRate,proto3,oneof"`
}

type ExtendedCommunity_TrafficAction struct {
	TrafficAction *TrafficActionExtended `protobuf:"bytes,16,opt,name=traffic_action,json=trafficAction,proto3,oneof"`
}

type ExtendedCommunity_RedirectTwoOctetAsSpecific struct {
	RedirectTwoOctetAsSpecific *RedirectTwoOctetAsSpecificExtended `protobuf:"bytes,17,opt,name=redirect_two_octet_as_specific,json=redirectTwoOctetAsSpecific,proto3,oneof"`
}

type ExtendedCommunity_RedirectIpv4AddressSpecific struct {
	RedirectIpv4AddressSpecific *RedirectIPv4AddressSpecificExtended `protobuf:"bytes,18,opt,name=redirect_ipv4_address_specific,json=redirectIpv4AddressSpecific,proto3,oneof"`
}

type ExtendedCommunity_RedirectFourOctetAsSpecific struct {
	RedirectFourOctetAsSpecific *RedirectFourOctetAsSpecificExtended `protobuf:"bytes,19,opt,name=redirect_four_octet_as_specific,json=redirectFourOctetAsSpecific,proto3,oneof"`
}

type ExtendedCommunity_TrafficRemark struct {
	TrafficRemark *TrafficRemarkExtended `protobuf:"bytes,20,opt,name=traffic_remark,json=trafficRemark,proto3,oneof"`
}

type ExtendedCommunity_Mup struct {
	Mup *MUPExtended `protobuf:"bytes,21,opt,name=mup,proto3,oneof"`
}

type ExtendedCommunity_Vpls struct {
	Vpls *VPLSExtended `protobuf:"bytes,22,opt,name=vpls,proto3,oneof"`
}

type ExtendedCommunity_Etree struct {
	Etree *ETreeExtended `protobuf:"bytes,23,opt,name=etree,proto3,oneof"`
}

type ExtendedCommunity_MulticastFlags struct {
	MulticastFlags *MulticastFlagsExtended `protobuf:"bytes,24,opt,name=multicast_flags,json=multicastFlags,proto3,oneof"`
}

func (*ExtendedCommunity_Unknown) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_TwoOctetAsSpecific) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Ipv4AddressSpecific) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_FourOctetAsSpecific) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_LinkBandwidth) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Validation) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Color) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Encap) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_DefaultGateway) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Opaque) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_EsiLabel) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_EsImport) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_MacMobility) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_RouterMac) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_TrafficRate) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_TrafficAction) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_RedirectTwoOctetAsSpecific) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_RedirectIpv4AddressSpecific) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_RedirectFourOctetAsSpecific) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_TrafficRemark) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Mup) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Vpls) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_Etree) isExtendedCommunity_Extcom() {}

func (*ExtendedCommunity_MulticastFlags) isExtendedCommunity_Extcom() {}

type RouteTarget struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Rt:
	//
	//	*RouteTarget_TwoOctetAsSpecific
	//	*RouteTarget_Ipv4AddressSpecific
	//	*RouteTarget_FourOctetAsSpecific
	Rt            isRouteTarget_Rt `protobuf_oneof:"rt"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteTarget) Reset() {
	*x = RouteTarget{}
	mi := &file_api_extcom_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RouteTarget) ProtoMessage() {}

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

func (x *RouteTarget) GetRt() isRouteTarget_Rt {
	if x != nil {
		return x.Rt
	}
	return nil
}

func (x *RouteTarget) GetTwoOctetAsSpecific() *TwoOctetAsSpecificExtended {
	if x != nil {
		if x, ok := x.Rt.(*RouteTarget_TwoOctetAsSpecific); ok {
			return x.TwoOctetAsSpecific
		}
	}
	return nil
}

func (x *RouteTarget) GetIpv4AddressSpecific() *IPv4AddressSpecificExtended {
	if x != nil {
		if x, ok := x.Rt.(*RouteTarget_Ipv4AddressSpecific); ok {
			return x.Ipv4AddressSpecific
		}
	}
	return nil
}

func (x *RouteTarget) GetFourOctetAsSpecific() *FourOctetAsSpecificExtended {
	if x != nil {
		if x, ok := x.Rt.(*RouteTarget_FourOctetAsSpecific); ok {
			return x.FourOctetAsSpecific
		}
	}
	return nil
}

type isRouteTarget_Rt interface {
	isRouteTarget_Rt()
}

type RouteTarget_TwoOctetAsSpecific struct {
	TwoOctetAsSpecific *TwoOctetAsSpecificExtended `protobuf:"bytes,1,opt,name=two_octet_as_specific,json=twoOctetAsSpecific,proto3,oneof"`
}

type RouteTarget_Ipv4AddressSpecific struct {
	Ipv4AddressSpecific *IPv4AddressSpecificExtended `protobuf:"bytes,2,opt,name=ipv4_address_specific,json=ipv4AddressSpecific,proto3,oneof"`
}

type RouteTarget_FourOctetAsSpecific struct {
	FourOctetAsSpecific *FourOctetAsSpecificExtended `protobuf:"bytes,3,opt,name=four_octet_as_specific,json=fourOctetAsSpecific,proto3,oneof"`
}

func (*RouteTarget_TwoOctetAsSpecific) isRouteTarget_Rt() {}

func (*RouteTarget_Ipv4AddressSpecific) isRouteTarget_Rt() {}

func (*RouteTarget_FourOctetAsSpecific) isRouteTarget_Rt() {}

var File_api_extcom_proto protoreflect.FileDescriptor

const file_api_extcom_proto_rawDesc = "" +
	"\n" +
	"\x10api/extcom.proto\x12\x03api\"\x8f\x01\n" +
	"\x1aTwoOctetAsSpecificExtended\x12#\n" +
	"\ris_transitive\x18\x01 \x01(\bR\fisTransitive\x12\x19\n" +
	"\bsub_type\x18\x02 \x01(\rR\asubType\x12\x10\n" +
	"\x03asn\x18\x03 \x01(\rR\x03asn\x12\x1f\n" +
	"\vlocal_admin\x18\x04 \x01(\rR\n" +
	"localAdmin\"\x98\x01\n" +
	"\x1bIPv4AddressSpecificExtended\x12#\n" +
	"\ris_transitive\x18\x01 \x01(\bR\fisTransitive\x12\x19\n" +
	"\bsub_type\x18\x02 \x01(\rR\asubType\x12\x18\n" +
	"\aaddress\x18\x03 \x01(\tR\aaddress\x12\x1f\n" +
	"\vlocal_admin\x18\x04 \x01(\rR\n" +
	"localAdmin\"\x90\x01\n" +
	"\x1bFourOctetAsSpecificExtended\x12#\n" +
	"\ris_transitive\x18\x01 \x01(\bR\fisTransitive\x12\x19\n" +
	"\bsub_type\x18\x02 \x01(\rR\asubType\x12\x10\n" +
	"\x03asn\x18\x03 \x01(\rR\x03asn\x12\x1f\n" +
	"\vlocal_admin\x18\x04 \x01(\rR\n" +
	"localAdmin\"G\n" +
	"\x15LinkBandwidthExtended\x12\x10\n" +
	"\x03asn\x18\x01 \x01(\rR\x03asn\x12\x1c\n" +
	"\tbandwidth\x18\x02 \x01(\x02R\tbandwidth\"*\n" +
	"\x12ValidationExtended\x12\x14\n" +
	"\x05state\x18\x01 \x01(\rR\x05state\"%\n" +
	"\rColorExtended\x12\x14\n" +
	"\x05color\x18\x01 \x01(\rR\x05color\"0\n" +
	"\rEncapExtended\x12\x1f\n" +
	"\vtunnel_type\x18\x01 \x01(\rR\n" +
	"tunnelType\"\x18\n" +
	"\x16DefaultGatewayExtended\"K\n" +
	"\x0eOpaqueExtended\x12#\n" +
	"\ris_transitive\x18\x01 \x01(\bR\fisTransitive\x12\x14\n" +
	"\x05value\x18\x03 \x01(\fR\x05value\"R\n" +
	"\x10ESILabelExtended\x12(\n" +
	"\x10is_single_active\x18\x01 \x01(\bR\x0eisSingleActive\x12\x14\n" +
	"\x05label\x18\x02 \x01(\rR\x05label\"2\n" +
	"\x13ESImportRouteTarget\x12\x1b\n" +
	"\tes_import\x18\x01 \x01(\tR\besImport\"U\n" +
	"\x13MacMobilityExtended\x12\x1b\n" +
	"\tis_sticky\x18\x01 \x01(\bR\bisSticky\x12!\n" +
	"\fsequence_num\x18\x02 \x01(\rR\vsequenceNum\"%\n" +
	"\x11RouterMacExtended\x12\x10\n" +
	"\x03mac\x18\x01 \x01(\tR\x03mac\";\n" +
	"\x13TrafficRateExtended\x12\x10\n" +
	"\x03asn\x18\x01 \x01(\rR\x03asn\x12\x12\n" +
	"\x04rate\x18\x02 \x01(\x02R\x04rate\"K\n" +
	"\x15TrafficActionExtended\x12\x1a\n" +
	"\bterminal\x18\x01 \x01(\bR\bterminal\x12\x16\n" +
	"\x06sample\x18\x02 \x01(\bR\x06sample\"W\n" +
	"\"RedirectTwoOctetAsSpecificExtended\x12\x10\n" +
	"\x03asn\x18\x01 \x01(\rR\x03asn\x12\x1f\n" +
	"\vlocal_admin\x18\x02 \x01(\rR\n" +
	"localAdmin\"`\n" +
	"#RedirectIPv4AddressSpecificExtended\x12\x18\n" +
	"\aaddress\x18\x01 \x01(\tR\aaddress\x12\x1f\n" +
	"\vlocal_admin\x18\x02 \x01(\rR\n" +
	"localAdmin\"X\n" +
	"#RedirectFourOctetAsSpecificExtended\x12\x10\n" +
	"\x03asn\x18\x01 \x01(\rR\x03asn\x12\x1f\n" +
	"\vlocal_admin\x18\x02 \x01(\rR\n" +
	"localAdmin\"+\n" +
	"\x15TrafficRemarkExtended\x12\x12\n" +
	"\x04dscp\x18\x01 \x01(\rR\x04dscp\"j\n" +
	"\vMUPExtended\x12\x19\n" +
	"\bsub_type\x18\x01 \x01(\rR\asubType\x12\x1f\n" +
	"\vsegment_id2\x18\x02 \x01(\rR\n" +
	"segmentId2\x12\x1f\n" +
	"\vsegment_id4\x18\x03 \x01(\rR\n" +
	"segmentId4\"E\n" +
	"\fVPLSExtended\x12#\n" +
	"\rcontrol_flags\x18\x01 \x01(\rR\fcontrolFlags\x12\x10\n" +
	"\x03mtu\x18\x02 \x01(\rR\x03mtu\">\n" +
	"\rETreeExtended\x12\x17\n" +
	"\ais_leaf\x18\x01 \x01(\bR\x06isLeaf\x12\x14\n" +
	"\x05label\x18\x02 \x01(\rR\x05label\"^\n" +
	"\x16MulticastFlagsExtended\x12\"\n" +
	"\ris_igmp_proxy\x18\x01 \x01(\bR\visIgmpProxy\x12 \n" +
	"\fis_mld_proxy\x18\x02 \x01(\bR\n" +
	"isMldProxy\";\n" +
	"\x0fUnknownExtended\x12\x12\n" +
	"\x04type\x18\x01 \x01(\rR\x04type\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value\"\xea\f\n" +
	"\x11ExtendedCommunity\x120\n" +
	"\aunknown\x18\x01 \x01(\v2\x14.api.UnknownExtendedH\x00R\aunknown\x12T\n" +
	"\x15two_octet_as_specific\x18\x02 \x01(\v2\x1f.api.TwoOctetAsSpecificExtendedH\x00R\x12twoOctetAsSpecific\x12V\n" +
	"\x15ipv4_address_specific\x18\x03 \x01(\v2 .api.IPv4AddressSpecificExtendedH\x00R\x13ipv4AddressSpecific\x12W\n" +
	"\x16four_octet_as_specific\x18\x04 \x01(\v2 .api.FourOctetAsSpecificExtendedH\x00R\x13fourOctetAsSpecific\x12C\n" +
	"\x0elink_bandwidth\x18\x05 \x01(\v2\x1a.api.LinkBandwidthExtendedH\x00R\rlinkBandwidth\x129\n" +
	"\n" +
	"validation\x18\x06 \x01(\v2\x17.api.ValidationExtendedH\x00R\n" +
	"validation\x12*\n" +
	"\x05color\x18\a \x01(\v2\x12.api.ColorExtendedH\x00R\x05color\x12*\n" +
	"\x05encap\x18\b \x01(\v2\x12.api.EncapExtendedH\x00R\x05encap\x12F\n" +
	"\x0fdefault_gateway\x18\t \x01(\v2\x1b.api.DefaultGatewayExtendedH\x00R\x0edefaultGateway\x12-\n" +
	"\x06opaque\x18\n" +
	" \x01(\v2\x13.api.OpaqueExtendedH\x00R\x06opaque\x124\n" +
	"\tesi_label\x18\v \x01(\v2\x15.api.ESILabelExtendedH\x00R\besiLabel\x127\n" +
	"\tes_import\x18\f \x01(\v2\x18.api.ESImportRouteTargetH\x00R\besImport\x12=\n" +
	"\fmac_mobility\x18\r \x01(\v2\x18.api.MacMobilityExtendedH\x00R\vmacMobility\x127\n" +
	"\n" +
	"router_mac\x18\x0e \x01(\v2\x16.api.RouterMacExtendedH\x00R\trouterMac\x12=\n" +
	"\ftraffic_rate\x18\x0f \x01(\v2\x18.api.TrafficRateExtendedH\x00R\vtrafficRate\x12C\n" +
	"\x0etraffic_action\x18\x10 \x01(\v2\x1a.api.TrafficActionExtendedH\x00R\rtrafficAction\x12m\n" +
	"\x1eredirect_two_octet_as_specific\x18\x11 \x01(\v2'.api.RedirectTwoOctetAsSpecificExtendedH\x00R\x1aredirectTwoOctetAsSpecific\x12o\n" +
	"\x1eredirect_ipv4_address_specific\x18\x12 \x01(\v2(.api.RedirectIPv4AddressSpecificExtendedH\x00R\x1bredirectIpv4AddressSpecific\x12p\n" +
	"\x1fredirect_four_octet_as_specific\x18\x13 \x01(\v2(.api.RedirectFourOctetAsSpecificExtendedH\x00R\x1bredirectFourOctetAsSpecific\x12C\n" +
	"\x0etraffic_remark\x18\x14 \x01(\v2\x1a.api.TrafficRemarkExtendedH\x00R\rtrafficRemark\x12$\n" +
	"\x03mup\x18\x15 \x01(\v2\x10.api.MUPExtendedH\x00R\x03mup\x12'\n" +
	"\x04vpls\x18\x16 \x01(\v2\x11.api.VPLSExtendedH\x00R\x04vpls\x12*\n" +
	"\x05etree\x18\x17 \x01(\v2\x12.api.ETreeExtendedH\x00R\x05etree\x12F\n" +
	"\x0fmulticast_flags\x18\x18 \x01(\v2\x1b.api.MulticastFlagsExtendedH\x00R\x0emulticastFlagsB\b\n" +
	"\x06extcom\"\x9a\x02\n" +
	"\vRouteTarget\x12T\n" +
	"\x15two_octet_as_specific\x18\x01 \x01(\v2\x1f.api.TwoOctetAsSpecificExtendedH\x00R\x12twoOctetAsSpecific\x12V\n" +
	"\x15ipv4_address_specific\x18\x02 \x01(\v2 .api.IPv4AddressSpecificExtendedH\x00R\x13ipv4AddressSpecific\x12W\n" +
	"\x16four_octet_as_specific\x18\x03 \x01(\v2 .api.FourOctetAsSpecificExtendedH\x00R\x13fourOctetAsSpecificB\x04\n" +
	"\x02rtB\"Z github.com/osrg/gobgp/v4/api;apib\x06proto3"

var (
	file_api_extcom_proto_rawDescOnce sync.Once
	file_api_extcom_proto_rawDescData []byte
)

func file_api_extcom_proto_rawDescGZIP() []byte {
	file_api_extcom_proto_rawDescOnce.Do(func() {
		file_api_extcom_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_extcom_proto_rawDesc), len(file_api_extcom_proto_rawDesc)))
	})
	return file_api_extcom_proto_rawDescData
}

var file_api_extcom_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_api_extcom_proto_goTypes = []any{
	(*TwoOctetAsSpecificExtended)(nil),          // 0: api.TwoOctetAsSpecificExtended
	(*IPv4AddressSpecificExtended)(nil),         // 1: api.IPv4AddressSpecificExtended
	(*FourOctetAsSpecificExtended)(nil),         // 2: api.FourOctetAsSpecificExtended
	(*LinkBandwidthExtended)(nil),               // 3: api.LinkBandwidthExtended
	(*ValidationExtended)(nil),                  // 4: api.ValidationExtended
	(*ColorExtended)(nil),                       // 5: api.ColorExtended
	(*EncapExtended)(nil),                       // 6: api.EncapExtended
	(*DefaultGatewayExtended)(nil),              // 7: api.DefaultGatewayExtended
	(*OpaqueExtended)(nil),                      // 8: api.OpaqueExtended
	(*ESILabelExtended)(nil),                    // 9: api.ESILabelExtended
	(*ESImportRouteTarget)(nil),                 // 10: api.ESImportRouteTarget
	(*MacMobilityExtended)(nil),                 // 11: api.MacMobilityExtended
	(*RouterMacExtended)(nil),                   // 12: api.RouterMacExtended
	(*TrafficRateExtended)(nil),                 // 13: api.TrafficRateExtended
	(*TrafficActionExtended)(nil),               // 14: api.TrafficActionExtended
	(*RedirectTwoOctetAsSpecificExtended)(nil),  // 15: api.RedirectTwoOctetAsSpecificExtended
	(*RedirectIPv4AddressSpecificExtended)(nil), // 16: api.RedirectIPv4AddressSpecificExtended
	(*RedirectFourOctetAsSpecificExtended)(nil), // 17: api.RedirectFourOctetAsSpecificExtended
	(*TrafficRemarkExtended)(nil),               // 18: api.TrafficRemarkExtended
	(*MUPExtended)(nil),                         // 19: api.MUPExtended
	(*VPLSExtended)(nil),                        // 20: api.VPLSExtended
	(*ETreeExtended)(nil),                       // 21: api.ETreeExtended
	(*MulticastFlagsExtended)(nil),              // 22: api.MulticastFlagsExtended
	(*UnknownExtended)(nil),                     // 23: api.UnknownExtended
	(*ExtendedCommunity)(nil),                   // 24: api.ExtendedCommunity
	(*RouteTarget)(nil),                         // 25: api.RouteTarget
}
var file_api_extcom_proto_depIdxs = []int32{
	23, // 0: api.ExtendedCommunity.unknown:type_name -> api.UnknownExtended
	0,  // 1: api.ExtendedCommunity.two_octet_as_specific:type_name -> api.TwoOctetAsSpecificExtended
	1,  // 2: api.ExtendedCommunity.ipv4_address_specific:type_name -> api.IPv4AddressSpecificExtended
	2,  // 3: api.ExtendedCommunity.four_octet_as_specific:type_name -> api.FourOctetAsSpecificExtended
	3,  // 4: api.ExtendedCommunity.link_bandwidth:type_name -> api.LinkBandwidthExtended
	4,  // 5: api.ExtendedCommunity.validation:type_name -> api.ValidationExtended
	5,  // 6: api.ExtendedCommunity.color:type_name -> api.ColorExtended
	6,  // 7: api.ExtendedCommunity.encap:type_name -> api.EncapExtended
	7,  // 8: api.ExtendedCommunity.default_gateway:type_name -> api.DefaultGatewayExtended
	8,  // 9: api.ExtendedCommunity.opaque:type_name -> api.OpaqueExtended
	9,  // 10: api.ExtendedCommunity.esi_label:type_name -> api.ESILabelExtended
	10, // 11: api.ExtendedCommunity.es_import:type_name -> api.ESImportRouteTarget
	11, // 12: api.ExtendedCommunity.mac_mobility:type_name -> api.MacMobilityExtended
	12, // 13: api.ExtendedCommunity.router_mac:type_name -> api.RouterMacExtended
	13, // 14: api.ExtendedCommunity.traffic_rate:type_name -> api.TrafficRateExtended
	14, // 15: api.ExtendedCommunity.traffic_action:type_name -> api.TrafficActionExtended
	15, // 16: api.ExtendedCommunity.redirect_two_octet_as_specific:type_name -> api.RedirectTwoOctetAsSpecificExtended
	16, // 17: api.ExtendedCommunity.redirect_ipv4_address_specific:type_name -> api.RedirectIPv4AddressSpecificExtended
	17, // 18: api.ExtendedCommunity.redirect_four_octet_as_specific:type_name -> api.RedirectFourOctetAsSpecificExtended
	18, // 19: api.ExtendedCommunity.traffic_remark:type_name -> api.TrafficRemarkExtended
	19, // 20: api.ExtendedCommunity.mup:type_name -> api.MUPExtended
	20, // 21: api.ExtendedCommunity.vpls:type_name -> api.VPLSExtended
	21, // 22: api.ExtendedCommunity.etree:type_name -> api.ETreeExtended
	22, // 23: api.ExtendedCommunity.multicast_flags:type_name -> api.MulticastFlagsExtended
	0,  // 24: api.RouteTarget.two_octet_as_specific:type_name -> api.TwoOctetAsSpecificExtended
	1,  // 25: api.RouteTarget.ipv4_address_specific:type_name -> api.IPv4AddressSpecificExtended
	2,  // 26: api.RouteTarget.four_octet_as_specific:type_name -> api.FourOctetAsSpecificExtended
	27, // [27:27] is the sub-list for method output_type
	27, // [27:27] is the sub-list for method input_type
	27, // [27:27] is the sub-list for extension type_name
	27, // [27:27] is the sub-list for extension extendee
	0,  // [0:27] is the sub-list for field type_name
}

func init() { file_api_extcom_proto_init() }
func file_api_extcom_proto_init() {
	if File_api_extcom_proto != nil {
		return
	}
	file_api_extcom_proto_msgTypes[24].OneofWrappers = []any{
		(*ExtendedCommunity_Unknown)(nil),
		(*ExtendedCommunity_TwoOctetAsSpecific)(nil),
		(*ExtendedCommunity_Ipv4AddressSpecific)(nil),
		(*ExtendedCommunity_FourOctetAsSpecific)(nil),
		(*ExtendedCommunity_LinkBandwidth)(nil),
		(*ExtendedCommunity_Validation)(nil),
		(*ExtendedCommunity_Color)(nil),
		(*ExtendedCommunity_Encap)(nil),
		(*ExtendedCommunity_DefaultGateway)(nil),
		(*ExtendedCommunity_Opaque)(nil),
		(*ExtendedCommunity_EsiLabel)(nil),
		(*ExtendedCommunity_EsImport)(nil),
		(*ExtendedCommunity_MacMobility)(nil),
		(*ExtendedCommunity_RouterMac)(nil),
		(*ExtendedCommunity_TrafficRate)(nil),
		(*ExtendedCommunity_TrafficAction)(nil),
		(*ExtendedCommunity_RedirectTwoOctetAsSpecific)(nil),
		(*ExtendedCommunity_RedirectIpv4AddressSpecific)(nil),
		(*ExtendedCommunity_RedirectFourOctetAsSpecific)(nil),
		(*ExtendedCommunity_TrafficRemark)(nil),
		(*ExtendedCommunity_Mup)(nil),
		(*ExtendedCommunity_Vpls)(nil),
		(*ExtendedCommunity_Etree)(nil),
		(*ExtendedCommunity_MulticastFlags)(nil),
	}
	file_api_extcom_proto_msgTypes[25].OneofWrappers = []any{
		(*RouteTarget_TwoOctetAsSpecific)(nil),
		(*RouteTarget_Ipv4AddressSpecific)(nil),
		(*RouteTarget_FourOctetAsSpecific)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_extcom_proto_rawDesc), len(file_api_extcom_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   26,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_api_extcom_proto_goTypes,
		DependencyIndexes: file_api_extcom_proto_depIdxs,
		MessageInfos:      file_api_extcom_proto_msgTypes,
	}.Build()
	File_api_extcom_proto = out.File
	file_api_extcom_proto_goTypes = nil
	file_api_extcom_proto_depIdxs = nil
}
