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

package voltha

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	any "github.com/golang/protobuf/ptypes/any"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	_ "github.com/opencord/voltha-protos/v3/go/common"
	math "math"
)

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

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

type AdapterConfig struct {
	// Custom (vendor-specific) configuration attributes
	AdditionalConfig     *any.Any `protobuf:"bytes,64,opt,name=additional_config,json=additionalConfig,proto3" json:"additional_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AdapterConfig proto.InternalMessageInfo

func (m *AdapterConfig) GetAdditionalConfig() *any.Any {
	if m != nil {
		return m.AdditionalConfig
	}
	return nil
}

// Adapter (software plugin)
type Adapter struct {
	// Unique name of adapter, matching the python package name under
	// voltha/adapters.
	Id      string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Vendor  string `protobuf:"bytes,2,opt,name=vendor,proto3" json:"vendor,omitempty"`
	Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	// Adapter configuration
	Config *AdapterConfig `protobuf:"bytes,16,opt,name=config,proto3" json:"config,omitempty"`
	// Custom descriptors and custom configuration
	AdditionalDescription *any.Any `protobuf:"bytes,64,opt,name=additional_description,json=additionalDescription,proto3" json:"additional_description,omitempty"`
	LogicalDeviceIds      []string `protobuf:"bytes,4,rep,name=logical_device_ids,json=logicalDeviceIds,proto3" json:"logical_device_ids,omitempty"`
	// timestamp when the adapter last sent a message to the core
	LastCommunication    *timestamp.Timestamp `protobuf:"bytes,5,opt,name=last_communication,json=lastCommunication,proto3" json:"last_communication,omitempty"`
	CurrentReplica       int32                `protobuf:"varint,6,opt,name=currentReplica,proto3" json:"currentReplica,omitempty"`
	TotalReplicas        int32                `protobuf:"varint,7,opt,name=totalReplicas,proto3" json:"totalReplicas,omitempty"`
	Endpoint             string               `protobuf:"bytes,8,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_Adapter proto.InternalMessageInfo

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

func (m *Adapter) GetVendor() string {
	if m != nil {
		return m.Vendor
	}
	return ""
}

func (m *Adapter) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *Adapter) GetConfig() *AdapterConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *Adapter) GetAdditionalDescription() *any.Any {
	if m != nil {
		return m.AdditionalDescription
	}
	return nil
}

func (m *Adapter) GetLogicalDeviceIds() []string {
	if m != nil {
		return m.LogicalDeviceIds
	}
	return nil
}

func (m *Adapter) GetLastCommunication() *timestamp.Timestamp {
	if m != nil {
		return m.LastCommunication
	}
	return nil
}

func (m *Adapter) GetCurrentReplica() int32 {
	if m != nil {
		return m.CurrentReplica
	}
	return 0
}

func (m *Adapter) GetTotalReplicas() int32 {
	if m != nil {
		return m.TotalReplicas
	}
	return 0
}

func (m *Adapter) GetEndpoint() string {
	if m != nil {
		return m.Endpoint
	}
	return ""
}

type Adapters struct {
	Items                []*Adapter `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

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

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

var xxx_messageInfo_Adapters proto.InternalMessageInfo

func (m *Adapters) GetItems() []*Adapter {
	if m != nil {
		return m.Items
	}
	return nil
}

func init() {
	proto.RegisterType((*AdapterConfig)(nil), "voltha.AdapterConfig")
	proto.RegisterType((*Adapter)(nil), "voltha.Adapter")
	proto.RegisterType((*Adapters)(nil), "voltha.Adapters")
}

func init() { proto.RegisterFile("voltha_protos/adapter.proto", fileDescriptor_7e998ce153307274) }

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