// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	protoc        v3.21.12
// source: spacex_api/device/common.proto

package device

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

const (
	BootReason_BOOT_REASON_UNKNOWN      BootReason = 0
	BootReason_FORGOTTEN                BootReason = 1
	BootReason_POWER_CYCLE              BootReason = 2
	BootReason_COMMAND                  BootReason = 3
	BootReason_SOFTWARE_UPDATE          BootReason = 4
	BootReason_CONFIG_UPDATE            BootReason = 5
	BootReason_UPTIME_FDIR              BootReason = 6
	BootReason_REPEATER_FDIR            BootReason = 7
	BootReason_AVIATION_ETH_WAN_FDIR    BootReason = 8
	BootReason_KERNEL_PANIC             BootReason = 9
	BootReason_INTENTIONAL_KERNEL_PANIC BootReason = 14
	BootReason_MCU_BRINGUP_FAILED_FDIR  BootReason = 11
	BootReason_AVIATION_OUTAGE_FDIR     BootReason = 12
	BootReason_SOFTWARE_WATCHDOG        BootReason = 13
	BootReason_HARDWARE_WATCHDOG        BootReason = 15
	BootReason_REPEATER_UNTRUSTED_FDIR  BootReason = 16
)

// Enum value maps for BootReason.
var (
	BootReason_name = map[int32]string{
		0:  "BOOT_REASON_UNKNOWN",
		1:  "FORGOTTEN",
		2:  "POWER_CYCLE",
		3:  "COMMAND",
		4:  "SOFTWARE_UPDATE",
		5:  "CONFIG_UPDATE",
		6:  "UPTIME_FDIR",
		7:  "REPEATER_FDIR",
		8:  "AVIATION_ETH_WAN_FDIR",
		9:  "KERNEL_PANIC",
		14: "INTENTIONAL_KERNEL_PANIC",
		11: "MCU_BRINGUP_FAILED_FDIR",
		12: "AVIATION_OUTAGE_FDIR",
		13: "SOFTWARE_WATCHDOG",
		15: "HARDWARE_WATCHDOG",
		16: "REPEATER_UNTRUSTED_FDIR",
	}
	BootReason_value = map[string]int32{
		"BOOT_REASON_UNKNOWN":      0,
		"FORGOTTEN":                1,
		"POWER_CYCLE":              2,
		"COMMAND":                  3,
		"SOFTWARE_UPDATE":          4,
		"CONFIG_UPDATE":            5,
		"UPTIME_FDIR":              6,
		"REPEATER_FDIR":            7,
		"AVIATION_ETH_WAN_FDIR":    8,
		"KERNEL_PANIC":             9,
		"INTENTIONAL_KERNEL_PANIC": 14,
		"MCU_BRINGUP_FAILED_FDIR":  11,
		"AVIATION_OUTAGE_FDIR":     12,
		"SOFTWARE_WATCHDOG":        13,
		"HARDWARE_WATCHDOG":        15,
		"REPEATER_UNTRUSTED_FDIR":  16,
	}
)

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

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

func (BootReason) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_common_proto_enumTypes[0].Descriptor()
}

func (BootReason) Type() protoreflect.EnumType {
	return &file_spacex_api_device_common_proto_enumTypes[0]
}

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

// Deprecated: Use BootReason.Descriptor instead.
func (BootReason) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_common_proto_rawDescGZIP(), []int{0}
}

type EventSeverity int32

const (
	EventSeverity_EVENT_SEVERITY_UNKNOWN  EventSeverity = 0
	EventSeverity_EVENT_SEVERITY_WARNING  EventSeverity = 1
	EventSeverity_EVENT_SEVERITY_CAUTION  EventSeverity = 2
	EventSeverity_EVENT_SEVERITY_ADVISORY EventSeverity = 3
)

// Enum value maps for EventSeverity.
var (
	EventSeverity_name = map[int32]string{
		0: "EVENT_SEVERITY_UNKNOWN",
		1: "EVENT_SEVERITY_WARNING",
		2: "EVENT_SEVERITY_CAUTION",
		3: "EVENT_SEVERITY_ADVISORY",
	}
	EventSeverity_value = map[string]int32{
		"EVENT_SEVERITY_UNKNOWN":  0,
		"EVENT_SEVERITY_WARNING":  1,
		"EVENT_SEVERITY_CAUTION":  2,
		"EVENT_SEVERITY_ADVISORY": 3,
	}
)

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

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

func (EventSeverity) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_common_proto_enumTypes[1].Descriptor()
}

func (EventSeverity) Type() protoreflect.EnumType {
	return &file_spacex_api_device_common_proto_enumTypes[1]
}

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

// Deprecated: Use EventSeverity.Descriptor instead.
func (EventSeverity) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_common_proto_rawDescGZIP(), []int{1}
}

type EventReason int32

const (
	EventReason_EVENT_REASON_UNKNOWN                              EventReason = 0
	EventReason_EVENT_REASON_OUTAGE_UNKNOWN                       EventReason = 1
	EventReason_EVENT_REASON_OUTAGE_BOOTING                       EventReason = 2
	EventReason_EVENT_REASON_OUTAGE_STOWED                        EventReason = 3
	EventReason_EVENT_REASON_OUTAGE_THERMAL_SHUTDOWN              EventReason = 4
	EventReason_EVENT_REASON_OUTAGE_NO_SCHEDULE                   EventReason = 5
	EventReason_EVENT_REASON_OUTAGE_NO_SATS                       EventReason = 6
	EventReason_EVENT_REASON_OUTAGE_OBSTRUCTED                    EventReason = 7
	EventReason_EVENT_REASON_OUTAGE_NO_DOWNLINK                   EventReason = 8
	EventReason_EVENT_REASON_OUTAGE_NO_PINGS                      EventReason = 9
	EventReason_EVENT_REASON_OUTAGE_SLEEPING                      EventReason = 10
	EventReason_EVENT_REASON_OUTAGE_MOVING_WHILE_NOT_ALLOWED      EventReason = 11
	EventReason_EVENT_REASON_OUTAGE_SKY_SEARCH                    EventReason = 19
	EventReason_EVENT_REASON_UT_ALERT_RAIN_SNR_PERSISTENTLY_LOW   EventReason = 22
	EventReason_EVENT_REASON_UT_ALERT_ETH_NO_LINK                 EventReason = 23
	EventReason_EVENT_REASON_UT_ALERT_ETH_SLOW_LINK               EventReason = 24
	EventReason_EVENT_REASON_UT_ALERT_ETH_SLOW_LINK_100           EventReason = 25
	EventReason_EVENT_REASON_HIGH_DOWNLINK_PACKET_LOSS            EventReason = 12
	EventReason_EVENT_REASON_ROUTER_FACTORY_RESET                 EventReason = 13
	EventReason_EVENT_REASON_ROUTER_REBOOT                        EventReason = 14
	EventReason_EVENT_REASON_ROUTER_POWER_CYCLE                   EventReason = 15
	EventReason_EVENT_REASON_ROUTER_CONFIG_UPDATE                 EventReason = 16
	EventReason_EVENT_REASON_ROUTER_SOFTWARE_UPDATE               EventReason = 17
	EventReason_EVENT_REASON_ROUTER_THERMAL_THROTTLED             EventReason = 18
	EventReason_EVENT_REASON_ROUTER_REBOOT_CONFIG_UPDATE          EventReason = 20
	EventReason_EVENT_REASON_ROUTER_PUBLIC_IPV4_CHANGE            EventReason = 21
	EventReason_EVENT_REASON_ROUTER_POP_IPV4_PING_DROP            EventReason = 26
	EventReason_EVENT_REASON_ROUTER_POP_IPV6_PING_DROP            EventReason = 27
	EventReason_EVENT_REASON_ROUTER_LAN_ETH_HIGH_PACKET_LOSS      EventReason = 28
	EventReason_EVENT_REASON_ROUTER_WAN_ETH_HIGH_PACKET_LOSS      EventReason = 29
	EventReason_EVENT_REASON_ROUTER_DHCP_SERVER_FAIL_TO_START     EventReason = 30
	EventReason_EVENT_REASON_ROUTER_DHCP_SERVER_EXHAUSTED         EventReason = 31
	EventReason_EVENT_REASON_ROUTER_DNS_IPV4_SERVER_FAIL_TO_START EventReason = 32
	EventReason_EVENT_REASON_ROUTER_DNS_IPV6_SERVER_FAIL_TO_START EventReason = 33
	EventReason_EVENT_REASON_ROUTER_SET_CUSTOM_DNS_DISALLOWED     EventReason = 34
	EventReason_EVENT_REASON_ROUTER_SET_CUSTOM_DNS_ALLOWED        EventReason = 35
	EventReason_EVENT_REASON_ROUTER_MAX_WIRELESS_CLIENTS          EventReason = 36
	EventReason_EVENT_REASON_ROUTER_MAX_5GHIGH_WIRELESS_CLIENTS   EventReason = 37
	EventReason_EVENT_REASON_ROUTER_MESH_TOPOLOGY_CHANGING_OFTEN  EventReason = 38
	EventReason_EVENT_REASON_ROUTER_CONNTRACK_FULL                EventReason = 39
)

// Enum value maps for EventReason.
var (
	EventReason_name = map[int32]string{
		0:  "EVENT_REASON_UNKNOWN",
		1:  "EVENT_REASON_OUTAGE_UNKNOWN",
		2:  "EVENT_REASON_OUTAGE_BOOTING",
		3:  "EVENT_REASON_OUTAGE_STOWED",
		4:  "EVENT_REASON_OUTAGE_THERMAL_SHUTDOWN",
		5:  "EVENT_REASON_OUTAGE_NO_SCHEDULE",
		6:  "EVENT_REASON_OUTAGE_NO_SATS",
		7:  "EVENT_REASON_OUTAGE_OBSTRUCTED",
		8:  "EVENT_REASON_OUTAGE_NO_DOWNLINK",
		9:  "EVENT_REASON_OUTAGE_NO_PINGS",
		10: "EVENT_REASON_OUTAGE_SLEEPING",
		11: "EVENT_REASON_OUTAGE_MOVING_WHILE_NOT_ALLOWED",
		19: "EVENT_REASON_OUTAGE_SKY_SEARCH",
		22: "EVENT_REASON_UT_ALERT_RAIN_SNR_PERSISTENTLY_LOW",
		23: "EVENT_REASON_UT_ALERT_ETH_NO_LINK",
		24: "EVENT_REASON_UT_ALERT_ETH_SLOW_LINK",
		25: "EVENT_REASON_UT_ALERT_ETH_SLOW_LINK_100",
		12: "EVENT_REASON_HIGH_DOWNLINK_PACKET_LOSS",
		13: "EVENT_REASON_ROUTER_FACTORY_RESET",
		14: "EVENT_REASON_ROUTER_REBOOT",
		15: "EVENT_REASON_ROUTER_POWER_CYCLE",
		16: "EVENT_REASON_ROUTER_CONFIG_UPDATE",
		17: "EVENT_REASON_ROUTER_SOFTWARE_UPDATE",
		18: "EVENT_REASON_ROUTER_THERMAL_THROTTLED",
		20: "EVENT_REASON_ROUTER_REBOOT_CONFIG_UPDATE",
		21: "EVENT_REASON_ROUTER_PUBLIC_IPV4_CHANGE",
		26: "EVENT_REASON_ROUTER_POP_IPV4_PING_DROP",
		27: "EVENT_REASON_ROUTER_POP_IPV6_PING_DROP",
		28: "EVENT_REASON_ROUTER_LAN_ETH_HIGH_PACKET_LOSS",
		29: "EVENT_REASON_ROUTER_WAN_ETH_HIGH_PACKET_LOSS",
		30: "EVENT_REASON_ROUTER_DHCP_SERVER_FAIL_TO_START",
		31: "EVENT_REASON_ROUTER_DHCP_SERVER_EXHAUSTED",
		32: "EVENT_REASON_ROUTER_DNS_IPV4_SERVER_FAIL_TO_START",
		33: "EVENT_REASON_ROUTER_DNS_IPV6_SERVER_FAIL_TO_START",
		34: "EVENT_REASON_ROUTER_SET_CUSTOM_DNS_DISALLOWED",
		35: "EVENT_REASON_ROUTER_SET_CUSTOM_DNS_ALLOWED",
		36: "EVENT_REASON_ROUTER_MAX_WIRELESS_CLIENTS",
		37: "EVENT_REASON_ROUTER_MAX_5GHIGH_WIRELESS_CLIENTS",
		38: "EVENT_REASON_ROUTER_MESH_TOPOLOGY_CHANGING_OFTEN",
		39: "EVENT_REASON_ROUTER_CONNTRACK_FULL",
	}
	EventReason_value = map[string]int32{
		"EVENT_REASON_UNKNOWN":                              0,
		"EVENT_REASON_OUTAGE_UNKNOWN":                       1,
		"EVENT_REASON_OUTAGE_BOOTING":                       2,
		"EVENT_REASON_OUTAGE_STOWED":                        3,
		"EVENT_REASON_OUTAGE_THERMAL_SHUTDOWN":              4,
		"EVENT_REASON_OUTAGE_NO_SCHEDULE":                   5,
		"EVENT_REASON_OUTAGE_NO_SATS":                       6,
		"EVENT_REASON_OUTAGE_OBSTRUCTED":                    7,
		"EVENT_REASON_OUTAGE_NO_DOWNLINK":                   8,
		"EVENT_REASON_OUTAGE_NO_PINGS":                      9,
		"EVENT_REASON_OUTAGE_SLEEPING":                      10,
		"EVENT_REASON_OUTAGE_MOVING_WHILE_NOT_ALLOWED":      11,
		"EVENT_REASON_OUTAGE_SKY_SEARCH":                    19,
		"EVENT_REASON_UT_ALERT_RAIN_SNR_PERSISTENTLY_LOW":   22,
		"EVENT_REASON_UT_ALERT_ETH_NO_LINK":                 23,
		"EVENT_REASON_UT_ALERT_ETH_SLOW_LINK":               24,
		"EVENT_REASON_UT_ALERT_ETH_SLOW_LINK_100":           25,
		"EVENT_REASON_HIGH_DOWNLINK_PACKET_LOSS":            12,
		"EVENT_REASON_ROUTER_FACTORY_RESET":                 13,
		"EVENT_REASON_ROUTER_REBOOT":                        14,
		"EVENT_REASON_ROUTER_POWER_CYCLE":                   15,
		"EVENT_REASON_ROUTER_CONFIG_UPDATE":                 16,
		"EVENT_REASON_ROUTER_SOFTWARE_UPDATE":               17,
		"EVENT_REASON_ROUTER_THERMAL_THROTTLED":             18,
		"EVENT_REASON_ROUTER_REBOOT_CONFIG_UPDATE":          20,
		"EVENT_REASON_ROUTER_PUBLIC_IPV4_CHANGE":            21,
		"EVENT_REASON_ROUTER_POP_IPV4_PING_DROP":            26,
		"EVENT_REASON_ROUTER_POP_IPV6_PING_DROP":            27,
		"EVENT_REASON_ROUTER_LAN_ETH_HIGH_PACKET_LOSS":      28,
		"EVENT_REASON_ROUTER_WAN_ETH_HIGH_PACKET_LOSS":      29,
		"EVENT_REASON_ROUTER_DHCP_SERVER_FAIL_TO_START":     30,
		"EVENT_REASON_ROUTER_DHCP_SERVER_EXHAUSTED":         31,
		"EVENT_REASON_ROUTER_DNS_IPV4_SERVER_FAIL_TO_START": 32,
		"EVENT_REASON_ROUTER_DNS_IPV6_SERVER_FAIL_TO_START": 33,
		"EVENT_REASON_ROUTER_SET_CUSTOM_DNS_DISALLOWED":     34,
		"EVENT_REASON_ROUTER_SET_CUSTOM_DNS_ALLOWED":        35,
		"EVENT_REASON_ROUTER_MAX_WIRELESS_CLIENTS":          36,
		"EVENT_REASON_ROUTER_MAX_5GHIGH_WIRELESS_CLIENTS":   37,
		"EVENT_REASON_ROUTER_MESH_TOPOLOGY_CHANGING_OFTEN":  38,
		"EVENT_REASON_ROUTER_CONNTRACK_FULL":                39,
	}
)

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

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

func (EventReason) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_common_proto_enumTypes[2].Descriptor()
}

func (EventReason) Type() protoreflect.EnumType {
	return &file_spacex_api_device_common_proto_enumTypes[2]
}

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

// Deprecated: Use EventReason.Descriptor instead.
func (EventReason) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_common_proto_rawDescGZIP(), []int{2}
}

type EthernetNetworkInterface_Duplex int32

const (
	EthernetNetworkInterface_UNKNOWN EthernetNetworkInterface_Duplex = 0
	EthernetNetworkInterface_HALF    EthernetNetworkInterface_Duplex = 1
	EthernetNetworkInterface_FULL    EthernetNetworkInterface_Duplex = 2
)

// Enum value maps for EthernetNetworkInterface_Duplex.
var (
	EthernetNetworkInterface_Duplex_name = map[int32]string{
		0: "UNKNOWN",
		1: "HALF",
		2: "FULL",
	}
	EthernetNetworkInterface_Duplex_value = map[string]int32{
		"UNKNOWN": 0,
		"HALF":    1,
		"FULL":    2,
	}
)

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

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

func (EthernetNetworkInterface_Duplex) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_common_proto_enumTypes[3].Descriptor()
}

func (EthernetNetworkInterface_Duplex) Type() protoreflect.EnumType {
	return &file_spacex_api_device_common_proto_enumTypes[3]
}

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

// Deprecated: Use EthernetNetworkInterface_Duplex.Descriptor instead.
func (EthernetNetworkInterface_Duplex) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_common_proto_rawDescGZIP(), []int{12, 0}
}

type DeviceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id                      string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	HardwareVersion         string    `protobuf:"bytes,2,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"`
	BoardRev                int32     `protobuf:"varint,14,opt,name=board_rev,json=boardRev,proto3" json:"board_rev,omitempty"`
	SoftwareVersion         string    `protobuf:"bytes,3,opt,name=software_version,json=softwareVersion,proto3" json:"software_version,omitempty"`
	ManufacturedVersion     string    `protobuf:"bytes,11,opt,name=manufactured_version,json=manufacturedVersion,proto3" json:"manufactured_version,omitempty"`
	GenerationNumber        int64     `protobuf:"varint,12,opt,name=generation_number,json=generationNumber,proto3" json:"generation_number,omitempty"`
	CountryCode             string    `protobuf:"bytes,4,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"`
	UtcOffsetS              int32     `protobuf:"varint,5,opt,name=utc_offset_s,json=utcOffsetS,proto3" json:"utc_offset_s,omitempty"`
	SoftwarePartitionsEqual bool      `protobuf:"varint,6,opt,name=software_partitions_equal,json=softwarePartitionsEqual,proto3" json:"software_partitions_equal,omitempty"`
	IsDev                   bool      `protobuf:"varint,7,opt,name=is_dev,json=isDev,proto3" json:"is_dev,omitempty"`
	Bootcount               int32     `protobuf:"varint,8,opt,name=bootcount,proto3" json:"bootcount,omitempty"`
	AntiRollbackVersion     int32     `protobuf:"varint,9,opt,name=anti_rollback_version,json=antiRollbackVersion,proto3" json:"anti_rollback_version,omitempty"`
	IsHitl                  bool      `protobuf:"varint,10,opt,name=is_hitl,json=isHitl,proto3" json:"is_hitl,omitempty"`
	Boot                    *BootInfo `protobuf:"bytes,1001,opt,name=boot,proto3" json:"boot,omitempty"`
	DishCohoused            bool      `protobuf:"varint,13,opt,name=dish_cohoused,json=dishCohoused,proto3" json:"dish_cohoused,omitempty"`
	BuildId                 string    `protobuf:"bytes,15,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
}

func (x *DeviceInfo) Reset() {
	*x = DeviceInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceInfo) ProtoMessage() {}

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

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

func (x *DeviceInfo) GetHardwareVersion() string {
	if x != nil {
		return x.HardwareVersion
	}
	return ""
}

func (x *DeviceInfo) GetBoardRev() int32 {
	if x != nil {
		return x.BoardRev
	}
	return 0
}

func (x *DeviceInfo) GetSoftwareVersion() string {
	if x != nil {
		return x.SoftwareVersion
	}
	return ""
}

func (x *DeviceInfo) GetManufacturedVersion() string {
	if x != nil {
		return x.ManufacturedVersion
	}
	return ""
}

func (x *DeviceInfo) GetGenerationNumber() int64 {
	if x != nil {
		return x.GenerationNumber
	}
	return 0
}

func (x *DeviceInfo) GetCountryCode() string {
	if x != nil {
		return x.CountryCode
	}
	return ""
}

func (x *DeviceInfo) GetUtcOffsetS() int32 {
	if x != nil {
		return x.UtcOffsetS
	}
	return 0
}

func (x *DeviceInfo) GetSoftwarePartitionsEqual() bool {
	if x != nil {
		return x.SoftwarePartitionsEqual
	}
	return false
}

func (x *DeviceInfo) GetIsDev() bool {
	if x != nil {
		return x.IsDev
	}
	return false
}

func (x *DeviceInfo) GetBootcount() int32 {
	if x != nil {
		return x.Bootcount
	}
	return 0
}

func (x *DeviceInfo) GetAntiRollbackVersion() int32 {
	if x != nil {
		return x.AntiRollbackVersion
	}
	return 0
}

func (x *DeviceInfo) GetIsHitl() bool {
	if x != nil {
		return x.IsHitl
	}
	return false
}

func (x *DeviceInfo) GetBoot() *BootInfo {
	if x != nil {
		return x.Boot
	}
	return nil
}

func (x *DeviceInfo) GetDishCohoused() bool {
	if x != nil {
		return x.DishCohoused
	}
	return false
}

func (x *DeviceInfo) GetBuildId() string {
	if x != nil {
		return x.BuildId
	}
	return ""
}

type DeviceState struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UptimeS uint64 `protobuf:"varint,1,opt,name=uptime_s,json=uptimeS,proto3" json:"uptime_s,omitempty"`
}

func (x *DeviceState) Reset() {
	*x = DeviceState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceState) ProtoMessage() {}

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

func (x *DeviceState) GetUptimeS() uint64 {
	if x != nil {
		return x.UptimeS
	}
	return 0
}

type SignedData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data      []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (x *SignedData) Reset() {
	*x = SignedData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SignedData) ProtoMessage() {}

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

func (x *SignedData) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *SignedData) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

type GetNextIdRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GetNextIdRequest) Reset() {
	*x = GetNextIdRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetNextIdRequest) ProtoMessage() {}

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

type GetNextIdResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id      uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	EpochId uint64 `protobuf:"varint,2,opt,name=epoch_id,json=epochId,proto3" json:"epoch_id,omitempty"`
}

func (x *GetNextIdResponse) Reset() {
	*x = GetNextIdResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetNextIdResponse) ProtoMessage() {}

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

func (x *GetNextIdResponse) GetId() uint64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *GetNextIdResponse) GetEpochId() uint64 {
	if x != nil {
		return x.EpochId
	}
	return 0
}

type BootInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CountByReason           map[int32]int32 `protobuf:"bytes,1,rep,name=count_by_reason,json=countByReason,proto3" json:"count_by_reason,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	CountByReasonDelta      map[int32]int32 `protobuf:"bytes,4,rep,name=count_by_reason_delta,json=countByReasonDelta,proto3" json:"count_by_reason_delta,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	LastReason              BootReason      `protobuf:"varint,2,opt,name=last_reason,json=lastReason,proto3,enum=SpaceX.API.Device.BootReason" json:"last_reason,omitempty"`
	LastCount               int32           `protobuf:"varint,3,opt,name=last_count,json=lastCount,proto3" json:"last_count,omitempty"`
	CrashBoot               bool            `protobuf:"varint,5,opt,name=crash_boot,json=crashBoot,proto3" json:"crash_boot,omitempty"`
	CrashBootCount          int32           `protobuf:"varint,6,opt,name=crash_boot_count,json=crashBootCount,proto3" json:"crash_boot_count,omitempty"`
	EvenSideSoftwareVersion string          `protobuf:"bytes,7,opt,name=even_side_software_version,json=evenSideSoftwareVersion,proto3" json:"even_side_software_version,omitempty"`
	OddSideSoftwareVersion  string          `protobuf:"bytes,8,opt,name=odd_side_software_version,json=oddSideSoftwareVersion,proto3" json:"odd_side_software_version,omitempty"`
	ApiVersionOddSide       int32           `protobuf:"varint,9,opt,name=api_version_odd_side,json=apiVersionOddSide,proto3" json:"api_version_odd_side,omitempty"`
	ApiVersionEvenSide      int32           `protobuf:"varint,10,opt,name=api_version_even_side,json=apiVersionEvenSide,proto3" json:"api_version_even_side,omitempty"`
}

func (x *BootInfo) Reset() {
	*x = BootInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BootInfo) ProtoMessage() {}

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

func (x *BootInfo) GetCountByReason() map[int32]int32 {
	if x != nil {
		return x.CountByReason
	}
	return nil
}

func (x *BootInfo) GetCountByReasonDelta() map[int32]int32 {
	if x != nil {
		return x.CountByReasonDelta
	}
	return nil
}

func (x *BootInfo) GetLastReason() BootReason {
	if x != nil {
		return x.LastReason
	}
	return BootReason_BOOT_REASON_UNKNOWN
}

func (x *BootInfo) GetLastCount() int32 {
	if x != nil {
		return x.LastCount
	}
	return 0
}

func (x *BootInfo) GetCrashBoot() bool {
	if x != nil {
		return x.CrashBoot
	}
	return false
}

func (x *BootInfo) GetCrashBootCount() int32 {
	if x != nil {
		return x.CrashBootCount
	}
	return 0
}

func (x *BootInfo) GetEvenSideSoftwareVersion() string {
	if x != nil {
		return x.EvenSideSoftwareVersion
	}
	return ""
}

func (x *BootInfo) GetOddSideSoftwareVersion() string {
	if x != nil {
		return x.OddSideSoftwareVersion
	}
	return ""
}

func (x *BootInfo) GetApiVersionOddSide() int32 {
	if x != nil {
		return x.ApiVersionOddSide
	}
	return 0
}

func (x *BootInfo) GetApiVersionEvenSide() int32 {
	if x != nil {
		return x.ApiVersionEvenSide
	}
	return 0
}

type PingTarget struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Service  string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
	Address  string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
}

func (x *PingTarget) Reset() {
	*x = PingTarget{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PingTarget) ProtoMessage() {}

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

func (x *PingTarget) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

func (x *PingTarget) GetLocation() string {
	if x != nil {
		return x.Location
	}
	return ""
}

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

type PingResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Target    *PingTarget `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	DropRate  float32     `protobuf:"fixed32,1,opt,name=dropRate,proto3" json:"dropRate,omitempty"`
	LatencyMs float32     `protobuf:"fixed32,2,opt,name=latencyMs,proto3" json:"latencyMs,omitempty"`
}

func (x *PingResult) Reset() {
	*x = PingResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PingResult) ProtoMessage() {}

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

func (x *PingResult) GetTarget() *PingTarget {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *PingResult) GetDropRate() float32 {
	if x != nil {
		return x.DropRate
	}
	return 0
}

func (x *PingResult) GetLatencyMs() float32 {
	if x != nil {
		return x.LatencyMs
	}
	return 0
}

type BondingChallenge struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DishId string `protobuf:"bytes,1,opt,name=dish_id,json=dishId,proto3" json:"dish_id,omitempty"`
	WifiId string `protobuf:"bytes,2,opt,name=wifi_id,json=wifiId,proto3" json:"wifi_id,omitempty"`
	Nonce  []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
}

func (x *BondingChallenge) Reset() {
	*x = BondingChallenge{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BondingChallenge) ProtoMessage() {}

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

func (x *BondingChallenge) GetDishId() string {
	if x != nil {
		return x.DishId
	}
	return ""
}

func (x *BondingChallenge) GetWifiId() string {
	if x != nil {
		return x.WifiId
	}
	return ""
}

func (x *BondingChallenge) GetNonce() []byte {
	if x != nil {
		return x.Nonce
	}
	return nil
}

type AuthenticateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Challenge *SignedData `protobuf:"bytes,1,opt,name=challenge,proto3" json:"challenge,omitempty"`
}

func (x *AuthenticateRequest) Reset() {
	*x = AuthenticateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AuthenticateRequest) ProtoMessage() {}

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

func (x *AuthenticateRequest) GetChallenge() *SignedData {
	if x != nil {
		return x.Challenge
	}
	return nil
}

type ChallengeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Signature        []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
	CertificateChain []byte `protobuf:"bytes,2,opt,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
}

func (x *ChallengeResponse) Reset() {
	*x = ChallengeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ChallengeResponse) ProtoMessage() {}

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

func (x *ChallengeResponse) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *ChallengeResponse) GetCertificateChain() []byte {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

type NetworkInterface struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name          string                    `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Up            bool                      `protobuf:"varint,4,opt,name=up,proto3" json:"up,omitempty"`
	MacAddress    string                    `protobuf:"bytes,5,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
	Ipv4Addresses []string                  `protobuf:"bytes,6,rep,name=ipv4_addresses,json=ipv4Addresses,proto3" json:"ipv4_addresses,omitempty"`
	Ipv6Addresses []string                  `protobuf:"bytes,7,rep,name=ipv6_addresses,json=ipv6Addresses,proto3" json:"ipv6_addresses,omitempty"`
	RxStats       *NetworkInterface_RxStats `protobuf:"bytes,2,opt,name=rx_stats,json=rxStats,proto3" json:"rx_stats,omitempty"`
	TxStats       *NetworkInterface_TxStats `protobuf:"bytes,3,opt,name=tx_stats,json=txStats,proto3" json:"tx_stats,omitempty"`
	// Types that are assignable to Interface:
	//
	//	*NetworkInterface_Ethernet
	//	*NetworkInterface_Wifi
	//	*NetworkInterface_Bridge
	Interface isNetworkInterface_Interface `protobuf_oneof:"interface"`
}

func (x *NetworkInterface) Reset() {
	*x = NetworkInterface{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NetworkInterface) ProtoMessage() {}

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

func (x *NetworkInterface) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *NetworkInterface) GetUp() bool {
	if x != nil {
		return x.Up
	}
	return false
}

func (x *NetworkInterface) GetMacAddress() string {
	if x != nil {
		return x.MacAddress
	}
	return ""
}

func (x *NetworkInterface) GetIpv4Addresses() []string {
	if x != nil {
		return x.Ipv4Addresses
	}
	return nil
}

func (x *NetworkInterface) GetIpv6Addresses() []string {
	if x != nil {
		return x.Ipv6Addresses
	}
	return nil
}

func (x *NetworkInterface) GetRxStats() *NetworkInterface_RxStats {
	if x != nil {
		return x.RxStats
	}
	return nil
}

func (x *NetworkInterface) GetTxStats() *NetworkInterface_TxStats {
	if x != nil {
		return x.TxStats
	}
	return nil
}

func (m *NetworkInterface) GetInterface() isNetworkInterface_Interface {
	if m != nil {
		return m.Interface
	}
	return nil
}

func (x *NetworkInterface) GetEthernet() *EthernetNetworkInterface {
	if x, ok := x.GetInterface().(*NetworkInterface_Ethernet); ok {
		return x.Ethernet
	}
	return nil
}

func (x *NetworkInterface) GetWifi() *WifiNetworkInterface {
	if x, ok := x.GetInterface().(*NetworkInterface_Wifi); ok {
		return x.Wifi
	}
	return nil
}

func (x *NetworkInterface) GetBridge() *BridgeNetworkInterface {
	if x, ok := x.GetInterface().(*NetworkInterface_Bridge); ok {
		return x.Bridge
	}
	return nil
}

type isNetworkInterface_Interface interface {
	isNetworkInterface_Interface()
}

type NetworkInterface_Ethernet struct {
	Ethernet *EthernetNetworkInterface `protobuf:"bytes,1000,opt,name=ethernet,proto3,oneof"`
}

type NetworkInterface_Wifi struct {
	Wifi *WifiNetworkInterface `protobuf:"bytes,1001,opt,name=wifi,proto3,oneof"`
}

type NetworkInterface_Bridge struct {
	Bridge *BridgeNetworkInterface `protobuf:"bytes,1002,opt,name=bridge,proto3,oneof"`
}

func (*NetworkInterface_Ethernet) isNetworkInterface_Interface() {}

func (*NetworkInterface_Wifi) isNetworkInterface_Interface() {}

func (*NetworkInterface_Bridge) isNetworkInterface_Interface() {}

type EthernetNetworkInterface struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LinkDetected      bool                            `protobuf:"varint,1,opt,name=link_detected,json=linkDetected,proto3" json:"link_detected,omitempty"`
	SpeedMbps         uint32                          `protobuf:"varint,2,opt,name=speed_mbps,json=speedMbps,proto3" json:"speed_mbps,omitempty"`
	AutonegotiationOn bool                            `protobuf:"varint,3,opt,name=autonegotiation_on,json=autonegotiationOn,proto3" json:"autonegotiation_on,omitempty"`
	Duplex            EthernetNetworkInterface_Duplex `protobuf:"varint,4,opt,name=duplex,proto3,enum=SpaceX.API.Device.EthernetNetworkInterface_Duplex" json:"duplex,omitempty"`
}

func (x *EthernetNetworkInterface) Reset() {
	*x = EthernetNetworkInterface{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EthernetNetworkInterface) ProtoMessage() {}

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

func (x *EthernetNetworkInterface) GetLinkDetected() bool {
	if x != nil {
		return x.LinkDetected
	}
	return false
}

func (x *EthernetNetworkInterface) GetSpeedMbps() uint32 {
	if x != nil {
		return x.SpeedMbps
	}
	return 0
}

func (x *EthernetNetworkInterface) GetAutonegotiationOn() bool {
	if x != nil {
		return x.AutonegotiationOn
	}
	return false
}

func (x *EthernetNetworkInterface) GetDuplex() EthernetNetworkInterface_Duplex {
	if x != nil {
		return x.Duplex
	}
	return EthernetNetworkInterface_UNKNOWN
}

type WifiNetworkInterface struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InvalidPacketCounts *WifiNetworkInterface_InvalidPacketCounts `protobuf:"bytes,2,opt,name=invalid_packet_counts,json=invalidPacketCounts,proto3" json:"invalid_packet_counts,omitempty"`
	Channel             uint32                                    `protobuf:"varint,3,opt,name=channel,proto3" json:"channel,omitempty"`
	MissedBeacons       uint32                                    `protobuf:"varint,8,opt,name=missed_beacons,json=missedBeacons,proto3" json:"missed_beacons,omitempty"`
	LinkQuality         float64                                   `protobuf:"fixed64,4,opt,name=link_quality,json=linkQuality,proto3" json:"link_quality,omitempty"`
	SignalLevel         float64                                   `protobuf:"fixed64,5,opt,name=signal_level,json=signalLevel,proto3" json:"signal_level,omitempty"`
	NoiseLevel          float64                                   `protobuf:"fixed64,6,opt,name=noise_level,json=noiseLevel,proto3" json:"noise_level,omitempty"`
}

func (x *WifiNetworkInterface) Reset() {
	*x = WifiNetworkInterface{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WifiNetworkInterface) ProtoMessage() {}

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

func (x *WifiNetworkInterface) GetInvalidPacketCounts() *WifiNetworkInterface_InvalidPacketCounts {
	if x != nil {
		return x.InvalidPacketCounts
	}
	return nil
}

func (x *WifiNetworkInterface) GetChannel() uint32 {
	if x != nil {
		return x.Channel
	}
	return 0
}

func (x *WifiNetworkInterface) GetMissedBeacons() uint32 {
	if x != nil {
		return x.MissedBeacons
	}
	return 0
}

func (x *WifiNetworkInterface) GetLinkQuality() float64 {
	if x != nil {
		return x.LinkQuality
	}
	return 0
}

func (x *WifiNetworkInterface) GetSignalLevel() float64 {
	if x != nil {
		return x.SignalLevel
	}
	return 0
}

func (x *WifiNetworkInterface) GetNoiseLevel() float64 {
	if x != nil {
		return x.NoiseLevel
	}
	return 0
}

type BridgeNetworkInterface struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MemberNames []string `protobuf:"bytes,1,rep,name=member_names,json=memberNames,proto3" json:"member_names,omitempty"`
}

func (x *BridgeNetworkInterface) Reset() {
	*x = BridgeNetworkInterface{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BridgeNetworkInterface) ProtoMessage() {}

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

func (x *BridgeNetworkInterface) GetMemberNames() []string {
	if x != nil {
		return x.MemberNames
	}
	return nil
}

type LLAPosition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Lat float64 `protobuf:"fixed64,1,opt,name=lat,proto3" json:"lat,omitempty"`
	Lon float64 `protobuf:"fixed64,2,opt,name=lon,proto3" json:"lon,omitempty"`
	Alt float64 `protobuf:"fixed64,3,opt,name=alt,proto3" json:"alt,omitempty"`
}

func (x *LLAPosition) Reset() {
	*x = LLAPosition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LLAPosition) ProtoMessage() {}

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

func (x *LLAPosition) GetLat() float64 {
	if x != nil {
		return x.Lat
	}
	return 0
}

func (x *LLAPosition) GetLon() float64 {
	if x != nil {
		return x.Lon
	}
	return 0
}

func (x *LLAPosition) GetAlt() float64 {
	if x != nil {
		return x.Alt
	}
	return 0
}

type ECEFPosition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	X float64 `protobuf:"fixed64,1,opt,name=x,proto3" json:"x,omitempty"`
	Y float64 `protobuf:"fixed64,2,opt,name=y,proto3" json:"y,omitempty"`
	Z float64 `protobuf:"fixed64,3,opt,name=z,proto3" json:"z,omitempty"`
}

func (x *ECEFPosition) Reset() {
	*x = ECEFPosition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ECEFPosition) ProtoMessage() {}

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

func (x *ECEFPosition) GetX() float64 {
	if x != nil {
		return x.X
	}
	return 0
}

func (x *ECEFPosition) GetY() float64 {
	if x != nil {
		return x.Y
	}
	return 0
}

func (x *ECEFPosition) GetZ() float64 {
	if x != nil {
		return x.Z
	}
	return 0
}

type Quaternion struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	QScalar float32 `protobuf:"fixed32,1,opt,name=q_scalar,json=qScalar,proto3" json:"q_scalar,omitempty"`
	QX      float32 `protobuf:"fixed32,2,opt,name=q_x,json=qX,proto3" json:"q_x,omitempty"`
	QY      float32 `protobuf:"fixed32,3,opt,name=q_y,json=qY,proto3" json:"q_y,omitempty"`
	QZ      float32 `protobuf:"fixed32,4,opt,name=q_z,json=qZ,proto3" json:"q_z,omitempty"`
}

func (x *Quaternion) Reset() {
	*x = Quaternion{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Quaternion) ProtoMessage() {}

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

func (x *Quaternion) GetQScalar() float32 {
	if x != nil {
		return x.QScalar
	}
	return 0
}

func (x *Quaternion) GetQX() float32 {
	if x != nil {
		return x.QX
	}
	return 0
}

func (x *Quaternion) GetQY() float32 {
	if x != nil {
		return x.QY
	}
	return 0
}

func (x *Quaternion) GetQZ() float32 {
	if x != nil {
		return x.QZ
	}
	return 0
}

type InitiateRemoteSshRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *InitiateRemoteSshRequest) Reset() {
	*x = InitiateRemoteSshRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*InitiateRemoteSshRequest) ProtoMessage() {}

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

type InitiateRemoteSshResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Port    uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	Stsafe  []byte `protobuf:"bytes,3,opt,name=stsafe,proto3" json:"stsafe,omitempty"`
}

func (x *InitiateRemoteSshResponse) Reset() {
	*x = InitiateRemoteSshResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*InitiateRemoteSshResponse) ProtoMessage() {}

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

func (x *InitiateRemoteSshResponse) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

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

func (x *InitiateRemoteSshResponse) GetStsafe() []byte {
	if x != nil {
		return x.Stsafe
	}
	return nil
}

type SoftwareUpdateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StreamId uint64 `protobuf:"varint,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"`
	Data     []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Open     bool   `protobuf:"varint,3,opt,name=open,proto3" json:"open,omitempty"`
	Close    bool   `protobuf:"varint,4,opt,name=close,proto3" json:"close,omitempty"`
}

func (x *SoftwareUpdateRequest) Reset() {
	*x = SoftwareUpdateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SoftwareUpdateRequest) ProtoMessage() {}

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

func (x *SoftwareUpdateRequest) GetStreamId() uint64 {
	if x != nil {
		return x.StreamId
	}
	return 0
}

func (x *SoftwareUpdateRequest) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *SoftwareUpdateRequest) GetOpen() bool {
	if x != nil {
		return x.Open
	}
	return false
}

func (x *SoftwareUpdateRequest) GetClose() bool {
	if x != nil {
		return x.Close
	}
	return false
}

type SoftwareUpdateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SoftwareUpdateResponse) Reset() {
	*x = SoftwareUpdateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SoftwareUpdateResponse) ProtoMessage() {}

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

type EventLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Events             []*UXEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
	StartTimestampNs   int64      `protobuf:"varint,2,opt,name=start_timestamp_ns,json=startTimestampNs,proto3" json:"start_timestamp_ns,omitempty"`
	CurrentTimestampNs int64      `protobuf:"varint,3,opt,name=current_timestamp_ns,json=currentTimestampNs,proto3" json:"current_timestamp_ns,omitempty"`
}

func (x *EventLog) Reset() {
	*x = EventLog{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EventLog) ProtoMessage() {}

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

func (x *EventLog) GetEvents() []*UXEvent {
	if x != nil {
		return x.Events
	}
	return nil
}

func (x *EventLog) GetStartTimestampNs() int64 {
	if x != nil {
		return x.StartTimestampNs
	}
	return 0
}

func (x *EventLog) GetCurrentTimestampNs() int64 {
	if x != nil {
		return x.CurrentTimestampNs
	}
	return 0
}

type UXEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Severity         EventSeverity `protobuf:"varint,1,opt,name=severity,proto3,enum=SpaceX.API.Device.EventSeverity" json:"severity,omitempty"`
	Reason           EventReason   `protobuf:"varint,2,opt,name=reason,proto3,enum=SpaceX.API.Device.EventReason" json:"reason,omitempty"`
	StartTimestampNs int64         `protobuf:"varint,3,opt,name=start_timestamp_ns,json=startTimestampNs,proto3" json:"start_timestamp_ns,omitempty"`
	DurationNs       uint64        `protobuf:"varint,4,opt,name=duration_ns,json=durationNs,proto3" json:"duration_ns,omitempty"`
}

func (x *UXEvent) Reset() {
	*x = UXEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UXEvent) ProtoMessage() {}

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

func (x *UXEvent) GetSeverity() EventSeverity {
	if x != nil {
		return x.Severity
	}
	return EventSeverity_EVENT_SEVERITY_UNKNOWN
}

func (x *UXEvent) GetReason() EventReason {
	if x != nil {
		return x.Reason
	}
	return EventReason_EVENT_REASON_UNKNOWN
}

func (x *UXEvent) GetStartTimestampNs() int64 {
	if x != nil {
		return x.StartTimestampNs
	}
	return 0
}

func (x *UXEvent) GetDurationNs() uint64 {
	if x != nil {
		return x.DurationNs
	}
	return 0
}

type NetworkInterface_RxStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Bytes       uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"`
	Packets     uint64 `protobuf:"varint,2,opt,name=packets,proto3" json:"packets,omitempty"`
	FrameErrors uint64 `protobuf:"varint,3,opt,name=frame_errors,json=frameErrors,proto3" json:"frame_errors,omitempty"`
}

func (x *NetworkInterface_RxStats) Reset() {
	*x = NetworkInterface_RxStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NetworkInterface_RxStats) ProtoMessage() {}

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

func (x *NetworkInterface_RxStats) GetBytes() uint64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

func (x *NetworkInterface_RxStats) GetPackets() uint64 {
	if x != nil {
		return x.Packets
	}
	return 0
}

func (x *NetworkInterface_RxStats) GetFrameErrors() uint64 {
	if x != nil {
		return x.FrameErrors
	}
	return 0
}

type NetworkInterface_TxStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Bytes   uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"`
	Packets uint64 `protobuf:"varint,2,opt,name=packets,proto3" json:"packets,omitempty"`
}

func (x *NetworkInterface_TxStats) Reset() {
	*x = NetworkInterface_TxStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NetworkInterface_TxStats) ProtoMessage() {}

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

func (x *NetworkInterface_TxStats) GetBytes() uint64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

func (x *NetworkInterface_TxStats) GetPackets() uint64 {
	if x != nil {
		return x.Packets
	}
	return 0
}

type WifiNetworkInterface_InvalidPacketCounts struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RxInvalidNwid      uint32 `protobuf:"varint,1,opt,name=rx_invalid_nwid,json=rxInvalidNwid,proto3" json:"rx_invalid_nwid,omitempty"`
	RxInvalidCrypt     uint32 `protobuf:"varint,2,opt,name=rx_invalid_crypt,json=rxInvalidCrypt,proto3" json:"rx_invalid_crypt,omitempty"`
	RxInvalidFrag      uint32 `protobuf:"varint,3,opt,name=rx_invalid_frag,json=rxInvalidFrag,proto3" json:"rx_invalid_frag,omitempty"`
	TxExcessiveRetries uint32 `protobuf:"varint,4,opt,name=tx_excessive_retries,json=txExcessiveRetries,proto3" json:"tx_excessive_retries,omitempty"`
	InvalidMisc        uint32 `protobuf:"varint,5,opt,name=invalid_misc,json=invalidMisc,proto3" json:"invalid_misc,omitempty"`
}

func (x *WifiNetworkInterface_InvalidPacketCounts) Reset() {
	*x = WifiNetworkInterface_InvalidPacketCounts{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_common_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WifiNetworkInterface_InvalidPacketCounts) ProtoMessage() {}

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

func (x *WifiNetworkInterface_InvalidPacketCounts) GetRxInvalidNwid() uint32 {
	if x != nil {
		return x.RxInvalidNwid
	}
	return 0
}

func (x *WifiNetworkInterface_InvalidPacketCounts) GetRxInvalidCrypt() uint32 {
	if x != nil {
		return x.RxInvalidCrypt
	}
	return 0
}

func (x *WifiNetworkInterface_InvalidPacketCounts) GetRxInvalidFrag() uint32 {
	if x != nil {
		return x.RxInvalidFrag
	}
	return 0
}

func (x *WifiNetworkInterface_InvalidPacketCounts) GetTxExcessiveRetries() uint32 {
	if x != nil {
		return x.TxExcessiveRetries
	}
	return 0
}

func (x *WifiNetworkInterface_InvalidPacketCounts) GetInvalidMisc() uint32 {
	if x != nil {
		return x.InvalidMisc
	}
	return 0
}

var File_spacex_api_device_common_proto protoreflect.FileDescriptor

var file_spacex_api_device_common_proto_rawDesc = []byte{
	0x0a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x11, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x22, 0xe4, 0x04, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x68, 0x61,
	0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a,
	0x09, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x76, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x76, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f,
	0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63,
	0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65,
	0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x67, 0x65, 0x6e, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
	0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x74, 0x63, 0x5f,
	0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
	0x75, 0x74, 0x63, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x12, 0x3a, 0x0a, 0x19, 0x73, 0x6f,
	0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73,
	0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x65, 0x76, 0x12, 0x1c, 0x0a,
	0x09, 0x62, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x09, 0x62, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x61,
	0x6e, 0x74, 0x69, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x61, 0x6e, 0x74, 0x69,
	0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x06, 0x69, 0x73, 0x48, 0x69, 0x74, 0x6c, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x74,
	0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58,
	0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69,
	0x73, 0x68, 0x5f, 0x63, 0x6f, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x12,
	0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x0b, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x70, 0x74,
	0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x75, 0x70, 0x74,
	0x69, 0x6d, 0x65, 0x53, 0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61,
	0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x49,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4e,
	0x65, 0x78, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a,
	0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x07, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x64, 0x22, 0xd7, 0x05, 0x0a, 0x08, 0x42, 0x6f, 0x6f,
	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x0f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62,
	0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x66, 0x0a,
	0x15, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x53,
	0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42,
	0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x12, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61,
	0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42,
	0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x52,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x61, 0x73, 0x68, 0x5f, 0x62, 0x6f,
	0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x72, 0x61, 0x73, 0x68, 0x42,
	0x6f, 0x6f, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x61, 0x73, 0x68, 0x5f, 0x62, 0x6f, 0x6f,
	0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63,
	0x72, 0x61, 0x73, 0x68, 0x42, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a,
	0x1a, 0x65, 0x76, 0x65, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77,
	0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x17, 0x65, 0x76, 0x65, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x53, 0x6f, 0x66, 0x74, 0x77,
	0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6f, 0x64,
	0x64, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x6f,
	0x64, 0x64, 0x53, 0x69, 0x64, 0x65, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x64, 0x64, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4f,
	0x64, 0x64, 0x53, 0x69, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x45, 0x76, 0x65, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x45, 0x0a, 0x17, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74,
	0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x22, 0x7d, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x35,
	0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22,
	0x5a, 0x0a, 0x10, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
	0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x73, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07,
	0x77, 0x69, 0x66, 0x69, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77,
	0x69, 0x66, 0x69, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x52, 0x0a, 0x13, 0x41,
	0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
	0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22,
	0x5e, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63,
	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x22,
	0xad, 0x05, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72,
	0x66, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f,
	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d,
	0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x70, 0x76,
	0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73,
	0x12, 0x25, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
	0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63,
	0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65,
	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x52,
	0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12,
	0x46, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74,
	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x54, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07,
	0x74, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72,
	0x6e, 0x65, 0x74, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61,
	0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45,
	0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e,
	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72,
	0x6e, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x77, 0x69, 0x66, 0x69, 0x18, 0xe9, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f,
	0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x77,
	0x69, 0x66, 0x69, 0x12, 0x44, 0x0a, 0x06, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0xea, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e,
	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48,
	0x00, 0x52, 0x06, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x1a, 0x5c, 0x0a, 0x07, 0x52, 0x78, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61,
	0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63,
	0x6b, 0x65, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x66, 0x72, 0x61, 0x6d,
	0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x07, 0x54, 0x78, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b,
	0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65,
	0x74, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22,
	0x84, 0x02, 0x0a, 0x18, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77,
	0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d,
	0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x4d, 0x62, 0x70, 0x73,
	0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x75,
	0x74, 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x12,
	0x4a, 0x0a, 0x06, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x32, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77,
	0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x44, 0x75, 0x70,
	0x6c, 0x65, 0x78, 0x52, 0x06, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x22, 0x29, 0x0a, 0x06, 0x44,
	0x75, 0x70, 0x6c, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
	0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x4c, 0x46, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
	0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x22, 0xc9, 0x04, 0x0a, 0x14, 0x57, 0x69, 0x66, 0x69, 0x4e,
	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12,
	0x6f, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65,
	0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e,
	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50,
	0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x13, 0x69, 0x6e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69,
	0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e,
	0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74,
	0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x51, 0x75, 0x61,
	0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x6c,
	0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x69, 0x73, 0x65,
	0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6e, 0x6f,
	0x69, 0x73, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0xe4, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x12, 0x26, 0x0a, 0x0f, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e,
	0x77, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x78, 0x49, 0x6e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x4e, 0x77, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x78, 0x5f, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0e, 0x72, 0x78, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x72, 0x79,
	0x70, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x78, 0x49,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x72, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x78,
	0x5f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69,
	0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x78, 0x45, 0x78, 0x63, 0x65,
	0x73, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c,
	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x73, 0x63, 0x4a,
	0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x09, 0x10,
	0x0a, 0x52, 0x0e, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x52, 0x0f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x22, 0x3b, 0x0a, 0x16, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77,
	0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c,
	0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22,
	0x43, 0x0a, 0x0b, 0x4c, 0x4c, 0x41, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10,
	0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x61, 0x74,
	0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c,
	0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x03, 0x61, 0x6c, 0x74, 0x22, 0x38, 0x0a, 0x0c, 0x45, 0x43, 0x45, 0x46, 0x50, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79,
	0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x7a, 0x22, 0x5a,
	0x0a, 0x0a, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08,
	0x71, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07,
	0x71, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x12, 0x0f, 0x0a, 0x03, 0x71, 0x5f, 0x78, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x71, 0x58, 0x12, 0x0f, 0x0a, 0x03, 0x71, 0x5f, 0x79, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x71, 0x59, 0x12, 0x0f, 0x0a, 0x03, 0x71, 0x5f, 0x7a,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x71, 0x5a, 0x22, 0x1a, 0x0a, 0x18, 0x49, 0x6e,
	0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, 0x19, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 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, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x06, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x22, 0x72, 0x0a, 0x15, 0x53, 0x6f, 0x66,
	0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12,
	0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x18, 0x0a,
	0x16, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x08, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x4c, 0x6f, 0x67, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x58, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x07, 0x55, 0x58, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e,
	0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69,
	0x74, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x73, 0x2a, 0x8a, 0x03, 0x0a, 0x0a, 0x42, 0x6f,
	0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x4f, 0x54,
	0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x47, 0x4f, 0x54, 0x54, 0x45, 0x4e, 0x10, 0x01,
	0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x10,
	0x02, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x13,
	0x0a, 0x0f, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54,
	0x45, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x50,
	0x44, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x50, 0x54, 0x49, 0x4d, 0x45,
	0x5f, 0x46, 0x44, 0x49, 0x52, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x50, 0x45, 0x41,
	0x54, 0x45, 0x52, 0x5f, 0x46, 0x44, 0x49, 0x52, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x56,
	0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x57, 0x41, 0x4e, 0x5f, 0x46,
	0x44, 0x49, 0x52, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f,
	0x50, 0x41, 0x4e, 0x49, 0x43, 0x10, 0x09, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x54, 0x45, 0x4e,
	0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x50, 0x41,
	0x4e, 0x49, 0x43, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x43, 0x55, 0x5f, 0x42, 0x52, 0x49,
	0x4e, 0x47, 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x46, 0x44, 0x49, 0x52,
	0x10, 0x0b, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x56, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f,
	0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x46, 0x44, 0x49, 0x52, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11,
	0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f,
	0x47, 0x10, 0x0d, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f,
	0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x10, 0x0f, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45,
	0x50, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44,
	0x5f, 0x46, 0x44, 0x49, 0x52, 0x10, 0x10, 0x22, 0x04, 0x08, 0x0a, 0x10, 0x0a, 0x2a, 0x17, 0x41,
	0x56, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x35, 0x4d, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47,
	0x45, 0x5f, 0x46, 0x44, 0x49, 0x52, 0x2a, 0x80, 0x01, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e,
	0x54, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
	0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45,
	0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01,
	0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49,
	0x54, 0x59, 0x5f, 0x43, 0x41, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17,
	0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x41,
	0x44, 0x56, 0x49, 0x53, 0x4f, 0x52, 0x59, 0x10, 0x03, 0x2a, 0xab, 0x0d, 0x0a, 0x0b, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x56, 0x45,
	0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
	0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41,
	0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
	0x57, 0x4e, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x54,
	0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x4f,
	0x57, 0x45, 0x44, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x48, 0x45,
	0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x04, 0x12,
	0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
	0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55,
	0x4c, 0x45, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x53,
	0x41, 0x54, 0x53, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x4f, 0x42, 0x53,
	0x54, 0x52, 0x55, 0x43, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45,
	0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45,
	0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x08, 0x12, 0x20,
	0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f,
	0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x09,
	0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e,
	0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4c, 0x45, 0x45, 0x50, 0x49, 0x4e, 0x47,
	0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53,
	0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x4f, 0x56, 0x49, 0x4e, 0x47,
	0x5f, 0x57, 0x48, 0x49, 0x4c, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57,
	0x45, 0x44, 0x10, 0x0b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4b, 0x59, 0x5f,
	0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x13, 0x12, 0x33, 0x0a, 0x2f, 0x45, 0x56, 0x45, 0x4e,
	0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x54, 0x5f, 0x41, 0x4c, 0x45, 0x52,
	0x54, 0x5f, 0x52, 0x41, 0x49, 0x4e, 0x5f, 0x53, 0x4e, 0x52, 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49,
	0x53, 0x54, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x16, 0x12, 0x25, 0x0a,
	0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x54,
	0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x4e, 0x4f, 0x5f, 0x4c, 0x49,
	0x4e, 0x4b, 0x10, 0x17, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x54, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x54,
	0x48, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x18, 0x12, 0x2b, 0x0a,
	0x27, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x54,
	0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x5f,
	0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x31, 0x30, 0x30, 0x10, 0x19, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56,
	0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f,
	0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
	0x4c, 0x4f, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x41,
	0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x0d, 0x12, 0x1e, 0x0a,
	0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f,
	0x55, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x10, 0x0e, 0x12, 0x23, 0x0a,
	0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f,
	0x55, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x59, 0x43, 0x4c, 0x45,
	0x10, 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53,
	0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47,
	0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x10, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45,
	0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52,
	0x5f, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
	0x10, 0x11, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53,
	0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41,
	0x4c, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x44, 0x10, 0x12, 0x12, 0x2c, 0x0a,
	0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f,
	0x55, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46,
	0x49, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x14, 0x12, 0x2a, 0x0a, 0x26, 0x45,
	0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54,
	0x45, 0x52, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x43,
	0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x15, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54,
	0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x50,
	0x4f, 0x50, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x4f,
	0x50, 0x10, 0x1a, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41,
	0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x49,
	0x50, 0x56, 0x36, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x1b, 0x12,
	0x30, 0x0a, 0x2c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
	0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x4e, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x48,
	0x49, 0x47, 0x48, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x10,
	0x1c, 0x12, 0x30, 0x0a, 0x2c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f,
	0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x57, 0x41, 0x4e, 0x5f, 0x45, 0x54, 0x48,
	0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x53,
	0x53, 0x10, 0x1d, 0x12, 0x31, 0x0a, 0x2d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41,
	0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x5f,
	0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x54, 0x4f, 0x5f, 0x53,
	0x54, 0x41, 0x52, 0x54, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x44, 0x48,
	0x43, 0x50, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x48, 0x41, 0x55, 0x53,
	0x54, 0x45, 0x44, 0x10, 0x1f, 0x12, 0x35, 0x0a, 0x31, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x44, 0x4e, 0x53,
	0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49,
	0x4c, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x20, 0x12, 0x35, 0x0a, 0x31,
	0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55,
	0x54, 0x45, 0x52, 0x5f, 0x44, 0x4e, 0x53, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x53, 0x45, 0x52,
	0x56, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x41, 0x52,
	0x54, 0x10, 0x21, 0x12, 0x31, 0x0a, 0x2d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41,
	0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x43,
	0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x44, 0x4e, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x4c, 0x4c,
	0x4f, 0x57, 0x45, 0x44, 0x10, 0x22, 0x12, 0x2e, 0x0a, 0x2a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x45,
	0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x44, 0x4e, 0x53, 0x5f, 0x41, 0x4c, 0x4c,
	0x4f, 0x57, 0x45, 0x44, 0x10, 0x23, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x41,
	0x58, 0x5f, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e,
	0x54, 0x53, 0x10, 0x24, 0x12, 0x33, 0x0a, 0x2f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x5f,
	0x35, 0x47, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f,
	0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x25, 0x12, 0x34, 0x0a, 0x30, 0x45, 0x56, 0x45,
	0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52,
	0x5f, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x54, 0x4f, 0x50, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x5f, 0x43,
	0x48, 0x41, 0x4e, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x46, 0x54, 0x45, 0x4e, 0x10, 0x26, 0x12,
	0x26, 0x0a, 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
	0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x4b,
	0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x27, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65,
	0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_spacex_api_device_common_proto_rawDescOnce sync.Once
	file_spacex_api_device_common_proto_rawDescData = file_spacex_api_device_common_proto_rawDesc
)

func file_spacex_api_device_common_proto_rawDescGZIP() []byte {
	file_spacex_api_device_common_proto_rawDescOnce.Do(func() {
		file_spacex_api_device_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_spacex_api_device_common_proto_rawDescData)
	})
	return file_spacex_api_device_common_proto_rawDescData
}

var file_spacex_api_device_common_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_spacex_api_device_common_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
var file_spacex_api_device_common_proto_goTypes = []any{
	(BootReason)(0),                                  // 0: SpaceX.API.Device.BootReason
	(EventSeverity)(0),                               // 1: SpaceX.API.Device.EventSeverity
	(EventReason)(0),                                 // 2: SpaceX.API.Device.EventReason
	(EthernetNetworkInterface_Duplex)(0),             // 3: SpaceX.API.Device.EthernetNetworkInterface.Duplex
	(*DeviceInfo)(nil),                               // 4: SpaceX.API.Device.DeviceInfo
	(*DeviceState)(nil),                              // 5: SpaceX.API.Device.DeviceState
	(*SignedData)(nil),                               // 6: SpaceX.API.Device.SignedData
	(*GetNextIdRequest)(nil),                         // 7: SpaceX.API.Device.GetNextIdRequest
	(*GetNextIdResponse)(nil),                        // 8: SpaceX.API.Device.GetNextIdResponse
	(*BootInfo)(nil),                                 // 9: SpaceX.API.Device.BootInfo
	(*PingTarget)(nil),                               // 10: SpaceX.API.Device.PingTarget
	(*PingResult)(nil),                               // 11: SpaceX.API.Device.PingResult
	(*BondingChallenge)(nil),                         // 12: SpaceX.API.Device.BondingChallenge
	(*AuthenticateRequest)(nil),                      // 13: SpaceX.API.Device.AuthenticateRequest
	(*ChallengeResponse)(nil),                        // 14: SpaceX.API.Device.ChallengeResponse
	(*NetworkInterface)(nil),                         // 15: SpaceX.API.Device.NetworkInterface
	(*EthernetNetworkInterface)(nil),                 // 16: SpaceX.API.Device.EthernetNetworkInterface
	(*WifiNetworkInterface)(nil),                     // 17: SpaceX.API.Device.WifiNetworkInterface
	(*BridgeNetworkInterface)(nil),                   // 18: SpaceX.API.Device.BridgeNetworkInterface
	(*LLAPosition)(nil),                              // 19: SpaceX.API.Device.LLAPosition
	(*ECEFPosition)(nil),                             // 20: SpaceX.API.Device.ECEFPosition
	(*Quaternion)(nil),                               // 21: SpaceX.API.Device.Quaternion
	(*InitiateRemoteSshRequest)(nil),                 // 22: SpaceX.API.Device.InitiateRemoteSshRequest
	(*InitiateRemoteSshResponse)(nil),                // 23: SpaceX.API.Device.InitiateRemoteSshResponse
	(*SoftwareUpdateRequest)(nil),                    // 24: SpaceX.API.Device.SoftwareUpdateRequest
	(*SoftwareUpdateResponse)(nil),                   // 25: SpaceX.API.Device.SoftwareUpdateResponse
	(*EventLog)(nil),                                 // 26: SpaceX.API.Device.EventLog
	(*UXEvent)(nil),                                  // 27: SpaceX.API.Device.UXEvent
	nil,                                              // 28: SpaceX.API.Device.BootInfo.CountByReasonEntry
	nil,                                              // 29: SpaceX.API.Device.BootInfo.CountByReasonDeltaEntry
	(*NetworkInterface_RxStats)(nil),                 // 30: SpaceX.API.Device.NetworkInterface.RxStats
	(*NetworkInterface_TxStats)(nil),                 // 31: SpaceX.API.Device.NetworkInterface.TxStats
	(*WifiNetworkInterface_InvalidPacketCounts)(nil), // 32: SpaceX.API.Device.WifiNetworkInterface.InvalidPacketCounts
}
var file_spacex_api_device_common_proto_depIdxs = []int32{
	9,  // 0: SpaceX.API.Device.DeviceInfo.boot:type_name -> SpaceX.API.Device.BootInfo
	28, // 1: SpaceX.API.Device.BootInfo.count_by_reason:type_name -> SpaceX.API.Device.BootInfo.CountByReasonEntry
	29, // 2: SpaceX.API.Device.BootInfo.count_by_reason_delta:type_name -> SpaceX.API.Device.BootInfo.CountByReasonDeltaEntry
	0,  // 3: SpaceX.API.Device.BootInfo.last_reason:type_name -> SpaceX.API.Device.BootReason
	10, // 4: SpaceX.API.Device.PingResult.target:type_name -> SpaceX.API.Device.PingTarget
	6,  // 5: SpaceX.API.Device.AuthenticateRequest.challenge:type_name -> SpaceX.API.Device.SignedData
	30, // 6: SpaceX.API.Device.NetworkInterface.rx_stats:type_name -> SpaceX.API.Device.NetworkInterface.RxStats
	31, // 7: SpaceX.API.Device.NetworkInterface.tx_stats:type_name -> SpaceX.API.Device.NetworkInterface.TxStats
	16, // 8: SpaceX.API.Device.NetworkInterface.ethernet:type_name -> SpaceX.API.Device.EthernetNetworkInterface
	17, // 9: SpaceX.API.Device.NetworkInterface.wifi:type_name -> SpaceX.API.Device.WifiNetworkInterface
	18, // 10: SpaceX.API.Device.NetworkInterface.bridge:type_name -> SpaceX.API.Device.BridgeNetworkInterface
	3,  // 11: SpaceX.API.Device.EthernetNetworkInterface.duplex:type_name -> SpaceX.API.Device.EthernetNetworkInterface.Duplex
	32, // 12: SpaceX.API.Device.WifiNetworkInterface.invalid_packet_counts:type_name -> SpaceX.API.Device.WifiNetworkInterface.InvalidPacketCounts
	27, // 13: SpaceX.API.Device.EventLog.events:type_name -> SpaceX.API.Device.UXEvent
	1,  // 14: SpaceX.API.Device.UXEvent.severity:type_name -> SpaceX.API.Device.EventSeverity
	2,  // 15: SpaceX.API.Device.UXEvent.reason:type_name -> SpaceX.API.Device.EventReason
	16, // [16:16] is the sub-list for method output_type
	16, // [16:16] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_spacex_api_device_common_proto_init() }
func file_spacex_api_device_common_proto_init() {
	if File_spacex_api_device_common_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_spacex_api_device_common_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*DeviceInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*DeviceState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*SignedData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*GetNextIdRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*GetNextIdResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*BootInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*PingTarget); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*PingResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*BondingChallenge); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*AuthenticateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*ChallengeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*NetworkInterface); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*EthernetNetworkInterface); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*WifiNetworkInterface); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*BridgeNetworkInterface); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*LLAPosition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*ECEFPosition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*Quaternion); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*InitiateRemoteSshRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*InitiateRemoteSshResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*SoftwareUpdateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*SoftwareUpdateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*EventLog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*UXEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*NetworkInterface_RxStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[27].Exporter = func(v any, i int) any {
			switch v := v.(*NetworkInterface_TxStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_common_proto_msgTypes[28].Exporter = func(v any, i int) any {
			switch v := v.(*WifiNetworkInterface_InvalidPacketCounts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_spacex_api_device_common_proto_msgTypes[11].OneofWrappers = []any{
		(*NetworkInterface_Ethernet)(nil),
		(*NetworkInterface_Wifi)(nil),
		(*NetworkInterface_Bridge)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_spacex_api_device_common_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   29,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_spacex_api_device_common_proto_goTypes,
		DependencyIndexes: file_spacex_api_device_common_proto_depIdxs,
		EnumInfos:         file_spacex_api_device_common_proto_enumTypes,
		MessageInfos:      file_spacex_api_device_common_proto_msgTypes,
	}.Build()
	File_spacex_api_device_common_proto = out.File
	file_spacex_api_device_common_proto_rawDesc = nil
	file_spacex_api_device_common_proto_goTypes = nil
	file_spacex_api_device_common_proto_depIdxs = nil
}
