package client

import (
	proto "github.com/golang/protobuf/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (

	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)

	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

const _ = proto.ProtoPackageIsVersion4

type RequestType int32

const (
	RequestType_GET_STREAMING       RequestType = 3
	RequestType_PUT_STREAMING       RequestType = 2
	RequestType_GET_SETTINGS        RequestType = 4
	RequestType_PUT_SETTINGS        RequestType = 5
	RequestType_GET_CONTROL         RequestType = 6
	RequestType_PUT_CONTROL         RequestType = 7
	RequestType_GET_STATUS          RequestType = 8
	RequestType_PUT_STATUS          RequestType = 9
	RequestType_GET_SENSOR_DATA     RequestType = 12
	RequestType_PUT_SENSOR_DATA     RequestType = 11
	RequestType_GET_UCTOKENS        RequestType = 13
	RequestType_PUT_UCTOKENS        RequestType = 14
	RequestType_PUT_SETUP_NETWORK   RequestType = 15
	RequestType_PUT_SETUP_SERVER    RequestType = 16
	RequestType_GET_FIRMWARE        RequestType = 17
	RequestType_PUT_FIRMWARE        RequestType = 18
	RequestType_GET_PLAYBACK        RequestType = 19
	RequestType_PUT_PLAYBACK        RequestType = 20
	RequestType_GET_SOUNDTRACKS     RequestType = 21
	RequestType_GET_STATUS_NETWORK  RequestType = 22
	RequestType_GET_LIST_NETWORKS   RequestType = 23
	RequestType_GET_LOGS            RequestType = 24
	RequestType_GET_BANDWIDTH       RequestType = 25
	RequestType_GET_AUDIO_STREAMING RequestType = 26
	RequestType_PUT_AUDIO_STREAMING RequestType = 27
	RequestType_GET_WIFI_SETUP      RequestType = 28
	RequestType_PUT_WIFI_SETUP      RequestType = 29
	RequestType_PUT_STING_START     RequestType = 30
	RequestType_PUT_STING_STOP      RequestType = 31
	RequestType_PUT_STING_STATUS    RequestType = 32
	RequestType_PUT_STING_ALERT     RequestType = 34
	RequestType_PUT_KEEP_ALIVE      RequestType = 35
	RequestType_GET_STING_STATUS    RequestType = 36
	RequestType_PUT_STING_TEST      RequestType = 37
	RequestType_PUT_RTSP_STREAMING  RequestType = 38
	RequestType_GET_UOM_URI         RequestType = 39
	RequestType_GET_UOM             RequestType = 40
	RequestType_PUT_UOM             RequestType = 41
	RequestType_GET_AUTH_KEY        RequestType = 42
	RequestType_PUT_AUTH_KEY        RequestType = 43
	RequestType_PUT_HEALTH          RequestType = 44
	RequestType_PUT_TCP_REQUEST     RequestType = 45
	RequestType_GET_STING_START     RequestType = 46
	RequestType_GET_LOGS_URI        RequestType = 47
)

var (
	RequestType_name = map[int32]string{
		3:  "GET_STREAMING",
		2:  "PUT_STREAMING",
		4:  "GET_SETTINGS",
		5:  "PUT_SETTINGS",
		6:  "GET_CONTROL",
		7:  "PUT_CONTROL",
		8:  "GET_STATUS",
		9:  "PUT_STATUS",
		12: "GET_SENSOR_DATA",
		11: "PUT_SENSOR_DATA",
		13: "GET_UCTOKENS",
		14: "PUT_UCTOKENS",
		15: "PUT_SETUP_NETWORK",
		16: "PUT_SETUP_SERVER",
		17: "GET_FIRMWARE",
		18: "PUT_FIRMWARE",
		19: "GET_PLAYBACK",
		20: "PUT_PLAYBACK",
		21: "GET_SOUNDTRACKS",
		22: "GET_STATUS_NETWORK",
		23: "GET_LIST_NETWORKS",
		24: "GET_LOGS",
		25: "GET_BANDWIDTH",
		26: "GET_AUDIO_STREAMING",
		27: "PUT_AUDIO_STREAMING",
		28: "GET_WIFI_SETUP",
		29: "PUT_WIFI_SETUP",
		30: "PUT_STING_START",
		31: "PUT_STING_STOP",
		32: "PUT_STING_STATUS",
		34: "PUT_STING_ALERT",
		35: "PUT_KEEP_ALIVE",
		36: "GET_STING_STATUS",
		37: "PUT_STING_TEST",
		38: "PUT_RTSP_STREAMING",
		39: "GET_UOM_URI",
		40: "GET_UOM",
		41: "PUT_UOM",
		42: "GET_AUTH_KEY",
		43: "PUT_AUTH_KEY",
		44: "PUT_HEALTH",
		45: "PUT_TCP_REQUEST",
		46: "GET_STING_START",
		47: "GET_LOGS_URI",
	}
	RequestType_value = map[string]int32{
		"GET_STREAMING":       3,
		"PUT_STREAMING":       2,
		"GET_SETTINGS":        4,
		"PUT_SETTINGS":        5,
		"GET_CONTROL":         6,
		"PUT_CONTROL":         7,
		"GET_STATUS":          8,
		"PUT_STATUS":          9,
		"GET_SENSOR_DATA":     12,
		"PUT_SENSOR_DATA":     11,
		"GET_UCTOKENS":        13,
		"PUT_UCTOKENS":        14,
		"PUT_SETUP_NETWORK":   15,
		"PUT_SETUP_SERVER":    16,
		"GET_FIRMWARE":        17,
		"PUT_FIRMWARE":        18,
		"GET_PLAYBACK":        19,
		"PUT_PLAYBACK":        20,
		"GET_SOUNDTRACKS":     21,
		"GET_STATUS_NETWORK":  22,
		"GET_LIST_NETWORKS":   23,
		"GET_LOGS":            24,
		"GET_BANDWIDTH":       25,
		"GET_AUDIO_STREAMING": 26,
		"PUT_AUDIO_STREAMING": 27,
		"GET_WIFI_SETUP":      28,
		"PUT_WIFI_SETUP":      29,
		"PUT_STING_START":     30,
		"PUT_STING_STOP":      31,
		"PUT_STING_STATUS":    32,
		"PUT_STING_ALERT":     34,
		"PUT_KEEP_ALIVE":      35,
		"GET_STING_STATUS":    36,
		"PUT_STING_TEST":      37,
		"PUT_RTSP_STREAMING":  38,
		"GET_UOM_URI":         39,
		"GET_UOM":             40,
		"PUT_UOM":             41,
		"GET_AUTH_KEY":        42,
		"PUT_AUTH_KEY":        43,
		"PUT_HEALTH":          44,
		"PUT_TCP_REQUEST":     45,
		"GET_STING_START":     46,
		"GET_LOGS_URI":        47,
	}
)

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

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

func (RequestType) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[0].Descriptor()
}

func (RequestType) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[0]
}

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

func (x *RequestType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = RequestType(num)
	return nil
}

func (RequestType) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{0}
}

type SensorType int32

const (
	SensorType_SOUND       SensorType = 0
	SensorType_MOTION      SensorType = 1
	SensorType_TEMPERATURE SensorType = 2
	SensorType_HUMIDITY    SensorType = 3
	SensorType_LIGHT       SensorType = 4
	SensorType_NIGHT       SensorType = 5
)

var (
	SensorType_name = map[int32]string{
		0: "SOUND",
		1: "MOTION",
		2: "TEMPERATURE",
		3: "HUMIDITY",
		4: "LIGHT",
		5: "NIGHT",
	}
	SensorType_value = map[string]int32{
		"SOUND":       0,
		"MOTION":      1,
		"TEMPERATURE": 2,
		"HUMIDITY":    3,
		"LIGHT":       4,
		"NIGHT":       5,
	}
)

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

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

func (SensorType) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[1].Descriptor()
}

func (SensorType) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[1]
}

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

func (x *SensorType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = SensorType(num)
	return nil
}

func (SensorType) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{1}
}

type StreamIdentifier int32

const (
	StreamIdentifier_DVR       StreamIdentifier = 0
	StreamIdentifier_ANALYTICS StreamIdentifier = 1
	StreamIdentifier_MOBILE    StreamIdentifier = 2
)

var (
	StreamIdentifier_name = map[int32]string{
		0: "DVR",
		1: "ANALYTICS",
		2: "MOBILE",
	}
	StreamIdentifier_value = map[string]int32{
		"DVR":       0,
		"ANALYTICS": 1,
		"MOBILE":    2,
	}
)

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

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

func (StreamIdentifier) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[2].Descriptor()
}

func (StreamIdentifier) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[2]
}

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

func (x *StreamIdentifier) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = StreamIdentifier(num)
	return nil
}

func (StreamIdentifier) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{2}
}

type MountingMode int32

const (
	MountingMode_STAND  MountingMode = 0
	MountingMode_TRAVEL MountingMode = 1
	MountingMode_SWITCH MountingMode = 2
)

var (
	MountingMode_name = map[int32]string{
		0: "STAND",
		1: "TRAVEL",
		2: "SWITCH",
	}
	MountingMode_value = map[string]int32{
		"STAND":  0,
		"TRAVEL": 1,
		"SWITCH": 2,
	}
)

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

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

func (MountingMode) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[3].Descriptor()
}

func (MountingMode) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[3]
}

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

func (x *MountingMode) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = MountingMode(num)
	return nil
}

func (MountingMode) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3}
}

type Control_NightLight int32

const (
	Control_LIGHT_OFF Control_NightLight = 0
	Control_LIGHT_ON  Control_NightLight = 1
)

var (
	Control_NightLight_name = map[int32]string{
		0: "LIGHT_OFF",
		1: "LIGHT_ON",
	}
	Control_NightLight_value = map[string]int32{
		"LIGHT_OFF": 0,
		"LIGHT_ON":  1,
	}
)

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

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

func (Control_NightLight) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[4].Descriptor()
}

func (Control_NightLight) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[4]
}

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

func (x *Control_NightLight) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Control_NightLight(num)
	return nil
}

func (Control_NightLight) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{2, 0}
}

type Settings_AntiFlicker int32

const (
	Settings_FR50HZ Settings_AntiFlicker = 0
	Settings_FR60HZ Settings_AntiFlicker = 1
)

var (
	Settings_AntiFlicker_name = map[int32]string{
		0: "FR50HZ",
		1: "FR60HZ",
	}
	Settings_AntiFlicker_value = map[string]int32{
		"FR50HZ": 0,
		"FR60HZ": 1,
	}
)

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

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

func (Settings_AntiFlicker) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[5].Descriptor()
}

func (Settings_AntiFlicker) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[5]
}

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

func (x *Settings_AntiFlicker) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Settings_AntiFlicker(num)
	return nil
}

func (Settings_AntiFlicker) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3, 0}
}

type Settings_WifiBand int32

const (
	Settings_ANY      Settings_WifiBand = 0
	Settings_FR2_4GHZ Settings_WifiBand = 1
	Settings_FR5_0GHZ Settings_WifiBand = 2
)

var (
	Settings_WifiBand_name = map[int32]string{
		0: "ANY",
		1: "FR2_4GHZ",
		2: "FR5_0GHZ",
	}
	Settings_WifiBand_value = map[string]int32{
		"ANY":      0,
		"FR2_4GHZ": 1,
		"FR5_0GHZ": 2,
	}
)

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

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

func (Settings_WifiBand) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[6].Descriptor()
}

func (Settings_WifiBand) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[6]
}

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

func (x *Settings_WifiBand) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Settings_WifiBand(num)
	return nil
}

func (Settings_WifiBand) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3, 1}
}

type Status_ConnectionToServer int32

const (
	Status_DISCONNECTED Status_ConnectionToServer = 0
	Status_CONNECTED    Status_ConnectionToServer = 1
)

var (
	Status_ConnectionToServer_name = map[int32]string{
		0: "DISCONNECTED",
		1: "CONNECTED",
	}
	Status_ConnectionToServer_value = map[string]int32{
		"DISCONNECTED": 0,
		"CONNECTED":    1,
	}
)

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

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

func (Status_ConnectionToServer) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[7].Descriptor()
}

func (Status_ConnectionToServer) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[7]
}

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

func (x *Status_ConnectionToServer) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Status_ConnectionToServer(num)
	return nil
}

func (Status_ConnectionToServer) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{4, 0}
}

type Playback_Status int32

const (
	Playback_STARTED Playback_Status = 0
	Playback_STOPPED Playback_Status = 1
)

var (
	Playback_Status_name = map[int32]string{
		0: "STARTED",
		1: "STOPPED",
	}
	Playback_Status_value = map[string]int32{
		"STARTED": 0,
		"STOPPED": 1,
	}
)

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

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

func (Playback_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[8].Descriptor()
}

func (Playback_Status) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[8]
}

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

func (x *Playback_Status) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Playback_Status(num)
	return nil
}

func (Playback_Status) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{5, 0}
}

type Stream_Type int32

const (
	Stream_LOCAL  Stream_Type = 0
	Stream_REMOTE Stream_Type = 1
	Stream_RTSP   Stream_Type = 2
	Stream_P2P    Stream_Type = 3
)

var (
	Stream_Type_name = map[int32]string{
		0: "LOCAL",
		1: "REMOTE",
		2: "RTSP",
		3: "P2P",
	}
	Stream_Type_value = map[string]int32{
		"LOCAL":  0,
		"REMOTE": 1,
		"RTSP":   2,
		"P2P":    3,
	}
)

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

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

func (Stream_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[9].Descriptor()
}

func (Stream_Type) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[9]
}

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

func (x *Stream_Type) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Stream_Type(num)
	return nil
}

func (Stream_Type) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{6, 0}
}

type Streaming_Status int32

const (
	Streaming_STARTED Streaming_Status = 0
	Streaming_STOPPED Streaming_Status = 1
	Streaming_PAUSED  Streaming_Status = 2
)

var (
	Streaming_Status_name = map[int32]string{
		0: "STARTED",
		1: "STOPPED",
		2: "PAUSED",
	}
	Streaming_Status_value = map[string]int32{
		"STARTED": 0,
		"STOPPED": 1,
		"PAUSED":  2,
	}
)

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

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

func (Streaming_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[10].Descriptor()
}

func (Streaming_Status) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[10]
}

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

func (x *Streaming_Status) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Streaming_Status(num)
	return nil
}

func (Streaming_Status) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{7, 0}
}

type Message_Type int32

const (
	Message_KEEPALIVE Message_Type = 0
	Message_REQUEST   Message_Type = 1
	Message_RESPONSE  Message_Type = 2
)

var (
	Message_Type_name = map[int32]string{
		0: "KEEPALIVE",
		1: "REQUEST",
		2: "RESPONSE",
	}
	Message_Type_value = map[string]int32{
		"KEEPALIVE": 0,
		"REQUEST":   1,
		"RESPONSE":  2,
	}
)

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

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

func (Message_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[11].Descriptor()
}

func (Message_Type) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[11]
}

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

func (x *Message_Type) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Message_Type(num)
	return nil
}

func (Message_Type) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{12, 0}
}

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

	SensorType *SensorType `protobuf:"varint,1,req,name=sensorType,enum=client.SensorType" json:"sensorType,omitempty"`
	IsAlert    *bool       `protobuf:"varint,4,opt,name=isAlert" json:"isAlert,omitempty"`
	Timestamp  *int32      `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
	ValueMilli *int32      `protobuf:"varint,6,opt,name=valueMilli" json:"valueMilli,omitempty"`
	Value      *int32      `protobuf:"varint,3,opt,name=value" json:"value,omitempty"`
}

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

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

func (*SensorData) ProtoMessage() {}

func (x *SensorData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*SensorData) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{0}
}

func (x *SensorData) GetSensorType() SensorType {
	if x != nil && x.SensorType != nil {
		return *x.SensorType
	}
	return SensorType_SOUND
}

func (x *SensorData) GetIsAlert() bool {
	if x != nil && x.IsAlert != nil {
		return *x.IsAlert
	}
	return false
}

func (x *SensorData) GetTimestamp() int32 {
	if x != nil && x.Timestamp != nil {
		return *x.Timestamp
	}
	return 0
}

func (x *SensorData) GetValueMilli() int32 {
	if x != nil && x.ValueMilli != nil {
		return *x.ValueMilli
	}
	return 0
}

func (x *SensorData) GetValue() int32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

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

	All         *bool `protobuf:"varint,1,opt,name=all" json:"all,omitempty"`
	Temperature *bool `protobuf:"varint,4,opt,name=temperature" json:"temperature,omitempty"`
	Humidity    *bool `protobuf:"varint,5,opt,name=humidity" json:"humidity,omitempty"`
	Light       *bool `protobuf:"varint,6,opt,name=light" json:"light,omitempty"`
	Night       *bool `protobuf:"varint,7,opt,name=night" json:"night,omitempty"`
}

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

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

func (*GetSensorData) ProtoMessage() {}

func (x *GetSensorData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*GetSensorData) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{1}
}

func (x *GetSensorData) GetAll() bool {
	if x != nil && x.All != nil {
		return *x.All
	}
	return false
}

func (x *GetSensorData) GetTemperature() bool {
	if x != nil && x.Temperature != nil {
		return *x.Temperature
	}
	return false
}

func (x *GetSensorData) GetHumidity() bool {
	if x != nil && x.Humidity != nil {
		return *x.Humidity
	}
	return false
}

func (x *GetSensorData) GetLight() bool {
	if x != nil && x.Light != nil {
		return *x.Light
	}
	return false
}

func (x *GetSensorData) GetNight() bool {
	if x != nil && x.Night != nil {
		return *x.Night
	}
	return false
}

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

	ForceConnectToServer *bool                       `protobuf:"varint,5,opt,name=forceConnectToServer" json:"forceConnectToServer,omitempty"`
	NightLightTimeout    *int32                      `protobuf:"varint,6,opt,name=nightLightTimeout" json:"nightLightTimeout,omitempty"`
	NightLight           *Control_NightLight         `protobuf:"varint,3,opt,name=nightLight,enum=client.Control_NightLight" json:"nightLight,omitempty"`
	SensorDataTransfer   *Control_SensorDataTransfer `protobuf:"bytes,4,opt,name=sensorDataTransfer" json:"sensorDataTransfer,omitempty"`
}

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

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

func (*Control) ProtoMessage() {}

func (x *Control) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Control) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{2}
}

func (x *Control) GetForceConnectToServer() bool {
	if x != nil && x.ForceConnectToServer != nil {
		return *x.ForceConnectToServer
	}
	return false
}

func (x *Control) GetNightLightTimeout() int32 {
	if x != nil && x.NightLightTimeout != nil {
		return *x.NightLightTimeout
	}
	return 0
}

func (x *Control) GetNightLight() Control_NightLight {
	if x != nil && x.NightLight != nil {
		return *x.NightLight
	}
	return Control_LIGHT_OFF
}

func (x *Control) GetSensorDataTransfer() *Control_SensorDataTransfer {
	if x != nil {
		return x.SensorDataTransfer
	}
	return nil
}

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

	NightVision   *bool                      `protobuf:"varint,2,opt,name=nightVision" json:"nightVision,omitempty"`
	Sensors       []*Settings_SensorSettings `protobuf:"bytes,7,rep,name=sensors" json:"sensors,omitempty"`
	Streams       []*Settings_StreamSettings `protobuf:"bytes,8,rep,name=streams" json:"streams,omitempty"`
	Volume        *int32                     `protobuf:"varint,9,opt,name=volume" json:"volume,omitempty"`
	AntiFlicker   *Settings_AntiFlicker      `protobuf:"varint,10,opt,name=antiFlicker,enum=client.Settings_AntiFlicker" json:"antiFlicker,omitempty"`
	SleepMode     *bool                      `protobuf:"varint,11,opt,name=sleepMode" json:"sleepMode,omitempty"`
	StatusLightOn *bool                      `protobuf:"varint,12,opt,name=statusLightOn" json:"statusLightOn,omitempty"`
	MountingMode  *int32                     `protobuf:"varint,15,opt,name=mountingMode" json:"mountingMode,omitempty"`
	WifiBand      *Settings_WifiBand         `protobuf:"varint,18,opt,name=wifiBand,enum=client.Settings_WifiBand" json:"wifiBand,omitempty"`
	MicMuteOn     *bool                      `protobuf:"varint,20,opt,name=micMuteOn" json:"micMuteOn,omitempty"`
}

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

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

func (*Settings) ProtoMessage() {}

func (x *Settings) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Settings) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3}
}

func (x *Settings) GetNightVision() bool {
	if x != nil && x.NightVision != nil {
		return *x.NightVision
	}
	return false
}

func (x *Settings) GetSensors() []*Settings_SensorSettings {
	if x != nil {
		return x.Sensors
	}
	return nil
}

func (x *Settings) GetStreams() []*Settings_StreamSettings {
	if x != nil {
		return x.Streams
	}
	return nil
}

func (x *Settings) GetVolume() int32 {
	if x != nil && x.Volume != nil {
		return *x.Volume
	}
	return 0
}

func (x *Settings) GetAntiFlicker() Settings_AntiFlicker {
	if x != nil && x.AntiFlicker != nil {
		return *x.AntiFlicker
	}
	return Settings_FR50HZ
}

func (x *Settings) GetSleepMode() bool {
	if x != nil && x.SleepMode != nil {
		return *x.SleepMode
	}
	return false
}

func (x *Settings) GetStatusLightOn() bool {
	if x != nil && x.StatusLightOn != nil {
		return *x.StatusLightOn
	}
	return false
}

func (x *Settings) GetMountingMode() int32 {
	if x != nil && x.MountingMode != nil {
		return *x.MountingMode
	}
	return 0
}

func (x *Settings) GetWifiBand() Settings_WifiBand {
	if x != nil && x.WifiBand != nil {
		return *x.WifiBand
	}
	return Settings_ANY
}

func (x *Settings) GetMicMuteOn() bool {
	if x != nil && x.MicMuteOn != nil {
		return *x.MicMuteOn
	}
	return false
}

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

	UpgradeDownloaded  *bool                      `protobuf:"varint,1,opt,name=upgradeDownloaded" json:"upgradeDownloaded,omitempty"`
	ConnectionToServer *Status_ConnectionToServer `protobuf:"varint,2,opt,name=connectionToServer,enum=client.Status_ConnectionToServer" json:"connectionToServer,omitempty"`
	CurrentVersion     *string                    `protobuf:"bytes,3,opt,name=currentVersion" json:"currentVersion,omitempty"`
	Mode               *MountingMode              `protobuf:"varint,4,opt,name=mode,enum=client.MountingMode" json:"mode,omitempty"`
	IsSecurityUpgrade  *bool                      `protobuf:"varint,5,opt,name=isSecurityUpgrade" json:"isSecurityUpgrade,omitempty"`
	DownloadedVersion  *string                    `protobuf:"bytes,6,opt,name=downloadedVersion" json:"downloadedVersion,omitempty"`
	HardwareVersion    *string                    `protobuf:"bytes,7,opt,name=hardwareVersion" json:"hardwareVersion,omitempty"`
}

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

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

func (*Status) ProtoMessage() {}

func (x *Status) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Status) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{4}
}

func (x *Status) GetUpgradeDownloaded() bool {
	if x != nil && x.UpgradeDownloaded != nil {
		return *x.UpgradeDownloaded
	}
	return false
}

func (x *Status) GetConnectionToServer() Status_ConnectionToServer {
	if x != nil && x.ConnectionToServer != nil {
		return *x.ConnectionToServer
	}
	return Status_DISCONNECTED
}

func (x *Status) GetCurrentVersion() string {
	if x != nil && x.CurrentVersion != nil {
		return *x.CurrentVersion
	}
	return ""
}

func (x *Status) GetMode() MountingMode {
	if x != nil && x.Mode != nil {
		return *x.Mode
	}
	return MountingMode_STAND
}

func (x *Status) GetIsSecurityUpgrade() bool {
	if x != nil && x.IsSecurityUpgrade != nil {
		return *x.IsSecurityUpgrade
	}
	return false
}

func (x *Status) GetDownloadedVersion() string {
	if x != nil && x.DownloadedVersion != nil {
		return *x.DownloadedVersion
	}
	return ""
}

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

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

	Status *Playback_Status `protobuf:"varint,1,req,name=status,enum=client.Playback_Status" json:"status,omitempty"`
}

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

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

func (*Playback) ProtoMessage() {}

func (x *Playback) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Playback) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{5}
}

func (x *Playback) GetStatus() Playback_Status {
	if x != nil && x.Status != nil {
		return *x.Status
	}
	return Playback_STARTED
}

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

	Type *Stream_Type `protobuf:"varint,1,req,name=type,enum=client.Stream_Type" json:"type,omitempty"`
	Url  *string      `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
	Bps  *int32       `protobuf:"varint,3,opt,name=bps" json:"bps,omitempty"`
}

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

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

func (*Stream) ProtoMessage() {}

func (x *Stream) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Stream) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{6}
}

func (x *Stream) GetType() Stream_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Stream_LOCAL
}

func (x *Stream) GetUrl() string {
	if x != nil && x.Url != nil {
		return *x.Url
	}
	return ""
}

func (x *Stream) GetBps() int32 {
	if x != nil && x.Bps != nil {
		return *x.Bps
	}
	return 0
}

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

	Id       *StreamIdentifier `protobuf:"varint,1,req,name=id,enum=client.StreamIdentifier" json:"id,omitempty"`
	Status   *Streaming_Status `protobuf:"varint,2,req,name=status,enum=client.Streaming_Status" json:"status,omitempty"`
	RtmpUrl  *string           `protobuf:"bytes,3,req,name=rtmpUrl" json:"rtmpUrl,omitempty"`
	Attempts *int32            `protobuf:"varint,4,opt,name=attempts" json:"attempts,omitempty"`
}

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

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

func (*Streaming) ProtoMessage() {}

func (x *Streaming) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Streaming) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{7}
}

func (x *Streaming) GetId() StreamIdentifier {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return StreamIdentifier_DVR
}

func (x *Streaming) GetStatus() Streaming_Status {
	if x != nil && x.Status != nil {
		return *x.Status
	}
	return Streaming_STARTED
}

func (x *Streaming) GetRtmpUrl() string {
	if x != nil && x.RtmpUrl != nil {
		return *x.RtmpUrl
	}
	return ""
}

func (x *Streaming) GetAttempts() int32 {
	if x != nil && x.Attempts != nil {
		return *x.Attempts
	}
	return 0
}

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

	Url *string `protobuf:"bytes,1,req,name=url" json:"url,omitempty"`
}

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

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

func (*GetLogs) ProtoMessage() {}

func (x *GetLogs) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*GetLogs) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{8}
}

func (x *GetLogs) GetUrl() string {
	if x != nil && x.Url != nil {
		return *x.Url
	}
	return ""
}

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

	All *bool `protobuf:"varint,1,opt,name=all" json:"all,omitempty"`
}

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

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

func (*GetStatus) ProtoMessage() {}

func (x *GetStatus) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*GetStatus) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{9}
}

func (x *GetStatus) GetAll() bool {
	if x != nil && x.All != nil {
		return *x.All
	}
	return false
}

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

	Id            *int32         `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
	Type          *RequestType   `protobuf:"varint,2,req,name=type,enum=client.RequestType" json:"type,omitempty"`
	GetSensorData *GetSensorData `protobuf:"bytes,12,opt,name=getSensorData" json:"getSensorData,omitempty"`
	SensorData_   []*SensorData  `protobuf:"bytes,13,rep,name=sensorData" json:"sensorData,omitempty"`
	Streaming     *Streaming     `protobuf:"bytes,4,opt,name=streaming" json:"streaming,omitempty"`
	Control       *Control       `protobuf:"bytes,15,opt,name=control" json:"control,omitempty"`
	Settings      *Settings      `protobuf:"bytes,5,opt,name=settings" json:"settings,omitempty"`
	Status        *Status        `protobuf:"bytes,7,opt,name=status" json:"status,omitempty"`
	GetStatus_    *GetStatus     `protobuf:"bytes,8,opt,name=getStatus" json:"getStatus,omitempty"`
	Playback      *Playback      `protobuf:"bytes,16,opt,name=playback" json:"playback,omitempty"`
	GetLogs       *GetLogs       `protobuf:"bytes,18,opt,name=getLogs" json:"getLogs,omitempty"`
}

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

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

func (*Request) ProtoMessage() {}

func (x *Request) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Request) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{10}
}

func (x *Request) GetId() int32 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *Request) GetType() RequestType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return RequestType_GET_STREAMING
}

func (x *Request) GetGetSensorData() *GetSensorData {
	if x != nil {
		return x.GetSensorData
	}
	return nil
}

func (x *Request) GetSensorData_() []*SensorData {
	if x != nil {
		return x.SensorData_
	}
	return nil
}

func (x *Request) GetStreaming() *Streaming {
	if x != nil {
		return x.Streaming
	}
	return nil
}

func (x *Request) GetControl() *Control {
	if x != nil {
		return x.Control
	}
	return nil
}

func (x *Request) GetSettings() *Settings {
	if x != nil {
		return x.Settings
	}
	return nil
}

func (x *Request) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *Request) GetGetStatus_() *GetStatus {
	if x != nil {
		return x.GetStatus_
	}
	return nil
}

func (x *Request) GetPlayback() *Playback {
	if x != nil {
		return x.Playback
	}
	return nil
}

func (x *Request) GetGetLogs() *GetLogs {
	if x != nil {
		return x.GetLogs
	}
	return nil
}

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

	RequestId     *int32        `protobuf:"varint,1,req,name=requestId" json:"requestId,omitempty"`
	RequestType   *RequestType  `protobuf:"varint,2,req,name=requestType,enum=client.RequestType" json:"requestType,omitempty"`
	StatusCode    *int32        `protobuf:"varint,3,req,name=statusCode" json:"statusCode,omitempty"`
	StatusMessage *string       `protobuf:"bytes,4,opt,name=statusMessage" json:"statusMessage,omitempty"`
	Status        *Status       `protobuf:"bytes,5,opt,name=status" json:"status,omitempty"`
	SensorData    []*SensorData `protobuf:"bytes,9,rep,name=sensorData" json:"sensorData,omitempty"`
	Settings      *Settings     `protobuf:"bytes,6,opt,name=settings" json:"settings,omitempty"`
}

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

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

func (*Response) ProtoMessage() {}

func (x *Response) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Response) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{11}
}

func (x *Response) GetRequestId() int32 {
	if x != nil && x.RequestId != nil {
		return *x.RequestId
	}
	return 0
}

func (x *Response) GetRequestType() RequestType {
	if x != nil && x.RequestType != nil {
		return *x.RequestType
	}
	return RequestType_GET_STREAMING
}

func (x *Response) GetStatusCode() int32 {
	if x != nil && x.StatusCode != nil {
		return *x.StatusCode
	}
	return 0
}

func (x *Response) GetStatusMessage() string {
	if x != nil && x.StatusMessage != nil {
		return *x.StatusMessage
	}
	return ""
}

func (x *Response) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *Response) GetSensorData() []*SensorData {
	if x != nil {
		return x.SensorData
	}
	return nil
}

func (x *Response) GetSettings() *Settings {
	if x != nil {
		return x.Settings
	}
	return nil
}

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

	Type     *Message_Type `protobuf:"varint,1,req,name=type,enum=client.Message_Type" json:"type,omitempty"`
	Request  *Request      `protobuf:"bytes,2,opt,name=request" json:"request,omitempty"`
	Response *Response     `protobuf:"bytes,3,opt,name=response" json:"response,omitempty"`
}

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

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

func (*Message) ProtoMessage() {}

func (x *Message) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Message) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{12}
}

func (x *Message) GetType() Message_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Message_KEEPALIVE
}

func (x *Message) GetRequest() *Request {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *Message) GetResponse() *Response {
	if x != nil {
		return x.Response
	}
	return nil
}

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

	Sound       *bool `protobuf:"varint,1,opt,name=sound" json:"sound,omitempty"`
	Motion      *bool `protobuf:"varint,2,opt,name=motion" json:"motion,omitempty"`
	Temperature *bool `protobuf:"varint,3,opt,name=temperature" json:"temperature,omitempty"`
	Humidity    *bool `protobuf:"varint,4,opt,name=humidity" json:"humidity,omitempty"`
	Light       *bool `protobuf:"varint,5,opt,name=light" json:"light,omitempty"`
	Night       *bool `protobuf:"varint,6,opt,name=night" json:"night,omitempty"`
}

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

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

func (*Control_SensorDataTransfer) ProtoMessage() {}

func (x *Control_SensorDataTransfer) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Control_SensorDataTransfer) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{2, 0}
}

func (x *Control_SensorDataTransfer) GetSound() bool {
	if x != nil && x.Sound != nil {
		return *x.Sound
	}
	return false
}

func (x *Control_SensorDataTransfer) GetMotion() bool {
	if x != nil && x.Motion != nil {
		return *x.Motion
	}
	return false
}

func (x *Control_SensorDataTransfer) GetTemperature() bool {
	if x != nil && x.Temperature != nil {
		return *x.Temperature
	}
	return false
}

func (x *Control_SensorDataTransfer) GetHumidity() bool {
	if x != nil && x.Humidity != nil {
		return *x.Humidity
	}
	return false
}

func (x *Control_SensorDataTransfer) GetLight() bool {
	if x != nil && x.Light != nil {
		return *x.Light
	}
	return false
}

func (x *Control_SensorDataTransfer) GetNight() bool {
	if x != nil && x.Night != nil {
		return *x.Night
	}
	return false
}

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

	SensorType            *SensorType `protobuf:"varint,1,req,name=sensorType,enum=client.SensorType" json:"sensorType,omitempty"`
	UseLowThreshold       *bool       `protobuf:"varint,2,opt,name=useLowThreshold" json:"useLowThreshold,omitempty"`
	UseHighThreshold      *bool       `protobuf:"varint,3,opt,name=useHighThreshold" json:"useHighThreshold,omitempty"`
	LowThreshold          *int32      `protobuf:"varint,4,opt,name=lowThreshold" json:"lowThreshold,omitempty"`
	HighThreshold         *int32      `protobuf:"varint,5,opt,name=highThreshold" json:"highThreshold,omitempty"`
	SampleIntervalSec     *int32      `protobuf:"varint,6,opt,name=sampleIntervalSec" json:"sampleIntervalSec,omitempty"`
	TriggerIntervalSec    *int32      `protobuf:"varint,7,opt,name=triggerIntervalSec" json:"triggerIntervalSec,omitempty"`
	UseMilliForThresholds *bool       `protobuf:"varint,8,opt,name=useMilliForThresholds" json:"useMilliForThresholds,omitempty"`
}

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

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

func (*Settings_SensorSettings) ProtoMessage() {}

func (x *Settings_SensorSettings) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Settings_SensorSettings) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3, 0}
}

func (x *Settings_SensorSettings) GetSensorType() SensorType {
	if x != nil && x.SensorType != nil {
		return *x.SensorType
	}
	return SensorType_SOUND
}

func (x *Settings_SensorSettings) GetUseLowThreshold() bool {
	if x != nil && x.UseLowThreshold != nil {
		return *x.UseLowThreshold
	}
	return false
}

func (x *Settings_SensorSettings) GetUseHighThreshold() bool {
	if x != nil && x.UseHighThreshold != nil {
		return *x.UseHighThreshold
	}
	return false
}

func (x *Settings_SensorSettings) GetLowThreshold() int32 {
	if x != nil && x.LowThreshold != nil {
		return *x.LowThreshold
	}
	return 0
}

func (x *Settings_SensorSettings) GetHighThreshold() int32 {
	if x != nil && x.HighThreshold != nil {
		return *x.HighThreshold
	}
	return 0
}

func (x *Settings_SensorSettings) GetSampleIntervalSec() int32 {
	if x != nil && x.SampleIntervalSec != nil {
		return *x.SampleIntervalSec
	}
	return 0
}

func (x *Settings_SensorSettings) GetTriggerIntervalSec() int32 {
	if x != nil && x.TriggerIntervalSec != nil {
		return *x.TriggerIntervalSec
	}
	return 0
}

func (x *Settings_SensorSettings) GetUseMilliForThresholds() bool {
	if x != nil && x.UseMilliForThresholds != nil {
		return *x.UseMilliForThresholds
	}
	return false
}

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

	Id             *StreamIdentifier `protobuf:"varint,1,req,name=id,enum=client.StreamIdentifier" json:"id,omitempty"`
	Bitrate        *int32            `protobuf:"varint,2,opt,name=bitrate" json:"bitrate,omitempty"`
	EconomyBitrate *int32            `protobuf:"varint,3,opt,name=economyBitrate" json:"economyBitrate,omitempty"`
	EconomyFps     *int32            `protobuf:"varint,4,opt,name=economyFps" json:"economyFps,omitempty"`
	BestBitrate    *int32            `protobuf:"varint,5,opt,name=bestBitrate" json:"bestBitrate,omitempty"`
	BestFps        *int32            `protobuf:"varint,6,opt,name=bestFps" json:"bestFps,omitempty"`
}

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

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

func (*Settings_StreamSettings) ProtoMessage() {}

func (x *Settings_StreamSettings) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_client_websocket_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)
}

func (*Settings_StreamSettings) Descriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3, 1}
}

func (x *Settings_StreamSettings) GetId() StreamIdentifier {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return StreamIdentifier_DVR
}

func (x *Settings_StreamSettings) GetBitrate() int32 {
	if x != nil && x.Bitrate != nil {
		return *x.Bitrate
	}
	return 0
}

func (x *Settings_StreamSettings) GetEconomyBitrate() int32 {
	if x != nil && x.EconomyBitrate != nil {
		return *x.EconomyBitrate
	}
	return 0
}

func (x *Settings_StreamSettings) GetEconomyFps() int32 {
	if x != nil && x.EconomyFps != nil {
		return *x.EconomyFps
	}
	return 0
}

func (x *Settings_StreamSettings) GetBestBitrate() int32 {
	if x != nil && x.BestBitrate != nil {
		return *x.BestBitrate
	}
	return 0
}

func (x *Settings_StreamSettings) GetBestFps() int32 {
	if x != nil && x.BestFps != nil {
		return *x.BestFps
	}
	return 0
}

var File_pkg_client_websocket_proto protoreflect.FileDescriptor

var file_pkg_client_websocket_proto_rawDesc = []byte{
	0x0a, 0x1a, 0x70, 0x6b, 0x67, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x77, 0x65, 0x62,
	0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44,
	0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x41, 0x6c, 0x65,
	0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x6c, 0x65, 0x72,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
	0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
	0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68,
	0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68,
	0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x69,
	0x67, 0x68, 0x74, 0x22, 0xd5, 0x03, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12,
	0x32, 0x0a, 0x14, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54,
	0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66,
	0x6f, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
	0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x43,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68,
	0x74, 0x52, 0x0a, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a,
	0x12, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x12, 0x73,
	0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
	0x72, 0x1a, 0xac, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
	0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, 0x65, 0x6d,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x75, 0x6d, 0x69,
	0x64, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x75, 0x6d, 0x69,
	0x64, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x69, 0x67, 0x68, 0x74,
	0x22, 0x29, 0x0a, 0x0a, 0x4e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0d,
	0x0a, 0x09, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x4e, 0x10, 0x01, 0x22, 0xe5, 0x08, 0x0a, 0x08,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x69, 0x67, 0x68,
	0x74, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e,
	0x69, 0x67, 0x68, 0x74, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x73, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
	0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53,
	0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
	0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x61, 0x6e, 0x74, 0x69,
	0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e,
	0x41, 0x6e, 0x74, 0x69, 0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x0b, 0x61, 0x6e, 0x74,
	0x69, 0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6c, 0x65, 0x65,
	0x70, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x6c, 0x65,
	0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x4c, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x6e, 0x12, 0x22, 0x0a, 0x0c,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65,
	0x12, 0x35, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x73, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x77,
	0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x69, 0x63, 0x4d, 0x75,
	0x74, 0x65, 0x4f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x69, 0x63, 0x4d,
	0x75, 0x74, 0x65, 0x4f, 0x6e, 0x1a, 0xf8, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73,
	0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f,
	0x75, 0x73, 0x65, 0x4c, 0x6f, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x4c, 0x6f, 0x77, 0x54, 0x68, 0x72,
	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x48, 0x69, 0x67,
	0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x10, 0x75, 0x73, 0x65, 0x48, 0x69, 0x67, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x77, 0x54, 0x68, 0x72,
	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x54, 0x68,
	0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68,
	0x69, 0x67, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x11,
	0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65,
	0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x75, 0x73,
	0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x46, 0x6f, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x4d, 0x69,
	0x6c, 0x6c, 0x69, 0x46, 0x6f, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
	0x1a, 0xd8, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32,
	0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a,
	0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
	0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x63, 0x6f, 0x6e, 0x6f,
	0x6d, 0x79, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0e, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12,
	0x1e, 0x0a, 0x0a, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x46, 0x70, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x46, 0x70, 0x73, 0x12,
	0x20, 0x0a, 0x0b, 0x62, 0x65, 0x73, 0x74, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x65, 0x73, 0x74, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x65, 0x73, 0x74, 0x46, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x62, 0x65, 0x73, 0x74, 0x46, 0x70, 0x73, 0x22, 0x25, 0x0a, 0x0b, 0x41,
	0x6e, 0x74, 0x69, 0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52,
	0x35, 0x30, 0x48, 0x5a, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52, 0x36, 0x30, 0x48, 0x5a,
	0x10, 0x01, 0x22, 0x2f, 0x0a, 0x08, 0x57, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x07,
	0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x52, 0x32, 0x5f, 0x34,
	0x47, 0x48, 0x5a, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x52, 0x35, 0x5f, 0x30, 0x47, 0x48,
	0x5a, 0x10, 0x02, 0x22, 0x98, 0x03, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c,
	0x0a, 0x11, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x67, 0x72, 0x61,
	0x64, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x12,
	0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x12, 0x63, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12,
	0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d,
	0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64,
	0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x55,
	0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73,
	0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12,
	0x2c, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a,
	0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a,
	0x0c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12,
	0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x22, 0x5f,
	0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x22, 0x0a, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x22,
	0x87, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x03, 0x62, 0x70, 0x73, 0x22, 0x30, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45,
	0x4d, 0x4f, 0x54, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x54, 0x53, 0x50, 0x10, 0x02,
	0x12, 0x07, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x09, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x02, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28,
	0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x03,
	0x20, 0x02, 0x28, 0x09, 0x52, 0x07, 0x72, 0x74, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a,
	0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x22, 0x2e, 0x0a, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a,
	0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, 0x1b, 0x0a, 0x07, 0x47, 0x65, 0x74,
	0x4c, 0x6f, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x02, 0x28,
	0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x1d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x03, 0x61, 0x6c, 0x6c, 0x22, 0xef, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32,
	0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x67, 0x65,
	0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x67, 0x65, 0x74, 0x53, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
	0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x09, 0x73,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e,
	0x67, 0x52, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x07,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x07,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a,
	0x09, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x09, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c,
	0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61,
	0x63, 0x6b, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x07,
	0x67, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x07,
	0x67, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xaf, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x49, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
	0x26, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
	0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x08, 0x73,
	0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52,
	0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x07, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
	0x02, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x29, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08,
	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x45, 0x45, 0x50, 0x41, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12,
	0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
	0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x2a, 0xe0, 0x06, 0x0a, 0x0b, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45,
	0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x11, 0x0a,
	0x0d, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x02,
	0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x53,
	0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e,
	0x47, 0x53, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
	0x52, 0x4f, 0x4c, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e,
	0x54, 0x52, 0x4f, 0x4c, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x45,
	0x4e, 0x53, 0x4f, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x50,
	0x55, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0b,
	0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x43, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53,
	0x10, 0x0d, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x55, 0x43, 0x54, 0x4f, 0x4b, 0x45,
	0x4e, 0x53, 0x10, 0x0e, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x55,
	0x50, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x50,
	0x55, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10,
	0x10, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52,
	0x45, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57,
	0x41, 0x52, 0x45, 0x10, 0x12, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4c, 0x41,
	0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x50,
	0x4c, 0x41, 0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54,
	0x5f, 0x53, 0x4f, 0x55, 0x4e, 0x44, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x10, 0x15, 0x12, 0x16,
	0x0a, 0x12, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x45, 0x54,
	0x57, 0x4f, 0x52, 0x4b, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x49,
	0x53, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x10, 0x17, 0x12, 0x0c, 0x0a,
	0x08, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x10, 0x18, 0x12, 0x11, 0x0a, 0x0d, 0x47,
	0x45, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x10, 0x19, 0x12, 0x17,
	0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x45,
	0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x55, 0x54, 0x5f, 0x41,
	0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x1b,
	0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x54, 0x5f, 0x57, 0x49, 0x46, 0x49, 0x5f, 0x53, 0x45, 0x54,
	0x55, 0x50, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x55, 0x54, 0x5f, 0x57, 0x49, 0x46, 0x49,
	0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x54, 0x5f,
	0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x1e, 0x12, 0x12, 0x0a,
	0x0e, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x10,
	0x1f, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53,
	0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x20, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x54, 0x5f, 0x53,
	0x54, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e,
	0x50, 0x55, 0x54, 0x5f, 0x4b, 0x45, 0x45, 0x50, 0x5f, 0x41, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x23,
	0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54,
	0x49, 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x25, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x55,
	0x54, 0x5f, 0x52, 0x54, 0x53, 0x50, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47,
	0x10, 0x26, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4f, 0x4d, 0x5f, 0x55, 0x52,
	0x49, 0x10, 0x27, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4f, 0x4d, 0x10, 0x28,
	0x12, 0x0b, 0x0a, 0x07, 0x50, 0x55, 0x54, 0x5f, 0x55, 0x4f, 0x4d, 0x10, 0x29, 0x12, 0x10, 0x0a,
	0x0c, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x2a, 0x12,
	0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, 0x59, 0x10,
	0x2b, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x55, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x10,
	0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x52, 0x45, 0x51,
	0x55, 0x45, 0x53, 0x54, 0x10, 0x2d, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54,
	0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x2e, 0x12, 0x10, 0x0a, 0x0c, 0x47,
	0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x5f, 0x55, 0x52, 0x49, 0x10, 0x2f, 0x2a, 0x58, 0x0a,
	0x0a, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53,
	0x4f, 0x55, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x54, 0x49, 0x4f, 0x4e,
	0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x4d, 0x50, 0x45, 0x52, 0x41, 0x54, 0x55, 0x52,
	0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x55, 0x4d, 0x49, 0x44, 0x49, 0x54, 0x59, 0x10,
	0x03, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05,
	0x4e, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x2a, 0x36, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x44,
	0x56, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x54, 0x49, 0x43,
	0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x2a,
	0x31, 0x0a, 0x0c, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12,
	0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x52,
	0x41, 0x56, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48,
	0x10, 0x02, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x65, 0x6b, 0x2f, 0x6e, 0x61, 0x6e,
	0x69, 0x74, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
}

var (
	file_pkg_client_websocket_proto_rawDescOnce sync.Once
	file_pkg_client_websocket_proto_rawDescData = file_pkg_client_websocket_proto_rawDesc
)

func file_pkg_client_websocket_proto_rawDescGZIP() []byte {
	file_pkg_client_websocket_proto_rawDescOnce.Do(func() {
		file_pkg_client_websocket_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_client_websocket_proto_rawDescData)
	})
	return file_pkg_client_websocket_proto_rawDescData
}

var file_pkg_client_websocket_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
var file_pkg_client_websocket_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_pkg_client_websocket_proto_goTypes = []interface{}{
	(RequestType)(0),                   
	(SensorType)(0),                    
	(StreamIdentifier)(0),              
	(MountingMode)(0),                  
	(Control_NightLight)(0),            
	(Settings_AntiFlicker)(0),          
	(Settings_WifiBand)(0),             
	(Status_ConnectionToServer)(0),     
	(Playback_Status)(0),               
	(Stream_Type)(0),                   
	(Streaming_Status)(0),              
	(Message_Type)(0),                  
	(*SensorData)(nil),                 
	(*GetSensorData)(nil),              
	(*Control)(nil),                    
	(*Settings)(nil),                   
	(*Status)(nil),                     
	(*Playback)(nil),                   
	(*Stream)(nil),                     
	(*Streaming)(nil),                  
	(*GetLogs)(nil),                    
	(*GetStatus)(nil),                  
	(*Request)(nil),                    
	(*Response)(nil),                   
	(*Message)(nil),                    
	(*Control_SensorDataTransfer)(nil), 
	(*Settings_SensorSettings)(nil),    
	(*Settings_StreamSettings)(nil),    
}
var file_pkg_client_websocket_proto_depIdxs = []int32{
	1,  
	4,  
	25, 
	26, 
	27, 
	5,  
	6,  
	7,  
	3,  
	8,  
	9,  
	2,  
	10, 
	0,  
	13, 
	12, 
	19, 
	14, 
	15, 
	16, 
	21, 
	17, 
	20, 
	0,  
	16, 
	12, 
	15, 
	11, 
	22, 
	23, 
	1,  
	2,  
	32, 
	32, 
	32, 
	32, 
	0,  
}

func init() { file_pkg_client_websocket_proto_init() }
func file_pkg_client_websocket_proto_init() {
	if File_pkg_client_websocket_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pkg_client_websocket_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SensorData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSensorData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Control); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Settings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Status); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Playback); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Stream); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Streaming); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetLogs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Response); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Message); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Control_SensorDataTransfer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Settings_SensorSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Settings_StreamSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pkg_client_websocket_proto_rawDesc,
			NumEnums:      12,
			NumMessages:   16,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pkg_client_websocket_proto_goTypes,
		DependencyIndexes: file_pkg_client_websocket_proto_depIdxs,
		EnumInfos:         file_pkg_client_websocket_proto_enumTypes,
		MessageInfos:      file_pkg_client_websocket_proto_msgTypes,
	}.Build()
	File_pkg_client_websocket_proto = out.File
	file_pkg_client_websocket_proto_rawDesc = nil
	file_pkg_client_websocket_proto_goTypes = nil
	file_pkg_client_websocket_proto_depIdxs = nil
}
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        v3.14.0
// source: pkg/client/websocket.proto

package client

import (
	proto "github.com/golang/protobuf/proto"
	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)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

type RequestType int32

const (
	RequestType_GET_STREAMING       RequestType = 3
	RequestType_PUT_STREAMING       RequestType = 2
	RequestType_GET_SETTINGS        RequestType = 4
	RequestType_PUT_SETTINGS        RequestType = 5
	RequestType_GET_CONTROL         RequestType = 6
	RequestType_PUT_CONTROL         RequestType = 7
	RequestType_GET_STATUS          RequestType = 8
	RequestType_PUT_STATUS          RequestType = 9
	RequestType_GET_SENSOR_DATA     RequestType = 12
	RequestType_PUT_SENSOR_DATA     RequestType = 11
	RequestType_GET_UCTOKENS        RequestType = 13
	RequestType_PUT_UCTOKENS        RequestType = 14
	RequestType_PUT_SETUP_NETWORK   RequestType = 15
	RequestType_PUT_SETUP_SERVER    RequestType = 16
	RequestType_GET_FIRMWARE        RequestType = 17
	RequestType_PUT_FIRMWARE        RequestType = 18
	RequestType_GET_PLAYBACK        RequestType = 19
	RequestType_PUT_PLAYBACK        RequestType = 20
	RequestType_GET_SOUNDTRACKS     RequestType = 21
	RequestType_GET_STATUS_NETWORK  RequestType = 22
	RequestType_GET_LIST_NETWORKS   RequestType = 23
	RequestType_GET_LOGS            RequestType = 24
	RequestType_GET_BANDWIDTH       RequestType = 25
	RequestType_GET_AUDIO_STREAMING RequestType = 26
	RequestType_PUT_AUDIO_STREAMING RequestType = 27
	RequestType_GET_WIFI_SETUP      RequestType = 28
	RequestType_PUT_WIFI_SETUP      RequestType = 29
	RequestType_PUT_STING_START     RequestType = 30
	RequestType_PUT_STING_STOP      RequestType = 31
	RequestType_PUT_STING_STATUS    RequestType = 32
	RequestType_PUT_STING_ALERT     RequestType = 34
	RequestType_PUT_KEEP_ALIVE      RequestType = 35
	RequestType_GET_STING_STATUS    RequestType = 36
	RequestType_PUT_STING_TEST      RequestType = 37
	RequestType_PUT_RTSP_STREAMING  RequestType = 38
	RequestType_GET_UOM_URI         RequestType = 39
	RequestType_GET_UOM             RequestType = 40
	RequestType_PUT_UOM             RequestType = 41
	RequestType_GET_AUTH_KEY        RequestType = 42
	RequestType_PUT_AUTH_KEY        RequestType = 43
	RequestType_PUT_HEALTH          RequestType = 44
	RequestType_PUT_TCP_REQUEST     RequestType = 45
	RequestType_GET_STING_START     RequestType = 46
	RequestType_GET_LOGS_URI        RequestType = 47
)

// Enum value maps for RequestType.
var (
	RequestType_name = map[int32]string{
		3:  "GET_STREAMING",
		2:  "PUT_STREAMING",
		4:  "GET_SETTINGS",
		5:  "PUT_SETTINGS",
		6:  "GET_CONTROL",
		7:  "PUT_CONTROL",
		8:  "GET_STATUS",
		9:  "PUT_STATUS",
		12: "GET_SENSOR_DATA",
		11: "PUT_SENSOR_DATA",
		13: "GET_UCTOKENS",
		14: "PUT_UCTOKENS",
		15: "PUT_SETUP_NETWORK",
		16: "PUT_SETUP_SERVER",
		17: "GET_FIRMWARE",
		18: "PUT_FIRMWARE",
		19: "GET_PLAYBACK",
		20: "PUT_PLAYBACK",
		21: "GET_SOUNDTRACKS",
		22: "GET_STATUS_NETWORK",
		23: "GET_LIST_NETWORKS",
		24: "GET_LOGS",
		25: "GET_BANDWIDTH",
		26: "GET_AUDIO_STREAMING",
		27: "PUT_AUDIO_STREAMING",
		28: "GET_WIFI_SETUP",
		29: "PUT_WIFI_SETUP",
		30: "PUT_STING_START",
		31: "PUT_STING_STOP",
		32: "PUT_STING_STATUS",
		34: "PUT_STING_ALERT",
		35: "PUT_KEEP_ALIVE",
		36: "GET_STING_STATUS",
		37: "PUT_STING_TEST",
		38: "PUT_RTSP_STREAMING",
		39: "GET_UOM_URI",
		40: "GET_UOM",
		41: "PUT_UOM",
		42: "GET_AUTH_KEY",
		43: "PUT_AUTH_KEY",
		44: "PUT_HEALTH",
		45: "PUT_TCP_REQUEST",
		46: "GET_STING_START",
		47: "GET_LOGS_URI",
	}
	RequestType_value = map[string]int32{
		"GET_STREAMING":       3,
		"PUT_STREAMING":       2,
		"GET_SETTINGS":        4,
		"PUT_SETTINGS":        5,
		"GET_CONTROL":         6,
		"PUT_CONTROL":         7,
		"GET_STATUS":          8,
		"PUT_STATUS":          9,
		"GET_SENSOR_DATA":     12,
		"PUT_SENSOR_DATA":     11,
		"GET_UCTOKENS":        13,
		"PUT_UCTOKENS":        14,
		"PUT_SETUP_NETWORK":   15,
		"PUT_SETUP_SERVER":    16,
		"GET_FIRMWARE":        17,
		"PUT_FIRMWARE":        18,
		"GET_PLAYBACK":        19,
		"PUT_PLAYBACK":        20,
		"GET_SOUNDTRACKS":     21,
		"GET_STATUS_NETWORK":  22,
		"GET_LIST_NETWORKS":   23,
		"GET_LOGS":            24,
		"GET_BANDWIDTH":       25,
		"GET_AUDIO_STREAMING": 26,
		"PUT_AUDIO_STREAMING": 27,
		"GET_WIFI_SETUP":      28,
		"PUT_WIFI_SETUP":      29,
		"PUT_STING_START":     30,
		"PUT_STING_STOP":      31,
		"PUT_STING_STATUS":    32,
		"PUT_STING_ALERT":     34,
		"PUT_KEEP_ALIVE":      35,
		"GET_STING_STATUS":    36,
		"PUT_STING_TEST":      37,
		"PUT_RTSP_STREAMING":  38,
		"GET_UOM_URI":         39,
		"GET_UOM":             40,
		"PUT_UOM":             41,
		"GET_AUTH_KEY":        42,
		"PUT_AUTH_KEY":        43,
		"PUT_HEALTH":          44,
		"PUT_TCP_REQUEST":     45,
		"GET_STING_START":     46,
		"GET_LOGS_URI":        47,
	}
)

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

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

func (RequestType) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[0].Descriptor()
}

func (RequestType) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[0]
}

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

// Deprecated: Do not use.
func (x *RequestType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = RequestType(num)
	return nil
}

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

type SensorType int32

const (
	SensorType_SOUND       SensorType = 0
	SensorType_MOTION      SensorType = 1
	SensorType_TEMPERATURE SensorType = 2
	SensorType_HUMIDITY    SensorType = 3
	SensorType_LIGHT       SensorType = 4
	SensorType_NIGHT       SensorType = 5
)

// Enum value maps for SensorType.
var (
	SensorType_name = map[int32]string{
		0: "SOUND",
		1: "MOTION",
		2: "TEMPERATURE",
		3: "HUMIDITY",
		4: "LIGHT",
		5: "NIGHT",
	}
	SensorType_value = map[string]int32{
		"SOUND":       0,
		"MOTION":      1,
		"TEMPERATURE": 2,
		"HUMIDITY":    3,
		"LIGHT":       4,
		"NIGHT":       5,
	}
)

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

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

func (SensorType) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[1].Descriptor()
}

func (SensorType) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[1]
}

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

// Deprecated: Do not use.
func (x *SensorType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = SensorType(num)
	return nil
}

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

type StreamIdentifier int32

const (
	StreamIdentifier_DVR       StreamIdentifier = 0
	StreamIdentifier_ANALYTICS StreamIdentifier = 1
	StreamIdentifier_MOBILE    StreamIdentifier = 2
)

// Enum value maps for StreamIdentifier.
var (
	StreamIdentifier_name = map[int32]string{
		0: "DVR",
		1: "ANALYTICS",
		2: "MOBILE",
	}
	StreamIdentifier_value = map[string]int32{
		"DVR":       0,
		"ANALYTICS": 1,
		"MOBILE":    2,
	}
)

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

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

func (StreamIdentifier) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[2].Descriptor()
}

func (StreamIdentifier) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[2]
}

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

// Deprecated: Do not use.
func (x *StreamIdentifier) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = StreamIdentifier(num)
	return nil
}

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

type MountingMode int32

const (
	MountingMode_STAND  MountingMode = 0
	MountingMode_TRAVEL MountingMode = 1
	MountingMode_SWITCH MountingMode = 2
)

// Enum value maps for MountingMode.
var (
	MountingMode_name = map[int32]string{
		0: "STAND",
		1: "TRAVEL",
		2: "SWITCH",
	}
	MountingMode_value = map[string]int32{
		"STAND":  0,
		"TRAVEL": 1,
		"SWITCH": 2,
	}
)

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

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

func (MountingMode) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[3].Descriptor()
}

func (MountingMode) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[3]
}

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

// Deprecated: Do not use.
func (x *MountingMode) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = MountingMode(num)
	return nil
}

// Deprecated: Use MountingMode.Descriptor instead.
func (MountingMode) EnumDescriptor() ([]byte, []int) {
	return file_pkg_client_websocket_proto_rawDescGZIP(), []int{3}
}

type Control_NightLight int32

const (
	Control_LIGHT_OFF Control_NightLight = 0
	Control_LIGHT_ON  Control_NightLight = 1
)

// Enum value maps for Control_NightLight.
var (
	Control_NightLight_name = map[int32]string{
		0: "LIGHT_OFF",
		1: "LIGHT_ON",
	}
	Control_NightLight_value = map[string]int32{
		"LIGHT_OFF": 0,
		"LIGHT_ON":  1,
	}
)

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

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

func (Control_NightLight) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[4].Descriptor()
}

func (Control_NightLight) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[4]
}

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

// Deprecated: Do not use.
func (x *Control_NightLight) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Control_NightLight(num)
	return nil
}

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

type Settings_AntiFlicker int32

const (
	Settings_FR50HZ Settings_AntiFlicker = 0
	Settings_FR60HZ Settings_AntiFlicker = 1
)

// Enum value maps for Settings_AntiFlicker.
var (
	Settings_AntiFlicker_name = map[int32]string{
		0: "FR50HZ",
		1: "FR60HZ",
	}
	Settings_AntiFlicker_value = map[string]int32{
		"FR50HZ": 0,
		"FR60HZ": 1,
	}
)

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

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

func (Settings_AntiFlicker) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[5].Descriptor()
}

func (Settings_AntiFlicker) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[5]
}

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

// Deprecated: Do not use.
func (x *Settings_AntiFlicker) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Settings_AntiFlicker(num)
	return nil
}

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

type Settings_WifiBand int32

const (
	Settings_ANY      Settings_WifiBand = 0
	Settings_FR2_4GHZ Settings_WifiBand = 1
	Settings_FR5_0GHZ Settings_WifiBand = 2
)

// Enum value maps for Settings_WifiBand.
var (
	Settings_WifiBand_name = map[int32]string{
		0: "ANY",
		1: "FR2_4GHZ",
		2: "FR5_0GHZ",
	}
	Settings_WifiBand_value = map[string]int32{
		"ANY":      0,
		"FR2_4GHZ": 1,
		"FR5_0GHZ": 2,
	}
)

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

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

func (Settings_WifiBand) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[6].Descriptor()
}

func (Settings_WifiBand) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[6]
}

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

// Deprecated: Do not use.
func (x *Settings_WifiBand) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Settings_WifiBand(num)
	return nil
}

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

type Status_ConnectionToServer int32

const (
	Status_DISCONNECTED Status_ConnectionToServer = 0
	Status_CONNECTED    Status_ConnectionToServer = 1
)

// Enum value maps for Status_ConnectionToServer.
var (
	Status_ConnectionToServer_name = map[int32]string{
		0: "DISCONNECTED",
		1: "CONNECTED",
	}
	Status_ConnectionToServer_value = map[string]int32{
		"DISCONNECTED": 0,
		"CONNECTED":    1,
	}
)

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

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

func (Status_ConnectionToServer) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[7].Descriptor()
}

func (Status_ConnectionToServer) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[7]
}

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

// Deprecated: Do not use.
func (x *Status_ConnectionToServer) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Status_ConnectionToServer(num)
	return nil
}

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

type Playback_Status int32

const (
	Playback_STARTED Playback_Status = 0
	Playback_STOPPED Playback_Status = 1
)

// Enum value maps for Playback_Status.
var (
	Playback_Status_name = map[int32]string{
		0: "STARTED",
		1: "STOPPED",
	}
	Playback_Status_value = map[string]int32{
		"STARTED": 0,
		"STOPPED": 1,
	}
)

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

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

func (Playback_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[8].Descriptor()
}

func (Playback_Status) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[8]
}

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

// Deprecated: Do not use.
func (x *Playback_Status) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Playback_Status(num)
	return nil
}

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

type Stream_Type int32

const (
	Stream_LOCAL  Stream_Type = 0
	Stream_REMOTE Stream_Type = 1
	Stream_RTSP   Stream_Type = 2
	Stream_P2P    Stream_Type = 3
)

// Enum value maps for Stream_Type.
var (
	Stream_Type_name = map[int32]string{
		0: "LOCAL",
		1: "REMOTE",
		2: "RTSP",
		3: "P2P",
	}
	Stream_Type_value = map[string]int32{
		"LOCAL":  0,
		"REMOTE": 1,
		"RTSP":   2,
		"P2P":    3,
	}
)

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

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

func (Stream_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[9].Descriptor()
}

func (Stream_Type) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[9]
}

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

// Deprecated: Do not use.
func (x *Stream_Type) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Stream_Type(num)
	return nil
}

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

type Streaming_Status int32

const (
	Streaming_STARTED Streaming_Status = 0
	Streaming_STOPPED Streaming_Status = 1
	Streaming_PAUSED  Streaming_Status = 2
)

// Enum value maps for Streaming_Status.
var (
	Streaming_Status_name = map[int32]string{
		0: "STARTED",
		1: "STOPPED",
		2: "PAUSED",
	}
	Streaming_Status_value = map[string]int32{
		"STARTED": 0,
		"STOPPED": 1,
		"PAUSED":  2,
	}
)

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

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

func (Streaming_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[10].Descriptor()
}

func (Streaming_Status) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[10]
}

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

// Deprecated: Do not use.
func (x *Streaming_Status) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Streaming_Status(num)
	return nil
}

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

type Message_Type int32

const (
	Message_KEEPALIVE Message_Type = 0
	Message_REQUEST   Message_Type = 1
	Message_RESPONSE  Message_Type = 2
)

// Enum value maps for Message_Type.
var (
	Message_Type_name = map[int32]string{
		0: "KEEPALIVE",
		1: "REQUEST",
		2: "RESPONSE",
	}
	Message_Type_value = map[string]int32{
		"KEEPALIVE": 0,
		"REQUEST":   1,
		"RESPONSE":  2,
	}
)

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

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

func (Message_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_client_websocket_proto_enumTypes[11].Descriptor()
}

func (Message_Type) Type() protoreflect.EnumType {
	return &file_pkg_client_websocket_proto_enumTypes[11]
}

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

// Deprecated: Do not use.
func (x *Message_Type) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Message_Type(num)
	return nil
}

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

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

	SensorType *SensorType `protobuf:"varint,1,req,name=sensorType,enum=client.SensorType" json:"sensorType,omitempty"`
	IsAlert    *bool       `protobuf:"varint,4,opt,name=isAlert" json:"isAlert,omitempty"`
	Timestamp  *int32      `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
	ValueMilli *int32      `protobuf:"varint,6,opt,name=valueMilli" json:"valueMilli,omitempty"`
	Value      *int32      `protobuf:"varint,3,opt,name=value" json:"value,omitempty"`
}

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

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

func (*SensorData) ProtoMessage() {}

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

func (x *SensorData) GetSensorType() SensorType {
	if x != nil && x.SensorType != nil {
		return *x.SensorType
	}
	return SensorType_SOUND
}

func (x *SensorData) GetIsAlert() bool {
	if x != nil && x.IsAlert != nil {
		return *x.IsAlert
	}
	return false
}

func (x *SensorData) GetTimestamp() int32 {
	if x != nil && x.Timestamp != nil {
		return *x.Timestamp
	}
	return 0
}

func (x *SensorData) GetValueMilli() int32 {
	if x != nil && x.ValueMilli != nil {
		return *x.ValueMilli
	}
	return 0
}

func (x *SensorData) GetValue() int32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

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

	All         *bool `protobuf:"varint,1,opt,name=all" json:"all,omitempty"`
	Temperature *bool `protobuf:"varint,4,opt,name=temperature" json:"temperature,omitempty"`
	Humidity    *bool `protobuf:"varint,5,opt,name=humidity" json:"humidity,omitempty"`
	Light       *bool `protobuf:"varint,6,opt,name=light" json:"light,omitempty"`
	Night       *bool `protobuf:"varint,7,opt,name=night" json:"night,omitempty"`
}

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

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

func (*GetSensorData) ProtoMessage() {}

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

func (x *GetSensorData) GetAll() bool {
	if x != nil && x.All != nil {
		return *x.All
	}
	return false
}

func (x *GetSensorData) GetTemperature() bool {
	if x != nil && x.Temperature != nil {
		return *x.Temperature
	}
	return false
}

func (x *GetSensorData) GetHumidity() bool {
	if x != nil && x.Humidity != nil {
		return *x.Humidity
	}
	return false
}

func (x *GetSensorData) GetLight() bool {
	if x != nil && x.Light != nil {
		return *x.Light
	}
	return false
}

func (x *GetSensorData) GetNight() bool {
	if x != nil && x.Night != nil {
		return *x.Night
	}
	return false
}

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

	ForceConnectToServer *bool                       `protobuf:"varint,5,opt,name=forceConnectToServer" json:"forceConnectToServer,omitempty"`
	NightLightTimeout    *int32                      `protobuf:"varint,6,opt,name=nightLightTimeout" json:"nightLightTimeout,omitempty"`
	NightLight           *Control_NightLight         `protobuf:"varint,3,opt,name=nightLight,enum=client.Control_NightLight" json:"nightLight,omitempty"`
	SensorDataTransfer   *Control_SensorDataTransfer `protobuf:"bytes,4,opt,name=sensorDataTransfer" json:"sensorDataTransfer,omitempty"`
}

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

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

func (*Control) ProtoMessage() {}

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

func (x *Control) GetForceConnectToServer() bool {
	if x != nil && x.ForceConnectToServer != nil {
		return *x.ForceConnectToServer
	}
	return false
}

func (x *Control) GetNightLightTimeout() int32 {
	if x != nil && x.NightLightTimeout != nil {
		return *x.NightLightTimeout
	}
	return 0
}

func (x *Control) GetNightLight() Control_NightLight {
	if x != nil && x.NightLight != nil {
		return *x.NightLight
	}
	return Control_LIGHT_OFF
}

func (x *Control) GetSensorDataTransfer() *Control_SensorDataTransfer {
	if x != nil {
		return x.SensorDataTransfer
	}
	return nil
}

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

	NightVision   *bool                      `protobuf:"varint,2,opt,name=nightVision" json:"nightVision,omitempty"`
	Sensors       []*Settings_SensorSettings `protobuf:"bytes,7,rep,name=sensors" json:"sensors,omitempty"`
	Streams       []*Settings_StreamSettings `protobuf:"bytes,8,rep,name=streams" json:"streams,omitempty"`
	Volume        *int32                     `protobuf:"varint,9,opt,name=volume" json:"volume,omitempty"`
	AntiFlicker   *Settings_AntiFlicker      `protobuf:"varint,10,opt,name=antiFlicker,enum=client.Settings_AntiFlicker" json:"antiFlicker,omitempty"`
	SleepMode     *bool                      `protobuf:"varint,11,opt,name=sleepMode" json:"sleepMode,omitempty"`
	StatusLightOn *bool                      `protobuf:"varint,12,opt,name=statusLightOn" json:"statusLightOn,omitempty"`
	MountingMode  *int32                     `protobuf:"varint,15,opt,name=mountingMode" json:"mountingMode,omitempty"`
	WifiBand      *Settings_WifiBand         `protobuf:"varint,18,opt,name=wifiBand,enum=client.Settings_WifiBand" json:"wifiBand,omitempty"`
	MicMuteOn     *bool                      `protobuf:"varint,20,opt,name=micMuteOn" json:"micMuteOn,omitempty"`
}

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

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

func (*Settings) ProtoMessage() {}

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

func (x *Settings) GetNightVision() bool {
	if x != nil && x.NightVision != nil {
		return *x.NightVision
	}
	return false
}

func (x *Settings) GetSensors() []*Settings_SensorSettings {
	if x != nil {
		return x.Sensors
	}
	return nil
}

func (x *Settings) GetStreams() []*Settings_StreamSettings {
	if x != nil {
		return x.Streams
	}
	return nil
}

func (x *Settings) GetVolume() int32 {
	if x != nil && x.Volume != nil {
		return *x.Volume
	}
	return 0
}

func (x *Settings) GetAntiFlicker() Settings_AntiFlicker {
	if x != nil && x.AntiFlicker != nil {
		return *x.AntiFlicker
	}
	return Settings_FR50HZ
}

func (x *Settings) GetSleepMode() bool {
	if x != nil && x.SleepMode != nil {
		return *x.SleepMode
	}
	return false
}

func (x *Settings) GetStatusLightOn() bool {
	if x != nil && x.StatusLightOn != nil {
		return *x.StatusLightOn
	}
	return false
}

func (x *Settings) GetMountingMode() int32 {
	if x != nil && x.MountingMode != nil {
		return *x.MountingMode
	}
	return 0
}

func (x *Settings) GetWifiBand() Settings_WifiBand {
	if x != nil && x.WifiBand != nil {
		return *x.WifiBand
	}
	return Settings_ANY
}

func (x *Settings) GetMicMuteOn() bool {
	if x != nil && x.MicMuteOn != nil {
		return *x.MicMuteOn
	}
	return false
}

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

	UpgradeDownloaded  *bool                      `protobuf:"varint,1,opt,name=upgradeDownloaded" json:"upgradeDownloaded,omitempty"`
	ConnectionToServer *Status_ConnectionToServer `protobuf:"varint,2,opt,name=connectionToServer,enum=client.Status_ConnectionToServer" json:"connectionToServer,omitempty"`
	CurrentVersion     *string                    `protobuf:"bytes,3,opt,name=currentVersion" json:"currentVersion,omitempty"`
	Mode               *MountingMode              `protobuf:"varint,4,opt,name=mode,enum=client.MountingMode" json:"mode,omitempty"`
	IsSecurityUpgrade  *bool                      `protobuf:"varint,5,opt,name=isSecurityUpgrade" json:"isSecurityUpgrade,omitempty"`
	DownloadedVersion  *string                    `protobuf:"bytes,6,opt,name=downloadedVersion" json:"downloadedVersion,omitempty"`
	HardwareVersion    *string                    `protobuf:"bytes,7,opt,name=hardwareVersion" json:"hardwareVersion,omitempty"`
}

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

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

func (*Status) ProtoMessage() {}

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

func (x *Status) GetUpgradeDownloaded() bool {
	if x != nil && x.UpgradeDownloaded != nil {
		return *x.UpgradeDownloaded
	}
	return false
}

func (x *Status) GetConnectionToServer() Status_ConnectionToServer {
	if x != nil && x.ConnectionToServer != nil {
		return *x.ConnectionToServer
	}
	return Status_DISCONNECTED
}

func (x *Status) GetCurrentVersion() string {
	if x != nil && x.CurrentVersion != nil {
		return *x.CurrentVersion
	}
	return ""
}

func (x *Status) GetMode() MountingMode {
	if x != nil && x.Mode != nil {
		return *x.Mode
	}
	return MountingMode_STAND
}

func (x *Status) GetIsSecurityUpgrade() bool {
	if x != nil && x.IsSecurityUpgrade != nil {
		return *x.IsSecurityUpgrade
	}
	return false
}

func (x *Status) GetDownloadedVersion() string {
	if x != nil && x.DownloadedVersion != nil {
		return *x.DownloadedVersion
	}
	return ""
}

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

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

	Status *Playback_Status `protobuf:"varint,1,req,name=status,enum=client.Playback_Status" json:"status,omitempty"`
}

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

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

func (*Playback) ProtoMessage() {}

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

func (x *Playback) GetStatus() Playback_Status {
	if x != nil && x.Status != nil {
		return *x.Status
	}
	return Playback_STARTED
}

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

	Type *Stream_Type `protobuf:"varint,1,req,name=type,enum=client.Stream_Type" json:"type,omitempty"`
	Url  *string      `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
	Bps  *int32       `protobuf:"varint,3,opt,name=bps" json:"bps,omitempty"`
}

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

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

func (*Stream) ProtoMessage() {}

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

func (x *Stream) GetType() Stream_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Stream_LOCAL
}

func (x *Stream) GetUrl() string {
	if x != nil && x.Url != nil {
		return *x.Url
	}
	return ""
}

func (x *Stream) GetBps() int32 {
	if x != nil && x.Bps != nil {
		return *x.Bps
	}
	return 0
}

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

	Id       *StreamIdentifier `protobuf:"varint,1,req,name=id,enum=client.StreamIdentifier" json:"id,omitempty"`
	Status   *Streaming_Status `protobuf:"varint,2,req,name=status,enum=client.Streaming_Status" json:"status,omitempty"`
	RtmpUrl  *string           `protobuf:"bytes,3,req,name=rtmpUrl" json:"rtmpUrl,omitempty"`
	Attempts *int32            `protobuf:"varint,4,opt,name=attempts" json:"attempts,omitempty"`
}

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

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

func (*Streaming) ProtoMessage() {}

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

func (x *Streaming) GetId() StreamIdentifier {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return StreamIdentifier_DVR
}

func (x *Streaming) GetStatus() Streaming_Status {
	if x != nil && x.Status != nil {
		return *x.Status
	}
	return Streaming_STARTED
}

func (x *Streaming) GetRtmpUrl() string {
	if x != nil && x.RtmpUrl != nil {
		return *x.RtmpUrl
	}
	return ""
}

func (x *Streaming) GetAttempts() int32 {
	if x != nil && x.Attempts != nil {
		return *x.Attempts
	}
	return 0
}

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

	Url *string `protobuf:"bytes,1,req,name=url" json:"url,omitempty"`
}

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

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

func (*GetLogs) ProtoMessage() {}

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

func (x *GetLogs) GetUrl() string {
	if x != nil && x.Url != nil {
		return *x.Url
	}
	return ""
}

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

	All *bool `protobuf:"varint,1,opt,name=all" json:"all,omitempty"`
}

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

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

func (*GetStatus) ProtoMessage() {}

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

func (x *GetStatus) GetAll() bool {
	if x != nil && x.All != nil {
		return *x.All
	}
	return false
}

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

	Id            *int32         `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
	Type          *RequestType   `protobuf:"varint,2,req,name=type,enum=client.RequestType" json:"type,omitempty"`
	GetSensorData *GetSensorData `protobuf:"bytes,12,opt,name=getSensorData" json:"getSensorData,omitempty"`
	SensorData_   []*SensorData  `protobuf:"bytes,13,rep,name=sensorData" json:"sensorData,omitempty"`
	Streaming     *Streaming     `protobuf:"bytes,4,opt,name=streaming" json:"streaming,omitempty"`
	Control       *Control       `protobuf:"bytes,15,opt,name=control" json:"control,omitempty"`
	Settings      *Settings      `protobuf:"bytes,5,opt,name=settings" json:"settings,omitempty"`
	Status        *Status        `protobuf:"bytes,7,opt,name=status" json:"status,omitempty"`
	GetStatus_    *GetStatus     `protobuf:"bytes,8,opt,name=getStatus" json:"getStatus,omitempty"`
	Playback      *Playback      `protobuf:"bytes,16,opt,name=playback" json:"playback,omitempty"`
	GetLogs       *GetLogs       `protobuf:"bytes,18,opt,name=getLogs" json:"getLogs,omitempty"`
}

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

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

func (*Request) ProtoMessage() {}

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

func (x *Request) GetId() int32 {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return 0
}

func (x *Request) GetType() RequestType {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return RequestType_GET_STREAMING
}

func (x *Request) GetGetSensorData() *GetSensorData {
	if x != nil {
		return x.GetSensorData
	}
	return nil
}

func (x *Request) GetSensorData_() []*SensorData {
	if x != nil {
		return x.SensorData_
	}
	return nil
}

func (x *Request) GetStreaming() *Streaming {
	if x != nil {
		return x.Streaming
	}
	return nil
}

func (x *Request) GetControl() *Control {
	if x != nil {
		return x.Control
	}
	return nil
}

func (x *Request) GetSettings() *Settings {
	if x != nil {
		return x.Settings
	}
	return nil
}

func (x *Request) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *Request) GetGetStatus_() *GetStatus {
	if x != nil {
		return x.GetStatus_
	}
	return nil
}

func (x *Request) GetPlayback() *Playback {
	if x != nil {
		return x.Playback
	}
	return nil
}

func (x *Request) GetGetLogs() *GetLogs {
	if x != nil {
		return x.GetLogs
	}
	return nil
}

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

	RequestId     *int32        `protobuf:"varint,1,req,name=requestId" json:"requestId,omitempty"`
	RequestType   *RequestType  `protobuf:"varint,2,req,name=requestType,enum=client.RequestType" json:"requestType,omitempty"`
	StatusCode    *int32        `protobuf:"varint,3,req,name=statusCode" json:"statusCode,omitempty"`
	StatusMessage *string       `protobuf:"bytes,4,opt,name=statusMessage" json:"statusMessage,omitempty"`
	Status        *Status       `protobuf:"bytes,5,opt,name=status" json:"status,omitempty"`
	SensorData    []*SensorData `protobuf:"bytes,9,rep,name=sensorData" json:"sensorData,omitempty"`
	Settings      *Settings     `protobuf:"bytes,6,opt,name=settings" json:"settings,omitempty"`
}

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

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

func (*Response) ProtoMessage() {}

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

func (x *Response) GetRequestId() int32 {
	if x != nil && x.RequestId != nil {
		return *x.RequestId
	}
	return 0
}

func (x *Response) GetRequestType() RequestType {
	if x != nil && x.RequestType != nil {
		return *x.RequestType
	}
	return RequestType_GET_STREAMING
}

func (x *Response) GetStatusCode() int32 {
	if x != nil && x.StatusCode != nil {
		return *x.StatusCode
	}
	return 0
}

func (x *Response) GetStatusMessage() string {
	if x != nil && x.StatusMessage != nil {
		return *x.StatusMessage
	}
	return ""
}

func (x *Response) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *Response) GetSensorData() []*SensorData {
	if x != nil {
		return x.SensorData
	}
	return nil
}

func (x *Response) GetSettings() *Settings {
	if x != nil {
		return x.Settings
	}
	return nil
}

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

	Type     *Message_Type `protobuf:"varint,1,req,name=type,enum=client.Message_Type" json:"type,omitempty"`
	Request  *Request      `protobuf:"bytes,2,opt,name=request" json:"request,omitempty"`
	Response *Response     `protobuf:"bytes,3,opt,name=response" json:"response,omitempty"`
}

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

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

func (*Message) ProtoMessage() {}

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

func (x *Message) GetType() Message_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Message_KEEPALIVE
}

func (x *Message) GetRequest() *Request {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *Message) GetResponse() *Response {
	if x != nil {
		return x.Response
	}
	return nil
}

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

	Sound       *bool `protobuf:"varint,1,opt,name=sound" json:"sound,omitempty"`
	Motion      *bool `protobuf:"varint,2,opt,name=motion" json:"motion,omitempty"`
	Temperature *bool `protobuf:"varint,3,opt,name=temperature" json:"temperature,omitempty"`
	Humidity    *bool `protobuf:"varint,4,opt,name=humidity" json:"humidity,omitempty"`
	Light       *bool `protobuf:"varint,5,opt,name=light" json:"light,omitempty"`
	Night       *bool `protobuf:"varint,6,opt,name=night" json:"night,omitempty"`
}

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

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

func (*Control_SensorDataTransfer) ProtoMessage() {}

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

func (x *Control_SensorDataTransfer) GetSound() bool {
	if x != nil && x.Sound != nil {
		return *x.Sound
	}
	return false
}

func (x *Control_SensorDataTransfer) GetMotion() bool {
	if x != nil && x.Motion != nil {
		return *x.Motion
	}
	return false
}

func (x *Control_SensorDataTransfer) GetTemperature() bool {
	if x != nil && x.Temperature != nil {
		return *x.Temperature
	}
	return false
}

func (x *Control_SensorDataTransfer) GetHumidity() bool {
	if x != nil && x.Humidity != nil {
		return *x.Humidity
	}
	return false
}

func (x *Control_SensorDataTransfer) GetLight() bool {
	if x != nil && x.Light != nil {
		return *x.Light
	}
	return false
}

func (x *Control_SensorDataTransfer) GetNight() bool {
	if x != nil && x.Night != nil {
		return *x.Night
	}
	return false
}

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

	SensorType            *SensorType `protobuf:"varint,1,req,name=sensorType,enum=client.SensorType" json:"sensorType,omitempty"`
	UseLowThreshold       *bool       `protobuf:"varint,2,opt,name=useLowThreshold" json:"useLowThreshold,omitempty"`
	UseHighThreshold      *bool       `protobuf:"varint,3,opt,name=useHighThreshold" json:"useHighThreshold,omitempty"`
	LowThreshold          *int32      `protobuf:"varint,4,opt,name=lowThreshold" json:"lowThreshold,omitempty"`
	HighThreshold         *int32      `protobuf:"varint,5,opt,name=highThreshold" json:"highThreshold,omitempty"`
	SampleIntervalSec     *int32      `protobuf:"varint,6,opt,name=sampleIntervalSec" json:"sampleIntervalSec,omitempty"`
	TriggerIntervalSec    *int32      `protobuf:"varint,7,opt,name=triggerIntervalSec" json:"triggerIntervalSec,omitempty"`
	UseMilliForThresholds *bool       `protobuf:"varint,8,opt,name=useMilliForThresholds" json:"useMilliForThresholds,omitempty"`
}

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

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

func (*Settings_SensorSettings) ProtoMessage() {}

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

func (x *Settings_SensorSettings) GetSensorType() SensorType {
	if x != nil && x.SensorType != nil {
		return *x.SensorType
	}
	return SensorType_SOUND
}

func (x *Settings_SensorSettings) GetUseLowThreshold() bool {
	if x != nil && x.UseLowThreshold != nil {
		return *x.UseLowThreshold
	}
	return false
}

func (x *Settings_SensorSettings) GetUseHighThreshold() bool {
	if x != nil && x.UseHighThreshold != nil {
		return *x.UseHighThreshold
	}
	return false
}

func (x *Settings_SensorSettings) GetLowThreshold() int32 {
	if x != nil && x.LowThreshold != nil {
		return *x.LowThreshold
	}
	return 0
}

func (x *Settings_SensorSettings) GetHighThreshold() int32 {
	if x != nil && x.HighThreshold != nil {
		return *x.HighThreshold
	}
	return 0
}

func (x *Settings_SensorSettings) GetSampleIntervalSec() int32 {
	if x != nil && x.SampleIntervalSec != nil {
		return *x.SampleIntervalSec
	}
	return 0
}

func (x *Settings_SensorSettings) GetTriggerIntervalSec() int32 {
	if x != nil && x.TriggerIntervalSec != nil {
		return *x.TriggerIntervalSec
	}
	return 0
}

func (x *Settings_SensorSettings) GetUseMilliForThresholds() bool {
	if x != nil && x.UseMilliForThresholds != nil {
		return *x.UseMilliForThresholds
	}
	return false
}

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

	Id             *StreamIdentifier `protobuf:"varint,1,req,name=id,enum=client.StreamIdentifier" json:"id,omitempty"`
	Bitrate        *int32            `protobuf:"varint,2,opt,name=bitrate" json:"bitrate,omitempty"`
	EconomyBitrate *int32            `protobuf:"varint,3,opt,name=economyBitrate" json:"economyBitrate,omitempty"`
	EconomyFps     *int32            `protobuf:"varint,4,opt,name=economyFps" json:"economyFps,omitempty"`
	BestBitrate    *int32            `protobuf:"varint,5,opt,name=bestBitrate" json:"bestBitrate,omitempty"`
	BestFps        *int32            `protobuf:"varint,6,opt,name=bestFps" json:"bestFps,omitempty"`
}

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

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

func (*Settings_StreamSettings) ProtoMessage() {}

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

func (x *Settings_StreamSettings) GetId() StreamIdentifier {
	if x != nil && x.Id != nil {
		return *x.Id
	}
	return StreamIdentifier_DVR
}

func (x *Settings_StreamSettings) GetBitrate() int32 {
	if x != nil && x.Bitrate != nil {
		return *x.Bitrate
	}
	return 0
}

func (x *Settings_StreamSettings) GetEconomyBitrate() int32 {
	if x != nil && x.EconomyBitrate != nil {
		return *x.EconomyBitrate
	}
	return 0
}

func (x *Settings_StreamSettings) GetEconomyFps() int32 {
	if x != nil && x.EconomyFps != nil {
		return *x.EconomyFps
	}
	return 0
}

func (x *Settings_StreamSettings) GetBestBitrate() int32 {
	if x != nil && x.BestBitrate != nil {
		return *x.BestBitrate
	}
	return 0
}

func (x *Settings_StreamSettings) GetBestFps() int32 {
	if x != nil && x.BestFps != nil {
		return *x.BestFps
	}
	return 0
}

var File_pkg_client_websocket_proto protoreflect.FileDescriptor

var file_pkg_client_websocket_proto_rawDesc = []byte{
	0x0a, 0x1a, 0x70, 0x6b, 0x67, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x77, 0x65, 0x62,
	0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44,
	0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x41, 0x6c, 0x65,
	0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x6c, 0x65, 0x72,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
	0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
	0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68,
	0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68,
	0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x69,
	0x67, 0x68, 0x74, 0x22, 0xd5, 0x03, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12,
	0x32, 0x0a, 0x14, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54,
	0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66,
	0x6f, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72,
	0x76, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
	0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x43,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68,
	0x74, 0x52, 0x0a, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a,
	0x12, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x12, 0x73,
	0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
	0x72, 0x1a, 0xac, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
	0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x74, 0x65, 0x6d,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x75, 0x6d, 0x69,
	0x64, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x75, 0x6d, 0x69,
	0x64, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x69, 0x67, 0x68, 0x74,
	0x22, 0x29, 0x0a, 0x0a, 0x4e, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0d,
	0x0a, 0x09, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4f, 0x4e, 0x10, 0x01, 0x22, 0xe5, 0x08, 0x0a, 0x08,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x69, 0x67, 0x68,
	0x74, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e,
	0x69, 0x67, 0x68, 0x74, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x73, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
	0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53,
	0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
	0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x61, 0x6e, 0x74, 0x69,
	0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e,
	0x41, 0x6e, 0x74, 0x69, 0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x0b, 0x61, 0x6e, 0x74,
	0x69, 0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6c, 0x65, 0x65,
	0x70, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x6c, 0x65,
	0x65, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x4c, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x4f, 0x6e, 0x12, 0x22, 0x0a, 0x0c,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65,
	0x12, 0x35, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x73, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x77,
	0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x69, 0x63, 0x4d, 0x75,
	0x74, 0x65, 0x4f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x69, 0x63, 0x4d,
	0x75, 0x74, 0x65, 0x4f, 0x6e, 0x1a, 0xf8, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73,
	0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f,
	0x75, 0x73, 0x65, 0x4c, 0x6f, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x4c, 0x6f, 0x77, 0x54, 0x68, 0x72,
	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x48, 0x69, 0x67,
	0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x10, 0x75, 0x73, 0x65, 0x48, 0x69, 0x67, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x77, 0x54, 0x68, 0x72,
	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x54, 0x68,
	0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68,
	0x69, 0x67, 0x68, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x11,
	0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65,
	0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x75, 0x73,
	0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x46, 0x6f, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
	0x6c, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x4d, 0x69,
	0x6c, 0x6c, 0x69, 0x46, 0x6f, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
	0x1a, 0xd8, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32,
	0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a,
	0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
	0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x63, 0x6f, 0x6e, 0x6f,
	0x6d, 0x79, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0e, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12,
	0x1e, 0x0a, 0x0a, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x46, 0x70, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x46, 0x70, 0x73, 0x12,
	0x20, 0x0a, 0x0b, 0x62, 0x65, 0x73, 0x74, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x65, 0x73, 0x74, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x65, 0x73, 0x74, 0x46, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x07, 0x62, 0x65, 0x73, 0x74, 0x46, 0x70, 0x73, 0x22, 0x25, 0x0a, 0x0b, 0x41,
	0x6e, 0x74, 0x69, 0x46, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52,
	0x35, 0x30, 0x48, 0x5a, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52, 0x36, 0x30, 0x48, 0x5a,
	0x10, 0x01, 0x22, 0x2f, 0x0a, 0x08, 0x57, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x07,
	0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x52, 0x32, 0x5f, 0x34,
	0x47, 0x48, 0x5a, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x52, 0x35, 0x5f, 0x30, 0x47, 0x48,
	0x5a, 0x10, 0x02, 0x22, 0x98, 0x03, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c,
	0x0a, 0x11, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x67, 0x72, 0x61,
	0x64, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x12,
	0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x12, 0x63, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12,
	0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d,
	0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64,
	0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x55,
	0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73,
	0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12,
	0x2c, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a,
	0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a,
	0x0c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12,
	0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x22, 0x5f,
	0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x22, 0x0a, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x22,
	0x87, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x03, 0x62, 0x70, 0x73, 0x22, 0x30, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45,
	0x4d, 0x4f, 0x54, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x54, 0x53, 0x50, 0x10, 0x02,
	0x12, 0x07, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x09, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x02, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28,
	0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x03,
	0x20, 0x02, 0x28, 0x09, 0x52, 0x07, 0x72, 0x74, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a,
	0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x22, 0x2e, 0x0a, 0x06, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a,
	0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, 0x1b, 0x0a, 0x07, 0x47, 0x65, 0x74,
	0x4c, 0x6f, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x02, 0x28,
	0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x1d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x03, 0x61, 0x6c, 0x6c, 0x22, 0xef, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32,
	0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x67, 0x65,
	0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x67, 0x65, 0x74, 0x53, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
	0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x09, 0x73,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e,
	0x67, 0x52, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x07,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x07,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a,
	0x09, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x09, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c,
	0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61,
	0x63, 0x6b, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x07,
	0x67, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x07,
	0x67, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xaf, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x49, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0a, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
	0x26, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
	0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x08, 0x73,
	0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52,
	0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x07, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
	0x02, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x29, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08,
	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x45, 0x45, 0x50, 0x41, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12,
	0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
	0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x2a, 0xe0, 0x06, 0x0a, 0x0b, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45,
	0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x11, 0x0a,
	0x0d, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x02,
	0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x53,
	0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e,
	0x47, 0x53, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
	0x52, 0x4f, 0x4c, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x55, 0x54, 0x5f, 0x43, 0x4f, 0x4e,
	0x54, 0x52, 0x4f, 0x4c, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x45,
	0x4e, 0x53, 0x4f, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x50,
	0x55, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0b,
	0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x43, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53,
	0x10, 0x0d, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x55, 0x43, 0x54, 0x4f, 0x4b, 0x45,
	0x4e, 0x53, 0x10, 0x0e, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x55,
	0x50, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x50,
	0x55, 0x54, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10,
	0x10, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52,
	0x45, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57,
	0x41, 0x52, 0x45, 0x10, 0x12, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4c, 0x41,
	0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x50,
	0x4c, 0x41, 0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54,
	0x5f, 0x53, 0x4f, 0x55, 0x4e, 0x44, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x10, 0x15, 0x12, 0x16,
	0x0a, 0x12, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x45, 0x54,
	0x57, 0x4f, 0x52, 0x4b, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x49,
	0x53, 0x54, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x10, 0x17, 0x12, 0x0c, 0x0a,
	0x08, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x10, 0x18, 0x12, 0x11, 0x0a, 0x0d, 0x47,
	0x45, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x10, 0x19, 0x12, 0x17,
	0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x45,
	0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x55, 0x54, 0x5f, 0x41,
	0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x1b,
	0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x54, 0x5f, 0x57, 0x49, 0x46, 0x49, 0x5f, 0x53, 0x45, 0x54,
	0x55, 0x50, 0x10, 0x1c, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x55, 0x54, 0x5f, 0x57, 0x49, 0x46, 0x49,
	0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x1d, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x54, 0x5f,
	0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x1e, 0x12, 0x12, 0x0a,
	0x0e, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x10,
	0x1f, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53,
	0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x20, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x54, 0x5f, 0x53,
	0x54, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x10, 0x22, 0x12, 0x12, 0x0a, 0x0e,
	0x50, 0x55, 0x54, 0x5f, 0x4b, 0x45, 0x45, 0x50, 0x5f, 0x41, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x23,
	0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x10, 0x24, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54,
	0x49, 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x25, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x55,
	0x54, 0x5f, 0x52, 0x54, 0x53, 0x50, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47,
	0x10, 0x26, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4f, 0x4d, 0x5f, 0x55, 0x52,
	0x49, 0x10, 0x27, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4f, 0x4d, 0x10, 0x28,
	0x12, 0x0b, 0x0a, 0x07, 0x50, 0x55, 0x54, 0x5f, 0x55, 0x4f, 0x4d, 0x10, 0x29, 0x12, 0x10, 0x0a,
	0x0c, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x2a, 0x12,
	0x10, 0x0a, 0x0c, 0x50, 0x55, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4b, 0x45, 0x59, 0x10,
	0x2b, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x55, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x10,
	0x2c, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x52, 0x45, 0x51,
	0x55, 0x45, 0x53, 0x54, 0x10, 0x2d, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54,
	0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x2e, 0x12, 0x10, 0x0a, 0x0c, 0x47,
	0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x5f, 0x55, 0x52, 0x49, 0x10, 0x2f, 0x2a, 0x58, 0x0a,
	0x0a, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53,
	0x4f, 0x55, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x54, 0x49, 0x4f, 0x4e,
	0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x4d, 0x50, 0x45, 0x52, 0x41, 0x54, 0x55, 0x52,
	0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x55, 0x4d, 0x49, 0x44, 0x49, 0x54, 0x59, 0x10,
	0x03, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05,
	0x4e, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x2a, 0x36, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x07, 0x0a, 0x03, 0x44,
	0x56, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x54, 0x49, 0x43,
	0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x2a,
	0x31, 0x0a, 0x0c, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12,
	0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x52,
	0x41, 0x56, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48,
	0x10, 0x02, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2e, 0x73, 0x74, 0x61, 0x6e, 0x65, 0x6b, 0x2f, 0x6e, 0x61, 0x6e,
	0x69, 0x74, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
}

var (
	file_pkg_client_websocket_proto_rawDescOnce sync.Once
	file_pkg_client_websocket_proto_rawDescData = file_pkg_client_websocket_proto_rawDesc
)

func file_pkg_client_websocket_proto_rawDescGZIP() []byte {
	file_pkg_client_websocket_proto_rawDescOnce.Do(func() {
		file_pkg_client_websocket_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_client_websocket_proto_rawDescData)
	})
	return file_pkg_client_websocket_proto_rawDescData
}

var file_pkg_client_websocket_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
var file_pkg_client_websocket_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_pkg_client_websocket_proto_goTypes = []interface{}{
	(RequestType)(0),                   // 0: client.RequestType
	(SensorType)(0),                    // 1: client.SensorType
	(StreamIdentifier)(0),              // 2: client.StreamIdentifier
	(MountingMode)(0),                  // 3: client.MountingMode
	(Control_NightLight)(0),            // 4: client.Control.NightLight
	(Settings_AntiFlicker)(0),          // 5: client.Settings.AntiFlicker
	(Settings_WifiBand)(0),             // 6: client.Settings.WifiBand
	(Status_ConnectionToServer)(0),     // 7: client.Status.ConnectionToServer
	(Playback_Status)(0),               // 8: client.Playback.Status
	(Stream_Type)(0),                   // 9: client.Stream.Type
	(Streaming_Status)(0),              // 10: client.Streaming.Status
	(Message_Type)(0),                  // 11: client.Message.Type
	(*SensorData)(nil),                 // 12: client.SensorData
	(*GetSensorData)(nil),              // 13: client.GetSensorData
	(*Control)(nil),                    // 14: client.Control
	(*Settings)(nil),                   // 15: client.Settings
	(*Status)(nil),                     // 16: client.Status
	(*Playback)(nil),                   // 17: client.Playback
	(*Stream)(nil),                     // 18: client.Stream
	(*Streaming)(nil),                  // 19: client.Streaming
	(*GetLogs)(nil),                    // 20: client.GetLogs
	(*GetStatus)(nil),                  // 21: client.GetStatus
	(*Request)(nil),                    // 22: client.Request
	(*Response)(nil),                   // 23: client.Response
	(*Message)(nil),                    // 24: client.Message
	(*Control_SensorDataTransfer)(nil), // 25: client.Control.SensorDataTransfer
	(*Settings_SensorSettings)(nil),    // 26: client.Settings.SensorSettings
	(*Settings_StreamSettings)(nil),    // 27: client.Settings.StreamSettings
}
var file_pkg_client_websocket_proto_depIdxs = []int32{
	1,  // 0: client.SensorData.sensorType:type_name -> client.SensorType
	4,  // 1: client.Control.nightLight:type_name -> client.Control.NightLight
	25, // 2: client.Control.sensorDataTransfer:type_name -> client.Control.SensorDataTransfer
	26, // 3: client.Settings.sensors:type_name -> client.Settings.SensorSettings
	27, // 4: client.Settings.streams:type_name -> client.Settings.StreamSettings
	5,  // 5: client.Settings.antiFlicker:type_name -> client.Settings.AntiFlicker
	6,  // 6: client.Settings.wifiBand:type_name -> client.Settings.WifiBand
	7,  // 7: client.Status.connectionToServer:type_name -> client.Status.ConnectionToServer
	3,  // 8: client.Status.mode:type_name -> client.MountingMode
	8,  // 9: client.Playback.status:type_name -> client.Playback.Status
	9,  // 10: client.Stream.type:type_name -> client.Stream.Type
	2,  // 11: client.Streaming.id:type_name -> client.StreamIdentifier
	10, // 12: client.Streaming.status:type_name -> client.Streaming.Status
	0,  // 13: client.Request.type:type_name -> client.RequestType
	13, // 14: client.Request.getSensorData:type_name -> client.GetSensorData
	12, // 15: client.Request.sensorData:type_name -> client.SensorData
	19, // 16: client.Request.streaming:type_name -> client.Streaming
	14, // 17: client.Request.control:type_name -> client.Control
	15, // 18: client.Request.settings:type_name -> client.Settings
	16, // 19: client.Request.status:type_name -> client.Status
	21, // 20: client.Request.getStatus:type_name -> client.GetStatus
	17, // 21: client.Request.playback:type_name -> client.Playback
	20, // 22: client.Request.getLogs:type_name -> client.GetLogs
	0,  // 23: client.Response.requestType:type_name -> client.RequestType
	16, // 24: client.Response.status:type_name -> client.Status
	12, // 25: client.Response.sensorData:type_name -> client.SensorData
	15, // 26: client.Response.settings:type_name -> client.Settings
	11, // 27: client.Message.type:type_name -> client.Message.Type
	22, // 28: client.Message.request:type_name -> client.Request
	23, // 29: client.Message.response:type_name -> client.Response
	1,  // 30: client.Settings.SensorSettings.sensorType:type_name -> client.SensorType
	2,  // 31: client.Settings.StreamSettings.id:type_name -> client.StreamIdentifier
	32, // [32:32] is the sub-list for method output_type
	32, // [32:32] is the sub-list for method input_type
	32, // [32:32] is the sub-list for extension type_name
	32, // [32:32] is the sub-list for extension extendee
	0,  // [0:32] is the sub-list for field type_name
}

func init() { file_pkg_client_websocket_proto_init() }
func file_pkg_client_websocket_proto_init() {
	if File_pkg_client_websocket_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pkg_client_websocket_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SensorData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSensorData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Control); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Settings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Status); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Playback); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Stream); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Streaming); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetLogs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Response); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Message); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Control_SensorDataTransfer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Settings_SensorSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_client_websocket_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Settings_StreamSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pkg_client_websocket_proto_rawDesc,
			NumEnums:      12,
			NumMessages:   16,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pkg_client_websocket_proto_goTypes,
		DependencyIndexes: file_pkg_client_websocket_proto_depIdxs,
		EnumInfos:         file_pkg_client_websocket_proto_enumTypes,
		MessageInfos:      file_pkg_client_websocket_proto_msgTypes,
	}.Build()
	File_pkg_client_websocket_proto = out.File
	file_pkg_client_websocket_proto_rawDesc = nil
	file_pkg_client_websocket_proto_goTypes = nil
	file_pkg_client_websocket_proto_depIdxs = nil
}
