matrix-bridge-meshtastic/meshtastic/protobufs/module_config.pb.go

2965 lines
124 KiB
Go
Raw Normal View History

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.12
// source: protobufs/module_config.proto
package protobufs
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type RemoteHardwarePinType int32
const (
// Unset/unused
RemoteHardwarePinType_UNKNOWN RemoteHardwarePinType = 0
// GPIO pin can be read (if it is high / low)
RemoteHardwarePinType_DIGITAL_READ RemoteHardwarePinType = 1
// GPIO pin can be written to (high / low)
RemoteHardwarePinType_DIGITAL_WRITE RemoteHardwarePinType = 2
)
// Enum value maps for RemoteHardwarePinType.
var (
RemoteHardwarePinType_name = map[int32]string{
0: "UNKNOWN",
1: "DIGITAL_READ",
2: "DIGITAL_WRITE",
}
RemoteHardwarePinType_value = map[string]int32{
"UNKNOWN": 0,
"DIGITAL_READ": 1,
"DIGITAL_WRITE": 2,
}
)
func (x RemoteHardwarePinType) Enum() *RemoteHardwarePinType {
p := new(RemoteHardwarePinType)
*p = x
return p
}
func (x RemoteHardwarePinType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RemoteHardwarePinType) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_module_config_proto_enumTypes[0].Descriptor()
}
func (RemoteHardwarePinType) Type() protoreflect.EnumType {
return &file_protobufs_module_config_proto_enumTypes[0]
}
func (x RemoteHardwarePinType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RemoteHardwarePinType.Descriptor instead.
func (RemoteHardwarePinType) EnumDescriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0}
}
type ModuleConfig_DetectionSensorConfig_TriggerType int32
const (
// Event is triggered if pin is low
ModuleConfig_DetectionSensorConfig_LOGIC_LOW ModuleConfig_DetectionSensorConfig_TriggerType = 0
// Event is triggered if pin is high
ModuleConfig_DetectionSensorConfig_LOGIC_HIGH ModuleConfig_DetectionSensorConfig_TriggerType = 1
// Event is triggered when pin goes high to low
ModuleConfig_DetectionSensorConfig_FALLING_EDGE ModuleConfig_DetectionSensorConfig_TriggerType = 2
// Event is triggered when pin goes low to high
ModuleConfig_DetectionSensorConfig_RISING_EDGE ModuleConfig_DetectionSensorConfig_TriggerType = 3
// Event is triggered on every pin state change, low is considered to be
// "active"
ModuleConfig_DetectionSensorConfig_EITHER_EDGE_ACTIVE_LOW ModuleConfig_DetectionSensorConfig_TriggerType = 4
// Event is triggered on every pin state change, high is considered to be
// "active"
ModuleConfig_DetectionSensorConfig_EITHER_EDGE_ACTIVE_HIGH ModuleConfig_DetectionSensorConfig_TriggerType = 5
)
// Enum value maps for ModuleConfig_DetectionSensorConfig_TriggerType.
var (
ModuleConfig_DetectionSensorConfig_TriggerType_name = map[int32]string{
0: "LOGIC_LOW",
1: "LOGIC_HIGH",
2: "FALLING_EDGE",
3: "RISING_EDGE",
4: "EITHER_EDGE_ACTIVE_LOW",
5: "EITHER_EDGE_ACTIVE_HIGH",
}
ModuleConfig_DetectionSensorConfig_TriggerType_value = map[string]int32{
"LOGIC_LOW": 0,
"LOGIC_HIGH": 1,
"FALLING_EDGE": 2,
"RISING_EDGE": 3,
"EITHER_EDGE_ACTIVE_LOW": 4,
"EITHER_EDGE_ACTIVE_HIGH": 5,
}
)
func (x ModuleConfig_DetectionSensorConfig_TriggerType) Enum() *ModuleConfig_DetectionSensorConfig_TriggerType {
p := new(ModuleConfig_DetectionSensorConfig_TriggerType)
*p = x
return p
}
func (x ModuleConfig_DetectionSensorConfig_TriggerType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ModuleConfig_DetectionSensorConfig_TriggerType) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_module_config_proto_enumTypes[1].Descriptor()
}
func (ModuleConfig_DetectionSensorConfig_TriggerType) Type() protoreflect.EnumType {
return &file_protobufs_module_config_proto_enumTypes[1]
}
func (x ModuleConfig_DetectionSensorConfig_TriggerType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ModuleConfig_DetectionSensorConfig_TriggerType.Descriptor instead.
func (ModuleConfig_DetectionSensorConfig_TriggerType) EnumDescriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 4, 0}
}
// Baudrate for codec2 voice
type ModuleConfig_AudioConfig_Audio_Baud int32
const (
ModuleConfig_AudioConfig_CODEC2_DEFAULT ModuleConfig_AudioConfig_Audio_Baud = 0
ModuleConfig_AudioConfig_CODEC2_3200 ModuleConfig_AudioConfig_Audio_Baud = 1
ModuleConfig_AudioConfig_CODEC2_2400 ModuleConfig_AudioConfig_Audio_Baud = 2
ModuleConfig_AudioConfig_CODEC2_1600 ModuleConfig_AudioConfig_Audio_Baud = 3
ModuleConfig_AudioConfig_CODEC2_1400 ModuleConfig_AudioConfig_Audio_Baud = 4
ModuleConfig_AudioConfig_CODEC2_1300 ModuleConfig_AudioConfig_Audio_Baud = 5
ModuleConfig_AudioConfig_CODEC2_1200 ModuleConfig_AudioConfig_Audio_Baud = 6
ModuleConfig_AudioConfig_CODEC2_700 ModuleConfig_AudioConfig_Audio_Baud = 7
ModuleConfig_AudioConfig_CODEC2_700B ModuleConfig_AudioConfig_Audio_Baud = 8
)
// Enum value maps for ModuleConfig_AudioConfig_Audio_Baud.
var (
ModuleConfig_AudioConfig_Audio_Baud_name = map[int32]string{
0: "CODEC2_DEFAULT",
1: "CODEC2_3200",
2: "CODEC2_2400",
3: "CODEC2_1600",
4: "CODEC2_1400",
5: "CODEC2_1300",
6: "CODEC2_1200",
7: "CODEC2_700",
8: "CODEC2_700B",
}
ModuleConfig_AudioConfig_Audio_Baud_value = map[string]int32{
"CODEC2_DEFAULT": 0,
"CODEC2_3200": 1,
"CODEC2_2400": 2,
"CODEC2_1600": 3,
"CODEC2_1400": 4,
"CODEC2_1300": 5,
"CODEC2_1200": 6,
"CODEC2_700": 7,
"CODEC2_700B": 8,
}
)
func (x ModuleConfig_AudioConfig_Audio_Baud) Enum() *ModuleConfig_AudioConfig_Audio_Baud {
p := new(ModuleConfig_AudioConfig_Audio_Baud)
*p = x
return p
}
func (x ModuleConfig_AudioConfig_Audio_Baud) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ModuleConfig_AudioConfig_Audio_Baud) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_module_config_proto_enumTypes[2].Descriptor()
}
func (ModuleConfig_AudioConfig_Audio_Baud) Type() protoreflect.EnumType {
return &file_protobufs_module_config_proto_enumTypes[2]
}
func (x ModuleConfig_AudioConfig_Audio_Baud) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ModuleConfig_AudioConfig_Audio_Baud.Descriptor instead.
func (ModuleConfig_AudioConfig_Audio_Baud) EnumDescriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 5, 0}
}
// TODO: REPLACE
type ModuleConfig_SerialConfig_Serial_Baud int32
const (
ModuleConfig_SerialConfig_BAUD_DEFAULT ModuleConfig_SerialConfig_Serial_Baud = 0
ModuleConfig_SerialConfig_BAUD_110 ModuleConfig_SerialConfig_Serial_Baud = 1
ModuleConfig_SerialConfig_BAUD_300 ModuleConfig_SerialConfig_Serial_Baud = 2
ModuleConfig_SerialConfig_BAUD_600 ModuleConfig_SerialConfig_Serial_Baud = 3
ModuleConfig_SerialConfig_BAUD_1200 ModuleConfig_SerialConfig_Serial_Baud = 4
ModuleConfig_SerialConfig_BAUD_2400 ModuleConfig_SerialConfig_Serial_Baud = 5
ModuleConfig_SerialConfig_BAUD_4800 ModuleConfig_SerialConfig_Serial_Baud = 6
ModuleConfig_SerialConfig_BAUD_9600 ModuleConfig_SerialConfig_Serial_Baud = 7
ModuleConfig_SerialConfig_BAUD_19200 ModuleConfig_SerialConfig_Serial_Baud = 8
ModuleConfig_SerialConfig_BAUD_38400 ModuleConfig_SerialConfig_Serial_Baud = 9
ModuleConfig_SerialConfig_BAUD_57600 ModuleConfig_SerialConfig_Serial_Baud = 10
ModuleConfig_SerialConfig_BAUD_115200 ModuleConfig_SerialConfig_Serial_Baud = 11
ModuleConfig_SerialConfig_BAUD_230400 ModuleConfig_SerialConfig_Serial_Baud = 12
ModuleConfig_SerialConfig_BAUD_460800 ModuleConfig_SerialConfig_Serial_Baud = 13
ModuleConfig_SerialConfig_BAUD_576000 ModuleConfig_SerialConfig_Serial_Baud = 14
ModuleConfig_SerialConfig_BAUD_921600 ModuleConfig_SerialConfig_Serial_Baud = 15
)
// Enum value maps for ModuleConfig_SerialConfig_Serial_Baud.
var (
ModuleConfig_SerialConfig_Serial_Baud_name = map[int32]string{
0: "BAUD_DEFAULT",
1: "BAUD_110",
2: "BAUD_300",
3: "BAUD_600",
4: "BAUD_1200",
5: "BAUD_2400",
6: "BAUD_4800",
7: "BAUD_9600",
8: "BAUD_19200",
9: "BAUD_38400",
10: "BAUD_57600",
11: "BAUD_115200",
12: "BAUD_230400",
13: "BAUD_460800",
14: "BAUD_576000",
15: "BAUD_921600",
}
ModuleConfig_SerialConfig_Serial_Baud_value = map[string]int32{
"BAUD_DEFAULT": 0,
"BAUD_110": 1,
"BAUD_300": 2,
"BAUD_600": 3,
"BAUD_1200": 4,
"BAUD_2400": 5,
"BAUD_4800": 6,
"BAUD_9600": 7,
"BAUD_19200": 8,
"BAUD_38400": 9,
"BAUD_57600": 10,
"BAUD_115200": 11,
"BAUD_230400": 12,
"BAUD_460800": 13,
"BAUD_576000": 14,
"BAUD_921600": 15,
}
)
func (x ModuleConfig_SerialConfig_Serial_Baud) Enum() *ModuleConfig_SerialConfig_Serial_Baud {
p := new(ModuleConfig_SerialConfig_Serial_Baud)
*p = x
return p
}
func (x ModuleConfig_SerialConfig_Serial_Baud) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ModuleConfig_SerialConfig_Serial_Baud) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_module_config_proto_enumTypes[3].Descriptor()
}
func (ModuleConfig_SerialConfig_Serial_Baud) Type() protoreflect.EnumType {
return &file_protobufs_module_config_proto_enumTypes[3]
}
func (x ModuleConfig_SerialConfig_Serial_Baud) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ModuleConfig_SerialConfig_Serial_Baud.Descriptor instead.
func (ModuleConfig_SerialConfig_Serial_Baud) EnumDescriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 7, 0}
}
// TODO: REPLACE
type ModuleConfig_SerialConfig_Serial_Mode int32
const (
ModuleConfig_SerialConfig_DEFAULT ModuleConfig_SerialConfig_Serial_Mode = 0
ModuleConfig_SerialConfig_SIMPLE ModuleConfig_SerialConfig_Serial_Mode = 1
ModuleConfig_SerialConfig_PROTO ModuleConfig_SerialConfig_Serial_Mode = 2
ModuleConfig_SerialConfig_TEXTMSG ModuleConfig_SerialConfig_Serial_Mode = 3
ModuleConfig_SerialConfig_NMEA ModuleConfig_SerialConfig_Serial_Mode = 4
// NMEA messages specifically tailored for CalTopo
ModuleConfig_SerialConfig_CALTOPO ModuleConfig_SerialConfig_Serial_Mode = 5
// Ecowitt WS85 weather station
ModuleConfig_SerialConfig_WS85 ModuleConfig_SerialConfig_Serial_Mode = 6
)
// Enum value maps for ModuleConfig_SerialConfig_Serial_Mode.
var (
ModuleConfig_SerialConfig_Serial_Mode_name = map[int32]string{
0: "DEFAULT",
1: "SIMPLE",
2: "PROTO",
3: "TEXTMSG",
4: "NMEA",
5: "CALTOPO",
6: "WS85",
}
ModuleConfig_SerialConfig_Serial_Mode_value = map[string]int32{
"DEFAULT": 0,
"SIMPLE": 1,
"PROTO": 2,
"TEXTMSG": 3,
"NMEA": 4,
"CALTOPO": 5,
"WS85": 6,
}
)
func (x ModuleConfig_SerialConfig_Serial_Mode) Enum() *ModuleConfig_SerialConfig_Serial_Mode {
p := new(ModuleConfig_SerialConfig_Serial_Mode)
*p = x
return p
}
func (x ModuleConfig_SerialConfig_Serial_Mode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ModuleConfig_SerialConfig_Serial_Mode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_module_config_proto_enumTypes[4].Descriptor()
}
func (ModuleConfig_SerialConfig_Serial_Mode) Type() protoreflect.EnumType {
return &file_protobufs_module_config_proto_enumTypes[4]
}
func (x ModuleConfig_SerialConfig_Serial_Mode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ModuleConfig_SerialConfig_Serial_Mode.Descriptor instead.
func (ModuleConfig_SerialConfig_Serial_Mode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 7, 1}
}
// TODO: REPLACE
type ModuleConfig_CannedMessageConfig_InputEventChar int32
const (
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_NONE ModuleConfig_CannedMessageConfig_InputEventChar = 0
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_UP ModuleConfig_CannedMessageConfig_InputEventChar = 17
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_DOWN ModuleConfig_CannedMessageConfig_InputEventChar = 18
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_LEFT ModuleConfig_CannedMessageConfig_InputEventChar = 19
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_RIGHT ModuleConfig_CannedMessageConfig_InputEventChar = 20
// '\n'
ModuleConfig_CannedMessageConfig_SELECT ModuleConfig_CannedMessageConfig_InputEventChar = 10
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_BACK ModuleConfig_CannedMessageConfig_InputEventChar = 27
// TODO: REPLACE
ModuleConfig_CannedMessageConfig_CANCEL ModuleConfig_CannedMessageConfig_InputEventChar = 24
)
// Enum value maps for ModuleConfig_CannedMessageConfig_InputEventChar.
var (
ModuleConfig_CannedMessageConfig_InputEventChar_name = map[int32]string{
0: "NONE",
17: "UP",
18: "DOWN",
19: "LEFT",
20: "RIGHT",
10: "SELECT",
27: "BACK",
24: "CANCEL",
}
ModuleConfig_CannedMessageConfig_InputEventChar_value = map[string]int32{
"NONE": 0,
"UP": 17,
"DOWN": 18,
"LEFT": 19,
"RIGHT": 20,
"SELECT": 10,
"BACK": 27,
"CANCEL": 24,
}
)
func (x ModuleConfig_CannedMessageConfig_InputEventChar) Enum() *ModuleConfig_CannedMessageConfig_InputEventChar {
p := new(ModuleConfig_CannedMessageConfig_InputEventChar)
*p = x
return p
}
func (x ModuleConfig_CannedMessageConfig_InputEventChar) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ModuleConfig_CannedMessageConfig_InputEventChar) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_module_config_proto_enumTypes[5].Descriptor()
}
func (ModuleConfig_CannedMessageConfig_InputEventChar) Type() protoreflect.EnumType {
return &file_protobufs_module_config_proto_enumTypes[5]
}
func (x ModuleConfig_CannedMessageConfig_InputEventChar) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ModuleConfig_CannedMessageConfig_InputEventChar.Descriptor instead.
func (ModuleConfig_CannedMessageConfig_InputEventChar) EnumDescriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 12, 0}
}
// Module Config
type ModuleConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// TODO: REPLACE
//
// Types that are assignable to PayloadVariant:
//
// *ModuleConfig_Mqtt
// *ModuleConfig_Serial
// *ModuleConfig_ExternalNotification
// *ModuleConfig_StoreForward
// *ModuleConfig_RangeTest
// *ModuleConfig_Telemetry
// *ModuleConfig_CannedMessage
// *ModuleConfig_Audio
// *ModuleConfig_RemoteHardware
// *ModuleConfig_NeighborInfo
// *ModuleConfig_AmbientLighting
// *ModuleConfig_DetectionSensor
// *ModuleConfig_Paxcounter
PayloadVariant isModuleConfig_PayloadVariant `protobuf_oneof:"payload_variant"`
}
func (x *ModuleConfig) Reset() {
*x = ModuleConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig) ProtoMessage() {}
func (x *ModuleConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0}
}
func (m *ModuleConfig) GetPayloadVariant() isModuleConfig_PayloadVariant {
if m != nil {
return m.PayloadVariant
}
return nil
}
func (x *ModuleConfig) GetMqtt() *ModuleConfig_MQTTConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_Mqtt); ok {
return x.Mqtt
}
return nil
}
func (x *ModuleConfig) GetSerial() *ModuleConfig_SerialConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_Serial); ok {
return x.Serial
}
return nil
}
func (x *ModuleConfig) GetExternalNotification() *ModuleConfig_ExternalNotificationConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_ExternalNotification); ok {
return x.ExternalNotification
}
return nil
}
func (x *ModuleConfig) GetStoreForward() *ModuleConfig_StoreForwardConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_StoreForward); ok {
return x.StoreForward
}
return nil
}
func (x *ModuleConfig) GetRangeTest() *ModuleConfig_RangeTestConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_RangeTest); ok {
return x.RangeTest
}
return nil
}
func (x *ModuleConfig) GetTelemetry() *ModuleConfig_TelemetryConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_Telemetry); ok {
return x.Telemetry
}
return nil
}
func (x *ModuleConfig) GetCannedMessage() *ModuleConfig_CannedMessageConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_CannedMessage); ok {
return x.CannedMessage
}
return nil
}
func (x *ModuleConfig) GetAudio() *ModuleConfig_AudioConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_Audio); ok {
return x.Audio
}
return nil
}
func (x *ModuleConfig) GetRemoteHardware() *ModuleConfig_RemoteHardwareConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_RemoteHardware); ok {
return x.RemoteHardware
}
return nil
}
func (x *ModuleConfig) GetNeighborInfo() *ModuleConfig_NeighborInfoConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_NeighborInfo); ok {
return x.NeighborInfo
}
return nil
}
func (x *ModuleConfig) GetAmbientLighting() *ModuleConfig_AmbientLightingConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_AmbientLighting); ok {
return x.AmbientLighting
}
return nil
}
func (x *ModuleConfig) GetDetectionSensor() *ModuleConfig_DetectionSensorConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_DetectionSensor); ok {
return x.DetectionSensor
}
return nil
}
func (x *ModuleConfig) GetPaxcounter() *ModuleConfig_PaxcounterConfig {
if x, ok := x.GetPayloadVariant().(*ModuleConfig_Paxcounter); ok {
return x.Paxcounter
}
return nil
}
type isModuleConfig_PayloadVariant interface {
isModuleConfig_PayloadVariant()
}
type ModuleConfig_Mqtt struct {
// TODO: REPLACE
Mqtt *ModuleConfig_MQTTConfig `protobuf:"bytes,1,opt,name=mqtt,proto3,oneof"`
}
type ModuleConfig_Serial struct {
// TODO: REPLACE
Serial *ModuleConfig_SerialConfig `protobuf:"bytes,2,opt,name=serial,proto3,oneof"`
}
type ModuleConfig_ExternalNotification struct {
// TODO: REPLACE
ExternalNotification *ModuleConfig_ExternalNotificationConfig `protobuf:"bytes,3,opt,name=external_notification,json=externalNotification,proto3,oneof"`
}
type ModuleConfig_StoreForward struct {
// TODO: REPLACE
StoreForward *ModuleConfig_StoreForwardConfig `protobuf:"bytes,4,opt,name=store_forward,json=storeForward,proto3,oneof"`
}
type ModuleConfig_RangeTest struct {
// TODO: REPLACE
RangeTest *ModuleConfig_RangeTestConfig `protobuf:"bytes,5,opt,name=range_test,json=rangeTest,proto3,oneof"`
}
type ModuleConfig_Telemetry struct {
// TODO: REPLACE
Telemetry *ModuleConfig_TelemetryConfig `protobuf:"bytes,6,opt,name=telemetry,proto3,oneof"`
}
type ModuleConfig_CannedMessage struct {
// TODO: REPLACE
CannedMessage *ModuleConfig_CannedMessageConfig `protobuf:"bytes,7,opt,name=canned_message,json=cannedMessage,proto3,oneof"`
}
type ModuleConfig_Audio struct {
// TODO: REPLACE
Audio *ModuleConfig_AudioConfig `protobuf:"bytes,8,opt,name=audio,proto3,oneof"`
}
type ModuleConfig_RemoteHardware struct {
// TODO: REPLACE
RemoteHardware *ModuleConfig_RemoteHardwareConfig `protobuf:"bytes,9,opt,name=remote_hardware,json=remoteHardware,proto3,oneof"`
}
type ModuleConfig_NeighborInfo struct {
// TODO: REPLACE
NeighborInfo *ModuleConfig_NeighborInfoConfig `protobuf:"bytes,10,opt,name=neighbor_info,json=neighborInfo,proto3,oneof"`
}
type ModuleConfig_AmbientLighting struct {
// TODO: REPLACE
AmbientLighting *ModuleConfig_AmbientLightingConfig `protobuf:"bytes,11,opt,name=ambient_lighting,json=ambientLighting,proto3,oneof"`
}
type ModuleConfig_DetectionSensor struct {
// TODO: REPLACE
DetectionSensor *ModuleConfig_DetectionSensorConfig `protobuf:"bytes,12,opt,name=detection_sensor,json=detectionSensor,proto3,oneof"`
}
type ModuleConfig_Paxcounter struct {
// TODO: REPLACE
Paxcounter *ModuleConfig_PaxcounterConfig `protobuf:"bytes,13,opt,name=paxcounter,proto3,oneof"`
}
func (*ModuleConfig_Mqtt) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_Serial) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_ExternalNotification) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_StoreForward) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_RangeTest) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_Telemetry) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_CannedMessage) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_Audio) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_RemoteHardware) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_NeighborInfo) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_AmbientLighting) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_DetectionSensor) isModuleConfig_PayloadVariant() {}
func (*ModuleConfig_Paxcounter) isModuleConfig_PayloadVariant() {}
// A GPIO pin definition for remote hardware module
type RemoteHardwarePin struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// GPIO Pin number (must match Arduino)
GpioPin uint32 `protobuf:"varint,1,opt,name=gpio_pin,json=gpioPin,proto3" json:"gpio_pin,omitempty"`
// Name for the GPIO pin (i.e. Front gate, mailbox, etc)
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// Type of GPIO access available to consumers on the mesh
Type RemoteHardwarePinType `protobuf:"varint,3,opt,name=type,proto3,enum=meshtastic.RemoteHardwarePinType" json:"type,omitempty"`
}
func (x *RemoteHardwarePin) Reset() {
*x = RemoteHardwarePin{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteHardwarePin) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteHardwarePin) ProtoMessage() {}
func (x *RemoteHardwarePin) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteHardwarePin.ProtoReflect.Descriptor instead.
func (*RemoteHardwarePin) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{1}
}
func (x *RemoteHardwarePin) GetGpioPin() uint32 {
if x != nil {
return x.GpioPin
}
return 0
}
func (x *RemoteHardwarePin) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *RemoteHardwarePin) GetType() RemoteHardwarePinType {
if x != nil {
return x.Type
}
return RemoteHardwarePinType_UNKNOWN
}
// MQTT Client Config
type ModuleConfig_MQTTConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as
// is_uplink_enabled or is_downlink_enabled.
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// The server to use for our MQTT global message gateway feature.
// If not set, the default server will be used
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
// MQTT username to use (most useful for a custom MQTT server).
// If using a custom server, this will be honoured even if empty.
// If using the default server, this will only be honoured if set, otherwise the device will use the default username
Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
// MQTT password to use (most useful for a custom MQTT server).
// If using a custom server, this will be honoured even if empty.
// If using the default server, this will only be honoured if set, otherwise the device will use the default password
Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
// Whether to send encrypted or decrypted packets to MQTT.
// This parameter is only honoured if you also set server
// (the default official mqtt.meshtastic.org server can handle encrypted packets)
// Decrypted packets may be useful for external systems that want to consume meshtastic packets
EncryptionEnabled bool `protobuf:"varint,5,opt,name=encryption_enabled,json=encryptionEnabled,proto3" json:"encryption_enabled,omitempty"`
// Whether to send / consume json packets on MQTT
JsonEnabled bool `protobuf:"varint,6,opt,name=json_enabled,json=jsonEnabled,proto3" json:"json_enabled,omitempty"`
// If true, we attempt to establish a secure connection using TLS
TlsEnabled bool `protobuf:"varint,7,opt,name=tls_enabled,json=tlsEnabled,proto3" json:"tls_enabled,omitempty"`
// The root topic to use for MQTT messages. Default is "msh".
// This is useful if you want to use a single MQTT server for multiple meshtastic networks and separate them via ACLs
Root string `protobuf:"bytes,8,opt,name=root,proto3" json:"root,omitempty"`
// If true, we can use the connected phone / client to proxy messages to MQTT instead of a direct connection
ProxyToClientEnabled bool `protobuf:"varint,9,opt,name=proxy_to_client_enabled,json=proxyToClientEnabled,proto3" json:"proxy_to_client_enabled,omitempty"`
// If true, we will periodically report unencrypted information about our node to a map via MQTT
MapReportingEnabled bool `protobuf:"varint,10,opt,name=map_reporting_enabled,json=mapReportingEnabled,proto3" json:"map_reporting_enabled,omitempty"`
// Settings for reporting information about our node to a map via MQTT
MapReportSettings *ModuleConfig_MapReportSettings `protobuf:"bytes,11,opt,name=map_report_settings,json=mapReportSettings,proto3" json:"map_report_settings,omitempty"`
}
func (x *ModuleConfig_MQTTConfig) Reset() {
*x = ModuleConfig_MQTTConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_MQTTConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_MQTTConfig) ProtoMessage() {}
func (x *ModuleConfig_MQTTConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_MQTTConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_MQTTConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 0}
}
func (x *ModuleConfig_MQTTConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_MQTTConfig) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *ModuleConfig_MQTTConfig) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *ModuleConfig_MQTTConfig) GetPassword() string {
if x != nil {
return x.Password
}
return ""
}
func (x *ModuleConfig_MQTTConfig) GetEncryptionEnabled() bool {
if x != nil {
return x.EncryptionEnabled
}
return false
}
func (x *ModuleConfig_MQTTConfig) GetJsonEnabled() bool {
if x != nil {
return x.JsonEnabled
}
return false
}
func (x *ModuleConfig_MQTTConfig) GetTlsEnabled() bool {
if x != nil {
return x.TlsEnabled
}
return false
}
func (x *ModuleConfig_MQTTConfig) GetRoot() string {
if x != nil {
return x.Root
}
return ""
}
func (x *ModuleConfig_MQTTConfig) GetProxyToClientEnabled() bool {
if x != nil {
return x.ProxyToClientEnabled
}
return false
}
func (x *ModuleConfig_MQTTConfig) GetMapReportingEnabled() bool {
if x != nil {
return x.MapReportingEnabled
}
return false
}
func (x *ModuleConfig_MQTTConfig) GetMapReportSettings() *ModuleConfig_MapReportSettings {
if x != nil {
return x.MapReportSettings
}
return nil
}
// Settings for reporting unencrypted information about our node to a map via MQTT
type ModuleConfig_MapReportSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// How often we should report our info to the map (in seconds)
PublishIntervalSecs uint32 `protobuf:"varint,1,opt,name=publish_interval_secs,json=publishIntervalSecs,proto3" json:"publish_interval_secs,omitempty"`
// Bits of precision for the location sent (default of 32 is full precision).
PositionPrecision uint32 `protobuf:"varint,2,opt,name=position_precision,json=positionPrecision,proto3" json:"position_precision,omitempty"`
}
func (x *ModuleConfig_MapReportSettings) Reset() {
*x = ModuleConfig_MapReportSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_MapReportSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_MapReportSettings) ProtoMessage() {}
func (x *ModuleConfig_MapReportSettings) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_MapReportSettings.ProtoReflect.Descriptor instead.
func (*ModuleConfig_MapReportSettings) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 1}
}
func (x *ModuleConfig_MapReportSettings) GetPublishIntervalSecs() uint32 {
if x != nil {
return x.PublishIntervalSecs
}
return 0
}
func (x *ModuleConfig_MapReportSettings) GetPositionPrecision() uint32 {
if x != nil {
return x.PositionPrecision
}
return 0
}
// RemoteHardwareModule Config
type ModuleConfig_RemoteHardwareConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Whether the Module is enabled
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Whether the Module allows consumers to read / write to pins not defined in available_pins
AllowUndefinedPinAccess bool `protobuf:"varint,2,opt,name=allow_undefined_pin_access,json=allowUndefinedPinAccess,proto3" json:"allow_undefined_pin_access,omitempty"`
// Exposes the available pins to the mesh for reading and writing
AvailablePins []*RemoteHardwarePin `protobuf:"bytes,3,rep,name=available_pins,json=availablePins,proto3" json:"available_pins,omitempty"`
}
func (x *ModuleConfig_RemoteHardwareConfig) Reset() {
*x = ModuleConfig_RemoteHardwareConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_RemoteHardwareConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_RemoteHardwareConfig) ProtoMessage() {}
func (x *ModuleConfig_RemoteHardwareConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_RemoteHardwareConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_RemoteHardwareConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 2}
}
func (x *ModuleConfig_RemoteHardwareConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_RemoteHardwareConfig) GetAllowUndefinedPinAccess() bool {
if x != nil {
return x.AllowUndefinedPinAccess
}
return false
}
func (x *ModuleConfig_RemoteHardwareConfig) GetAvailablePins() []*RemoteHardwarePin {
if x != nil {
return x.AvailablePins
}
return nil
}
// NeighborInfoModule Config
type ModuleConfig_NeighborInfoConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Whether the Module is enabled
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Interval in seconds of how often we should try to send our
// Neighbor Info to the mesh
UpdateInterval uint32 `protobuf:"varint,2,opt,name=update_interval,json=updateInterval,proto3" json:"update_interval,omitempty"`
}
func (x *ModuleConfig_NeighborInfoConfig) Reset() {
*x = ModuleConfig_NeighborInfoConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_NeighborInfoConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_NeighborInfoConfig) ProtoMessage() {}
func (x *ModuleConfig_NeighborInfoConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_NeighborInfoConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_NeighborInfoConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 3}
}
func (x *ModuleConfig_NeighborInfoConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_NeighborInfoConfig) GetUpdateInterval() uint32 {
if x != nil {
return x.UpdateInterval
}
return 0
}
// Detection Sensor Module Config
type ModuleConfig_DetectionSensorConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Whether the Module is enabled
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Interval in seconds of how often we can send a message to the mesh when a
// trigger event is detected
MinimumBroadcastSecs uint32 `protobuf:"varint,2,opt,name=minimum_broadcast_secs,json=minimumBroadcastSecs,proto3" json:"minimum_broadcast_secs,omitempty"`
// Interval in seconds of how often we should send a message to the mesh
// with the current state regardless of trigger events When set to 0, only
// trigger events will be broadcasted Works as a sort of status heartbeat
// for peace of mind
StateBroadcastSecs uint32 `protobuf:"varint,3,opt,name=state_broadcast_secs,json=stateBroadcastSecs,proto3" json:"state_broadcast_secs,omitempty"`
// Send ASCII bell with alert message
// Useful for triggering ext. notification on bell
SendBell bool `protobuf:"varint,4,opt,name=send_bell,json=sendBell,proto3" json:"send_bell,omitempty"`
// Friendly name used to format message sent to mesh
// Example: A name "Motion" would result in a message "Motion detected"
// Maximum length of 20 characters
Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
// GPIO pin to monitor for state changes
MonitorPin uint32 `protobuf:"varint,6,opt,name=monitor_pin,json=monitorPin,proto3" json:"monitor_pin,omitempty"`
// The type of trigger event to be used
DetectionTriggerType ModuleConfig_DetectionSensorConfig_TriggerType `protobuf:"varint,7,opt,name=detection_trigger_type,json=detectionTriggerType,proto3,enum=meshtastic.ModuleConfig_DetectionSensorConfig_TriggerType" json:"detection_trigger_type,omitempty"`
// Whether or not use INPUT_PULLUP mode for GPIO pin
// Only applicable if the board uses pull-up resistors on the pin
UsePullup bool `protobuf:"varint,8,opt,name=use_pullup,json=usePullup,proto3" json:"use_pullup,omitempty"`
}
func (x *ModuleConfig_DetectionSensorConfig) Reset() {
*x = ModuleConfig_DetectionSensorConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_DetectionSensorConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_DetectionSensorConfig) ProtoMessage() {}
func (x *ModuleConfig_DetectionSensorConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_DetectionSensorConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_DetectionSensorConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 4}
}
func (x *ModuleConfig_DetectionSensorConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_DetectionSensorConfig) GetMinimumBroadcastSecs() uint32 {
if x != nil {
return x.MinimumBroadcastSecs
}
return 0
}
func (x *ModuleConfig_DetectionSensorConfig) GetStateBroadcastSecs() uint32 {
if x != nil {
return x.StateBroadcastSecs
}
return 0
}
func (x *ModuleConfig_DetectionSensorConfig) GetSendBell() bool {
if x != nil {
return x.SendBell
}
return false
}
func (x *ModuleConfig_DetectionSensorConfig) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ModuleConfig_DetectionSensorConfig) GetMonitorPin() uint32 {
if x != nil {
return x.MonitorPin
}
return 0
}
func (x *ModuleConfig_DetectionSensorConfig) GetDetectionTriggerType() ModuleConfig_DetectionSensorConfig_TriggerType {
if x != nil {
return x.DetectionTriggerType
}
return ModuleConfig_DetectionSensorConfig_LOGIC_LOW
}
func (x *ModuleConfig_DetectionSensorConfig) GetUsePullup() bool {
if x != nil {
return x.UsePullup
}
return false
}
// Audio Config for codec2 voice
type ModuleConfig_AudioConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Whether Audio is enabled
Codec2Enabled bool `protobuf:"varint,1,opt,name=codec2_enabled,json=codec2Enabled,proto3" json:"codec2_enabled,omitempty"`
// PTT Pin
PttPin uint32 `protobuf:"varint,2,opt,name=ptt_pin,json=pttPin,proto3" json:"ptt_pin,omitempty"`
// The audio sample rate to use for codec2
Bitrate ModuleConfig_AudioConfig_Audio_Baud `protobuf:"varint,3,opt,name=bitrate,proto3,enum=meshtastic.ModuleConfig_AudioConfig_Audio_Baud" json:"bitrate,omitempty"`
// I2S Word Select
I2SWs uint32 `protobuf:"varint,4,opt,name=i2s_ws,json=i2sWs,proto3" json:"i2s_ws,omitempty"`
// I2S Data IN
I2SSd uint32 `protobuf:"varint,5,opt,name=i2s_sd,json=i2sSd,proto3" json:"i2s_sd,omitempty"`
// I2S Data OUT
I2SDin uint32 `protobuf:"varint,6,opt,name=i2s_din,json=i2sDin,proto3" json:"i2s_din,omitempty"`
// I2S Clock
I2SSck uint32 `protobuf:"varint,7,opt,name=i2s_sck,json=i2sSck,proto3" json:"i2s_sck,omitempty"`
}
func (x *ModuleConfig_AudioConfig) Reset() {
*x = ModuleConfig_AudioConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_AudioConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_AudioConfig) ProtoMessage() {}
func (x *ModuleConfig_AudioConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_AudioConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_AudioConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 5}
}
func (x *ModuleConfig_AudioConfig) GetCodec2Enabled() bool {
if x != nil {
return x.Codec2Enabled
}
return false
}
func (x *ModuleConfig_AudioConfig) GetPttPin() uint32 {
if x != nil {
return x.PttPin
}
return 0
}
func (x *ModuleConfig_AudioConfig) GetBitrate() ModuleConfig_AudioConfig_Audio_Baud {
if x != nil {
return x.Bitrate
}
return ModuleConfig_AudioConfig_CODEC2_DEFAULT
}
func (x *ModuleConfig_AudioConfig) GetI2SWs() uint32 {
if x != nil {
return x.I2SWs
}
return 0
}
func (x *ModuleConfig_AudioConfig) GetI2SSd() uint32 {
if x != nil {
return x.I2SSd
}
return 0
}
func (x *ModuleConfig_AudioConfig) GetI2SDin() uint32 {
if x != nil {
return x.I2SDin
}
return 0
}
func (x *ModuleConfig_AudioConfig) GetI2SSck() uint32 {
if x != nil {
return x.I2SSck
}
return 0
}
// Config for the Paxcounter Module
type ModuleConfig_PaxcounterConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable the Paxcounter Module
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
PaxcounterUpdateInterval uint32 `protobuf:"varint,2,opt,name=paxcounter_update_interval,json=paxcounterUpdateInterval,proto3" json:"paxcounter_update_interval,omitempty"`
// WiFi RSSI threshold. Defaults to -80
WifiThreshold int32 `protobuf:"varint,3,opt,name=wifi_threshold,json=wifiThreshold,proto3" json:"wifi_threshold,omitempty"`
// BLE RSSI threshold. Defaults to -80
BleThreshold int32 `protobuf:"varint,4,opt,name=ble_threshold,json=bleThreshold,proto3" json:"ble_threshold,omitempty"`
}
func (x *ModuleConfig_PaxcounterConfig) Reset() {
*x = ModuleConfig_PaxcounterConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_PaxcounterConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_PaxcounterConfig) ProtoMessage() {}
func (x *ModuleConfig_PaxcounterConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_PaxcounterConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_PaxcounterConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 6}
}
func (x *ModuleConfig_PaxcounterConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_PaxcounterConfig) GetPaxcounterUpdateInterval() uint32 {
if x != nil {
return x.PaxcounterUpdateInterval
}
return 0
}
func (x *ModuleConfig_PaxcounterConfig) GetWifiThreshold() int32 {
if x != nil {
return x.WifiThreshold
}
return 0
}
func (x *ModuleConfig_PaxcounterConfig) GetBleThreshold() int32 {
if x != nil {
return x.BleThreshold
}
return 0
}
// Serial Config
type ModuleConfig_SerialConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Preferences for the SerialModule
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// TODO: REPLACE
Echo bool `protobuf:"varint,2,opt,name=echo,proto3" json:"echo,omitempty"`
// RX pin (should match Arduino gpio pin number)
Rxd uint32 `protobuf:"varint,3,opt,name=rxd,proto3" json:"rxd,omitempty"`
// TX pin (should match Arduino gpio pin number)
Txd uint32 `protobuf:"varint,4,opt,name=txd,proto3" json:"txd,omitempty"`
// Serial baud rate
Baud ModuleConfig_SerialConfig_Serial_Baud `protobuf:"varint,5,opt,name=baud,proto3,enum=meshtastic.ModuleConfig_SerialConfig_Serial_Baud" json:"baud,omitempty"`
// TODO: REPLACE
Timeout uint32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
// Mode for serial module operation
Mode ModuleConfig_SerialConfig_Serial_Mode `protobuf:"varint,7,opt,name=mode,proto3,enum=meshtastic.ModuleConfig_SerialConfig_Serial_Mode" json:"mode,omitempty"`
// Overrides the platform's defacto Serial port instance to use with Serial module config settings
// This is currently only usable in output modes like NMEA / CalTopo and may behave strangely or not work at all in other modes
// Existing logging over the Serial Console will still be present
OverrideConsoleSerialPort bool `protobuf:"varint,8,opt,name=override_console_serial_port,json=overrideConsoleSerialPort,proto3" json:"override_console_serial_port,omitempty"`
}
func (x *ModuleConfig_SerialConfig) Reset() {
*x = ModuleConfig_SerialConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_SerialConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_SerialConfig) ProtoMessage() {}
func (x *ModuleConfig_SerialConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_SerialConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_SerialConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 7}
}
func (x *ModuleConfig_SerialConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_SerialConfig) GetEcho() bool {
if x != nil {
return x.Echo
}
return false
}
func (x *ModuleConfig_SerialConfig) GetRxd() uint32 {
if x != nil {
return x.Rxd
}
return 0
}
func (x *ModuleConfig_SerialConfig) GetTxd() uint32 {
if x != nil {
return x.Txd
}
return 0
}
func (x *ModuleConfig_SerialConfig) GetBaud() ModuleConfig_SerialConfig_Serial_Baud {
if x != nil {
return x.Baud
}
return ModuleConfig_SerialConfig_BAUD_DEFAULT
}
func (x *ModuleConfig_SerialConfig) GetTimeout() uint32 {
if x != nil {
return x.Timeout
}
return 0
}
func (x *ModuleConfig_SerialConfig) GetMode() ModuleConfig_SerialConfig_Serial_Mode {
if x != nil {
return x.Mode
}
return ModuleConfig_SerialConfig_DEFAULT
}
func (x *ModuleConfig_SerialConfig) GetOverrideConsoleSerialPort() bool {
if x != nil {
return x.OverrideConsoleSerialPort
}
return false
}
// External Notifications Config
type ModuleConfig_ExternalNotificationConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable the ExternalNotificationModule
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// When using in On/Off mode, keep the output on for this many
// milliseconds. Default 1000ms (1 second).
OutputMs uint32 `protobuf:"varint,2,opt,name=output_ms,json=outputMs,proto3" json:"output_ms,omitempty"`
// Define the output pin GPIO setting Defaults to
// EXT_NOTIFY_OUT if set for the board.
// In standalone devices this pin should drive the LED to match the UI.
Output uint32 `protobuf:"varint,3,opt,name=output,proto3" json:"output,omitempty"`
// Optional: Define a secondary output pin for a vibra motor
// This is used in standalone devices to match the UI.
OutputVibra uint32 `protobuf:"varint,8,opt,name=output_vibra,json=outputVibra,proto3" json:"output_vibra,omitempty"`
// Optional: Define a tertiary output pin for an active buzzer
// This is used in standalone devices to to match the UI.
OutputBuzzer uint32 `protobuf:"varint,9,opt,name=output_buzzer,json=outputBuzzer,proto3" json:"output_buzzer,omitempty"`
// IF this is true, the 'output' Pin will be pulled active high, false
// means active low.
Active bool `protobuf:"varint,4,opt,name=active,proto3" json:"active,omitempty"`
// True: Alert when a text message arrives (output)
AlertMessage bool `protobuf:"varint,5,opt,name=alert_message,json=alertMessage,proto3" json:"alert_message,omitempty"`
// True: Alert when a text message arrives (output_vibra)
AlertMessageVibra bool `protobuf:"varint,10,opt,name=alert_message_vibra,json=alertMessageVibra,proto3" json:"alert_message_vibra,omitempty"`
// True: Alert when a text message arrives (output_buzzer)
AlertMessageBuzzer bool `protobuf:"varint,11,opt,name=alert_message_buzzer,json=alertMessageBuzzer,proto3" json:"alert_message_buzzer,omitempty"`
// True: Alert when the bell character is received (output)
AlertBell bool `protobuf:"varint,6,opt,name=alert_bell,json=alertBell,proto3" json:"alert_bell,omitempty"`
// True: Alert when the bell character is received (output_vibra)
AlertBellVibra bool `protobuf:"varint,12,opt,name=alert_bell_vibra,json=alertBellVibra,proto3" json:"alert_bell_vibra,omitempty"`
// True: Alert when the bell character is received (output_buzzer)
AlertBellBuzzer bool `protobuf:"varint,13,opt,name=alert_bell_buzzer,json=alertBellBuzzer,proto3" json:"alert_bell_buzzer,omitempty"`
// use a PWM output instead of a simple on/off output. This will ignore
// the 'output', 'output_ms' and 'active' settings and use the
// device.buzzer_gpio instead.
UsePwm bool `protobuf:"varint,7,opt,name=use_pwm,json=usePwm,proto3" json:"use_pwm,omitempty"`
// The notification will toggle with 'output_ms' for this time of seconds.
// Default is 0 which means don't repeat at all. 60 would mean blink
// and/or beep for 60 seconds
NagTimeout uint32 `protobuf:"varint,14,opt,name=nag_timeout,json=nagTimeout,proto3" json:"nag_timeout,omitempty"`
// When true, enables devices with native I2S audio output to use the RTTTL over speaker like a buzzer
// T-Watch S3 and T-Deck for example have this capability
UseI2SAsBuzzer bool `protobuf:"varint,15,opt,name=use_i2s_as_buzzer,json=useI2sAsBuzzer,proto3" json:"use_i2s_as_buzzer,omitempty"`
}
func (x *ModuleConfig_ExternalNotificationConfig) Reset() {
*x = ModuleConfig_ExternalNotificationConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_ExternalNotificationConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_ExternalNotificationConfig) ProtoMessage() {}
func (x *ModuleConfig_ExternalNotificationConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_ExternalNotificationConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_ExternalNotificationConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 8}
}
func (x *ModuleConfig_ExternalNotificationConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetOutputMs() uint32 {
if x != nil {
return x.OutputMs
}
return 0
}
func (x *ModuleConfig_ExternalNotificationConfig) GetOutput() uint32 {
if x != nil {
return x.Output
}
return 0
}
func (x *ModuleConfig_ExternalNotificationConfig) GetOutputVibra() uint32 {
if x != nil {
return x.OutputVibra
}
return 0
}
func (x *ModuleConfig_ExternalNotificationConfig) GetOutputBuzzer() uint32 {
if x != nil {
return x.OutputBuzzer
}
return 0
}
func (x *ModuleConfig_ExternalNotificationConfig) GetActive() bool {
if x != nil {
return x.Active
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessage() bool {
if x != nil {
return x.AlertMessage
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessageVibra() bool {
if x != nil {
return x.AlertMessageVibra
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetAlertMessageBuzzer() bool {
if x != nil {
return x.AlertMessageBuzzer
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBell() bool {
if x != nil {
return x.AlertBell
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBellVibra() bool {
if x != nil {
return x.AlertBellVibra
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetAlertBellBuzzer() bool {
if x != nil {
return x.AlertBellBuzzer
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetUsePwm() bool {
if x != nil {
return x.UsePwm
}
return false
}
func (x *ModuleConfig_ExternalNotificationConfig) GetNagTimeout() uint32 {
if x != nil {
return x.NagTimeout
}
return 0
}
func (x *ModuleConfig_ExternalNotificationConfig) GetUseI2SAsBuzzer() bool {
if x != nil {
return x.UseI2SAsBuzzer
}
return false
}
// Store and Forward Module Config
type ModuleConfig_StoreForwardConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable the Store and Forward Module
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// TODO: REPLACE
Heartbeat bool `protobuf:"varint,2,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"`
// TODO: REPLACE
Records uint32 `protobuf:"varint,3,opt,name=records,proto3" json:"records,omitempty"`
// TODO: REPLACE
HistoryReturnMax uint32 `protobuf:"varint,4,opt,name=history_return_max,json=historyReturnMax,proto3" json:"history_return_max,omitempty"`
// TODO: REPLACE
HistoryReturnWindow uint32 `protobuf:"varint,5,opt,name=history_return_window,json=historyReturnWindow,proto3" json:"history_return_window,omitempty"`
// Set to true to let this node act as a server that stores received messages and resends them upon request.
IsServer bool `protobuf:"varint,6,opt,name=is_server,json=isServer,proto3" json:"is_server,omitempty"`
}
func (x *ModuleConfig_StoreForwardConfig) Reset() {
*x = ModuleConfig_StoreForwardConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_StoreForwardConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_StoreForwardConfig) ProtoMessage() {}
func (x *ModuleConfig_StoreForwardConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_StoreForwardConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_StoreForwardConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 9}
}
func (x *ModuleConfig_StoreForwardConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_StoreForwardConfig) GetHeartbeat() bool {
if x != nil {
return x.Heartbeat
}
return false
}
func (x *ModuleConfig_StoreForwardConfig) GetRecords() uint32 {
if x != nil {
return x.Records
}
return 0
}
func (x *ModuleConfig_StoreForwardConfig) GetHistoryReturnMax() uint32 {
if x != nil {
return x.HistoryReturnMax
}
return 0
}
func (x *ModuleConfig_StoreForwardConfig) GetHistoryReturnWindow() uint32 {
if x != nil {
return x.HistoryReturnWindow
}
return 0
}
func (x *ModuleConfig_StoreForwardConfig) GetIsServer() bool {
if x != nil {
return x.IsServer
}
return false
}
// Preferences for the RangeTestModule
type ModuleConfig_RangeTestConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable the Range Test Module
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Send out range test messages from this node
Sender uint32 `protobuf:"varint,2,opt,name=sender,proto3" json:"sender,omitempty"`
// Bool value indicating that this node should save a RangeTest.csv file.
// ESP32 Only
Save bool `protobuf:"varint,3,opt,name=save,proto3" json:"save,omitempty"`
}
func (x *ModuleConfig_RangeTestConfig) Reset() {
*x = ModuleConfig_RangeTestConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_RangeTestConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_RangeTestConfig) ProtoMessage() {}
func (x *ModuleConfig_RangeTestConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_RangeTestConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_RangeTestConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 10}
}
func (x *ModuleConfig_RangeTestConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_RangeTestConfig) GetSender() uint32 {
if x != nil {
return x.Sender
}
return 0
}
func (x *ModuleConfig_RangeTestConfig) GetSave() bool {
if x != nil {
return x.Save
}
return false
}
// Configuration for both device and environment metrics
type ModuleConfig_TelemetryConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Interval in seconds of how often we should try to send our
// device metrics to the mesh
DeviceUpdateInterval uint32 `protobuf:"varint,1,opt,name=device_update_interval,json=deviceUpdateInterval,proto3" json:"device_update_interval,omitempty"`
EnvironmentUpdateInterval uint32 `protobuf:"varint,2,opt,name=environment_update_interval,json=environmentUpdateInterval,proto3" json:"environment_update_interval,omitempty"`
// Preferences for the Telemetry Module (Environment)
// Enable/Disable the telemetry measurement module measurement collection
EnvironmentMeasurementEnabled bool `protobuf:"varint,3,opt,name=environment_measurement_enabled,json=environmentMeasurementEnabled,proto3" json:"environment_measurement_enabled,omitempty"`
// Enable/Disable the telemetry measurement module on-device display
EnvironmentScreenEnabled bool `protobuf:"varint,4,opt,name=environment_screen_enabled,json=environmentScreenEnabled,proto3" json:"environment_screen_enabled,omitempty"`
// We'll always read the sensor in Celsius, but sometimes we might want to
// display the results in Fahrenheit as a "user preference".
EnvironmentDisplayFahrenheit bool `protobuf:"varint,5,opt,name=environment_display_fahrenheit,json=environmentDisplayFahrenheit,proto3" json:"environment_display_fahrenheit,omitempty"`
// Enable/Disable the air quality metrics
AirQualityEnabled bool `protobuf:"varint,6,opt,name=air_quality_enabled,json=airQualityEnabled,proto3" json:"air_quality_enabled,omitempty"`
// Interval in seconds of how often we should try to send our
// air quality metrics to the mesh
AirQualityInterval uint32 `protobuf:"varint,7,opt,name=air_quality_interval,json=airQualityInterval,proto3" json:"air_quality_interval,omitempty"`
// Enable/disable Power metrics
PowerMeasurementEnabled bool `protobuf:"varint,8,opt,name=power_measurement_enabled,json=powerMeasurementEnabled,proto3" json:"power_measurement_enabled,omitempty"`
// Interval in seconds of how often we should try to send our
// power metrics to the mesh
PowerUpdateInterval uint32 `protobuf:"varint,9,opt,name=power_update_interval,json=powerUpdateInterval,proto3" json:"power_update_interval,omitempty"`
// Enable/Disable the power measurement module on-device display
PowerScreenEnabled bool `protobuf:"varint,10,opt,name=power_screen_enabled,json=powerScreenEnabled,proto3" json:"power_screen_enabled,omitempty"`
// Preferences for the (Health) Telemetry Module
// Enable/Disable the telemetry measurement module measurement collection
HealthMeasurementEnabled bool `protobuf:"varint,11,opt,name=health_measurement_enabled,json=healthMeasurementEnabled,proto3" json:"health_measurement_enabled,omitempty"`
// Interval in seconds of how often we should try to send our
// health metrics to the mesh
HealthUpdateInterval uint32 `protobuf:"varint,12,opt,name=health_update_interval,json=healthUpdateInterval,proto3" json:"health_update_interval,omitempty"`
// Enable/Disable the health telemetry module on-device display
HealthScreenEnabled bool `protobuf:"varint,13,opt,name=health_screen_enabled,json=healthScreenEnabled,proto3" json:"health_screen_enabled,omitempty"`
}
func (x *ModuleConfig_TelemetryConfig) Reset() {
*x = ModuleConfig_TelemetryConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_TelemetryConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_TelemetryConfig) ProtoMessage() {}
func (x *ModuleConfig_TelemetryConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_TelemetryConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_TelemetryConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 11}
}
func (x *ModuleConfig_TelemetryConfig) GetDeviceUpdateInterval() uint32 {
if x != nil {
return x.DeviceUpdateInterval
}
return 0
}
func (x *ModuleConfig_TelemetryConfig) GetEnvironmentUpdateInterval() uint32 {
if x != nil {
return x.EnvironmentUpdateInterval
}
return 0
}
func (x *ModuleConfig_TelemetryConfig) GetEnvironmentMeasurementEnabled() bool {
if x != nil {
return x.EnvironmentMeasurementEnabled
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetEnvironmentScreenEnabled() bool {
if x != nil {
return x.EnvironmentScreenEnabled
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetEnvironmentDisplayFahrenheit() bool {
if x != nil {
return x.EnvironmentDisplayFahrenheit
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetAirQualityEnabled() bool {
if x != nil {
return x.AirQualityEnabled
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetAirQualityInterval() uint32 {
if x != nil {
return x.AirQualityInterval
}
return 0
}
func (x *ModuleConfig_TelemetryConfig) GetPowerMeasurementEnabled() bool {
if x != nil {
return x.PowerMeasurementEnabled
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetPowerUpdateInterval() uint32 {
if x != nil {
return x.PowerUpdateInterval
}
return 0
}
func (x *ModuleConfig_TelemetryConfig) GetPowerScreenEnabled() bool {
if x != nil {
return x.PowerScreenEnabled
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetHealthMeasurementEnabled() bool {
if x != nil {
return x.HealthMeasurementEnabled
}
return false
}
func (x *ModuleConfig_TelemetryConfig) GetHealthUpdateInterval() uint32 {
if x != nil {
return x.HealthUpdateInterval
}
return 0
}
func (x *ModuleConfig_TelemetryConfig) GetHealthScreenEnabled() bool {
if x != nil {
return x.HealthScreenEnabled
}
return false
}
// TODO: REPLACE
type ModuleConfig_CannedMessageConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating.
Rotary1Enabled bool `protobuf:"varint,1,opt,name=rotary1_enabled,json=rotary1Enabled,proto3" json:"rotary1_enabled,omitempty"`
// GPIO pin for rotary encoder A port.
InputbrokerPinA uint32 `protobuf:"varint,2,opt,name=inputbroker_pin_a,json=inputbrokerPinA,proto3" json:"inputbroker_pin_a,omitempty"`
// GPIO pin for rotary encoder B port.
InputbrokerPinB uint32 `protobuf:"varint,3,opt,name=inputbroker_pin_b,json=inputbrokerPinB,proto3" json:"inputbroker_pin_b,omitempty"`
// GPIO pin for rotary encoder Press port.
InputbrokerPinPress uint32 `protobuf:"varint,4,opt,name=inputbroker_pin_press,json=inputbrokerPinPress,proto3" json:"inputbroker_pin_press,omitempty"`
// Generate input event on CW of this kind.
InputbrokerEventCw ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,5,opt,name=inputbroker_event_cw,json=inputbrokerEventCw,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_cw,omitempty"`
// Generate input event on CCW of this kind.
InputbrokerEventCcw ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,6,opt,name=inputbroker_event_ccw,json=inputbrokerEventCcw,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_ccw,omitempty"`
// Generate input event on Press of this kind.
InputbrokerEventPress ModuleConfig_CannedMessageConfig_InputEventChar `protobuf:"varint,7,opt,name=inputbroker_event_press,json=inputbrokerEventPress,proto3,enum=meshtastic.ModuleConfig_CannedMessageConfig_InputEventChar" json:"inputbroker_event_press,omitempty"`
// Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker.
Updown1Enabled bool `protobuf:"varint,8,opt,name=updown1_enabled,json=updown1Enabled,proto3" json:"updown1_enabled,omitempty"`
// Enable/disable CannedMessageModule.
Enabled bool `protobuf:"varint,9,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Input event origin accepted by the canned message module.
// Can be e.g. "rotEnc1", "upDownEnc1", "scanAndSelect", "cardkb", "serialkb", or keyword "_any"
AllowInputSource string `protobuf:"bytes,10,opt,name=allow_input_source,json=allowInputSource,proto3" json:"allow_input_source,omitempty"`
// CannedMessageModule also sends a bell character with the messages.
// ExternalNotificationModule can benefit from this feature.
SendBell bool `protobuf:"varint,11,opt,name=send_bell,json=sendBell,proto3" json:"send_bell,omitempty"`
}
func (x *ModuleConfig_CannedMessageConfig) Reset() {
*x = ModuleConfig_CannedMessageConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_CannedMessageConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_CannedMessageConfig) ProtoMessage() {}
func (x *ModuleConfig_CannedMessageConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_CannedMessageConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_CannedMessageConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 12}
}
func (x *ModuleConfig_CannedMessageConfig) GetRotary1Enabled() bool {
if x != nil {
return x.Rotary1Enabled
}
return false
}
func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinA() uint32 {
if x != nil {
return x.InputbrokerPinA
}
return 0
}
func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinB() uint32 {
if x != nil {
return x.InputbrokerPinB
}
return 0
}
func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerPinPress() uint32 {
if x != nil {
return x.InputbrokerPinPress
}
return 0
}
func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventCw() ModuleConfig_CannedMessageConfig_InputEventChar {
if x != nil {
return x.InputbrokerEventCw
}
return ModuleConfig_CannedMessageConfig_NONE
}
func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventCcw() ModuleConfig_CannedMessageConfig_InputEventChar {
if x != nil {
return x.InputbrokerEventCcw
}
return ModuleConfig_CannedMessageConfig_NONE
}
func (x *ModuleConfig_CannedMessageConfig) GetInputbrokerEventPress() ModuleConfig_CannedMessageConfig_InputEventChar {
if x != nil {
return x.InputbrokerEventPress
}
return ModuleConfig_CannedMessageConfig_NONE
}
func (x *ModuleConfig_CannedMessageConfig) GetUpdown1Enabled() bool {
if x != nil {
return x.Updown1Enabled
}
return false
}
func (x *ModuleConfig_CannedMessageConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *ModuleConfig_CannedMessageConfig) GetAllowInputSource() string {
if x != nil {
return x.AllowInputSource
}
return ""
}
func (x *ModuleConfig_CannedMessageConfig) GetSendBell() bool {
if x != nil {
return x.SendBell
}
return false
}
// Ambient Lighting Module - Settings for control of onboard LEDs to allow users to adjust the brightness levels and respective color levels.
// Initially created for the RAK14001 RGB LED module.
type ModuleConfig_AmbientLightingConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Sets LED to on or off.
LedState bool `protobuf:"varint,1,opt,name=led_state,json=ledState,proto3" json:"led_state,omitempty"`
// Sets the current for the LED output. Default is 10.
Current uint32 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"`
// Sets the red LED level. Values are 0-255.
Red uint32 `protobuf:"varint,3,opt,name=red,proto3" json:"red,omitempty"`
// Sets the green LED level. Values are 0-255.
Green uint32 `protobuf:"varint,4,opt,name=green,proto3" json:"green,omitempty"`
// Sets the blue LED level. Values are 0-255.
Blue uint32 `protobuf:"varint,5,opt,name=blue,proto3" json:"blue,omitempty"`
}
func (x *ModuleConfig_AmbientLightingConfig) Reset() {
*x = ModuleConfig_AmbientLightingConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_module_config_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModuleConfig_AmbientLightingConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModuleConfig_AmbientLightingConfig) ProtoMessage() {}
func (x *ModuleConfig_AmbientLightingConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_module_config_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModuleConfig_AmbientLightingConfig.ProtoReflect.Descriptor instead.
func (*ModuleConfig_AmbientLightingConfig) Descriptor() ([]byte, []int) {
return file_protobufs_module_config_proto_rawDescGZIP(), []int{0, 13}
}
func (x *ModuleConfig_AmbientLightingConfig) GetLedState() bool {
if x != nil {
return x.LedState
}
return false
}
func (x *ModuleConfig_AmbientLightingConfig) GetCurrent() uint32 {
if x != nil {
return x.Current
}
return 0
}
func (x *ModuleConfig_AmbientLightingConfig) GetRed() uint32 {
if x != nil {
return x.Red
}
return 0
}
func (x *ModuleConfig_AmbientLightingConfig) GetGreen() uint32 {
if x != nil {
return x.Green
}
return 0
}
func (x *ModuleConfig_AmbientLightingConfig) GetBlue() uint32 {
if x != nil {
return x.Blue
}
return 0
}
var File_protobufs_module_config_proto protoreflect.FileDescriptor
var file_protobufs_module_config_proto_rawDesc = []byte{
0x0a, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x75,
0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x22, 0xc2, 0x31, 0x0a, 0x0c,
0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x04,
0x6d, 0x71, 0x74, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x51, 0x54, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
0x00, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61,
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00,
0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x6a, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65,
0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14,
0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f,
0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65,
0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61,
0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72,
0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x67,
0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d,
0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x54,
0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x55, 0x0a,
0x0e, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64,
0x69, 0x6f, 0x12, 0x58, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x72,
0x64, 0x77, 0x61, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x65,
0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64,
0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65,
0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x12, 0x52, 0x0a, 0x0d,
0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63,
0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65,
0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x48, 0x00, 0x52, 0x0c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x5b, 0x0a, 0x10, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x67, 0x68,
0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68,
0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6d,
0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5b, 0x0a,
0x10, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x6f,
0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f,
0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61,
0x78, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75,
0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61, 0x78,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0xc6, 0x03, 0x0a, 0x0a, 0x4d, 0x51, 0x54, 0x54,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73,
0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73,
0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11,
0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x45, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x70, 0x72, 0x6f,
0x78, 0x79, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x78,
0x79, 0x54, 0x6f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e,
0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
0x13, 0x6d, 0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f,
0x72, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d,
0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x52,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x11, 0x6d,
0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
0x1a, 0x76, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x74,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68,
0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x74,
0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x6f, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50,
0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d,
0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x70,
0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50,
0x69, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69,
0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x52, 0x65,
0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e, 0x52,
0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x73, 0x1a, 0x57,
0x0a, 0x12, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27,
0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49,
0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x87, 0x04, 0x0a, 0x15, 0x44, 0x65, 0x74, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x6d,
0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74,
0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x69, 0x6e,
0x69, 0x6d, 0x75, 0x6d, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63,
0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64,
0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x12, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53,
0x65, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x65, 0x6c, 0x6c,
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x65, 0x6c, 0x6c,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f,
0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6f, 0x6e, 0x69, 0x74,
0x6f, 0x72, 0x50, 0x69, 0x6e, 0x12, 0x70, 0x0a, 0x16, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70,
0x65, 0x52, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x67,
0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x70,
0x75, 0x6c, 0x6c, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65,
0x50, 0x75, 0x6c, 0x6c, 0x75, 0x70, 0x22, 0x88, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67,
0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x5f,
0x4c, 0x4f, 0x57, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x5f, 0x48,
0x49, 0x47, 0x48, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x41, 0x4c, 0x4c, 0x49, 0x4e, 0x47,
0x5f, 0x45, 0x44, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x49, 0x53, 0x49, 0x4e,
0x47, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x49, 0x54, 0x48,
0x45, 0x52, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x4c,
0x4f, 0x57, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x49, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45,
0x44, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10,
0x05, 0x1a, 0xa2, 0x03, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x32, 0x5f, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x64, 0x65, 0x63,
0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x74, 0x74, 0x5f,
0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x74, 0x74, 0x50, 0x69,
0x6e, 0x12, 0x49, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64,
0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x42,
0x61, 0x75, 0x64, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06,
0x69, 0x32, 0x73, 0x5f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x32,
0x73, 0x57, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x32, 0x73, 0x5f, 0x73, 0x64, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x32, 0x73, 0x53, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x32,
0x73, 0x5f, 0x64, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x32, 0x73,
0x44, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x32, 0x73, 0x5f, 0x73, 0x63, 0x6b, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x32, 0x73, 0x53, 0x63, 0x6b, 0x22, 0xa7, 0x01, 0x0a,
0x0a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x43,
0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12,
0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x33, 0x32, 0x30, 0x30, 0x10, 0x01,
0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x32, 0x34, 0x30, 0x30, 0x10,
0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x36, 0x30, 0x30,
0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x34, 0x30,
0x30, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31, 0x33,
0x30, 0x30, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f, 0x31,
0x32, 0x30, 0x30, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f,
0x37, 0x30, 0x30, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x32, 0x5f,
0x37, 0x30, 0x30, 0x42, 0x10, 0x08, 0x1a, 0xb6, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x78, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x70, 0x61, 0x78, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x70, 0x61, 0x78, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x74, 0x68, 0x72, 0x65,
0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x69, 0x66,
0x69, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6c,
0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0c, 0x62, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x1a,
0xb7, 0x05, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x63,
0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x12, 0x10,
0x0a, 0x03, 0x72, 0x78, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x78, 0x64,
0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74,
0x78, 0x64, 0x12, 0x45, 0x0a, 0x04, 0x62, 0x61, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x31, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f,
0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61,
0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x42,
0x61, 0x75, 0x64, 0x52, 0x04, 0x62, 0x61, 0x75, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x31, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d,
0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69,
0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f,
0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6f, 0x76,
0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x73,
0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
0x52, 0x19, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c,
0x65, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x8a, 0x02, 0x0a, 0x0b,
0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x42, 0x61, 0x75, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x42,
0x41, 0x55, 0x44, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a,
0x08, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x31, 0x30, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42,
0x41, 0x55, 0x44, 0x5f, 0x33, 0x30, 0x30, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x55,
0x44, 0x5f, 0x36, 0x30, 0x30, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f,
0x31, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x32,
0x34, 0x30, 0x30, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x34, 0x38,
0x30, 0x30, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x39, 0x36, 0x30,
0x30, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x39, 0x32, 0x30,
0x30, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x33, 0x38, 0x34, 0x30,
0x30, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x35, 0x37, 0x36, 0x30,
0x30, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x31, 0x31, 0x35, 0x32,
0x30, 0x30, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x32, 0x33, 0x30,
0x34, 0x30, 0x30, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x34, 0x36,
0x30, 0x38, 0x30, 0x30, 0x10, 0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f, 0x35,
0x37, 0x36, 0x30, 0x30, 0x30, 0x10, 0x0e, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, 0x55, 0x44, 0x5f,
0x39, 0x32, 0x31, 0x36, 0x30, 0x30, 0x10, 0x0f, 0x22, 0x5f, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x69,
0x61, 0x6c, 0x5f, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55,
0x4c, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01,
0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x54,
0x45, 0x58, 0x54, 0x4d, 0x53, 0x47, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4d, 0x45, 0x41,
0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x4c, 0x54, 0x4f, 0x50, 0x4f, 0x10, 0x05, 0x12,
0x08, 0x0a, 0x04, 0x57, 0x53, 0x38, 0x35, 0x10, 0x06, 0x1a, 0xac, 0x04, 0x0a, 0x1a, 0x45, 0x78,
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x73, 0x12,
0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75,
0x74, 0x5f, 0x76, 0x69, 0x62, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f,
0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75,
0x74, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12,
0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74,
0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
0x61, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x13,
0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x69,
0x62, 0x72, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74,
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x30, 0x0a, 0x14,
0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x75,
0x7a, 0x7a, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x6c, 0x65, 0x72,
0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x12, 0x1d,
0x0a, 0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01,
0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x12, 0x28, 0x0a,
0x10, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x5f, 0x76, 0x69, 0x62, 0x72,
0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65,
0x6c, 0x6c, 0x56, 0x69, 0x62, 0x72, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x65, 0x72, 0x74,
0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x5f, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x42, 0x65, 0x6c, 0x6c, 0x42, 0x75, 0x7a,
0x7a, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x77, 0x6d, 0x18, 0x07,
0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x65, 0x50, 0x77, 0x6d, 0x12, 0x1f, 0x0a, 0x0b,
0x6e, 0x61, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0a, 0x6e, 0x61, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, 0x0a,
0x11, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x32, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x7a, 0x7a,
0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x49, 0x32, 0x73,
0x41, 0x73, 0x42, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x1a, 0xe5, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x6f,
0x72, 0x65, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61,
0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x65,
0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x73, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x74,
0x75, 0x72, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x68,
0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x61, 0x78, 0x12,
0x32, 0x0a, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72,
0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13,
0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x57, 0x69, 0x6e,
0x64, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x1a, 0x57, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a,
0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73,
0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x76, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x61, 0x76, 0x65, 0x1a, 0xff, 0x05, 0x0a, 0x0f, 0x54, 0x65,
0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a,
0x16, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69,
0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x1b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76,
0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x1f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x65, 0x6e,
0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65,
0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x65,
0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65,
0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
0x18, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x72, 0x65,
0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x1e, 0x65, 0x6e, 0x76,
0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
0x5f, 0x66, 0x61, 0x68, 0x72, 0x65, 0x6e, 0x68, 0x65, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
0x08, 0x52, 0x1c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69,
0x73, 0x70, 0x6c, 0x61, 0x79, 0x46, 0x61, 0x68, 0x72, 0x65, 0x6e, 0x68, 0x65, 0x69, 0x74, 0x12,
0x2e, 0x0a, 0x13, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x69,
0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
0x30, 0x0a, 0x14, 0x61, 0x69, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69,
0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x61,
0x69, 0x72, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
0x6c, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75,
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08,
0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x61, 0x73, 0x75,
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a,
0x15, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x70, 0x6f,
0x77, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
0x6c, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65,
0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
0x12, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x6d, 0x65,
0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d,
0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x12, 0x34, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x14, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49,
0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74,
0x68, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x63,
0x72, 0x65, 0x65, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x92, 0x06, 0x0a, 0x13,
0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61, 0x72, 0x79, 0x31, 0x5f, 0x65,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x6f,
0x74, 0x61, 0x72, 0x79, 0x31, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11,
0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f,
0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72,
0x6f, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x41, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75,
0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x62, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
0x50, 0x69, 0x6e, 0x42, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f,
0x6b, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x13, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
0x50, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6d, 0x0a, 0x14, 0x69, 0x6e, 0x70, 0x75,
0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x77,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43,
0x68, 0x61, 0x72, 0x52, 0x12, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x77, 0x12, 0x6f, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74,
0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x63, 0x77,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43,
0x68, 0x61, 0x72, 0x52, 0x13, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x63, 0x77, 0x12, 0x73, 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75,
0x74, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x73, 0x68,
0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x62, 0x72, 0x6f,
0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a,
0x0f, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x31, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x31, 0x45,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c,
0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1b,
0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x65, 0x6c, 0x6c, 0x22, 0x63, 0x0a, 0x0e, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x12, 0x08, 0x0a,
0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x11, 0x12,
0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46,
0x54, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x14, 0x12, 0x0a,
0x0a, 0x06, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41,
0x43, 0x4b, 0x10, 0x1b, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x18,
0x1a, 0x8a, 0x01, 0x0a, 0x15, 0x41, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x67, 0x68,
0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65,
0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c,
0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65,
0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03,
0x72, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 0x75,
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x42, 0x11, 0x0a,
0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
0x22, 0x79, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61,
0x72, 0x65, 0x50, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x70, 0x69, 0x6f, 0x5f, 0x70, 0x69,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x70, 0x69, 0x6f, 0x50, 0x69, 0x6e,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x49, 0x0a, 0x15, 0x52,
0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x50, 0x69, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x41,
0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x57,
0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x42, 0x8e, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
0x65, 0x65, 0x6b, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x12,
0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x73, 0x5a, 0x49, 0x67, 0x69, 0x74, 0x2e, 0x6a, 0x61, 0x6e, 0x6b, 0x79, 0x2e, 0x73, 0x6f,
0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x66, 0x69, 0x6e, 0x6e, 0x2f, 0x6d, 0x61, 0x74,
0x72, 0x69, 0x78, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2d, 0x62,
0x72, 0x69, 0x64, 0x67, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73,
0x74, 0x69, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xaa, 0x02, 0x14,
0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_protobufs_module_config_proto_rawDescOnce sync.Once
file_protobufs_module_config_proto_rawDescData = file_protobufs_module_config_proto_rawDesc
)
func file_protobufs_module_config_proto_rawDescGZIP() []byte {
file_protobufs_module_config_proto_rawDescOnce.Do(func() {
file_protobufs_module_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_protobufs_module_config_proto_rawDescData)
})
return file_protobufs_module_config_proto_rawDescData
}
var file_protobufs_module_config_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_protobufs_module_config_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_protobufs_module_config_proto_goTypes = []interface{}{
(RemoteHardwarePinType)(0), // 0: meshtastic.RemoteHardwarePinType
(ModuleConfig_DetectionSensorConfig_TriggerType)(0), // 1: meshtastic.ModuleConfig.DetectionSensorConfig.TriggerType
(ModuleConfig_AudioConfig_Audio_Baud)(0), // 2: meshtastic.ModuleConfig.AudioConfig.Audio_Baud
(ModuleConfig_SerialConfig_Serial_Baud)(0), // 3: meshtastic.ModuleConfig.SerialConfig.Serial_Baud
(ModuleConfig_SerialConfig_Serial_Mode)(0), // 4: meshtastic.ModuleConfig.SerialConfig.Serial_Mode
(ModuleConfig_CannedMessageConfig_InputEventChar)(0), // 5: meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
(*ModuleConfig)(nil), // 6: meshtastic.ModuleConfig
(*RemoteHardwarePin)(nil), // 7: meshtastic.RemoteHardwarePin
(*ModuleConfig_MQTTConfig)(nil), // 8: meshtastic.ModuleConfig.MQTTConfig
(*ModuleConfig_MapReportSettings)(nil), // 9: meshtastic.ModuleConfig.MapReportSettings
(*ModuleConfig_RemoteHardwareConfig)(nil), // 10: meshtastic.ModuleConfig.RemoteHardwareConfig
(*ModuleConfig_NeighborInfoConfig)(nil), // 11: meshtastic.ModuleConfig.NeighborInfoConfig
(*ModuleConfig_DetectionSensorConfig)(nil), // 12: meshtastic.ModuleConfig.DetectionSensorConfig
(*ModuleConfig_AudioConfig)(nil), // 13: meshtastic.ModuleConfig.AudioConfig
(*ModuleConfig_PaxcounterConfig)(nil), // 14: meshtastic.ModuleConfig.PaxcounterConfig
(*ModuleConfig_SerialConfig)(nil), // 15: meshtastic.ModuleConfig.SerialConfig
(*ModuleConfig_ExternalNotificationConfig)(nil), // 16: meshtastic.ModuleConfig.ExternalNotificationConfig
(*ModuleConfig_StoreForwardConfig)(nil), // 17: meshtastic.ModuleConfig.StoreForwardConfig
(*ModuleConfig_RangeTestConfig)(nil), // 18: meshtastic.ModuleConfig.RangeTestConfig
(*ModuleConfig_TelemetryConfig)(nil), // 19: meshtastic.ModuleConfig.TelemetryConfig
(*ModuleConfig_CannedMessageConfig)(nil), // 20: meshtastic.ModuleConfig.CannedMessageConfig
(*ModuleConfig_AmbientLightingConfig)(nil), // 21: meshtastic.ModuleConfig.AmbientLightingConfig
}
var file_protobufs_module_config_proto_depIdxs = []int32{
8, // 0: meshtastic.ModuleConfig.mqtt:type_name -> meshtastic.ModuleConfig.MQTTConfig
15, // 1: meshtastic.ModuleConfig.serial:type_name -> meshtastic.ModuleConfig.SerialConfig
16, // 2: meshtastic.ModuleConfig.external_notification:type_name -> meshtastic.ModuleConfig.ExternalNotificationConfig
17, // 3: meshtastic.ModuleConfig.store_forward:type_name -> meshtastic.ModuleConfig.StoreForwardConfig
18, // 4: meshtastic.ModuleConfig.range_test:type_name -> meshtastic.ModuleConfig.RangeTestConfig
19, // 5: meshtastic.ModuleConfig.telemetry:type_name -> meshtastic.ModuleConfig.TelemetryConfig
20, // 6: meshtastic.ModuleConfig.canned_message:type_name -> meshtastic.ModuleConfig.CannedMessageConfig
13, // 7: meshtastic.ModuleConfig.audio:type_name -> meshtastic.ModuleConfig.AudioConfig
10, // 8: meshtastic.ModuleConfig.remote_hardware:type_name -> meshtastic.ModuleConfig.RemoteHardwareConfig
11, // 9: meshtastic.ModuleConfig.neighbor_info:type_name -> meshtastic.ModuleConfig.NeighborInfoConfig
21, // 10: meshtastic.ModuleConfig.ambient_lighting:type_name -> meshtastic.ModuleConfig.AmbientLightingConfig
12, // 11: meshtastic.ModuleConfig.detection_sensor:type_name -> meshtastic.ModuleConfig.DetectionSensorConfig
14, // 12: meshtastic.ModuleConfig.paxcounter:type_name -> meshtastic.ModuleConfig.PaxcounterConfig
0, // 13: meshtastic.RemoteHardwarePin.type:type_name -> meshtastic.RemoteHardwarePinType
9, // 14: meshtastic.ModuleConfig.MQTTConfig.map_report_settings:type_name -> meshtastic.ModuleConfig.MapReportSettings
7, // 15: meshtastic.ModuleConfig.RemoteHardwareConfig.available_pins:type_name -> meshtastic.RemoteHardwarePin
1, // 16: meshtastic.ModuleConfig.DetectionSensorConfig.detection_trigger_type:type_name -> meshtastic.ModuleConfig.DetectionSensorConfig.TriggerType
2, // 17: meshtastic.ModuleConfig.AudioConfig.bitrate:type_name -> meshtastic.ModuleConfig.AudioConfig.Audio_Baud
3, // 18: meshtastic.ModuleConfig.SerialConfig.baud:type_name -> meshtastic.ModuleConfig.SerialConfig.Serial_Baud
4, // 19: meshtastic.ModuleConfig.SerialConfig.mode:type_name -> meshtastic.ModuleConfig.SerialConfig.Serial_Mode
5, // 20: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_cw:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
5, // 21: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_ccw:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
5, // 22: meshtastic.ModuleConfig.CannedMessageConfig.inputbroker_event_press:type_name -> meshtastic.ModuleConfig.CannedMessageConfig.InputEventChar
23, // [23:23] is the sub-list for method output_type
23, // [23:23] is the sub-list for method input_type
23, // [23:23] is the sub-list for extension type_name
23, // [23:23] is the sub-list for extension extendee
0, // [0:23] is the sub-list for field type_name
}
func init() { file_protobufs_module_config_proto_init() }
func file_protobufs_module_config_proto_init() {
if File_protobufs_module_config_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_protobufs_module_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteHardwarePin); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_MQTTConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_MapReportSettings); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_RemoteHardwareConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_NeighborInfoConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_DetectionSensorConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_AudioConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_PaxcounterConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_SerialConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_ExternalNotificationConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_StoreForwardConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_RangeTestConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_TelemetryConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_CannedMessageConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_module_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModuleConfig_AmbientLightingConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_protobufs_module_config_proto_msgTypes[0].OneofWrappers = []interface{}{
(*ModuleConfig_Mqtt)(nil),
(*ModuleConfig_Serial)(nil),
(*ModuleConfig_ExternalNotification)(nil),
(*ModuleConfig_StoreForward)(nil),
(*ModuleConfig_RangeTest)(nil),
(*ModuleConfig_Telemetry)(nil),
(*ModuleConfig_CannedMessage)(nil),
(*ModuleConfig_Audio)(nil),
(*ModuleConfig_RemoteHardware)(nil),
(*ModuleConfig_NeighborInfo)(nil),
(*ModuleConfig_AmbientLighting)(nil),
(*ModuleConfig_DetectionSensor)(nil),
(*ModuleConfig_Paxcounter)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_protobufs_module_config_proto_rawDesc,
NumEnums: 6,
NumMessages: 16,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_protobufs_module_config_proto_goTypes,
DependencyIndexes: file_protobufs_module_config_proto_depIdxs,
EnumInfos: file_protobufs_module_config_proto_enumTypes,
MessageInfos: file_protobufs_module_config_proto_msgTypes,
}.Build()
File_protobufs_module_config_proto = out.File
file_protobufs_module_config_proto_rawDesc = nil
file_protobufs_module_config_proto_goTypes = nil
file_protobufs_module_config_proto_depIdxs = nil
}