// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.6 // protoc v6.30.2 // source: gw/gw.proto package gw import ( common "github.com/chirpstack/chirpstack/api/go/v4/common" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" _ "google.golang.org/protobuf/types/known/structpb" 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 CodeRate int32 const ( CodeRate_CR_UNDEFINED CodeRate = 0 CodeRate_CR_4_5 CodeRate = 1 // LoRa CodeRate_CR_4_6 CodeRate = 2 CodeRate_CR_4_7 CodeRate = 3 CodeRate_CR_4_8 CodeRate = 4 CodeRate_CR_3_8 CodeRate = 5 // LR-FHSS CodeRate_CR_2_6 CodeRate = 6 CodeRate_CR_1_4 CodeRate = 7 CodeRate_CR_1_6 CodeRate = 8 CodeRate_CR_5_6 CodeRate = 9 CodeRate_CR_LI_4_5 CodeRate = 10 // LoRa 2.4 gHz CodeRate_CR_LI_4_6 CodeRate = 11 CodeRate_CR_LI_4_8 CodeRate = 12 ) // Enum value maps for CodeRate. var ( CodeRate_name = map[int32]string{ 0: "CR_UNDEFINED", 1: "CR_4_5", 2: "CR_4_6", 3: "CR_4_7", 4: "CR_4_8", 5: "CR_3_8", 6: "CR_2_6", 7: "CR_1_4", 8: "CR_1_6", 9: "CR_5_6", 10: "CR_LI_4_5", 11: "CR_LI_4_6", 12: "CR_LI_4_8", } CodeRate_value = map[string]int32{ "CR_UNDEFINED": 0, "CR_4_5": 1, "CR_4_6": 2, "CR_4_7": 3, "CR_4_8": 4, "CR_3_8": 5, "CR_2_6": 6, "CR_1_4": 7, "CR_1_6": 8, "CR_5_6": 9, "CR_LI_4_5": 10, "CR_LI_4_6": 11, "CR_LI_4_8": 12, } ) func (x CodeRate) Enum() *CodeRate { p := new(CodeRate) *p = x return p } func (x CodeRate) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CodeRate) Descriptor() protoreflect.EnumDescriptor { return file_gw_gw_proto_enumTypes[0].Descriptor() } func (CodeRate) Type() protoreflect.EnumType { return &file_gw_gw_proto_enumTypes[0] } func (x CodeRate) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CodeRate.Descriptor instead. func (CodeRate) EnumDescriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{0} } type DownlinkTiming int32 const ( // Send the downlink immediately. DownlinkTiming_IMMEDIATELY DownlinkTiming = 0 // Send downlink at the given delay (based on provided context). DownlinkTiming_DELAY DownlinkTiming = 1 // Send at given GPS epoch value. DownlinkTiming_GPS_EPOCH DownlinkTiming = 2 ) // Enum value maps for DownlinkTiming. var ( DownlinkTiming_name = map[int32]string{ 0: "IMMEDIATELY", 1: "DELAY", 2: "GPS_EPOCH", } DownlinkTiming_value = map[string]int32{ "IMMEDIATELY": 0, "DELAY": 1, "GPS_EPOCH": 2, } ) func (x DownlinkTiming) Enum() *DownlinkTiming { p := new(DownlinkTiming) *p = x return p } func (x DownlinkTiming) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DownlinkTiming) Descriptor() protoreflect.EnumDescriptor { return file_gw_gw_proto_enumTypes[1].Descriptor() } func (DownlinkTiming) Type() protoreflect.EnumType { return &file_gw_gw_proto_enumTypes[1] } func (x DownlinkTiming) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DownlinkTiming.Descriptor instead. func (DownlinkTiming) EnumDescriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{1} } type FineTimestampType int32 const ( // No fine-timestamp available. FineTimestampType_NONE FineTimestampType = 0 // Encrypted fine-timestamp. FineTimestampType_ENCRYPTED FineTimestampType = 1 // Plain fine-timestamp. FineTimestampType_PLAIN FineTimestampType = 2 ) // Enum value maps for FineTimestampType. var ( FineTimestampType_name = map[int32]string{ 0: "NONE", 1: "ENCRYPTED", 2: "PLAIN", } FineTimestampType_value = map[string]int32{ "NONE": 0, "ENCRYPTED": 1, "PLAIN": 2, } ) func (x FineTimestampType) Enum() *FineTimestampType { p := new(FineTimestampType) *p = x return p } func (x FineTimestampType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FineTimestampType) Descriptor() protoreflect.EnumDescriptor { return file_gw_gw_proto_enumTypes[2].Descriptor() } func (FineTimestampType) Type() protoreflect.EnumType { return &file_gw_gw_proto_enumTypes[2] } func (x FineTimestampType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use FineTimestampType.Descriptor instead. func (FineTimestampType) EnumDescriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{2} } type CRCStatus int32 const ( // No CRC. CRCStatus_NO_CRC CRCStatus = 0 // Bad CRC. CRCStatus_BAD_CRC CRCStatus = 1 // CRC OK. CRCStatus_CRC_OK CRCStatus = 2 ) // Enum value maps for CRCStatus. var ( CRCStatus_name = map[int32]string{ 0: "NO_CRC", 1: "BAD_CRC", 2: "CRC_OK", } CRCStatus_value = map[string]int32{ "NO_CRC": 0, "BAD_CRC": 1, "CRC_OK": 2, } ) func (x CRCStatus) Enum() *CRCStatus { p := new(CRCStatus) *p = x return p } func (x CRCStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CRCStatus) Descriptor() protoreflect.EnumDescriptor { return file_gw_gw_proto_enumTypes[3].Descriptor() } func (CRCStatus) Type() protoreflect.EnumType { return &file_gw_gw_proto_enumTypes[3] } func (x CRCStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CRCStatus.Descriptor instead. func (CRCStatus) EnumDescriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{3} } type TxAckStatus int32 const ( // Ignored (when a previous item was already emitted). TxAckStatus_IGNORED TxAckStatus = 0 // Packet has been programmed for downlink. TxAckStatus_OK TxAckStatus = 1 // Rejected because it was already too late to program this packet for // downlink. TxAckStatus_TOO_LATE TxAckStatus = 2 // Rejected because downlink packet timestamp is too much in advance. TxAckStatus_TOO_EARLY TxAckStatus = 3 // Rejected because there was already a packet programmed in requested // timeframe. TxAckStatus_COLLISION_PACKET TxAckStatus = 4 // Rejected because there was already a beacon planned in requested timeframe. TxAckStatus_COLLISION_BEACON TxAckStatus = 5 // Rejected because requested frequency is not supported by TX RF chain. TxAckStatus_TX_FREQ TxAckStatus = 6 // Rejected because requested power is not supported by gateway. TxAckStatus_TX_POWER TxAckStatus = 7 // Rejected because GPS is unlocked, so GPS timestamp cannot be used. TxAckStatus_GPS_UNLOCKED TxAckStatus = 8 // Downlink queue is full. TxAckStatus_QUEUE_FULL TxAckStatus = 9 // Internal error. TxAckStatus_INTERNAL_ERROR TxAckStatus = 10 // Duty-cycle overflow. TxAckStatus_DUTY_CYCLE_OVERFLOW TxAckStatus = 11 ) // Enum value maps for TxAckStatus. var ( TxAckStatus_name = map[int32]string{ 0: "IGNORED", 1: "OK", 2: "TOO_LATE", 3: "TOO_EARLY", 4: "COLLISION_PACKET", 5: "COLLISION_BEACON", 6: "TX_FREQ", 7: "TX_POWER", 8: "GPS_UNLOCKED", 9: "QUEUE_FULL", 10: "INTERNAL_ERROR", 11: "DUTY_CYCLE_OVERFLOW", } TxAckStatus_value = map[string]int32{ "IGNORED": 0, "OK": 1, "TOO_LATE": 2, "TOO_EARLY": 3, "COLLISION_PACKET": 4, "COLLISION_BEACON": 5, "TX_FREQ": 6, "TX_POWER": 7, "GPS_UNLOCKED": 8, "QUEUE_FULL": 9, "INTERNAL_ERROR": 10, "DUTY_CYCLE_OVERFLOW": 11, } ) func (x TxAckStatus) Enum() *TxAckStatus { p := new(TxAckStatus) *p = x return p } func (x TxAckStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TxAckStatus) Descriptor() protoreflect.EnumDescriptor { return file_gw_gw_proto_enumTypes[4].Descriptor() } func (TxAckStatus) Type() protoreflect.EnumType { return &file_gw_gw_proto_enumTypes[4] } func (x TxAckStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TxAckStatus.Descriptor instead. func (TxAckStatus) EnumDescriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{4} } type ConnState_State int32 const ( ConnState_OFFLINE ConnState_State = 0 ConnState_ONLINE ConnState_State = 1 ) // Enum value maps for ConnState_State. var ( ConnState_State_name = map[int32]string{ 0: "OFFLINE", 1: "ONLINE", } ConnState_State_value = map[string]int32{ "OFFLINE": 0, "ONLINE": 1, } ) func (x ConnState_State) Enum() *ConnState_State { p := new(ConnState_State) *p = x return p } func (x ConnState_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ConnState_State) Descriptor() protoreflect.EnumDescriptor { return file_gw_gw_proto_enumTypes[5].Descriptor() } func (ConnState_State) Type() protoreflect.EnumType { return &file_gw_gw_proto_enumTypes[5] } func (x ConnState_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ConnState_State.Descriptor instead. func (ConnState_State) EnumDescriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{44, 0} } // Gateway events as reported by the ChirpStack Concentratord ZMQ interface. type Event struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Event: // // *Event_UplinkFrame // *Event_GatewayStats // *Event_Mesh Event isEvent_Event `protobuf_oneof:"event"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Event) Reset() { *x = Event{} mi := &file_gw_gw_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Event) String() string { return protoimpl.X.MessageStringOf(x) } func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{0} } func (x *Event) GetEvent() isEvent_Event { if x != nil { return x.Event } return nil } func (x *Event) GetUplinkFrame() *UplinkFrame { if x != nil { if x, ok := x.Event.(*Event_UplinkFrame); ok { return x.UplinkFrame } } return nil } func (x *Event) GetGatewayStats() *GatewayStats { if x != nil { if x, ok := x.Event.(*Event_GatewayStats); ok { return x.GatewayStats } } return nil } func (x *Event) GetMesh() *MeshEvent { if x != nil { if x, ok := x.Event.(*Event_Mesh); ok { return x.Mesh } } return nil } type isEvent_Event interface { isEvent_Event() } type Event_UplinkFrame struct { // Uplink frame. UplinkFrame *UplinkFrame `protobuf:"bytes,1,opt,name=uplink_frame,json=uplinkFrame,proto3,oneof"` } type Event_GatewayStats struct { // Gateway stats. GatewayStats *GatewayStats `protobuf:"bytes,2,opt,name=gateway_stats,json=gatewayStats,proto3,oneof"` } type Event_Mesh struct { // Gateway Mesh Event. Mesh *MeshEvent `protobuf:"bytes,3,opt,name=mesh,proto3,oneof"` } func (*Event_UplinkFrame) isEvent_Event() {} func (*Event_GatewayStats) isEvent_Event() {} func (*Event_Mesh) isEvent_Event() {} // Commands that can be sent to the ChirpStack Concentratord ZMQ interface. type Command struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Command: // // *Command_SendDownlinkFrame // *Command_SetGatewayConfiguration // *Command_GetGatewayId // *Command_GetLocation // *Command_Mesh Command isCommand_Command `protobuf_oneof:"command"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Command) Reset() { *x = Command{} mi := &file_gw_gw_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Command) String() string { return protoimpl.X.MessageStringOf(x) } func (*Command) ProtoMessage() {} func (x *Command) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 Command.ProtoReflect.Descriptor instead. func (*Command) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{1} } func (x *Command) GetCommand() isCommand_Command { if x != nil { return x.Command } return nil } func (x *Command) GetSendDownlinkFrame() *DownlinkFrame { if x != nil { if x, ok := x.Command.(*Command_SendDownlinkFrame); ok { return x.SendDownlinkFrame } } return nil } func (x *Command) GetSetGatewayConfiguration() *GatewayConfiguration { if x != nil { if x, ok := x.Command.(*Command_SetGatewayConfiguration); ok { return x.SetGatewayConfiguration } } return nil } func (x *Command) GetGetGatewayId() *GetGatewayIdRequest { if x != nil { if x, ok := x.Command.(*Command_GetGatewayId); ok { return x.GetGatewayId } } return nil } func (x *Command) GetGetLocation() *GetLocationRequest { if x != nil { if x, ok := x.Command.(*Command_GetLocation); ok { return x.GetLocation } } return nil } func (x *Command) GetMesh() *MeshCommand { if x != nil { if x, ok := x.Command.(*Command_Mesh); ok { return x.Mesh } } return nil } type isCommand_Command interface { isCommand_Command() } type Command_SendDownlinkFrame struct { // Downlink frame. SendDownlinkFrame *DownlinkFrame `protobuf:"bytes,1,opt,name=send_downlink_frame,json=sendDownlinkFrame,proto3,oneof"` } type Command_SetGatewayConfiguration struct { // Gateway configuration. SetGatewayConfiguration *GatewayConfiguration `protobuf:"bytes,2,opt,name=set_gateway_configuration,json=setGatewayConfiguration,proto3,oneof"` } type Command_GetGatewayId struct { // Get Gateway ID. GetGatewayId *GetGatewayIdRequest `protobuf:"bytes,3,opt,name=get_gateway_id,json=getGatewayId,proto3,oneof"` } type Command_GetLocation struct { // Get location. GetLocation *GetLocationRequest `protobuf:"bytes,4,opt,name=get_location,json=getLocation,proto3,oneof"` } type Command_Mesh struct { // Gateway Mesh Command. Mesh *MeshCommand `protobuf:"bytes,5,opt,name=mesh,proto3,oneof"` } func (*Command_SendDownlinkFrame) isCommand_Command() {} func (*Command_SetGatewayConfiguration) isCommand_Command() {} func (*Command_GetGatewayId) isCommand_Command() {} func (*Command_GetLocation) isCommand_Command() {} func (*Command_Mesh) isCommand_Command() {} type MeshEvent struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID (of the Border Gateway). GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Relay ID. RelayId string `protobuf:"bytes,2,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"` // Timestamp (second precision). Time *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"` // Mesh events. Events []*MeshEventItem `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshEvent) Reset() { *x = MeshEvent{} mi := &file_gw_gw_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshEvent) ProtoMessage() {} func (x *MeshEvent) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshEvent.ProtoReflect.Descriptor instead. func (*MeshEvent) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{2} } func (x *MeshEvent) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *MeshEvent) GetRelayId() string { if x != nil { return x.RelayId } return "" } func (x *MeshEvent) GetTime() *timestamppb.Timestamp { if x != nil { return x.Time } return nil } func (x *MeshEvent) GetEvents() []*MeshEventItem { if x != nil { return x.Events } return nil } type MeshEventItem struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Event: // // *MeshEventItem_Proprietary // *MeshEventItem_Heartbeat Event isMeshEventItem_Event `protobuf_oneof:"event"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshEventItem) Reset() { *x = MeshEventItem{} mi := &file_gw_gw_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshEventItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshEventItem) ProtoMessage() {} func (x *MeshEventItem) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshEventItem.ProtoReflect.Descriptor instead. func (*MeshEventItem) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{3} } func (x *MeshEventItem) GetEvent() isMeshEventItem_Event { if x != nil { return x.Event } return nil } func (x *MeshEventItem) GetProprietary() *MeshEventProprietary { if x != nil { if x, ok := x.Event.(*MeshEventItem_Proprietary); ok { return x.Proprietary } } return nil } func (x *MeshEventItem) GetHeartbeat() *MeshEventHeartbeat { if x != nil { if x, ok := x.Event.(*MeshEventItem_Heartbeat); ok { return x.Heartbeat } } return nil } type isMeshEventItem_Event interface { isMeshEventItem_Event() } type MeshEventItem_Proprietary struct { // Proprietary Mesh event. Proprietary *MeshEventProprietary `protobuf:"bytes,1,opt,name=proprietary,proto3,oneof"` } type MeshEventItem_Heartbeat struct { // Mesh heartbeat. Heartbeat *MeshEventHeartbeat `protobuf:"bytes,2,opt,name=heartbeat,proto3,oneof"` } func (*MeshEventItem_Proprietary) isMeshEventItem_Event() {} func (*MeshEventItem_Heartbeat) isMeshEventItem_Event() {} type MeshCommand struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID (of the Border Gateway). GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Relay ID. RelayId string `protobuf:"bytes,2,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"` // Mesh events. Commands []*MeshCommandItem `protobuf:"bytes,3,rep,name=commands,proto3" json:"commands,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshCommand) Reset() { *x = MeshCommand{} mi := &file_gw_gw_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshCommand) ProtoMessage() {} func (x *MeshCommand) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshCommand.ProtoReflect.Descriptor instead. func (*MeshCommand) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{4} } func (x *MeshCommand) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *MeshCommand) GetRelayId() string { if x != nil { return x.RelayId } return "" } func (x *MeshCommand) GetCommands() []*MeshCommandItem { if x != nil { return x.Commands } return nil } type MeshCommandItem struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Command: // // *MeshCommandItem_Proprietary Command isMeshCommandItem_Command `protobuf_oneof:"command"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshCommandItem) Reset() { *x = MeshCommandItem{} mi := &file_gw_gw_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshCommandItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshCommandItem) ProtoMessage() {} func (x *MeshCommandItem) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshCommandItem.ProtoReflect.Descriptor instead. func (*MeshCommandItem) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{5} } func (x *MeshCommandItem) GetCommand() isMeshCommandItem_Command { if x != nil { return x.Command } return nil } func (x *MeshCommandItem) GetProprietary() *MeshCommandProprietary { if x != nil { if x, ok := x.Command.(*MeshCommandItem_Proprietary); ok { return x.Proprietary } } return nil } type isMeshCommandItem_Command interface { isMeshCommandItem_Command() } type MeshCommandItem_Proprietary struct { // Proprietary Mesh command. Proprietary *MeshCommandProprietary `protobuf:"bytes,1,opt,name=proprietary,proto3,oneof"` } func (*MeshCommandItem_Proprietary) isMeshCommandItem_Command() {} type Modulation struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Parameters: // // *Modulation_Lora // *Modulation_Fsk // *Modulation_LrFhss Parameters isModulation_Parameters `protobuf_oneof:"parameters"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Modulation) Reset() { *x = Modulation{} mi := &file_gw_gw_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Modulation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Modulation) ProtoMessage() {} func (x *Modulation) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 Modulation.ProtoReflect.Descriptor instead. func (*Modulation) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{6} } func (x *Modulation) GetParameters() isModulation_Parameters { if x != nil { return x.Parameters } return nil } func (x *Modulation) GetLora() *LoraModulationInfo { if x != nil { if x, ok := x.Parameters.(*Modulation_Lora); ok { return x.Lora } } return nil } func (x *Modulation) GetFsk() *FskModulationInfo { if x != nil { if x, ok := x.Parameters.(*Modulation_Fsk); ok { return x.Fsk } } return nil } func (x *Modulation) GetLrFhss() *LrFhssModulationInfo { if x != nil { if x, ok := x.Parameters.(*Modulation_LrFhss); ok { return x.LrFhss } } return nil } type isModulation_Parameters interface { isModulation_Parameters() } type Modulation_Lora struct { // LoRa modulation information. Lora *LoraModulationInfo `protobuf:"bytes,3,opt,name=lora,proto3,oneof"` } type Modulation_Fsk struct { // FSK modulation information. Fsk *FskModulationInfo `protobuf:"bytes,4,opt,name=fsk,proto3,oneof"` } type Modulation_LrFhss struct { // LR-FHSS modulation information. LrFhss *LrFhssModulationInfo `protobuf:"bytes,5,opt,name=lr_fhss,json=lrFhss,proto3,oneof"` } func (*Modulation_Lora) isModulation_Parameters() {} func (*Modulation_Fsk) isModulation_Parameters() {} func (*Modulation_LrFhss) isModulation_Parameters() {} type UplinkTxInfoLegacy struct { state protoimpl.MessageState `protogen:"open.v1"` // Frequency (Hz). Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"` // Modulation. Modulation common.Modulation `protobuf:"varint,2,opt,name=modulation,proto3,enum=common.Modulation" json:"modulation,omitempty"` // Types that are valid to be assigned to ModulationInfo: // // *UplinkTxInfoLegacy_LoraModulationInfo // *UplinkTxInfoLegacy_FskModulationInfo // *UplinkTxInfoLegacy_LrFhssModulationInfo ModulationInfo isUplinkTxInfoLegacy_ModulationInfo `protobuf_oneof:"modulation_info"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UplinkTxInfoLegacy) Reset() { *x = UplinkTxInfoLegacy{} mi := &file_gw_gw_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UplinkTxInfoLegacy) String() string { return protoimpl.X.MessageStringOf(x) } func (*UplinkTxInfoLegacy) ProtoMessage() {} func (x *UplinkTxInfoLegacy) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 UplinkTxInfoLegacy.ProtoReflect.Descriptor instead. func (*UplinkTxInfoLegacy) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{7} } func (x *UplinkTxInfoLegacy) GetFrequency() uint32 { if x != nil { return x.Frequency } return 0 } func (x *UplinkTxInfoLegacy) GetModulation() common.Modulation { if x != nil { return x.Modulation } return common.Modulation(0) } func (x *UplinkTxInfoLegacy) GetModulationInfo() isUplinkTxInfoLegacy_ModulationInfo { if x != nil { return x.ModulationInfo } return nil } func (x *UplinkTxInfoLegacy) GetLoraModulationInfo() *LoraModulationInfo { if x != nil { if x, ok := x.ModulationInfo.(*UplinkTxInfoLegacy_LoraModulationInfo); ok { return x.LoraModulationInfo } } return nil } func (x *UplinkTxInfoLegacy) GetFskModulationInfo() *FskModulationInfo { if x != nil { if x, ok := x.ModulationInfo.(*UplinkTxInfoLegacy_FskModulationInfo); ok { return x.FskModulationInfo } } return nil } func (x *UplinkTxInfoLegacy) GetLrFhssModulationInfo() *LrFhssModulationInfo { if x != nil { if x, ok := x.ModulationInfo.(*UplinkTxInfoLegacy_LrFhssModulationInfo); ok { return x.LrFhssModulationInfo } } return nil } type isUplinkTxInfoLegacy_ModulationInfo interface { isUplinkTxInfoLegacy_ModulationInfo() } type UplinkTxInfoLegacy_LoraModulationInfo struct { // LoRa modulation information. LoraModulationInfo *LoraModulationInfo `protobuf:"bytes,3,opt,name=lora_modulation_info,json=loraModulationInfo,proto3,oneof"` } type UplinkTxInfoLegacy_FskModulationInfo struct { // FSK modulation information. FskModulationInfo *FskModulationInfo `protobuf:"bytes,4,opt,name=fsk_modulation_info,json=fskModulationInfo,proto3,oneof"` } type UplinkTxInfoLegacy_LrFhssModulationInfo struct { // LR-FHSS modulation information. LrFhssModulationInfo *LrFhssModulationInfo `protobuf:"bytes,5,opt,name=lr_fhss_modulation_info,json=lrFhssModulationInfo,proto3,oneof"` } func (*UplinkTxInfoLegacy_LoraModulationInfo) isUplinkTxInfoLegacy_ModulationInfo() {} func (*UplinkTxInfoLegacy_FskModulationInfo) isUplinkTxInfoLegacy_ModulationInfo() {} func (*UplinkTxInfoLegacy_LrFhssModulationInfo) isUplinkTxInfoLegacy_ModulationInfo() {} type UplinkTxInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Frequency (Hz). Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"` // Modulation. Modulation *Modulation `protobuf:"bytes,2,opt,name=modulation,proto3" json:"modulation,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UplinkTxInfo) Reset() { *x = UplinkTxInfo{} mi := &file_gw_gw_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UplinkTxInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UplinkTxInfo) ProtoMessage() {} func (x *UplinkTxInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 UplinkTxInfo.ProtoReflect.Descriptor instead. func (*UplinkTxInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{8} } func (x *UplinkTxInfo) GetFrequency() uint32 { if x != nil { return x.Frequency } return 0 } func (x *UplinkTxInfo) GetModulation() *Modulation { if x != nil { return x.Modulation } return nil } type LoraModulationInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Bandwidth. Bandwidth uint32 `protobuf:"varint,1,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"` // Speading-factor. SpreadingFactor uint32 `protobuf:"varint,2,opt,name=spreading_factor,json=spreadingFactor,proto3" json:"spreading_factor,omitempty"` // Code-rate. CodeRateLegacy string `protobuf:"bytes,3,opt,name=code_rate_legacy,json=codeRateLegacy,proto3" json:"code_rate_legacy,omitempty"` // Code-rate. CodeRate CodeRate `protobuf:"varint,5,opt,name=code_rate,json=codeRate,proto3,enum=gw.CodeRate" json:"code_rate,omitempty"` // Polarization inversion. PolarizationInversion bool `protobuf:"varint,4,opt,name=polarization_inversion,json=polarizationInversion,proto3" json:"polarization_inversion,omitempty"` // Preamble length (for TX). Preamble uint32 `protobuf:"varint,6,opt,name=preamble,proto3" json:"preamble,omitempty"` // No CRC (for TX). // // If true, do not send a CRC in the packet. NoCrc bool `protobuf:"varint,7,opt,name=no_crc,json=noCrc,proto3" json:"no_crc,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *LoraModulationInfo) Reset() { *x = LoraModulationInfo{} mi := &file_gw_gw_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *LoraModulationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoraModulationInfo) ProtoMessage() {} func (x *LoraModulationInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 LoraModulationInfo.ProtoReflect.Descriptor instead. func (*LoraModulationInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{9} } func (x *LoraModulationInfo) GetBandwidth() uint32 { if x != nil { return x.Bandwidth } return 0 } func (x *LoraModulationInfo) GetSpreadingFactor() uint32 { if x != nil { return x.SpreadingFactor } return 0 } func (x *LoraModulationInfo) GetCodeRateLegacy() string { if x != nil { return x.CodeRateLegacy } return "" } func (x *LoraModulationInfo) GetCodeRate() CodeRate { if x != nil { return x.CodeRate } return CodeRate_CR_UNDEFINED } func (x *LoraModulationInfo) GetPolarizationInversion() bool { if x != nil { return x.PolarizationInversion } return false } func (x *LoraModulationInfo) GetPreamble() uint32 { if x != nil { return x.Preamble } return 0 } func (x *LoraModulationInfo) GetNoCrc() bool { if x != nil { return x.NoCrc } return false } type FskModulationInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Frequency deviation. FrequencyDeviation uint32 `protobuf:"varint,1,opt,name=frequency_deviation,json=frequencyDeviation,proto3" json:"frequency_deviation,omitempty"` // FSK datarate (bits / sec). Datarate uint32 `protobuf:"varint,2,opt,name=datarate,proto3" json:"datarate,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *FskModulationInfo) Reset() { *x = FskModulationInfo{} mi := &file_gw_gw_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *FskModulationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FskModulationInfo) ProtoMessage() {} func (x *FskModulationInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 FskModulationInfo.ProtoReflect.Descriptor instead. func (*FskModulationInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{10} } func (x *FskModulationInfo) GetFrequencyDeviation() uint32 { if x != nil { return x.FrequencyDeviation } return 0 } func (x *FskModulationInfo) GetDatarate() uint32 { if x != nil { return x.Datarate } return 0 } type LrFhssModulationInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Operating channel width (OCW) in Hz. OperatingChannelWidth uint32 `protobuf:"varint,1,opt,name=operating_channel_width,json=operatingChannelWidth,proto3" json:"operating_channel_width,omitempty"` // Code-rate. // Deprecated: use code_rate. CodeRateLegacy string `protobuf:"bytes,2,opt,name=code_rate_legacy,json=codeRateLegacy,proto3" json:"code_rate_legacy,omitempty"` // Code-rate. CodeRate CodeRate `protobuf:"varint,4,opt,name=code_rate,json=codeRate,proto3,enum=gw.CodeRate" json:"code_rate,omitempty"` // Hopping grid number of steps. GridSteps uint32 `protobuf:"varint,3,opt,name=grid_steps,json=gridSteps,proto3" json:"grid_steps,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *LrFhssModulationInfo) Reset() { *x = LrFhssModulationInfo{} mi := &file_gw_gw_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *LrFhssModulationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*LrFhssModulationInfo) ProtoMessage() {} func (x *LrFhssModulationInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 LrFhssModulationInfo.ProtoReflect.Descriptor instead. func (*LrFhssModulationInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{11} } func (x *LrFhssModulationInfo) GetOperatingChannelWidth() uint32 { if x != nil { return x.OperatingChannelWidth } return 0 } func (x *LrFhssModulationInfo) GetCodeRateLegacy() string { if x != nil { return x.CodeRateLegacy } return "" } func (x *LrFhssModulationInfo) GetCodeRate() CodeRate { if x != nil { return x.CodeRate } return CodeRate_CR_UNDEFINED } func (x *LrFhssModulationInfo) GetGridSteps() uint32 { if x != nil { return x.GridSteps } return 0 } type EncryptedFineTimestamp struct { state protoimpl.MessageState `protogen:"open.v1"` // AES key index used for encrypting the fine timestamp. AesKeyIndex uint32 `protobuf:"varint,1,opt,name=aes_key_index,json=aesKeyIndex,proto3" json:"aes_key_index,omitempty"` // Encrypted 'main' fine-timestamp (ns precision part of the timestamp). EncryptedNs []byte `protobuf:"bytes,2,opt,name=encrypted_ns,json=encryptedNs,proto3" json:"encrypted_ns,omitempty"` // FPGA ID. FpgaId []byte `protobuf:"bytes,3,opt,name=fpga_id,json=fpgaId,proto3" json:"fpga_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *EncryptedFineTimestamp) Reset() { *x = EncryptedFineTimestamp{} mi := &file_gw_gw_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *EncryptedFineTimestamp) String() string { return protoimpl.X.MessageStringOf(x) } func (*EncryptedFineTimestamp) ProtoMessage() {} func (x *EncryptedFineTimestamp) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 EncryptedFineTimestamp.ProtoReflect.Descriptor instead. func (*EncryptedFineTimestamp) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{12} } func (x *EncryptedFineTimestamp) GetAesKeyIndex() uint32 { if x != nil { return x.AesKeyIndex } return 0 } func (x *EncryptedFineTimestamp) GetEncryptedNs() []byte { if x != nil { return x.EncryptedNs } return nil } func (x *EncryptedFineTimestamp) GetFpgaId() []byte { if x != nil { return x.FpgaId } return nil } type PlainFineTimestamp struct { state protoimpl.MessageState `protogen:"open.v1"` // Full timestamp. Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PlainFineTimestamp) Reset() { *x = PlainFineTimestamp{} mi := &file_gw_gw_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PlainFineTimestamp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlainFineTimestamp) ProtoMessage() {} func (x *PlainFineTimestamp) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 PlainFineTimestamp.ProtoReflect.Descriptor instead. func (*PlainFineTimestamp) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{13} } func (x *PlainFineTimestamp) GetTime() *timestamppb.Timestamp { if x != nil { return x.Time } return nil } type GatewayStats struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,17,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Gateway time. Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` // Gateway location. Location *common.Location `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"` // Gateway configuration version (this maps to the config_version sent // by ChirpStack to the gateway). ConfigVersion string `protobuf:"bytes,4,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` // Number of radio packets received. RxPacketsReceived uint32 `protobuf:"varint,5,opt,name=rx_packets_received,json=rxPacketsReceived,proto3" json:"rx_packets_received,omitempty"` // Number of radio packets received with valid PHY CRC. RxPacketsReceivedOk uint32 `protobuf:"varint,6,opt,name=rx_packets_received_ok,json=rxPacketsReceivedOk,proto3" json:"rx_packets_received_ok,omitempty"` // Number of downlink packets received for transmission. TxPacketsReceived uint32 `protobuf:"varint,7,opt,name=tx_packets_received,json=txPacketsReceived,proto3" json:"tx_packets_received,omitempty"` // Number of downlink packets emitted. TxPacketsEmitted uint32 `protobuf:"varint,8,opt,name=tx_packets_emitted,json=txPacketsEmitted,proto3" json:"tx_packets_emitted,omitempty"` // Additional gateway meta-data. Metadata map[string]string `protobuf:"bytes,10,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Tx packets per frequency. TxPacketsPerFrequency map[uint32]uint32 `protobuf:"bytes,12,rep,name=tx_packets_per_frequency,json=txPacketsPerFrequency,proto3" json:"tx_packets_per_frequency,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Rx packets per frequency. RxPacketsPerFrequency map[uint32]uint32 `protobuf:"bytes,13,rep,name=rx_packets_per_frequency,json=rxPacketsPerFrequency,proto3" json:"rx_packets_per_frequency,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Tx packets per modulation parameters. TxPacketsPerModulation []*PerModulationCount `protobuf:"bytes,14,rep,name=tx_packets_per_modulation,json=txPacketsPerModulation,proto3" json:"tx_packets_per_modulation,omitempty"` // Rx packets per modulation parameters. RxPacketsPerModulation []*PerModulationCount `protobuf:"bytes,15,rep,name=rx_packets_per_modulation,json=rxPacketsPerModulation,proto3" json:"rx_packets_per_modulation,omitempty"` // Tx packets per status. TxPacketsPerStatus map[string]uint32 `protobuf:"bytes,16,rep,name=tx_packets_per_status,json=txPacketsPerStatus,proto3" json:"tx_packets_per_status,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // Duty-cycle statistics (Concentratord only). DutyCycleStats *DutyCycleStats `protobuf:"bytes,18,opt,name=duty_cycle_stats,json=dutyCycleStats,proto3" json:"duty_cycle_stats,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GatewayStats) Reset() { *x = GatewayStats{} mi := &file_gw_gw_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GatewayStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*GatewayStats) ProtoMessage() {} func (x *GatewayStats) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GatewayStats.ProtoReflect.Descriptor instead. func (*GatewayStats) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{14} } func (x *GatewayStats) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *GatewayStats) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *GatewayStats) GetTime() *timestamppb.Timestamp { if x != nil { return x.Time } return nil } func (x *GatewayStats) GetLocation() *common.Location { if x != nil { return x.Location } return nil } func (x *GatewayStats) GetConfigVersion() string { if x != nil { return x.ConfigVersion } return "" } func (x *GatewayStats) GetRxPacketsReceived() uint32 { if x != nil { return x.RxPacketsReceived } return 0 } func (x *GatewayStats) GetRxPacketsReceivedOk() uint32 { if x != nil { return x.RxPacketsReceivedOk } return 0 } func (x *GatewayStats) GetTxPacketsReceived() uint32 { if x != nil { return x.TxPacketsReceived } return 0 } func (x *GatewayStats) GetTxPacketsEmitted() uint32 { if x != nil { return x.TxPacketsEmitted } return 0 } func (x *GatewayStats) GetMetadata() map[string]string { if x != nil { return x.Metadata } return nil } func (x *GatewayStats) GetTxPacketsPerFrequency() map[uint32]uint32 { if x != nil { return x.TxPacketsPerFrequency } return nil } func (x *GatewayStats) GetRxPacketsPerFrequency() map[uint32]uint32 { if x != nil { return x.RxPacketsPerFrequency } return nil } func (x *GatewayStats) GetTxPacketsPerModulation() []*PerModulationCount { if x != nil { return x.TxPacketsPerModulation } return nil } func (x *GatewayStats) GetRxPacketsPerModulation() []*PerModulationCount { if x != nil { return x.RxPacketsPerModulation } return nil } func (x *GatewayStats) GetTxPacketsPerStatus() map[string]uint32 { if x != nil { return x.TxPacketsPerStatus } return nil } func (x *GatewayStats) GetDutyCycleStats() *DutyCycleStats { if x != nil { return x.DutyCycleStats } return nil } type PerModulationCount struct { state protoimpl.MessageState `protogen:"open.v1"` // Modulation. Modulation *Modulation `protobuf:"bytes,1,opt,name=modulation,proto3" json:"modulation,omitempty"` // Count. Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PerModulationCount) Reset() { *x = PerModulationCount{} mi := &file_gw_gw_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PerModulationCount) String() string { return protoimpl.X.MessageStringOf(x) } func (*PerModulationCount) ProtoMessage() {} func (x *PerModulationCount) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 PerModulationCount.ProtoReflect.Descriptor instead. func (*PerModulationCount) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{15} } func (x *PerModulationCount) GetModulation() *Modulation { if x != nil { return x.Modulation } return nil } func (x *PerModulationCount) GetCount() uint32 { if x != nil { return x.Count } return 0 } type DutyCycleStats struct { state protoimpl.MessageState `protogen:"open.v1"` // Implemented regulation. Regulation common.Regulation `protobuf:"varint,1,opt,name=regulation,proto3,enum=common.Regulation" json:"regulation,omitempty"` // Tracking window. Window *durationpb.Duration `protobuf:"bytes,2,opt,name=window,proto3" json:"window,omitempty"` // Bands. Bands []*DutyCycleBand `protobuf:"bytes,3,rep,name=bands,proto3" json:"bands,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DutyCycleStats) Reset() { *x = DutyCycleStats{} mi := &file_gw_gw_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DutyCycleStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*DutyCycleStats) ProtoMessage() {} func (x *DutyCycleStats) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DutyCycleStats.ProtoReflect.Descriptor instead. func (*DutyCycleStats) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{16} } func (x *DutyCycleStats) GetRegulation() common.Regulation { if x != nil { return x.Regulation } return common.Regulation(0) } func (x *DutyCycleStats) GetWindow() *durationpb.Duration { if x != nil { return x.Window } return nil } func (x *DutyCycleStats) GetBands() []*DutyCycleBand { if x != nil { return x.Bands } return nil } type DutyCycleBand struct { state protoimpl.MessageState `protogen:"open.v1"` // Band name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Min frequency for this band. FrequencyMin uint32 `protobuf:"varint,2,opt,name=frequency_min,json=frequencyMin,proto3" json:"frequency_min,omitempty"` // Max frequency for this band. FrequencyMax uint32 `protobuf:"varint,3,opt,name=frequency_max,json=frequencyMax,proto3" json:"frequency_max,omitempty"` // Max. allowed load. LoadMax *durationpb.Duration `protobuf:"bytes,4,opt,name=load_max,json=loadMax,proto3" json:"load_max,omitempty"` // Tracked load (within the window of the regionlation). LoadTracked *durationpb.Duration `protobuf:"bytes,5,opt,name=load_tracked,json=loadTracked,proto3" json:"load_tracked,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DutyCycleBand) Reset() { *x = DutyCycleBand{} mi := &file_gw_gw_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DutyCycleBand) String() string { return protoimpl.X.MessageStringOf(x) } func (*DutyCycleBand) ProtoMessage() {} func (x *DutyCycleBand) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DutyCycleBand.ProtoReflect.Descriptor instead. func (*DutyCycleBand) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{17} } func (x *DutyCycleBand) GetName() string { if x != nil { return x.Name } return "" } func (x *DutyCycleBand) GetFrequencyMin() uint32 { if x != nil { return x.FrequencyMin } return 0 } func (x *DutyCycleBand) GetFrequencyMax() uint32 { if x != nil { return x.FrequencyMax } return 0 } func (x *DutyCycleBand) GetLoadMax() *durationpb.Duration { if x != nil { return x.LoadMax } return nil } func (x *DutyCycleBand) GetLoadTracked() *durationpb.Duration { if x != nil { return x.LoadTracked } return nil } type UplinkRxInfoLegacy struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. GatewayId []byte `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // RX time (only set when the gateway has a GPS module). Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` // RX time since GPS epoch (only set when the gateway has a GPS module). TimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,3,opt,name=time_since_gps_epoch,json=timeSinceGpsEpoch,proto3" json:"time_since_gps_epoch,omitempty"` // RSSI. Rssi int32 `protobuf:"varint,5,opt,name=rssi,proto3" json:"rssi,omitempty"` // LoRa SNR. LoraSnr float64 `protobuf:"fixed64,6,opt,name=lora_snr,json=loraSnr,proto3" json:"lora_snr,omitempty"` // Channel. Channel uint32 `protobuf:"varint,7,opt,name=channel,proto3" json:"channel,omitempty"` // RF Chain. RfChain uint32 `protobuf:"varint,8,opt,name=rf_chain,json=rfChain,proto3" json:"rf_chain,omitempty"` // Board. Board uint32 `protobuf:"varint,9,opt,name=board,proto3" json:"board,omitempty"` // Antenna. Antenna uint32 `protobuf:"varint,10,opt,name=antenna,proto3" json:"antenna,omitempty"` // Location. Location *common.Location `protobuf:"bytes,11,opt,name=location,proto3" json:"location,omitempty"` // Fine-timestamp type. FineTimestampType FineTimestampType `protobuf:"varint,12,opt,name=fine_timestamp_type,json=fineTimestampType,proto3,enum=gw.FineTimestampType" json:"fine_timestamp_type,omitempty"` // Fine-timestamp data. // // Types that are valid to be assigned to FineTimestamp: // // *UplinkRxInfoLegacy_EncryptedFineTimestamp // *UplinkRxInfoLegacy_PlainFineTimestamp FineTimestamp isUplinkRxInfoLegacy_FineTimestamp `protobuf_oneof:"fine_timestamp"` // Gateway specific context. Context []byte `protobuf:"bytes,15,opt,name=context,proto3" json:"context,omitempty"` // Uplink ID (UUID bytes). // Unique and random ID which can be used to correlate the uplink across // multiple logs. UplinkId []byte `protobuf:"bytes,16,opt,name=uplink_id,json=uplinkId,proto3" json:"uplink_id,omitempty"` // CRC status. CrcStatus CRCStatus `protobuf:"varint,17,opt,name=crc_status,json=crcStatus,proto3,enum=gw.CRCStatus" json:"crc_status,omitempty"` // Optional meta-data map. Metadata map[string]string `protobuf:"bytes,18,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UplinkRxInfoLegacy) Reset() { *x = UplinkRxInfoLegacy{} mi := &file_gw_gw_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UplinkRxInfoLegacy) String() string { return protoimpl.X.MessageStringOf(x) } func (*UplinkRxInfoLegacy) ProtoMessage() {} func (x *UplinkRxInfoLegacy) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 UplinkRxInfoLegacy.ProtoReflect.Descriptor instead. func (*UplinkRxInfoLegacy) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{18} } func (x *UplinkRxInfoLegacy) GetGatewayId() []byte { if x != nil { return x.GatewayId } return nil } func (x *UplinkRxInfoLegacy) GetTime() *timestamppb.Timestamp { if x != nil { return x.Time } return nil } func (x *UplinkRxInfoLegacy) GetTimeSinceGpsEpoch() *durationpb.Duration { if x != nil { return x.TimeSinceGpsEpoch } return nil } func (x *UplinkRxInfoLegacy) GetRssi() int32 { if x != nil { return x.Rssi } return 0 } func (x *UplinkRxInfoLegacy) GetLoraSnr() float64 { if x != nil { return x.LoraSnr } return 0 } func (x *UplinkRxInfoLegacy) GetChannel() uint32 { if x != nil { return x.Channel } return 0 } func (x *UplinkRxInfoLegacy) GetRfChain() uint32 { if x != nil { return x.RfChain } return 0 } func (x *UplinkRxInfoLegacy) GetBoard() uint32 { if x != nil { return x.Board } return 0 } func (x *UplinkRxInfoLegacy) GetAntenna() uint32 { if x != nil { return x.Antenna } return 0 } func (x *UplinkRxInfoLegacy) GetLocation() *common.Location { if x != nil { return x.Location } return nil } func (x *UplinkRxInfoLegacy) GetFineTimestampType() FineTimestampType { if x != nil { return x.FineTimestampType } return FineTimestampType_NONE } func (x *UplinkRxInfoLegacy) GetFineTimestamp() isUplinkRxInfoLegacy_FineTimestamp { if x != nil { return x.FineTimestamp } return nil } func (x *UplinkRxInfoLegacy) GetEncryptedFineTimestamp() *EncryptedFineTimestamp { if x != nil { if x, ok := x.FineTimestamp.(*UplinkRxInfoLegacy_EncryptedFineTimestamp); ok { return x.EncryptedFineTimestamp } } return nil } func (x *UplinkRxInfoLegacy) GetPlainFineTimestamp() *PlainFineTimestamp { if x != nil { if x, ok := x.FineTimestamp.(*UplinkRxInfoLegacy_PlainFineTimestamp); ok { return x.PlainFineTimestamp } } return nil } func (x *UplinkRxInfoLegacy) GetContext() []byte { if x != nil { return x.Context } return nil } func (x *UplinkRxInfoLegacy) GetUplinkId() []byte { if x != nil { return x.UplinkId } return nil } func (x *UplinkRxInfoLegacy) GetCrcStatus() CRCStatus { if x != nil { return x.CrcStatus } return CRCStatus_NO_CRC } func (x *UplinkRxInfoLegacy) GetMetadata() map[string]string { if x != nil { return x.Metadata } return nil } type isUplinkRxInfoLegacy_FineTimestamp interface { isUplinkRxInfoLegacy_FineTimestamp() } type UplinkRxInfoLegacy_EncryptedFineTimestamp struct { // Encrypted fine-timestamp data. EncryptedFineTimestamp *EncryptedFineTimestamp `protobuf:"bytes,13,opt,name=encrypted_fine_timestamp,json=encryptedFineTimestamp,proto3,oneof"` } type UplinkRxInfoLegacy_PlainFineTimestamp struct { // Plain fine-timestamp data. PlainFineTimestamp *PlainFineTimestamp `protobuf:"bytes,14,opt,name=plain_fine_timestamp,json=plainFineTimestamp,proto3,oneof"` } func (*UplinkRxInfoLegacy_EncryptedFineTimestamp) isUplinkRxInfoLegacy_FineTimestamp() {} func (*UplinkRxInfoLegacy_PlainFineTimestamp) isUplinkRxInfoLegacy_FineTimestamp() {} type UplinkRxInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Uplink ID. UplinkId uint32 `protobuf:"varint,2,opt,name=uplink_id,json=uplinkId,proto3" json:"uplink_id,omitempty"` // Gateway RX time (set if the gateway has a GNSS module). GwTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=gw_time,json=gwTime,proto3" json:"gw_time,omitempty"` // Network Server RX time (set by the NS on receiving the uplink). NsTime *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=ns_time,json=nsTime,proto3" json:"ns_time,omitempty"` // RX time as time since GPS epoch (set if the gateway has a GNSS module). TimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,4,opt,name=time_since_gps_epoch,json=timeSinceGpsEpoch,proto3" json:"time_since_gps_epoch,omitempty"` // Fine-timestamp. // This timestamp can be used for TDOA based geolocation. FineTimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,5,opt,name=fine_time_since_gps_epoch,json=fineTimeSinceGpsEpoch,proto3" json:"fine_time_since_gps_epoch,omitempty"` // RSSI. Rssi int32 `protobuf:"varint,6,opt,name=rssi,proto3" json:"rssi,omitempty"` // SNR. // Note: only available for LoRa modulation. Snr float32 `protobuf:"fixed32,7,opt,name=snr,proto3" json:"snr,omitempty"` // Channel. Channel uint32 `protobuf:"varint,8,opt,name=channel,proto3" json:"channel,omitempty"` // RF chain. RfChain uint32 `protobuf:"varint,9,opt,name=rf_chain,json=rfChain,proto3" json:"rf_chain,omitempty"` // Board. Board uint32 `protobuf:"varint,10,opt,name=board,proto3" json:"board,omitempty"` // Antenna. Antenna uint32 `protobuf:"varint,11,opt,name=antenna,proto3" json:"antenna,omitempty"` // Location. Location *common.Location `protobuf:"bytes,12,opt,name=location,proto3" json:"location,omitempty"` // Gateway specific context. // This value must be returned to the gateway on (Class-A) downlink. Context []byte `protobuf:"bytes,13,opt,name=context,proto3" json:"context,omitempty"` // Additional gateway meta-data. Metadata map[string]string `protobuf:"bytes,15,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // CRC status. CrcStatus CRCStatus `protobuf:"varint,16,opt,name=crc_status,json=crcStatus,proto3,enum=gw.CRCStatus" json:"crc_status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UplinkRxInfo) Reset() { *x = UplinkRxInfo{} mi := &file_gw_gw_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UplinkRxInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UplinkRxInfo) ProtoMessage() {} func (x *UplinkRxInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 UplinkRxInfo.ProtoReflect.Descriptor instead. func (*UplinkRxInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{19} } func (x *UplinkRxInfo) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *UplinkRxInfo) GetUplinkId() uint32 { if x != nil { return x.UplinkId } return 0 } func (x *UplinkRxInfo) GetGwTime() *timestamppb.Timestamp { if x != nil { return x.GwTime } return nil } func (x *UplinkRxInfo) GetNsTime() *timestamppb.Timestamp { if x != nil { return x.NsTime } return nil } func (x *UplinkRxInfo) GetTimeSinceGpsEpoch() *durationpb.Duration { if x != nil { return x.TimeSinceGpsEpoch } return nil } func (x *UplinkRxInfo) GetFineTimeSinceGpsEpoch() *durationpb.Duration { if x != nil { return x.FineTimeSinceGpsEpoch } return nil } func (x *UplinkRxInfo) GetRssi() int32 { if x != nil { return x.Rssi } return 0 } func (x *UplinkRxInfo) GetSnr() float32 { if x != nil { return x.Snr } return 0 } func (x *UplinkRxInfo) GetChannel() uint32 { if x != nil { return x.Channel } return 0 } func (x *UplinkRxInfo) GetRfChain() uint32 { if x != nil { return x.RfChain } return 0 } func (x *UplinkRxInfo) GetBoard() uint32 { if x != nil { return x.Board } return 0 } func (x *UplinkRxInfo) GetAntenna() uint32 { if x != nil { return x.Antenna } return 0 } func (x *UplinkRxInfo) GetLocation() *common.Location { if x != nil { return x.Location } return nil } func (x *UplinkRxInfo) GetContext() []byte { if x != nil { return x.Context } return nil } func (x *UplinkRxInfo) GetMetadata() map[string]string { if x != nil { return x.Metadata } return nil } func (x *UplinkRxInfo) GetCrcStatus() CRCStatus { if x != nil { return x.CrcStatus } return CRCStatus_NO_CRC } type DownlinkTxInfoLegacy struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: replaced by gateway_id in DownlinkFrame. GatewayId []byte `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // TX frequency (in Hz). Frequency uint32 `protobuf:"varint,5,opt,name=frequency,proto3" json:"frequency,omitempty"` // TX power (in dBm EIRP). Power int32 `protobuf:"varint,6,opt,name=power,proto3" json:"power,omitempty"` // Modulation. Modulation common.Modulation `protobuf:"varint,7,opt,name=modulation,proto3,enum=common.Modulation" json:"modulation,omitempty"` // Types that are valid to be assigned to ModulationInfo: // // *DownlinkTxInfoLegacy_LoraModulationInfo // *DownlinkTxInfoLegacy_FskModulationInfo ModulationInfo isDownlinkTxInfoLegacy_ModulationInfo `protobuf_oneof:"modulation_info"` // The board identifier for emitting the frame. Board uint32 `protobuf:"varint,10,opt,name=board,proto3" json:"board,omitempty"` // The antenna identifier for emitting the frame. Antenna uint32 `protobuf:"varint,11,opt,name=antenna,proto3" json:"antenna,omitempty"` // Timing defines the downlink timing to use. Timing DownlinkTiming `protobuf:"varint,12,opt,name=timing,proto3,enum=gw.DownlinkTiming" json:"timing,omitempty"` // Types that are valid to be assigned to TimingInfo: // // *DownlinkTxInfoLegacy_ImmediatelyTimingInfo // *DownlinkTxInfoLegacy_DelayTimingInfo // *DownlinkTxInfoLegacy_GpsEpochTimingInfo TimingInfo isDownlinkTxInfoLegacy_TimingInfo `protobuf_oneof:"timing_info"` // Gateway specific context. // In case of a Class-A downlink, this contains a copy of the uplink context. Context []byte `protobuf:"bytes,16,opt,name=context,proto3" json:"context,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DownlinkTxInfoLegacy) Reset() { *x = DownlinkTxInfoLegacy{} mi := &file_gw_gw_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DownlinkTxInfoLegacy) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownlinkTxInfoLegacy) ProtoMessage() {} func (x *DownlinkTxInfoLegacy) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DownlinkTxInfoLegacy.ProtoReflect.Descriptor instead. func (*DownlinkTxInfoLegacy) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{20} } func (x *DownlinkTxInfoLegacy) GetGatewayId() []byte { if x != nil { return x.GatewayId } return nil } func (x *DownlinkTxInfoLegacy) GetFrequency() uint32 { if x != nil { return x.Frequency } return 0 } func (x *DownlinkTxInfoLegacy) GetPower() int32 { if x != nil { return x.Power } return 0 } func (x *DownlinkTxInfoLegacy) GetModulation() common.Modulation { if x != nil { return x.Modulation } return common.Modulation(0) } func (x *DownlinkTxInfoLegacy) GetModulationInfo() isDownlinkTxInfoLegacy_ModulationInfo { if x != nil { return x.ModulationInfo } return nil } func (x *DownlinkTxInfoLegacy) GetLoraModulationInfo() *LoraModulationInfo { if x != nil { if x, ok := x.ModulationInfo.(*DownlinkTxInfoLegacy_LoraModulationInfo); ok { return x.LoraModulationInfo } } return nil } func (x *DownlinkTxInfoLegacy) GetFskModulationInfo() *FskModulationInfo { if x != nil { if x, ok := x.ModulationInfo.(*DownlinkTxInfoLegacy_FskModulationInfo); ok { return x.FskModulationInfo } } return nil } func (x *DownlinkTxInfoLegacy) GetBoard() uint32 { if x != nil { return x.Board } return 0 } func (x *DownlinkTxInfoLegacy) GetAntenna() uint32 { if x != nil { return x.Antenna } return 0 } func (x *DownlinkTxInfoLegacy) GetTiming() DownlinkTiming { if x != nil { return x.Timing } return DownlinkTiming_IMMEDIATELY } func (x *DownlinkTxInfoLegacy) GetTimingInfo() isDownlinkTxInfoLegacy_TimingInfo { if x != nil { return x.TimingInfo } return nil } func (x *DownlinkTxInfoLegacy) GetImmediatelyTimingInfo() *ImmediatelyTimingInfo { if x != nil { if x, ok := x.TimingInfo.(*DownlinkTxInfoLegacy_ImmediatelyTimingInfo); ok { return x.ImmediatelyTimingInfo } } return nil } func (x *DownlinkTxInfoLegacy) GetDelayTimingInfo() *DelayTimingInfo { if x != nil { if x, ok := x.TimingInfo.(*DownlinkTxInfoLegacy_DelayTimingInfo); ok { return x.DelayTimingInfo } } return nil } func (x *DownlinkTxInfoLegacy) GetGpsEpochTimingInfo() *GPSEpochTimingInfo { if x != nil { if x, ok := x.TimingInfo.(*DownlinkTxInfoLegacy_GpsEpochTimingInfo); ok { return x.GpsEpochTimingInfo } } return nil } func (x *DownlinkTxInfoLegacy) GetContext() []byte { if x != nil { return x.Context } return nil } type isDownlinkTxInfoLegacy_ModulationInfo interface { isDownlinkTxInfoLegacy_ModulationInfo() } type DownlinkTxInfoLegacy_LoraModulationInfo struct { // LoRa modulation information. LoraModulationInfo *LoraModulationInfo `protobuf:"bytes,8,opt,name=lora_modulation_info,json=loraModulationInfo,proto3,oneof"` } type DownlinkTxInfoLegacy_FskModulationInfo struct { // FSK modulation information. FskModulationInfo *FskModulationInfo `protobuf:"bytes,9,opt,name=fsk_modulation_info,json=fskModulationInfo,proto3,oneof"` } func (*DownlinkTxInfoLegacy_LoraModulationInfo) isDownlinkTxInfoLegacy_ModulationInfo() {} func (*DownlinkTxInfoLegacy_FskModulationInfo) isDownlinkTxInfoLegacy_ModulationInfo() {} type isDownlinkTxInfoLegacy_TimingInfo interface { isDownlinkTxInfoLegacy_TimingInfo() } type DownlinkTxInfoLegacy_ImmediatelyTimingInfo struct { // Immediately timing information. ImmediatelyTimingInfo *ImmediatelyTimingInfo `protobuf:"bytes,13,opt,name=immediately_timing_info,json=immediatelyTimingInfo,proto3,oneof"` } type DownlinkTxInfoLegacy_DelayTimingInfo struct { // Context based delay timing information. DelayTimingInfo *DelayTimingInfo `protobuf:"bytes,14,opt,name=delay_timing_info,json=delayTimingInfo,proto3,oneof"` } type DownlinkTxInfoLegacy_GpsEpochTimingInfo struct { // GPS Epoch timing information. GpsEpochTimingInfo *GPSEpochTimingInfo `protobuf:"bytes,15,opt,name=gps_epoch_timing_info,json=gpsEpochTimingInfo,proto3,oneof"` } func (*DownlinkTxInfoLegacy_ImmediatelyTimingInfo) isDownlinkTxInfoLegacy_TimingInfo() {} func (*DownlinkTxInfoLegacy_DelayTimingInfo) isDownlinkTxInfoLegacy_TimingInfo() {} func (*DownlinkTxInfoLegacy_GpsEpochTimingInfo) isDownlinkTxInfoLegacy_TimingInfo() {} type DownlinkTxInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // TX frequency (in Hz). Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"` // TX power (in dBm EIRP). Power int32 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` // Modulation. Modulation *Modulation `protobuf:"bytes,3,opt,name=modulation,proto3" json:"modulation,omitempty"` // The board identifier for emitting the frame. Board uint32 `protobuf:"varint,4,opt,name=board,proto3" json:"board,omitempty"` // The antenna identifier for emitting the frame. Antenna uint32 `protobuf:"varint,5,opt,name=antenna,proto3" json:"antenna,omitempty"` // Timing. Timing *Timing `protobuf:"bytes,6,opt,name=timing,proto3" json:"timing,omitempty"` // Gateway specific context. // In case of a Class-A downlink, this contains a copy of the uplink context. Context []byte `protobuf:"bytes,7,opt,name=context,proto3" json:"context,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DownlinkTxInfo) Reset() { *x = DownlinkTxInfo{} mi := &file_gw_gw_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DownlinkTxInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownlinkTxInfo) ProtoMessage() {} func (x *DownlinkTxInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DownlinkTxInfo.ProtoReflect.Descriptor instead. func (*DownlinkTxInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{21} } func (x *DownlinkTxInfo) GetFrequency() uint32 { if x != nil { return x.Frequency } return 0 } func (x *DownlinkTxInfo) GetPower() int32 { if x != nil { return x.Power } return 0 } func (x *DownlinkTxInfo) GetModulation() *Modulation { if x != nil { return x.Modulation } return nil } func (x *DownlinkTxInfo) GetBoard() uint32 { if x != nil { return x.Board } return 0 } func (x *DownlinkTxInfo) GetAntenna() uint32 { if x != nil { return x.Antenna } return 0 } func (x *DownlinkTxInfo) GetTiming() *Timing { if x != nil { return x.Timing } return nil } func (x *DownlinkTxInfo) GetContext() []byte { if x != nil { return x.Context } return nil } type Timing struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Parameters: // // *Timing_Immediately // *Timing_Delay // *Timing_GpsEpoch Parameters isTiming_Parameters `protobuf_oneof:"parameters"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Timing) Reset() { *x = Timing{} mi := &file_gw_gw_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Timing) String() string { return protoimpl.X.MessageStringOf(x) } func (*Timing) ProtoMessage() {} func (x *Timing) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 Timing.ProtoReflect.Descriptor instead. func (*Timing) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{22} } func (x *Timing) GetParameters() isTiming_Parameters { if x != nil { return x.Parameters } return nil } func (x *Timing) GetImmediately() *ImmediatelyTimingInfo { if x != nil { if x, ok := x.Parameters.(*Timing_Immediately); ok { return x.Immediately } } return nil } func (x *Timing) GetDelay() *DelayTimingInfo { if x != nil { if x, ok := x.Parameters.(*Timing_Delay); ok { return x.Delay } } return nil } func (x *Timing) GetGpsEpoch() *GPSEpochTimingInfo { if x != nil { if x, ok := x.Parameters.(*Timing_GpsEpoch); ok { return x.GpsEpoch } } return nil } type isTiming_Parameters interface { isTiming_Parameters() } type Timing_Immediately struct { // Immediately timing information. Immediately *ImmediatelyTimingInfo `protobuf:"bytes,1,opt,name=immediately,proto3,oneof"` } type Timing_Delay struct { // Context based delay timing information. Delay *DelayTimingInfo `protobuf:"bytes,2,opt,name=delay,proto3,oneof"` } type Timing_GpsEpoch struct { // GPS Epoch timing information. GpsEpoch *GPSEpochTimingInfo `protobuf:"bytes,3,opt,name=gps_epoch,json=gpsEpoch,proto3,oneof"` } func (*Timing_Immediately) isTiming_Parameters() {} func (*Timing_Delay) isTiming_Parameters() {} func (*Timing_GpsEpoch) isTiming_Parameters() {} type ImmediatelyTimingInfo struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ImmediatelyTimingInfo) Reset() { *x = ImmediatelyTimingInfo{} mi := &file_gw_gw_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ImmediatelyTimingInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImmediatelyTimingInfo) ProtoMessage() {} func (x *ImmediatelyTimingInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 ImmediatelyTimingInfo.ProtoReflect.Descriptor instead. func (*ImmediatelyTimingInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{23} } type DelayTimingInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Delay (duration). // The delay will be added to the gateway internal timing, provided by the // context object. Delay *durationpb.Duration `protobuf:"bytes,1,opt,name=delay,proto3" json:"delay,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DelayTimingInfo) Reset() { *x = DelayTimingInfo{} mi := &file_gw_gw_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DelayTimingInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelayTimingInfo) ProtoMessage() {} func (x *DelayTimingInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DelayTimingInfo.ProtoReflect.Descriptor instead. func (*DelayTimingInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{24} } func (x *DelayTimingInfo) GetDelay() *durationpb.Duration { if x != nil { return x.Delay } return nil } type GPSEpochTimingInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // Duration since GPS Epoch. TimeSinceGpsEpoch *durationpb.Duration `protobuf:"bytes,1,opt,name=time_since_gps_epoch,json=timeSinceGpsEpoch,proto3" json:"time_since_gps_epoch,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GPSEpochTimingInfo) Reset() { *x = GPSEpochTimingInfo{} mi := &file_gw_gw_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GPSEpochTimingInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GPSEpochTimingInfo) ProtoMessage() {} func (x *GPSEpochTimingInfo) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GPSEpochTimingInfo.ProtoReflect.Descriptor instead. func (*GPSEpochTimingInfo) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{25} } func (x *GPSEpochTimingInfo) GetTimeSinceGpsEpoch() *durationpb.Duration { if x != nil { return x.TimeSinceGpsEpoch } return nil } type UplinkFrame struct { state protoimpl.MessageState `protogen:"open.v1"` // PHYPayload. PhyPayload []byte `protobuf:"bytes,1,opt,name=phy_payload,json=phyPayload,proto3" json:"phy_payload,omitempty"` // TX meta-data (deprecated). TxInfoLegacy *UplinkTxInfoLegacy `protobuf:"bytes,2,opt,name=tx_info_legacy,json=txInfoLegacy,proto3" json:"tx_info_legacy,omitempty"` // RX meta-data (deprecated). RxInfoLegacy *UplinkRxInfoLegacy `protobuf:"bytes,3,opt,name=rx_info_legacy,json=rxInfoLegacy,proto3" json:"rx_info_legacy,omitempty"` // Tx meta-data. TxInfo *UplinkTxInfo `protobuf:"bytes,4,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` // Rx meta-data. RxInfo *UplinkRxInfo `protobuf:"bytes,5,opt,name=rx_info,json=rxInfo,proto3" json:"rx_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UplinkFrame) Reset() { *x = UplinkFrame{} mi := &file_gw_gw_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UplinkFrame) String() string { return protoimpl.X.MessageStringOf(x) } func (*UplinkFrame) ProtoMessage() {} func (x *UplinkFrame) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 UplinkFrame.ProtoReflect.Descriptor instead. func (*UplinkFrame) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{26} } func (x *UplinkFrame) GetPhyPayload() []byte { if x != nil { return x.PhyPayload } return nil } func (x *UplinkFrame) GetTxInfoLegacy() *UplinkTxInfoLegacy { if x != nil { return x.TxInfoLegacy } return nil } func (x *UplinkFrame) GetRxInfoLegacy() *UplinkRxInfoLegacy { if x != nil { return x.RxInfoLegacy } return nil } func (x *UplinkFrame) GetTxInfo() *UplinkTxInfo { if x != nil { return x.TxInfo } return nil } func (x *UplinkFrame) GetRxInfo() *UplinkRxInfo { if x != nil { return x.RxInfo } return nil } type UplinkFrameSet struct { state protoimpl.MessageState `protogen:"open.v1"` // PHYPayload. PhyPayload []byte `protobuf:"bytes,1,opt,name=phy_payload,json=phyPayload,proto3" json:"phy_payload,omitempty"` // TX meta-data. TxInfo *UplinkTxInfo `protobuf:"bytes,2,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` // RX meta-data set. RxInfo []*UplinkRxInfo `protobuf:"bytes,3,rep,name=rx_info,json=rxInfo,proto3" json:"rx_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UplinkFrameSet) Reset() { *x = UplinkFrameSet{} mi := &file_gw_gw_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UplinkFrameSet) String() string { return protoimpl.X.MessageStringOf(x) } func (*UplinkFrameSet) ProtoMessage() {} func (x *UplinkFrameSet) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 UplinkFrameSet.ProtoReflect.Descriptor instead. func (*UplinkFrameSet) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{27} } func (x *UplinkFrameSet) GetPhyPayload() []byte { if x != nil { return x.PhyPayload } return nil } func (x *UplinkFrameSet) GetTxInfo() *UplinkTxInfo { if x != nil { return x.TxInfo } return nil } func (x *UplinkFrameSet) GetRxInfo() []*UplinkRxInfo { if x != nil { return x.RxInfo } return nil } type DownlinkFrame struct { state protoimpl.MessageState `protogen:"open.v1"` // Downlink ID. DownlinkId uint32 `protobuf:"varint,3,opt,name=downlink_id,json=downlinkId,proto3" json:"downlink_id,omitempty"` // Downlink ID (UUID). // Deprecated: use downlink_id. DownlinkIdLegacy []byte `protobuf:"bytes,4,opt,name=downlink_id_legacy,json=downlinkIdLegacy,proto3" json:"downlink_id_legacy,omitempty"` // Downlink frame items. // This makes it possible to send multiple downlink opportunities to the // gateway at once (e.g. RX1 and RX2 in LoRaWAN). The first item has the // highest priority, the last the lowest. The gateway will emit at most // one item. Items []*DownlinkFrameItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` // Gateway ID. // Deprecated: use gateway_id GatewayIdLegacy []byte `protobuf:"bytes,6,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,7,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DownlinkFrame) Reset() { *x = DownlinkFrame{} mi := &file_gw_gw_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DownlinkFrame) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownlinkFrame) ProtoMessage() {} func (x *DownlinkFrame) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DownlinkFrame.ProtoReflect.Descriptor instead. func (*DownlinkFrame) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{28} } func (x *DownlinkFrame) GetDownlinkId() uint32 { if x != nil { return x.DownlinkId } return 0 } func (x *DownlinkFrame) GetDownlinkIdLegacy() []byte { if x != nil { return x.DownlinkIdLegacy } return nil } func (x *DownlinkFrame) GetItems() []*DownlinkFrameItem { if x != nil { return x.Items } return nil } func (x *DownlinkFrame) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *DownlinkFrame) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } type DownlinkFrameItem struct { state protoimpl.MessageState `protogen:"open.v1"` // PHYPayload. PhyPayload []byte `protobuf:"bytes,1,opt,name=phy_payload,json=phyPayload,proto3" json:"phy_payload,omitempty"` // TX meta-data (deprecated). TxInfoLegacy *DownlinkTxInfoLegacy `protobuf:"bytes,2,opt,name=tx_info_legacy,json=txInfoLegacy,proto3" json:"tx_info_legacy,omitempty"` // Tx meta-data. TxInfo *DownlinkTxInfo `protobuf:"bytes,3,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DownlinkFrameItem) Reset() { *x = DownlinkFrameItem{} mi := &file_gw_gw_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DownlinkFrameItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownlinkFrameItem) ProtoMessage() {} func (x *DownlinkFrameItem) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DownlinkFrameItem.ProtoReflect.Descriptor instead. func (*DownlinkFrameItem) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{29} } func (x *DownlinkFrameItem) GetPhyPayload() []byte { if x != nil { return x.PhyPayload } return nil } func (x *DownlinkFrameItem) GetTxInfoLegacy() *DownlinkTxInfoLegacy { if x != nil { return x.TxInfoLegacy } return nil } func (x *DownlinkFrameItem) GetTxInfo() *DownlinkTxInfo { if x != nil { return x.TxInfo } return nil } type DownlinkTxAck struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID (deprecated). GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,6,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Downlink ID. DownlinkId uint32 `protobuf:"varint,2,opt,name=downlink_id,json=downlinkId,proto3" json:"downlink_id,omitempty"` // Downlink ID (deprecated). DownlinkIdLegacy []byte `protobuf:"bytes,4,opt,name=downlink_id_legacy,json=downlinkIdLegacy,proto3" json:"downlink_id_legacy,omitempty"` // Downlink frame items. // This list has the same length as the request and indicates which // downlink frame has been emitted of the requested list (or why it failed). // Note that at most one item has a positive acknowledgement. Items []*DownlinkTxAckItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DownlinkTxAck) Reset() { *x = DownlinkTxAck{} mi := &file_gw_gw_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DownlinkTxAck) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownlinkTxAck) ProtoMessage() {} func (x *DownlinkTxAck) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DownlinkTxAck.ProtoReflect.Descriptor instead. func (*DownlinkTxAck) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{30} } func (x *DownlinkTxAck) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *DownlinkTxAck) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *DownlinkTxAck) GetDownlinkId() uint32 { if x != nil { return x.DownlinkId } return 0 } func (x *DownlinkTxAck) GetDownlinkIdLegacy() []byte { if x != nil { return x.DownlinkIdLegacy } return nil } func (x *DownlinkTxAck) GetItems() []*DownlinkTxAckItem { if x != nil { return x.Items } return nil } type DownlinkTxAckItem struct { state protoimpl.MessageState `protogen:"open.v1"` // The Ack status of this item. Status TxAckStatus `protobuf:"varint,1,opt,name=status,proto3,enum=gw.TxAckStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DownlinkTxAckItem) Reset() { *x = DownlinkTxAckItem{} mi := &file_gw_gw_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DownlinkTxAckItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownlinkTxAckItem) ProtoMessage() {} func (x *DownlinkTxAckItem) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 DownlinkTxAckItem.ProtoReflect.Descriptor instead. func (*DownlinkTxAckItem) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{31} } func (x *DownlinkTxAckItem) GetStatus() TxAckStatus { if x != nil { return x.Status } return TxAckStatus_IGNORED } type GatewayConfiguration struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,5,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Configuration version. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // Channels. Channels []*ChannelConfiguration `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"` // Stats interval. StatsInterval *durationpb.Duration `protobuf:"bytes,4,opt,name=stats_interval,json=statsInterval,proto3" json:"stats_interval,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GatewayConfiguration) Reset() { *x = GatewayConfiguration{} mi := &file_gw_gw_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GatewayConfiguration) String() string { return protoimpl.X.MessageStringOf(x) } func (*GatewayConfiguration) ProtoMessage() {} func (x *GatewayConfiguration) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GatewayConfiguration.ProtoReflect.Descriptor instead. func (*GatewayConfiguration) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{32} } func (x *GatewayConfiguration) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *GatewayConfiguration) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *GatewayConfiguration) GetVersion() string { if x != nil { return x.Version } return "" } func (x *GatewayConfiguration) GetChannels() []*ChannelConfiguration { if x != nil { return x.Channels } return nil } func (x *GatewayConfiguration) GetStatsInterval() *durationpb.Duration { if x != nil { return x.StatsInterval } return nil } type GetGatewayIdRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetGatewayIdRequest) Reset() { *x = GetGatewayIdRequest{} mi := &file_gw_gw_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetGatewayIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGatewayIdRequest) ProtoMessage() {} func (x *GetGatewayIdRequest) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GetGatewayIdRequest.ProtoReflect.Descriptor instead. func (*GetGatewayIdRequest) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{33} } type GetGatewayIdResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetGatewayIdResponse) Reset() { *x = GetGatewayIdResponse{} mi := &file_gw_gw_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetGatewayIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGatewayIdResponse) ProtoMessage() {} func (x *GetGatewayIdResponse) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GetGatewayIdResponse.ProtoReflect.Descriptor instead. func (*GetGatewayIdResponse) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{34} } func (x *GetGatewayIdResponse) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } type GetLocationRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetLocationRequest) Reset() { *x = GetLocationRequest{} mi := &file_gw_gw_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetLocationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetLocationRequest) ProtoMessage() {} func (x *GetLocationRequest) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GetLocationRequest.ProtoReflect.Descriptor instead. func (*GetLocationRequest) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{35} } type GetLocationResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Location. Location *common.Location `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` // Last updated at. UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetLocationResponse) Reset() { *x = GetLocationResponse{} mi := &file_gw_gw_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetLocationResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetLocationResponse) ProtoMessage() {} func (x *GetLocationResponse) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GetLocationResponse.ProtoReflect.Descriptor instead. func (*GetLocationResponse) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{36} } func (x *GetLocationResponse) GetLocation() *common.Location { if x != nil { return x.Location } return nil } func (x *GetLocationResponse) GetUpdatedAt() *timestamppb.Timestamp { if x != nil { return x.UpdatedAt } return nil } type ChannelConfiguration struct { state protoimpl.MessageState `protogen:"open.v1"` // Frequency (Hz). Frequency uint32 `protobuf:"varint,1,opt,name=frequency,proto3" json:"frequency,omitempty"` // Modulation (deprecated). ModulationLegacy common.Modulation `protobuf:"varint,2,opt,name=modulation_legacy,json=modulationLegacy,proto3,enum=common.Modulation" json:"modulation_legacy,omitempty"` // Types that are valid to be assigned to ModulationConfig: // // *ChannelConfiguration_LoraModulationConfig // *ChannelConfiguration_FskModulationConfig ModulationConfig isChannelConfiguration_ModulationConfig `protobuf_oneof:"modulation_config"` // Board index. Board uint32 `protobuf:"varint,5,opt,name=board,proto3" json:"board,omitempty"` // Demodulator index (of the given board). Demodulator uint32 `protobuf:"varint,6,opt,name=demodulator,proto3" json:"demodulator,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ChannelConfiguration) Reset() { *x = ChannelConfiguration{} mi := &file_gw_gw_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ChannelConfiguration) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChannelConfiguration) ProtoMessage() {} func (x *ChannelConfiguration) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 ChannelConfiguration.ProtoReflect.Descriptor instead. func (*ChannelConfiguration) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{37} } func (x *ChannelConfiguration) GetFrequency() uint32 { if x != nil { return x.Frequency } return 0 } func (x *ChannelConfiguration) GetModulationLegacy() common.Modulation { if x != nil { return x.ModulationLegacy } return common.Modulation(0) } func (x *ChannelConfiguration) GetModulationConfig() isChannelConfiguration_ModulationConfig { if x != nil { return x.ModulationConfig } return nil } func (x *ChannelConfiguration) GetLoraModulationConfig() *LoraModulationConfig { if x != nil { if x, ok := x.ModulationConfig.(*ChannelConfiguration_LoraModulationConfig); ok { return x.LoraModulationConfig } } return nil } func (x *ChannelConfiguration) GetFskModulationConfig() *FskModulationConfig { if x != nil { if x, ok := x.ModulationConfig.(*ChannelConfiguration_FskModulationConfig); ok { return x.FskModulationConfig } } return nil } func (x *ChannelConfiguration) GetBoard() uint32 { if x != nil { return x.Board } return 0 } func (x *ChannelConfiguration) GetDemodulator() uint32 { if x != nil { return x.Demodulator } return 0 } type isChannelConfiguration_ModulationConfig interface { isChannelConfiguration_ModulationConfig() } type ChannelConfiguration_LoraModulationConfig struct { // LoRa modulation config. LoraModulationConfig *LoraModulationConfig `protobuf:"bytes,3,opt,name=lora_modulation_config,json=loraModulationConfig,proto3,oneof"` } type ChannelConfiguration_FskModulationConfig struct { // FSK modulation config. FskModulationConfig *FskModulationConfig `protobuf:"bytes,4,opt,name=fsk_modulation_config,json=fskModulationConfig,proto3,oneof"` } func (*ChannelConfiguration_LoraModulationConfig) isChannelConfiguration_ModulationConfig() {} func (*ChannelConfiguration_FskModulationConfig) isChannelConfiguration_ModulationConfig() {} type LoraModulationConfig struct { state protoimpl.MessageState `protogen:"open.v1"` // Bandwidth (kHz). // Deprecated: use bandwidth. BandwidthLegacy uint32 `protobuf:"varint,1,opt,name=bandwidth_legacy,json=bandwidthLegacy,proto3" json:"bandwidth_legacy,omitempty"` // Bandwidth (Hz). Bandwidth uint32 `protobuf:"varint,3,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"` // Spreading-factors. SpreadingFactors []uint32 `protobuf:"varint,2,rep,packed,name=spreading_factors,json=spreadingFactors,proto3" json:"spreading_factors,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *LoraModulationConfig) Reset() { *x = LoraModulationConfig{} mi := &file_gw_gw_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *LoraModulationConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoraModulationConfig) ProtoMessage() {} func (x *LoraModulationConfig) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 LoraModulationConfig.ProtoReflect.Descriptor instead. func (*LoraModulationConfig) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{38} } func (x *LoraModulationConfig) GetBandwidthLegacy() uint32 { if x != nil { return x.BandwidthLegacy } return 0 } func (x *LoraModulationConfig) GetBandwidth() uint32 { if x != nil { return x.Bandwidth } return 0 } func (x *LoraModulationConfig) GetSpreadingFactors() []uint32 { if x != nil { return x.SpreadingFactors } return nil } type FskModulationConfig struct { state protoimpl.MessageState `protogen:"open.v1"` // Bandwidth (kHz). // Deprecated: use bandwidth. BandwidthLegacy uint32 `protobuf:"varint,1,opt,name=bandwidth_legacy,json=bandwidthLegacy,proto3" json:"bandwidth_legacy,omitempty"` // Bandwidth (Hz). Bandwidth uint32 `protobuf:"varint,3,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"` // Bitrate. Bitrate uint32 `protobuf:"varint,2,opt,name=bitrate,proto3" json:"bitrate,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *FskModulationConfig) Reset() { *x = FskModulationConfig{} mi := &file_gw_gw_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *FskModulationConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*FskModulationConfig) ProtoMessage() {} func (x *FskModulationConfig) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 FskModulationConfig.ProtoReflect.Descriptor instead. func (*FskModulationConfig) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{39} } func (x *FskModulationConfig) GetBandwidthLegacy() uint32 { if x != nil { return x.BandwidthLegacy } return 0 } func (x *FskModulationConfig) GetBandwidth() uint32 { if x != nil { return x.Bandwidth } return 0 } func (x *FskModulationConfig) GetBitrate() uint32 { if x != nil { return x.Bitrate } return 0 } type GatewayCommandExecRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,6,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Command to execute. // This command must be pre-configured in the LoRa Gateway Bridge // configuration. Command string `protobuf:"bytes,2,opt,name=command,proto3" json:"command,omitempty"` // Execution request ID. // The same will be returned when the execution of the command has // completed. ExecId uint32 `protobuf:"varint,7,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"` // Standard input. Stdin []byte `protobuf:"bytes,4,opt,name=stdin,proto3" json:"stdin,omitempty"` // Environment variables. Environment map[string]string `protobuf:"bytes,5,rep,name=environment,proto3" json:"environment,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GatewayCommandExecRequest) Reset() { *x = GatewayCommandExecRequest{} mi := &file_gw_gw_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GatewayCommandExecRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GatewayCommandExecRequest) ProtoMessage() {} func (x *GatewayCommandExecRequest) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GatewayCommandExecRequest.ProtoReflect.Descriptor instead. func (*GatewayCommandExecRequest) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{40} } func (x *GatewayCommandExecRequest) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *GatewayCommandExecRequest) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *GatewayCommandExecRequest) GetCommand() string { if x != nil { return x.Command } return "" } func (x *GatewayCommandExecRequest) GetExecId() uint32 { if x != nil { return x.ExecId } return 0 } func (x *GatewayCommandExecRequest) GetStdin() []byte { if x != nil { return x.Stdin } return nil } func (x *GatewayCommandExecRequest) GetEnvironment() map[string]string { if x != nil { return x.Environment } return nil } type GatewayCommandExecResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,6,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Execution request ID. ExecId uint32 `protobuf:"varint,7,opt,name=exec_id,json=execId,proto3" json:"exec_id,omitempty"` // Standard output. Stdout []byte `protobuf:"bytes,3,opt,name=stdout,proto3" json:"stdout,omitempty"` // Standard error. Stderr []byte `protobuf:"bytes,4,opt,name=stderr,proto3" json:"stderr,omitempty"` // Error message. Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GatewayCommandExecResponse) Reset() { *x = GatewayCommandExecResponse{} mi := &file_gw_gw_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GatewayCommandExecResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GatewayCommandExecResponse) ProtoMessage() {} func (x *GatewayCommandExecResponse) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 GatewayCommandExecResponse.ProtoReflect.Descriptor instead. func (*GatewayCommandExecResponse) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{41} } func (x *GatewayCommandExecResponse) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *GatewayCommandExecResponse) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *GatewayCommandExecResponse) GetExecId() uint32 { if x != nil { return x.ExecId } return 0 } func (x *GatewayCommandExecResponse) GetStdout() []byte { if x != nil { return x.Stdout } return nil } func (x *GatewayCommandExecResponse) GetStderr() []byte { if x != nil { return x.Stderr } return nil } func (x *GatewayCommandExecResponse) GetError() string { if x != nil { return x.Error } return "" } // RawPacketForwarderEvent contains a raw packet-forwarder event. // It can be used to access packet-forwarder features that are not (fully) // integrated with the ChirpStack Gateway Bridge. type RawPacketForwarderEvent struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,4,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Payload contains the raw payload. Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RawPacketForwarderEvent) Reset() { *x = RawPacketForwarderEvent{} mi := &file_gw_gw_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RawPacketForwarderEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*RawPacketForwarderEvent) ProtoMessage() {} func (x *RawPacketForwarderEvent) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 RawPacketForwarderEvent.ProtoReflect.Descriptor instead. func (*RawPacketForwarderEvent) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{42} } func (x *RawPacketForwarderEvent) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *RawPacketForwarderEvent) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *RawPacketForwarderEvent) GetPayload() []byte { if x != nil { return x.Payload } return nil } // RawPacketForwarderEvent contains a raw packet-forwarder command. // It can be used to access packet-forwarder features that are not (fully) // integrated with the ChirpStack Gateway Bridge. type RawPacketForwarderCommand struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,4,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` // Payload contains the raw payload. Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RawPacketForwarderCommand) Reset() { *x = RawPacketForwarderCommand{} mi := &file_gw_gw_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RawPacketForwarderCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*RawPacketForwarderCommand) ProtoMessage() {} func (x *RawPacketForwarderCommand) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 RawPacketForwarderCommand.ProtoReflect.Descriptor instead. func (*RawPacketForwarderCommand) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{43} } func (x *RawPacketForwarderCommand) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *RawPacketForwarderCommand) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *RawPacketForwarderCommand) GetPayload() []byte { if x != nil { return x.Payload } return nil } // ConnState contains the connection state of a gateway. type ConnState struct { state protoimpl.MessageState `protogen:"open.v1"` // Gateway ID. // Deprecated: use gateway_id. GatewayIdLegacy []byte `protobuf:"bytes,1,opt,name=gateway_id_legacy,json=gatewayIdLegacy,proto3" json:"gateway_id_legacy,omitempty"` // Gateway ID. GatewayId string `protobuf:"bytes,3,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"` State ConnState_State `protobuf:"varint,2,opt,name=state,proto3,enum=gw.ConnState_State" json:"state,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ConnState) Reset() { *x = ConnState{} mi := &file_gw_gw_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ConnState) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConnState) ProtoMessage() {} func (x *ConnState) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 ConnState.ProtoReflect.Descriptor instead. func (*ConnState) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{44} } func (x *ConnState) GetGatewayIdLegacy() []byte { if x != nil { return x.GatewayIdLegacy } return nil } func (x *ConnState) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *ConnState) GetState() ConnState_State { if x != nil { return x.State } return ConnState_OFFLINE } // Gateway Mesh heartbeat (sent periodically by the Relay Gateways). type MeshEventHeartbeat struct { state protoimpl.MessageState `protogen:"open.v1"` // Relay path. RelayPath []*MeshEventHeartbeatRelayPath `protobuf:"bytes,4,rep,name=relay_path,json=relayPath,proto3" json:"relay_path,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshEventHeartbeat) Reset() { *x = MeshEventHeartbeat{} mi := &file_gw_gw_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshEventHeartbeat) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshEventHeartbeat) ProtoMessage() {} func (x *MeshEventHeartbeat) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshEventHeartbeat.ProtoReflect.Descriptor instead. func (*MeshEventHeartbeat) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{45} } func (x *MeshEventHeartbeat) GetRelayPath() []*MeshEventHeartbeatRelayPath { if x != nil { return x.RelayPath } return nil } type MeshEventHeartbeatRelayPath struct { state protoimpl.MessageState `protogen:"open.v1"` // Relay ID. RelayId string `protobuf:"bytes,1,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"` // RSSI. Rssi int32 `protobuf:"varint,2,opt,name=rssi,proto3" json:"rssi,omitempty"` // SNR. Snr int32 `protobuf:"varint,3,opt,name=snr,proto3" json:"snr,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshEventHeartbeatRelayPath) Reset() { *x = MeshEventHeartbeatRelayPath{} mi := &file_gw_gw_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshEventHeartbeatRelayPath) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshEventHeartbeatRelayPath) ProtoMessage() {} func (x *MeshEventHeartbeatRelayPath) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshEventHeartbeatRelayPath.ProtoReflect.Descriptor instead. func (*MeshEventHeartbeatRelayPath) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{46} } func (x *MeshEventHeartbeatRelayPath) GetRelayId() string { if x != nil { return x.RelayId } return "" } func (x *MeshEventHeartbeatRelayPath) GetRssi() int32 { if x != nil { return x.Rssi } return 0 } func (x *MeshEventHeartbeatRelayPath) GetSnr() int32 { if x != nil { return x.Snr } return 0 } // Proprietary mesh event. type MeshEventProprietary struct { state protoimpl.MessageState `protogen:"open.v1"` // Event type. EventType uint32 `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` // Payload. Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshEventProprietary) Reset() { *x = MeshEventProprietary{} mi := &file_gw_gw_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshEventProprietary) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshEventProprietary) ProtoMessage() {} func (x *MeshEventProprietary) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshEventProprietary.ProtoReflect.Descriptor instead. func (*MeshEventProprietary) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{47} } func (x *MeshEventProprietary) GetEventType() uint32 { if x != nil { return x.EventType } return 0 } func (x *MeshEventProprietary) GetPayload() []byte { if x != nil { return x.Payload } return nil } // Proprietary mesh command. type MeshCommandProprietary struct { state protoimpl.MessageState `protogen:"open.v1"` // Command type. CommandType uint32 `protobuf:"varint,1,opt,name=command_type,json=commandType,proto3" json:"command_type,omitempty"` // Payload. Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeshCommandProprietary) Reset() { *x = MeshCommandProprietary{} mi := &file_gw_gw_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeshCommandProprietary) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeshCommandProprietary) ProtoMessage() {} func (x *MeshCommandProprietary) ProtoReflect() protoreflect.Message { mi := &file_gw_gw_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 MeshCommandProprietary.ProtoReflect.Descriptor instead. func (*MeshCommandProprietary) Descriptor() ([]byte, []int) { return file_gw_gw_proto_rawDescGZIP(), []int{48} } func (x *MeshCommandProprietary) GetCommandType() uint32 { if x != nil { return x.CommandType } return 0 } func (x *MeshCommandProprietary) GetPayload() []byte { if x != nil { return x.Payload } return nil } var File_gw_gw_proto protoreflect.FileDescriptor const file_gw_gw_proto_rawDesc = "" + "\n" + "\vgw/gw.proto\x12\x02gw\x1a\x13common/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xa4\x01\n" + "\x05Event\x124\n" + "\fuplink_frame\x18\x01 \x01(\v2\x0f.gw.UplinkFrameH\x00R\vuplinkFrame\x127\n" + "\rgateway_stats\x18\x02 \x01(\v2\x10.gw.GatewayStatsH\x00R\fgatewayStats\x12#\n" + "\x04mesh\x18\x03 \x01(\v2\r.gw.MeshEventH\x00R\x04meshB\a\n" + "\x05event\"\xd6\x02\n" + "\aCommand\x12C\n" + "\x13send_downlink_frame\x18\x01 \x01(\v2\x11.gw.DownlinkFrameH\x00R\x11sendDownlinkFrame\x12V\n" + "\x19set_gateway_configuration\x18\x02 \x01(\v2\x18.gw.GatewayConfigurationH\x00R\x17setGatewayConfiguration\x12?\n" + "\x0eget_gateway_id\x18\x03 \x01(\v2\x17.gw.GetGatewayIdRequestH\x00R\fgetGatewayId\x12;\n" + "\fget_location\x18\x04 \x01(\v2\x16.gw.GetLocationRequestH\x00R\vgetLocation\x12%\n" + "\x04mesh\x18\x05 \x01(\v2\x0f.gw.MeshCommandH\x00R\x04meshB\t\n" + "\acommand\"\xa0\x01\n" + "\tMeshEvent\x12\x1d\n" + "\n" + "gateway_id\x18\x01 \x01(\tR\tgatewayId\x12\x19\n" + "\brelay_id\x18\x02 \x01(\tR\arelayId\x12.\n" + "\x04time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12)\n" + "\x06events\x18\x04 \x03(\v2\x11.gw.MeshEventItemR\x06events\"\x8e\x01\n" + "\rMeshEventItem\x12<\n" + "\vproprietary\x18\x01 \x01(\v2\x18.gw.MeshEventProprietaryH\x00R\vproprietary\x126\n" + "\theartbeat\x18\x02 \x01(\v2\x16.gw.MeshEventHeartbeatH\x00R\theartbeatB\a\n" + "\x05event\"x\n" + "\vMeshCommand\x12\x1d\n" + "\n" + "gateway_id\x18\x01 \x01(\tR\tgatewayId\x12\x19\n" + "\brelay_id\x18\x02 \x01(\tR\arelayId\x12/\n" + "\bcommands\x18\x03 \x03(\v2\x13.gw.MeshCommandItemR\bcommands\"\\\n" + "\x0fMeshCommandItem\x12>\n" + "\vproprietary\x18\x01 \x01(\v2\x1a.gw.MeshCommandProprietaryH\x00R\vproprietaryB\t\n" + "\acommand\"\xa8\x01\n" + "\n" + "Modulation\x12,\n" + "\x04lora\x18\x03 \x01(\v2\x16.gw.LoraModulationInfoH\x00R\x04lora\x12)\n" + "\x03fsk\x18\x04 \x01(\v2\x15.gw.FskModulationInfoH\x00R\x03fsk\x123\n" + "\alr_fhss\x18\x05 \x01(\v2\x18.gw.LrFhssModulationInfoH\x00R\x06lrFhssB\f\n" + "\n" + "parameters\"\xe1\x02\n" + "\x12UplinkTxInfoLegacy\x12\x1c\n" + "\tfrequency\x18\x01 \x01(\rR\tfrequency\x122\n" + "\n" + "modulation\x18\x02 \x01(\x0e2\x12.common.ModulationR\n" + "modulation\x12J\n" + "\x14lora_modulation_info\x18\x03 \x01(\v2\x16.gw.LoraModulationInfoH\x00R\x12loraModulationInfo\x12G\n" + "\x13fsk_modulation_info\x18\x04 \x01(\v2\x15.gw.FskModulationInfoH\x00R\x11fskModulationInfo\x12Q\n" + "\x17lr_fhss_modulation_info\x18\x05 \x01(\v2\x18.gw.LrFhssModulationInfoH\x00R\x14lrFhssModulationInfoB\x11\n" + "\x0fmodulation_info\"\\\n" + "\fUplinkTxInfo\x12\x1c\n" + "\tfrequency\x18\x01 \x01(\rR\tfrequency\x12.\n" + "\n" + "modulation\x18\x02 \x01(\v2\x0e.gw.ModulationR\n" + "modulation\"\x9c\x02\n" + "\x12LoraModulationInfo\x12\x1c\n" + "\tbandwidth\x18\x01 \x01(\rR\tbandwidth\x12)\n" + "\x10spreading_factor\x18\x02 \x01(\rR\x0fspreadingFactor\x12(\n" + "\x10code_rate_legacy\x18\x03 \x01(\tR\x0ecodeRateLegacy\x12)\n" + "\tcode_rate\x18\x05 \x01(\x0e2\f.gw.CodeRateR\bcodeRate\x125\n" + "\x16polarization_inversion\x18\x04 \x01(\bR\x15polarizationInversion\x12\x1a\n" + "\bpreamble\x18\x06 \x01(\rR\bpreamble\x12\x15\n" + "\x06no_crc\x18\a \x01(\bR\x05noCrc\"`\n" + "\x11FskModulationInfo\x12/\n" + "\x13frequency_deviation\x18\x01 \x01(\rR\x12frequencyDeviation\x12\x1a\n" + "\bdatarate\x18\x02 \x01(\rR\bdatarate\"\xc2\x01\n" + "\x14LrFhssModulationInfo\x126\n" + "\x17operating_channel_width\x18\x01 \x01(\rR\x15operatingChannelWidth\x12(\n" + "\x10code_rate_legacy\x18\x02 \x01(\tR\x0ecodeRateLegacy\x12)\n" + "\tcode_rate\x18\x04 \x01(\x0e2\f.gw.CodeRateR\bcodeRate\x12\x1d\n" + "\n" + "grid_steps\x18\x03 \x01(\rR\tgridSteps\"x\n" + "\x16EncryptedFineTimestamp\x12\"\n" + "\raes_key_index\x18\x01 \x01(\rR\vaesKeyIndex\x12!\n" + "\fencrypted_ns\x18\x02 \x01(\fR\vencryptedNs\x12\x17\n" + "\afpga_id\x18\x03 \x01(\fR\x06fpgaId\"D\n" + "\x12PlainFineTimestamp\x12.\n" + "\x04time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\"\x82\n" + "\n" + "\fGatewayStats\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x11 \x01(\tR\tgatewayId\x12.\n" + "\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12,\n" + "\blocation\x18\x03 \x01(\v2\x10.common.LocationR\blocation\x12%\n" + "\x0econfig_version\x18\x04 \x01(\tR\rconfigVersion\x12.\n" + "\x13rx_packets_received\x18\x05 \x01(\rR\x11rxPacketsReceived\x123\n" + "\x16rx_packets_received_ok\x18\x06 \x01(\rR\x13rxPacketsReceivedOk\x12.\n" + "\x13tx_packets_received\x18\a \x01(\rR\x11txPacketsReceived\x12,\n" + "\x12tx_packets_emitted\x18\b \x01(\rR\x10txPacketsEmitted\x12:\n" + "\bmetadata\x18\n" + " \x03(\v2\x1e.gw.GatewayStats.MetadataEntryR\bmetadata\x12d\n" + "\x18tx_packets_per_frequency\x18\f \x03(\v2+.gw.GatewayStats.TxPacketsPerFrequencyEntryR\x15txPacketsPerFrequency\x12d\n" + "\x18rx_packets_per_frequency\x18\r \x03(\v2+.gw.GatewayStats.RxPacketsPerFrequencyEntryR\x15rxPacketsPerFrequency\x12Q\n" + "\x19tx_packets_per_modulation\x18\x0e \x03(\v2\x16.gw.PerModulationCountR\x16txPacketsPerModulation\x12Q\n" + "\x19rx_packets_per_modulation\x18\x0f \x03(\v2\x16.gw.PerModulationCountR\x16rxPacketsPerModulation\x12[\n" + "\x15tx_packets_per_status\x18\x10 \x03(\v2(.gw.GatewayStats.TxPacketsPerStatusEntryR\x12txPacketsPerStatus\x12<\n" + "\x10duty_cycle_stats\x18\x12 \x01(\v2\x12.gw.DutyCycleStatsR\x0edutyCycleStats\x1a;\n" + "\rMetadataEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aH\n" + "\x1aTxPacketsPerFrequencyEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1aH\n" + "\x1aRxPacketsPerFrequencyEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1aE\n" + "\x17TxPacketsPerStatusEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\"Z\n" + "\x12PerModulationCount\x12.\n" + "\n" + "modulation\x18\x01 \x01(\v2\x0e.gw.ModulationR\n" + "modulation\x12\x14\n" + "\x05count\x18\x02 \x01(\rR\x05count\"\xa0\x01\n" + "\x0eDutyCycleStats\x122\n" + "\n" + "regulation\x18\x01 \x01(\x0e2\x12.common.RegulationR\n" + "regulation\x121\n" + "\x06window\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\x06window\x12'\n" + "\x05bands\x18\x03 \x03(\v2\x11.gw.DutyCycleBandR\x05bands\"\xe1\x01\n" + "\rDutyCycleBand\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12#\n" + "\rfrequency_min\x18\x02 \x01(\rR\ffrequencyMin\x12#\n" + "\rfrequency_max\x18\x03 \x01(\rR\ffrequencyMax\x124\n" + "\bload_max\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\aloadMax\x12<\n" + "\fload_tracked\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\vloadTracked\"\xd2\x06\n" + "\x12UplinkRxInfoLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x01 \x01(\fR\tgatewayId\x12.\n" + "\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12J\n" + "\x14time_since_gps_epoch\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x11timeSinceGpsEpoch\x12\x12\n" + "\x04rssi\x18\x05 \x01(\x05R\x04rssi\x12\x19\n" + "\blora_snr\x18\x06 \x01(\x01R\aloraSnr\x12\x18\n" + "\achannel\x18\a \x01(\rR\achannel\x12\x19\n" + "\brf_chain\x18\b \x01(\rR\arfChain\x12\x14\n" + "\x05board\x18\t \x01(\rR\x05board\x12\x18\n" + "\aantenna\x18\n" + " \x01(\rR\aantenna\x12,\n" + "\blocation\x18\v \x01(\v2\x10.common.LocationR\blocation\x12E\n" + "\x13fine_timestamp_type\x18\f \x01(\x0e2\x15.gw.FineTimestampTypeR\x11fineTimestampType\x12V\n" + "\x18encrypted_fine_timestamp\x18\r \x01(\v2\x1a.gw.EncryptedFineTimestampH\x00R\x16encryptedFineTimestamp\x12J\n" + "\x14plain_fine_timestamp\x18\x0e \x01(\v2\x16.gw.PlainFineTimestampH\x00R\x12plainFineTimestamp\x12\x18\n" + "\acontext\x18\x0f \x01(\fR\acontext\x12\x1b\n" + "\tuplink_id\x18\x10 \x01(\fR\buplinkId\x12,\n" + "\n" + "crc_status\x18\x11 \x01(\x0e2\r.gw.CRCStatusR\tcrcStatus\x12@\n" + "\bmetadata\x18\x12 \x03(\v2$.gw.UplinkRxInfoLegacy.MetadataEntryR\bmetadata\x1a;\n" + "\rMetadataEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x10\n" + "\x0efine_timestamp\"\xcf\x05\n" + "\fUplinkRxInfo\x12\x1d\n" + "\n" + "gateway_id\x18\x01 \x01(\tR\tgatewayId\x12\x1b\n" + "\tuplink_id\x18\x02 \x01(\rR\buplinkId\x123\n" + "\agw_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x06gwTime\x123\n" + "\ans_time\x18\x11 \x01(\v2\x1a.google.protobuf.TimestampR\x06nsTime\x12J\n" + "\x14time_since_gps_epoch\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x11timeSinceGpsEpoch\x12S\n" + "\x19fine_time_since_gps_epoch\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\x15fineTimeSinceGpsEpoch\x12\x12\n" + "\x04rssi\x18\x06 \x01(\x05R\x04rssi\x12\x10\n" + "\x03snr\x18\a \x01(\x02R\x03snr\x12\x18\n" + "\achannel\x18\b \x01(\rR\achannel\x12\x19\n" + "\brf_chain\x18\t \x01(\rR\arfChain\x12\x14\n" + "\x05board\x18\n" + " \x01(\rR\x05board\x12\x18\n" + "\aantenna\x18\v \x01(\rR\aantenna\x12,\n" + "\blocation\x18\f \x01(\v2\x10.common.LocationR\blocation\x12\x18\n" + "\acontext\x18\r \x01(\fR\acontext\x12:\n" + "\bmetadata\x18\x0f \x03(\v2\x1e.gw.UplinkRxInfo.MetadataEntryR\bmetadata\x12,\n" + "\n" + "crc_status\x18\x10 \x01(\x0e2\r.gw.CRCStatusR\tcrcStatus\x1a;\n" + "\rMetadataEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xaf\x05\n" + "\x14DownlinkTxInfoLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x01 \x01(\fR\tgatewayId\x12\x1c\n" + "\tfrequency\x18\x05 \x01(\rR\tfrequency\x12\x14\n" + "\x05power\x18\x06 \x01(\x05R\x05power\x122\n" + "\n" + "modulation\x18\a \x01(\x0e2\x12.common.ModulationR\n" + "modulation\x12J\n" + "\x14lora_modulation_info\x18\b \x01(\v2\x16.gw.LoraModulationInfoH\x00R\x12loraModulationInfo\x12G\n" + "\x13fsk_modulation_info\x18\t \x01(\v2\x15.gw.FskModulationInfoH\x00R\x11fskModulationInfo\x12\x14\n" + "\x05board\x18\n" + " \x01(\rR\x05board\x12\x18\n" + "\aantenna\x18\v \x01(\rR\aantenna\x12*\n" + "\x06timing\x18\f \x01(\x0e2\x12.gw.DownlinkTimingR\x06timing\x12S\n" + "\x17immediately_timing_info\x18\r \x01(\v2\x19.gw.ImmediatelyTimingInfoH\x01R\x15immediatelyTimingInfo\x12A\n" + "\x11delay_timing_info\x18\x0e \x01(\v2\x13.gw.DelayTimingInfoH\x01R\x0fdelayTimingInfo\x12K\n" + "\x15gps_epoch_timing_info\x18\x0f \x01(\v2\x16.gw.GPSEpochTimingInfoH\x01R\x12gpsEpochTimingInfo\x12\x18\n" + "\acontext\x18\x10 \x01(\fR\acontextB\x11\n" + "\x0fmodulation_infoB\r\n" + "\vtiming_info\"\xe2\x01\n" + "\x0eDownlinkTxInfo\x12\x1c\n" + "\tfrequency\x18\x01 \x01(\rR\tfrequency\x12\x14\n" + "\x05power\x18\x02 \x01(\x05R\x05power\x12.\n" + "\n" + "modulation\x18\x03 \x01(\v2\x0e.gw.ModulationR\n" + "modulation\x12\x14\n" + "\x05board\x18\x04 \x01(\rR\x05board\x12\x18\n" + "\aantenna\x18\x05 \x01(\rR\aantenna\x12\"\n" + "\x06timing\x18\x06 \x01(\v2\n" + ".gw.TimingR\x06timing\x12\x18\n" + "\acontext\x18\a \x01(\fR\acontext\"\xb9\x01\n" + "\x06Timing\x12=\n" + "\vimmediately\x18\x01 \x01(\v2\x19.gw.ImmediatelyTimingInfoH\x00R\vimmediately\x12+\n" + "\x05delay\x18\x02 \x01(\v2\x13.gw.DelayTimingInfoH\x00R\x05delay\x125\n" + "\tgps_epoch\x18\x03 \x01(\v2\x16.gw.GPSEpochTimingInfoH\x00R\bgpsEpochB\f\n" + "\n" + "parameters\"\x17\n" + "\x15ImmediatelyTimingInfo\"B\n" + "\x0fDelayTimingInfo\x12/\n" + "\x05delay\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x05delay\"`\n" + "\x12GPSEpochTimingInfo\x12J\n" + "\x14time_since_gps_epoch\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\x11timeSinceGpsEpoch\"\x80\x02\n" + "\vUplinkFrame\x12\x1f\n" + "\vphy_payload\x18\x01 \x01(\fR\n" + "phyPayload\x12<\n" + "\x0etx_info_legacy\x18\x02 \x01(\v2\x16.gw.UplinkTxInfoLegacyR\ftxInfoLegacy\x12<\n" + "\x0erx_info_legacy\x18\x03 \x01(\v2\x16.gw.UplinkRxInfoLegacyR\frxInfoLegacy\x12)\n" + "\atx_info\x18\x04 \x01(\v2\x10.gw.UplinkTxInfoR\x06txInfo\x12)\n" + "\arx_info\x18\x05 \x01(\v2\x10.gw.UplinkRxInfoR\x06rxInfo\"\x87\x01\n" + "\x0eUplinkFrameSet\x12\x1f\n" + "\vphy_payload\x18\x01 \x01(\fR\n" + "phyPayload\x12)\n" + "\atx_info\x18\x02 \x01(\v2\x10.gw.UplinkTxInfoR\x06txInfo\x12)\n" + "\arx_info\x18\x03 \x03(\v2\x10.gw.UplinkRxInfoR\x06rxInfo\"\xd6\x01\n" + "\rDownlinkFrame\x12\x1f\n" + "\vdownlink_id\x18\x03 \x01(\rR\n" + "downlinkId\x12,\n" + "\x12downlink_id_legacy\x18\x04 \x01(\fR\x10downlinkIdLegacy\x12+\n" + "\x05items\x18\x05 \x03(\v2\x15.gw.DownlinkFrameItemR\x05items\x12*\n" + "\x11gateway_id_legacy\x18\x06 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\a \x01(\tR\tgatewayId\"\xa1\x01\n" + "\x11DownlinkFrameItem\x12\x1f\n" + "\vphy_payload\x18\x01 \x01(\fR\n" + "phyPayload\x12>\n" + "\x0etx_info_legacy\x18\x02 \x01(\v2\x18.gw.DownlinkTxInfoLegacyR\ftxInfoLegacy\x12+\n" + "\atx_info\x18\x03 \x01(\v2\x12.gw.DownlinkTxInfoR\x06txInfo\"\xd6\x01\n" + "\rDownlinkTxAck\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x06 \x01(\tR\tgatewayId\x12\x1f\n" + "\vdownlink_id\x18\x02 \x01(\rR\n" + "downlinkId\x12,\n" + "\x12downlink_id_legacy\x18\x04 \x01(\fR\x10downlinkIdLegacy\x12+\n" + "\x05items\x18\x05 \x03(\v2\x15.gw.DownlinkTxAckItemR\x05items\"<\n" + "\x11DownlinkTxAckItem\x12'\n" + "\x06status\x18\x01 \x01(\x0e2\x0f.gw.TxAckStatusR\x06status\"\xf3\x01\n" + "\x14GatewayConfiguration\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x05 \x01(\tR\tgatewayId\x12\x18\n" + "\aversion\x18\x02 \x01(\tR\aversion\x124\n" + "\bchannels\x18\x03 \x03(\v2\x18.gw.ChannelConfigurationR\bchannels\x12@\n" + "\x0estats_interval\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\rstatsInterval\"\x15\n" + "\x13GetGatewayIdRequest\"5\n" + "\x14GetGatewayIdResponse\x12\x1d\n" + "\n" + "gateway_id\x18\x01 \x01(\tR\tgatewayId\"\x14\n" + "\x12GetLocationRequest\"~\n" + "\x13GetLocationResponse\x12,\n" + "\blocation\x18\x01 \x01(\v2\x10.common.LocationR\blocation\x129\n" + "\n" + "updated_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"\xe3\x02\n" + "\x14ChannelConfiguration\x12\x1c\n" + "\tfrequency\x18\x01 \x01(\rR\tfrequency\x12?\n" + "\x11modulation_legacy\x18\x02 \x01(\x0e2\x12.common.ModulationR\x10modulationLegacy\x12P\n" + "\x16lora_modulation_config\x18\x03 \x01(\v2\x18.gw.LoraModulationConfigH\x00R\x14loraModulationConfig\x12M\n" + "\x15fsk_modulation_config\x18\x04 \x01(\v2\x17.gw.FskModulationConfigH\x00R\x13fskModulationConfig\x12\x14\n" + "\x05board\x18\x05 \x01(\rR\x05board\x12 \n" + "\vdemodulator\x18\x06 \x01(\rR\vdemodulatorB\x13\n" + "\x11modulation_config\"\x8c\x01\n" + "\x14LoraModulationConfig\x12)\n" + "\x10bandwidth_legacy\x18\x01 \x01(\rR\x0fbandwidthLegacy\x12\x1c\n" + "\tbandwidth\x18\x03 \x01(\rR\tbandwidth\x12+\n" + "\x11spreading_factors\x18\x02 \x03(\rR\x10spreadingFactors\"x\n" + "\x13FskModulationConfig\x12)\n" + "\x10bandwidth_legacy\x18\x01 \x01(\rR\x0fbandwidthLegacy\x12\x1c\n" + "\tbandwidth\x18\x03 \x01(\rR\tbandwidth\x12\x18\n" + "\abitrate\x18\x02 \x01(\rR\abitrate\"\xc1\x02\n" + "\x19GatewayCommandExecRequest\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x06 \x01(\tR\tgatewayId\x12\x18\n" + "\acommand\x18\x02 \x01(\tR\acommand\x12\x17\n" + "\aexec_id\x18\a \x01(\rR\x06execId\x12\x14\n" + "\x05stdin\x18\x04 \x01(\fR\x05stdin\x12P\n" + "\venvironment\x18\x05 \x03(\v2..gw.GatewayCommandExecRequest.EnvironmentEntryR\venvironment\x1a>\n" + "\x10EnvironmentEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xc6\x01\n" + "\x1aGatewayCommandExecResponse\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x06 \x01(\tR\tgatewayId\x12\x17\n" + "\aexec_id\x18\a \x01(\rR\x06execId\x12\x16\n" + "\x06stdout\x18\x03 \x01(\fR\x06stdout\x12\x16\n" + "\x06stderr\x18\x04 \x01(\fR\x06stderr\x12\x14\n" + "\x05error\x18\x05 \x01(\tR\x05error\"~\n" + "\x17RawPacketForwarderEvent\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x04 \x01(\tR\tgatewayId\x12\x18\n" + "\apayload\x18\x03 \x01(\fR\apayload\"\x80\x01\n" + "\x19RawPacketForwarderCommand\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x04 \x01(\tR\tgatewayId\x12\x18\n" + "\apayload\x18\x03 \x01(\fR\apayload\"\xa3\x01\n" + "\tConnState\x12*\n" + "\x11gateway_id_legacy\x18\x01 \x01(\fR\x0fgatewayIdLegacy\x12\x1d\n" + "\n" + "gateway_id\x18\x03 \x01(\tR\tgatewayId\x12)\n" + "\x05state\x18\x02 \x01(\x0e2\x13.gw.ConnState.StateR\x05state\" \n" + "\x05State\x12\v\n" + "\aOFFLINE\x10\x00\x12\n" + "\n" + "\x06ONLINE\x10\x01\"T\n" + "\x12MeshEventHeartbeat\x12>\n" + "\n" + "relay_path\x18\x04 \x03(\v2\x1f.gw.MeshEventHeartbeatRelayPathR\trelayPath\"^\n" + "\x1bMeshEventHeartbeatRelayPath\x12\x19\n" + "\brelay_id\x18\x01 \x01(\tR\arelayId\x12\x12\n" + "\x04rssi\x18\x02 \x01(\x05R\x04rssi\x12\x10\n" + "\x03snr\x18\x03 \x01(\x05R\x03snr\"O\n" + "\x14MeshEventProprietary\x12\x1d\n" + "\n" + "event_type\x18\x01 \x01(\rR\teventType\x12\x18\n" + "\apayload\x18\x02 \x01(\fR\apayload\"U\n" + "\x16MeshCommandProprietary\x12!\n" + "\fcommand_type\x18\x01 \x01(\rR\vcommandType\x12\x18\n" + "\apayload\x18\x02 \x01(\fR\apayload*\xb5\x01\n" + "\bCodeRate\x12\x10\n" + "\fCR_UNDEFINED\x10\x00\x12\n" + "\n" + "\x06CR_4_5\x10\x01\x12\n" + "\n" + "\x06CR_4_6\x10\x02\x12\n" + "\n" + "\x06CR_4_7\x10\x03\x12\n" + "\n" + "\x06CR_4_8\x10\x04\x12\n" + "\n" + "\x06CR_3_8\x10\x05\x12\n" + "\n" + "\x06CR_2_6\x10\x06\x12\n" + "\n" + "\x06CR_1_4\x10\a\x12\n" + "\n" + "\x06CR_1_6\x10\b\x12\n" + "\n" + "\x06CR_5_6\x10\t\x12\r\n" + "\tCR_LI_4_5\x10\n" + "\x12\r\n" + "\tCR_LI_4_6\x10\v\x12\r\n" + "\tCR_LI_4_8\x10\f*;\n" + "\x0eDownlinkTiming\x12\x0f\n" + "\vIMMEDIATELY\x10\x00\x12\t\n" + "\x05DELAY\x10\x01\x12\r\n" + "\tGPS_EPOCH\x10\x02*7\n" + "\x11FineTimestampType\x12\b\n" + "\x04NONE\x10\x00\x12\r\n" + "\tENCRYPTED\x10\x01\x12\t\n" + "\x05PLAIN\x10\x02*0\n" + "\tCRCStatus\x12\n" + "\n" + "\x06NO_CRC\x10\x00\x12\v\n" + "\aBAD_CRC\x10\x01\x12\n" + "\n" + "\x06CRC_OK\x10\x02*\xd5\x01\n" + "\vTxAckStatus\x12\v\n" + "\aIGNORED\x10\x00\x12\x06\n" + "\x02OK\x10\x01\x12\f\n" + "\bTOO_LATE\x10\x02\x12\r\n" + "\tTOO_EARLY\x10\x03\x12\x14\n" + "\x10COLLISION_PACKET\x10\x04\x12\x14\n" + "\x10COLLISION_BEACON\x10\x05\x12\v\n" + "\aTX_FREQ\x10\x06\x12\f\n" + "\bTX_POWER\x10\a\x12\x10\n" + "\fGPS_UNLOCKED\x10\b\x12\x0e\n" + "\n" + "QUEUE_FULL\x10\t\x12\x12\n" + "\x0eINTERNAL_ERROR\x10\n" + "\x12\x17\n" + "\x13DUTY_CYCLE_OVERFLOW\x10\vB\xa0\x01\n" + "\x14io.chirpstack.api.gwB\fGatewayProtoP\x01Z-github.com/chirpstack/chirpstack/api/go/v4/gw\xaa\x02\x12Chirpstack.Gateway\xca\x02\x12Chirpstack\\Gateway\xe2\x02\x1eGPBMetadata\\Chirpstack\\Gatewayb\x06proto3" var ( file_gw_gw_proto_rawDescOnce sync.Once file_gw_gw_proto_rawDescData []byte ) func file_gw_gw_proto_rawDescGZIP() []byte { file_gw_gw_proto_rawDescOnce.Do(func() { file_gw_gw_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_gw_gw_proto_rawDesc), len(file_gw_gw_proto_rawDesc))) }) return file_gw_gw_proto_rawDescData } var file_gw_gw_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_gw_gw_proto_msgTypes = make([]protoimpl.MessageInfo, 56) var file_gw_gw_proto_goTypes = []any{ (CodeRate)(0), // 0: gw.CodeRate (DownlinkTiming)(0), // 1: gw.DownlinkTiming (FineTimestampType)(0), // 2: gw.FineTimestampType (CRCStatus)(0), // 3: gw.CRCStatus (TxAckStatus)(0), // 4: gw.TxAckStatus (ConnState_State)(0), // 5: gw.ConnState.State (*Event)(nil), // 6: gw.Event (*Command)(nil), // 7: gw.Command (*MeshEvent)(nil), // 8: gw.MeshEvent (*MeshEventItem)(nil), // 9: gw.MeshEventItem (*MeshCommand)(nil), // 10: gw.MeshCommand (*MeshCommandItem)(nil), // 11: gw.MeshCommandItem (*Modulation)(nil), // 12: gw.Modulation (*UplinkTxInfoLegacy)(nil), // 13: gw.UplinkTxInfoLegacy (*UplinkTxInfo)(nil), // 14: gw.UplinkTxInfo (*LoraModulationInfo)(nil), // 15: gw.LoraModulationInfo (*FskModulationInfo)(nil), // 16: gw.FskModulationInfo (*LrFhssModulationInfo)(nil), // 17: gw.LrFhssModulationInfo (*EncryptedFineTimestamp)(nil), // 18: gw.EncryptedFineTimestamp (*PlainFineTimestamp)(nil), // 19: gw.PlainFineTimestamp (*GatewayStats)(nil), // 20: gw.GatewayStats (*PerModulationCount)(nil), // 21: gw.PerModulationCount (*DutyCycleStats)(nil), // 22: gw.DutyCycleStats (*DutyCycleBand)(nil), // 23: gw.DutyCycleBand (*UplinkRxInfoLegacy)(nil), // 24: gw.UplinkRxInfoLegacy (*UplinkRxInfo)(nil), // 25: gw.UplinkRxInfo (*DownlinkTxInfoLegacy)(nil), // 26: gw.DownlinkTxInfoLegacy (*DownlinkTxInfo)(nil), // 27: gw.DownlinkTxInfo (*Timing)(nil), // 28: gw.Timing (*ImmediatelyTimingInfo)(nil), // 29: gw.ImmediatelyTimingInfo (*DelayTimingInfo)(nil), // 30: gw.DelayTimingInfo (*GPSEpochTimingInfo)(nil), // 31: gw.GPSEpochTimingInfo (*UplinkFrame)(nil), // 32: gw.UplinkFrame (*UplinkFrameSet)(nil), // 33: gw.UplinkFrameSet (*DownlinkFrame)(nil), // 34: gw.DownlinkFrame (*DownlinkFrameItem)(nil), // 35: gw.DownlinkFrameItem (*DownlinkTxAck)(nil), // 36: gw.DownlinkTxAck (*DownlinkTxAckItem)(nil), // 37: gw.DownlinkTxAckItem (*GatewayConfiguration)(nil), // 38: gw.GatewayConfiguration (*GetGatewayIdRequest)(nil), // 39: gw.GetGatewayIdRequest (*GetGatewayIdResponse)(nil), // 40: gw.GetGatewayIdResponse (*GetLocationRequest)(nil), // 41: gw.GetLocationRequest (*GetLocationResponse)(nil), // 42: gw.GetLocationResponse (*ChannelConfiguration)(nil), // 43: gw.ChannelConfiguration (*LoraModulationConfig)(nil), // 44: gw.LoraModulationConfig (*FskModulationConfig)(nil), // 45: gw.FskModulationConfig (*GatewayCommandExecRequest)(nil), // 46: gw.GatewayCommandExecRequest (*GatewayCommandExecResponse)(nil), // 47: gw.GatewayCommandExecResponse (*RawPacketForwarderEvent)(nil), // 48: gw.RawPacketForwarderEvent (*RawPacketForwarderCommand)(nil), // 49: gw.RawPacketForwarderCommand (*ConnState)(nil), // 50: gw.ConnState (*MeshEventHeartbeat)(nil), // 51: gw.MeshEventHeartbeat (*MeshEventHeartbeatRelayPath)(nil), // 52: gw.MeshEventHeartbeatRelayPath (*MeshEventProprietary)(nil), // 53: gw.MeshEventProprietary (*MeshCommandProprietary)(nil), // 54: gw.MeshCommandProprietary nil, // 55: gw.GatewayStats.MetadataEntry nil, // 56: gw.GatewayStats.TxPacketsPerFrequencyEntry nil, // 57: gw.GatewayStats.RxPacketsPerFrequencyEntry nil, // 58: gw.GatewayStats.TxPacketsPerStatusEntry nil, // 59: gw.UplinkRxInfoLegacy.MetadataEntry nil, // 60: gw.UplinkRxInfo.MetadataEntry nil, // 61: gw.GatewayCommandExecRequest.EnvironmentEntry (*timestamppb.Timestamp)(nil), // 62: google.protobuf.Timestamp (common.Modulation)(0), // 63: common.Modulation (*common.Location)(nil), // 64: common.Location (common.Regulation)(0), // 65: common.Regulation (*durationpb.Duration)(nil), // 66: google.protobuf.Duration } var file_gw_gw_proto_depIdxs = []int32{ 32, // 0: gw.Event.uplink_frame:type_name -> gw.UplinkFrame 20, // 1: gw.Event.gateway_stats:type_name -> gw.GatewayStats 8, // 2: gw.Event.mesh:type_name -> gw.MeshEvent 34, // 3: gw.Command.send_downlink_frame:type_name -> gw.DownlinkFrame 38, // 4: gw.Command.set_gateway_configuration:type_name -> gw.GatewayConfiguration 39, // 5: gw.Command.get_gateway_id:type_name -> gw.GetGatewayIdRequest 41, // 6: gw.Command.get_location:type_name -> gw.GetLocationRequest 10, // 7: gw.Command.mesh:type_name -> gw.MeshCommand 62, // 8: gw.MeshEvent.time:type_name -> google.protobuf.Timestamp 9, // 9: gw.MeshEvent.events:type_name -> gw.MeshEventItem 53, // 10: gw.MeshEventItem.proprietary:type_name -> gw.MeshEventProprietary 51, // 11: gw.MeshEventItem.heartbeat:type_name -> gw.MeshEventHeartbeat 11, // 12: gw.MeshCommand.commands:type_name -> gw.MeshCommandItem 54, // 13: gw.MeshCommandItem.proprietary:type_name -> gw.MeshCommandProprietary 15, // 14: gw.Modulation.lora:type_name -> gw.LoraModulationInfo 16, // 15: gw.Modulation.fsk:type_name -> gw.FskModulationInfo 17, // 16: gw.Modulation.lr_fhss:type_name -> gw.LrFhssModulationInfo 63, // 17: gw.UplinkTxInfoLegacy.modulation:type_name -> common.Modulation 15, // 18: gw.UplinkTxInfoLegacy.lora_modulation_info:type_name -> gw.LoraModulationInfo 16, // 19: gw.UplinkTxInfoLegacy.fsk_modulation_info:type_name -> gw.FskModulationInfo 17, // 20: gw.UplinkTxInfoLegacy.lr_fhss_modulation_info:type_name -> gw.LrFhssModulationInfo 12, // 21: gw.UplinkTxInfo.modulation:type_name -> gw.Modulation 0, // 22: gw.LoraModulationInfo.code_rate:type_name -> gw.CodeRate 0, // 23: gw.LrFhssModulationInfo.code_rate:type_name -> gw.CodeRate 62, // 24: gw.PlainFineTimestamp.time:type_name -> google.protobuf.Timestamp 62, // 25: gw.GatewayStats.time:type_name -> google.protobuf.Timestamp 64, // 26: gw.GatewayStats.location:type_name -> common.Location 55, // 27: gw.GatewayStats.metadata:type_name -> gw.GatewayStats.MetadataEntry 56, // 28: gw.GatewayStats.tx_packets_per_frequency:type_name -> gw.GatewayStats.TxPacketsPerFrequencyEntry 57, // 29: gw.GatewayStats.rx_packets_per_frequency:type_name -> gw.GatewayStats.RxPacketsPerFrequencyEntry 21, // 30: gw.GatewayStats.tx_packets_per_modulation:type_name -> gw.PerModulationCount 21, // 31: gw.GatewayStats.rx_packets_per_modulation:type_name -> gw.PerModulationCount 58, // 32: gw.GatewayStats.tx_packets_per_status:type_name -> gw.GatewayStats.TxPacketsPerStatusEntry 22, // 33: gw.GatewayStats.duty_cycle_stats:type_name -> gw.DutyCycleStats 12, // 34: gw.PerModulationCount.modulation:type_name -> gw.Modulation 65, // 35: gw.DutyCycleStats.regulation:type_name -> common.Regulation 66, // 36: gw.DutyCycleStats.window:type_name -> google.protobuf.Duration 23, // 37: gw.DutyCycleStats.bands:type_name -> gw.DutyCycleBand 66, // 38: gw.DutyCycleBand.load_max:type_name -> google.protobuf.Duration 66, // 39: gw.DutyCycleBand.load_tracked:type_name -> google.protobuf.Duration 62, // 40: gw.UplinkRxInfoLegacy.time:type_name -> google.protobuf.Timestamp 66, // 41: gw.UplinkRxInfoLegacy.time_since_gps_epoch:type_name -> google.protobuf.Duration 64, // 42: gw.UplinkRxInfoLegacy.location:type_name -> common.Location 2, // 43: gw.UplinkRxInfoLegacy.fine_timestamp_type:type_name -> gw.FineTimestampType 18, // 44: gw.UplinkRxInfoLegacy.encrypted_fine_timestamp:type_name -> gw.EncryptedFineTimestamp 19, // 45: gw.UplinkRxInfoLegacy.plain_fine_timestamp:type_name -> gw.PlainFineTimestamp 3, // 46: gw.UplinkRxInfoLegacy.crc_status:type_name -> gw.CRCStatus 59, // 47: gw.UplinkRxInfoLegacy.metadata:type_name -> gw.UplinkRxInfoLegacy.MetadataEntry 62, // 48: gw.UplinkRxInfo.gw_time:type_name -> google.protobuf.Timestamp 62, // 49: gw.UplinkRxInfo.ns_time:type_name -> google.protobuf.Timestamp 66, // 50: gw.UplinkRxInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration 66, // 51: gw.UplinkRxInfo.fine_time_since_gps_epoch:type_name -> google.protobuf.Duration 64, // 52: gw.UplinkRxInfo.location:type_name -> common.Location 60, // 53: gw.UplinkRxInfo.metadata:type_name -> gw.UplinkRxInfo.MetadataEntry 3, // 54: gw.UplinkRxInfo.crc_status:type_name -> gw.CRCStatus 63, // 55: gw.DownlinkTxInfoLegacy.modulation:type_name -> common.Modulation 15, // 56: gw.DownlinkTxInfoLegacy.lora_modulation_info:type_name -> gw.LoraModulationInfo 16, // 57: gw.DownlinkTxInfoLegacy.fsk_modulation_info:type_name -> gw.FskModulationInfo 1, // 58: gw.DownlinkTxInfoLegacy.timing:type_name -> gw.DownlinkTiming 29, // 59: gw.DownlinkTxInfoLegacy.immediately_timing_info:type_name -> gw.ImmediatelyTimingInfo 30, // 60: gw.DownlinkTxInfoLegacy.delay_timing_info:type_name -> gw.DelayTimingInfo 31, // 61: gw.DownlinkTxInfoLegacy.gps_epoch_timing_info:type_name -> gw.GPSEpochTimingInfo 12, // 62: gw.DownlinkTxInfo.modulation:type_name -> gw.Modulation 28, // 63: gw.DownlinkTxInfo.timing:type_name -> gw.Timing 29, // 64: gw.Timing.immediately:type_name -> gw.ImmediatelyTimingInfo 30, // 65: gw.Timing.delay:type_name -> gw.DelayTimingInfo 31, // 66: gw.Timing.gps_epoch:type_name -> gw.GPSEpochTimingInfo 66, // 67: gw.DelayTimingInfo.delay:type_name -> google.protobuf.Duration 66, // 68: gw.GPSEpochTimingInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration 13, // 69: gw.UplinkFrame.tx_info_legacy:type_name -> gw.UplinkTxInfoLegacy 24, // 70: gw.UplinkFrame.rx_info_legacy:type_name -> gw.UplinkRxInfoLegacy 14, // 71: gw.UplinkFrame.tx_info:type_name -> gw.UplinkTxInfo 25, // 72: gw.UplinkFrame.rx_info:type_name -> gw.UplinkRxInfo 14, // 73: gw.UplinkFrameSet.tx_info:type_name -> gw.UplinkTxInfo 25, // 74: gw.UplinkFrameSet.rx_info:type_name -> gw.UplinkRxInfo 35, // 75: gw.DownlinkFrame.items:type_name -> gw.DownlinkFrameItem 26, // 76: gw.DownlinkFrameItem.tx_info_legacy:type_name -> gw.DownlinkTxInfoLegacy 27, // 77: gw.DownlinkFrameItem.tx_info:type_name -> gw.DownlinkTxInfo 37, // 78: gw.DownlinkTxAck.items:type_name -> gw.DownlinkTxAckItem 4, // 79: gw.DownlinkTxAckItem.status:type_name -> gw.TxAckStatus 43, // 80: gw.GatewayConfiguration.channels:type_name -> gw.ChannelConfiguration 66, // 81: gw.GatewayConfiguration.stats_interval:type_name -> google.protobuf.Duration 64, // 82: gw.GetLocationResponse.location:type_name -> common.Location 62, // 83: gw.GetLocationResponse.updated_at:type_name -> google.protobuf.Timestamp 63, // 84: gw.ChannelConfiguration.modulation_legacy:type_name -> common.Modulation 44, // 85: gw.ChannelConfiguration.lora_modulation_config:type_name -> gw.LoraModulationConfig 45, // 86: gw.ChannelConfiguration.fsk_modulation_config:type_name -> gw.FskModulationConfig 61, // 87: gw.GatewayCommandExecRequest.environment:type_name -> gw.GatewayCommandExecRequest.EnvironmentEntry 5, // 88: gw.ConnState.state:type_name -> gw.ConnState.State 52, // 89: gw.MeshEventHeartbeat.relay_path:type_name -> gw.MeshEventHeartbeatRelayPath 90, // [90:90] is the sub-list for method output_type 90, // [90:90] is the sub-list for method input_type 90, // [90:90] is the sub-list for extension type_name 90, // [90:90] is the sub-list for extension extendee 0, // [0:90] is the sub-list for field type_name } func init() { file_gw_gw_proto_init() } func file_gw_gw_proto_init() { if File_gw_gw_proto != nil { return } file_gw_gw_proto_msgTypes[0].OneofWrappers = []any{ (*Event_UplinkFrame)(nil), (*Event_GatewayStats)(nil), (*Event_Mesh)(nil), } file_gw_gw_proto_msgTypes[1].OneofWrappers = []any{ (*Command_SendDownlinkFrame)(nil), (*Command_SetGatewayConfiguration)(nil), (*Command_GetGatewayId)(nil), (*Command_GetLocation)(nil), (*Command_Mesh)(nil), } file_gw_gw_proto_msgTypes[3].OneofWrappers = []any{ (*MeshEventItem_Proprietary)(nil), (*MeshEventItem_Heartbeat)(nil), } file_gw_gw_proto_msgTypes[5].OneofWrappers = []any{ (*MeshCommandItem_Proprietary)(nil), } file_gw_gw_proto_msgTypes[6].OneofWrappers = []any{ (*Modulation_Lora)(nil), (*Modulation_Fsk)(nil), (*Modulation_LrFhss)(nil), } file_gw_gw_proto_msgTypes[7].OneofWrappers = []any{ (*UplinkTxInfoLegacy_LoraModulationInfo)(nil), (*UplinkTxInfoLegacy_FskModulationInfo)(nil), (*UplinkTxInfoLegacy_LrFhssModulationInfo)(nil), } file_gw_gw_proto_msgTypes[18].OneofWrappers = []any{ (*UplinkRxInfoLegacy_EncryptedFineTimestamp)(nil), (*UplinkRxInfoLegacy_PlainFineTimestamp)(nil), } file_gw_gw_proto_msgTypes[20].OneofWrappers = []any{ (*DownlinkTxInfoLegacy_LoraModulationInfo)(nil), (*DownlinkTxInfoLegacy_FskModulationInfo)(nil), (*DownlinkTxInfoLegacy_ImmediatelyTimingInfo)(nil), (*DownlinkTxInfoLegacy_DelayTimingInfo)(nil), (*DownlinkTxInfoLegacy_GpsEpochTimingInfo)(nil), } file_gw_gw_proto_msgTypes[22].OneofWrappers = []any{ (*Timing_Immediately)(nil), (*Timing_Delay)(nil), (*Timing_GpsEpoch)(nil), } file_gw_gw_proto_msgTypes[37].OneofWrappers = []any{ (*ChannelConfiguration_LoraModulationConfig)(nil), (*ChannelConfiguration_FskModulationConfig)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_gw_gw_proto_rawDesc), len(file_gw_gw_proto_rawDesc)), NumEnums: 6, NumMessages: 56, NumExtensions: 0, NumServices: 0, }, GoTypes: file_gw_gw_proto_goTypes, DependencyIndexes: file_gw_gw_proto_depIdxs, EnumInfos: file_gw_gw_proto_enumTypes, MessageInfos: file_gw_gw_proto_msgTypes, }.Build() File_gw_gw_proto = out.File file_gw_gw_proto_goTypes = nil file_gw_gw_proto_depIdxs = nil }