//
//Сервис реализует функционал управления устройствами

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.30.0
// 	protoc        v4.23.1
// source: keyapis/device/v1/keyapis_device_device_v1.proto

package keyapis_device_v1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	_ "google.golang.org/genproto/googleapis/api/visibility"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// Справочник статусов установки пресета.
// # Тип: byte
//
// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
type Device_PresetStatusType int32

const (
	// Значение не указано
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_PRESET_STATUS_TYPE_UNKNOWN Device_PresetStatusType = 0
	// Устанавливается
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_PROCESSING Device_PresetStatusType = 1
	// Установлен
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_SUCCESS Device_PresetStatusType = 2
	// Ошибка
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_ERROR Device_PresetStatusType = 3
)

// Enum value maps for Device_PresetStatusType.
var (
	Device_PresetStatusType_name = map[int32]string{
		0: "PRESET_STATUS_TYPE_UNKNOWN",
		1: "PROCESSING",
		2: "SUCCESS",
		3: "ERROR",
	}
	Device_PresetStatusType_value = map[string]int32{
		"PRESET_STATUS_TYPE_UNKNOWN": 0,
		"PROCESSING":                 1,
		"SUCCESS":                    2,
		"ERROR":                      3,
	}
)

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

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

func (Device_PresetStatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[0].Descriptor()
}

func (Device_PresetStatusType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[0]
}

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

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

// Справочник назначений типов устройств (в качестве чего выступает устройство).
// # Тип: byte
type Device_Type int32

const (
	// Значение не указано
	Device_TYPE_UNKNOWN Device_Type = 0
	// Домофон
	Device_INTERCOM Device_Type = 1
	// Видеокамера
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_VIDEOCAMERA Device_Type = 2
	// Шлагбаум
	Device_BARRIER Device_Type = 3
	// Калитка
	Device_GATE Device_Type = 4
	// СКУД
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_ACCESS_CONTROL_PANEL Device_Type = 5
	// Наружняя видеокамера
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	Device_OUTDOOR_CAMERA Device_Type = 6
)

// Enum value maps for Device_Type.
var (
	Device_Type_name = map[int32]string{
		0: "TYPE_UNKNOWN",
		1: "INTERCOM",
		2: "VIDEOCAMERA",
		3: "BARRIER",
		4: "GATE",
		5: "ACCESS_CONTROL_PANEL",
		6: "OUTDOOR_CAMERA",
	}
	Device_Type_value = map[string]int32{
		"TYPE_UNKNOWN":         0,
		"INTERCOM":             1,
		"VIDEOCAMERA":          2,
		"BARRIER":              3,
		"GATE":                 4,
		"ACCESS_CONTROL_PANEL": 5,
		"OUTDOOR_CAMERA":       6,
	}
)

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

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

func (Device_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[1].Descriptor()
}

func (Device_Type) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[1]
}

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

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

// Модель устройства.
// # Тип: byte
type Device_ModelType int32

const (
	// Значение не указано
	Device_MODEL_TYPE_UNKNOWN Device_ModelType = 0
	// Модель RODOS-8
	Device_RODOS8 Device_ModelType = 1
	// Модель Beward
	Device_BEWARD Device_ModelType = 2
	// Модель QTECH
	Device_QTECH Device_ModelType = 3
	// Модель Натекс
	Device_NATEKS Device_ModelType = 4
	// Модель ТНБ
	Device_TNB Device_ModelType = 5
	// Модель Maxet Line
	Device_MAXETLINE Device_ModelType = 6
	// Модель Двойная открывашка
	Device_TNB_DO2 Device_ModelType = 7
	// Модель Beward DS86017CP
	Device_BEWARD_DS86017CP Device_ModelType = 8
	// Модель Beward DS85006MP
	Device_BEWARD_DS85006MP Device_ModelType = 9
	// Модель Dahua DHI-VTO2101E-P
	Device_DAHUA_VTO2101E_P Device_ModelType = 10
	// Модель Hikvision DS-KV8155-IM
	Device_HIKVISION_DS_KV8155_IM Device_ModelType = 11
	// Модель RODOS-8-2
	Device_RODOS8_2 Device_ModelType = 12
	// Модель Akuvox R29C
	Device_AKUVOX_R29C Device_ModelType = 13
	// Модель Safe-logic
	Device_SAFE_LOGIC Device_ModelType = 14
	// Модель Beward DS86006AP
	Device_BEWARD_DS86006AP Device_ModelType = 15
	// Модель Спутник Ио
	Device_SPUTNIK_IO Device_ModelType = 16
	// Модель Beward c FR
	Device_BEWARD_FR Device_ModelType = 17
	// Модель QTECH с FR
	Device_QTECH_FR Device_ModelType = 18
	// Модель Eltex IPA-ER-10
	Device_ELTEX_IPA_ER_010 Device_ModelType = 19
	// Модель Beward с новым API ключей
	Device_BEWARD_MIFARE Device_ModelType = 20
	// Модель BAS-IP AA-12FB
	Device_BAS_IP_AA_12FB Device_ModelType = 21
	// Модель Akuvox X915S
	Device_AKUVOX_X915S Device_ModelType = 22
	// Модель Rubetek RV-3434
	Device_RUBETEK_RV_3434 Device_ModelType = 23
	// Модель Сокол плюс
	Device_SOKOL_PLUS Device_ModelType = 24
	// Модель Beward Эконом
	Device_BEWARD_LOW_COST Device_ModelType = 25
)

// Enum value maps for Device_ModelType.
var (
	Device_ModelType_name = map[int32]string{
		0:  "MODEL_TYPE_UNKNOWN",
		1:  "RODOS8",
		2:  "BEWARD",
		3:  "QTECH",
		4:  "NATEKS",
		5:  "TNB",
		6:  "MAXETLINE",
		7:  "TNB_DO2",
		8:  "BEWARD_DS86017CP",
		9:  "BEWARD_DS85006MP",
		10: "DAHUA_VTO2101E_P",
		11: "HIKVISION_DS_KV8155_IM",
		12: "RODOS8_2",
		13: "AKUVOX_R29C",
		14: "SAFE_LOGIC",
		15: "BEWARD_DS86006AP",
		16: "SPUTNIK_IO",
		17: "BEWARD_FR",
		18: "QTECH_FR",
		19: "ELTEX_IPA_ER_010",
		20: "BEWARD_MIFARE",
		21: "BAS_IP_AA_12FB",
		22: "AKUVOX_X915S",
		23: "RUBETEK_RV_3434",
		24: "SOKOL_PLUS",
		25: "BEWARD_LOW_COST",
	}
	Device_ModelType_value = map[string]int32{
		"MODEL_TYPE_UNKNOWN":     0,
		"RODOS8":                 1,
		"BEWARD":                 2,
		"QTECH":                  3,
		"NATEKS":                 4,
		"TNB":                    5,
		"MAXETLINE":              6,
		"TNB_DO2":                7,
		"BEWARD_DS86017CP":       8,
		"BEWARD_DS85006MP":       9,
		"DAHUA_VTO2101E_P":       10,
		"HIKVISION_DS_KV8155_IM": 11,
		"RODOS8_2":               12,
		"AKUVOX_R29C":            13,
		"SAFE_LOGIC":             14,
		"BEWARD_DS86006AP":       15,
		"SPUTNIK_IO":             16,
		"BEWARD_FR":              17,
		"QTECH_FR":               18,
		"ELTEX_IPA_ER_010":       19,
		"BEWARD_MIFARE":          20,
		"BAS_IP_AA_12FB":         21,
		"AKUVOX_X915S":           22,
		"RUBETEK_RV_3434":        23,
		"SOKOL_PLUS":             24,
		"BEWARD_LOW_COST":        25,
	}
)

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

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

func (Device_ModelType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[2].Descriptor()
}

func (Device_ModelType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[2]
}

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

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

// Справочник статусов устройства.
// # Тип: byte
type Device_StatusType int32

const (
	// Значение не указано
	Device_STATUS_TYPE_UNKNOWN Device_StatusType = 0
	// Не в сети
	Device_OFFLINE Device_StatusType = 1
	// В сети
	Device_ONLINE Device_StatusType = 2
)

// Enum value maps for Device_StatusType.
var (
	Device_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "OFFLINE",
		2: "ONLINE",
	}
	Device_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"OFFLINE":             1,
		"ONLINE":              2,
	}
)

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

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

func (Device_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[3].Descriptor()
}

func (Device_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[3]
}

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

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

// Тип сети связи.
// # Тип: byte
type Device_SipTrunk_SipType int32

const (
	// Значение не указано
	Device_SipTrunk_SIP_TYPE_UNKNOWN Device_SipTrunk_SipType = 0
	// Тип Viprtual IP Multimedia Subsystem
	Device_SipTrunk_VIMS Device_SipTrunk_SipType = 1
	// Тип Next Generation Networks
	Device_SipTrunk_NGN Device_SipTrunk_SipType = 2
)

// Enum value maps for Device_SipTrunk_SipType.
var (
	Device_SipTrunk_SipType_name = map[int32]string{
		0: "SIP_TYPE_UNKNOWN",
		1: "VIMS",
		2: "NGN",
	}
	Device_SipTrunk_SipType_value = map[string]int32{
		"SIP_TYPE_UNKNOWN": 0,
		"VIMS":             1,
		"NGN":              2,
	}
)

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

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

func (Device_SipTrunk_SipType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[4].Descriptor()
}

func (Device_SipTrunk_SipType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[4]
}

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

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

// Тип доступа пользователя.
// # Тип: byte
type Device_Credentials_UserAccessType int32

const (
	// Значение не указано
	Device_Credentials_USER_ACCESS_TYPE_UNKNOWN Device_Credentials_UserAccessType = 0
	// Доступ к api
	Device_Credentials_API Device_Credentials_UserAccessType = 1
	// Доступ к web-интерфейсу
	Device_Credentials_WEB Device_Credentials_UserAccessType = 2
	// Доступ к rtsp-потоку
	Device_Credentials_RTSP Device_Credentials_UserAccessType = 3
	// Полный доступ
	Device_Credentials_SU Device_Credentials_UserAccessType = 4
)

// Enum value maps for Device_Credentials_UserAccessType.
var (
	Device_Credentials_UserAccessType_name = map[int32]string{
		0: "USER_ACCESS_TYPE_UNKNOWN",
		1: "API",
		2: "WEB",
		3: "RTSP",
		4: "SU",
	}
	Device_Credentials_UserAccessType_value = map[string]int32{
		"USER_ACCESS_TYPE_UNKNOWN": 0,
		"API":                      1,
		"WEB":                      2,
		"RTSP":                     3,
		"SU":                       4,
	}
)

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

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

func (Device_Credentials_UserAccessType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[5].Descriptor()
}

func (Device_Credentials_UserAccessType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[5]
}

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

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

// Тип конфигурации.
// # Тип: byte
type DeviceConfigurationStatus_ConfigurationType int32

const (
	// Значение не указано
	DeviceConfigurationStatus_CONFIGURATION_TYPE_UNKNOWN DeviceConfigurationStatus_ConfigurationType = 0
	// Пресет
	DeviceConfigurationStatus_PRESET DeviceConfigurationStatus_ConfigurationType = 1
	// Сип-аккаунт
	DeviceConfigurationStatus_SIP_ACCOUNT DeviceConfigurationStatus_ConfigurationType = 2
	// сип-номера в помещениях
	DeviceConfigurationStatus_SIP_ROOMS DeviceConfigurationStatus_ConfigurationType = 3
	// Калитка
	DeviceConfigurationStatus_GATE DeviceConfigurationStatus_ConfigurationType = 4
	// Ключи
	DeviceConfigurationStatus_RFIDS DeviceConfigurationStatus_ConfigurationType = 5
	// Коды
	DeviceConfigurationStatus_CODES DeviceConfigurationStatus_ConfigurationType = 6
	// Распознование лиц
	DeviceConfigurationStatus_FACE_RECOGNITION DeviceConfigurationStatus_ConfigurationType = 7
	// Консьерж
	DeviceConfigurationStatus_CONCIERGE DeviceConfigurationStatus_ConfigurationType = 8
	// Автосбор
	DeviceConfigurationStatus_AUTOCOLLECT DeviceConfigurationStatus_ConfigurationType = 9
	// Режим Sl3
	DeviceConfigurationStatus_SL3 DeviceConfigurationStatus_ConfigurationType = 10
	// Вызов экстренной службы
	DeviceConfigurationStatus_EMERGENCY_CALL DeviceConfigurationStatus_ConfigurationType = 11
)

// Enum value maps for DeviceConfigurationStatus_ConfigurationType.
var (
	DeviceConfigurationStatus_ConfigurationType_name = map[int32]string{
		0:  "CONFIGURATION_TYPE_UNKNOWN",
		1:  "PRESET",
		2:  "SIP_ACCOUNT",
		3:  "SIP_ROOMS",
		4:  "GATE",
		5:  "RFIDS",
		6:  "CODES",
		7:  "FACE_RECOGNITION",
		8:  "CONCIERGE",
		9:  "AUTOCOLLECT",
		10: "SL3",
		11: "EMERGENCY_CALL",
	}
	DeviceConfigurationStatus_ConfigurationType_value = map[string]int32{
		"CONFIGURATION_TYPE_UNKNOWN": 0,
		"PRESET":                     1,
		"SIP_ACCOUNT":                2,
		"SIP_ROOMS":                  3,
		"GATE":                       4,
		"RFIDS":                      5,
		"CODES":                      6,
		"FACE_RECOGNITION":           7,
		"CONCIERGE":                  8,
		"AUTOCOLLECT":                9,
		"SL3":                        10,
		"EMERGENCY_CALL":             11,
	}
)

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

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

func (DeviceConfigurationStatus_ConfigurationType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[6].Descriptor()
}

func (DeviceConfigurationStatus_ConfigurationType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[6]
}

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

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

// Справочник статусов конфигурации настройки устройства.
// # Тип: byte
type DeviceConfigurationStatus_StatusType int32

const (
	// Значение не указано
	DeviceConfigurationStatus_STATUS_TYPE_UNKNOWN DeviceConfigurationStatus_StatusType = 0
	// Настроен
	DeviceConfigurationStatus_SUCCESS DeviceConfigurationStatus_StatusType = 1
	// Ошибка
	DeviceConfigurationStatus_ERROR DeviceConfigurationStatus_StatusType = 2
	// В ожидании обработки
	DeviceConfigurationStatus_PENDING DeviceConfigurationStatus_StatusType = 3
	// В процессе обработки
	DeviceConfigurationStatus_PROCESSING DeviceConfigurationStatus_StatusType = 4
)

// Enum value maps for DeviceConfigurationStatus_StatusType.
var (
	DeviceConfigurationStatus_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "SUCCESS",
		2: "ERROR",
		3: "PENDING",
		4: "PROCESSING",
	}
	DeviceConfigurationStatus_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"SUCCESS":             1,
		"ERROR":               2,
		"PENDING":             3,
		"PROCESSING":          4,
	}
)

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

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

func (DeviceConfigurationStatus_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[7].Descriptor()
}

func (DeviceConfigurationStatus_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[7]
}

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

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

// Статус камеры.
// # Тип: byte
type CameraStatus_StatusType int32

const (
	// Значение не указано
	CameraStatus_STATUS_TYPE_UNKNOWN CameraStatus_StatusType = 0
	// В процессе регистрации
	CameraStatus_PROCESSING CameraStatus_StatusType = 1
	// Ошибка регистрации
	CameraStatus_PROCESSING_ERROR CameraStatus_StatusType = 2
	// Активна
	CameraStatus_ACTIVE CameraStatus_StatusType = 3
)

// Enum value maps for CameraStatus_StatusType.
var (
	CameraStatus_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "PROCESSING",
		2: "PROCESSING_ERROR",
		3: "ACTIVE",
	}
	CameraStatus_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"PROCESSING":          1,
		"PROCESSING_ERROR":    2,
		"ACTIVE":              3,
	}
)

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

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

func (CameraStatus_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[8].Descriptor()
}

func (CameraStatus_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[8]
}

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

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

// Статус синхронизации.
// # Тип: byte
type SyncStatus_StatusType int32

const (
	// Значение не указано
	SyncStatus_STATUS_TYPE_UNKNOWN SyncStatus_StatusType = 0
	// Новый
	SyncStatus_NEW SyncStatus_StatusType = 1
	// В процессе
	SyncStatus_PENDING SyncStatus_StatusType = 2
	// Ошибка
	SyncStatus_ERROR SyncStatus_StatusType = 3
	// Успешно
	SyncStatus_SUCCESS SyncStatus_StatusType = 4
	// Выключено
	SyncStatus_DISABLED SyncStatus_StatusType = 5
)

// Enum value maps for SyncStatus_StatusType.
var (
	SyncStatus_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "NEW",
		2: "PENDING",
		3: "ERROR",
		4: "SUCCESS",
		5: "DISABLED",
	}
	SyncStatus_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"NEW":                 1,
		"PENDING":             2,
		"ERROR":               3,
		"SUCCESS":             4,
		"DISABLED":            5,
	}
)

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

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

func (SyncStatus_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[9].Descriptor()
}

func (SyncStatus_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[9]
}

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

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

// Справочник типов значений сортировки.
// # Тип: byte
type DevicePaging_OrderByType int32

const (
	// Значение не указано
	DevicePaging_ORDER_BY_TYPE_UNKNOWN DevicePaging_OrderByType = 0
	// По идентификатору
	DevicePaging_ID DevicePaging_OrderByType = 1
	// По наименованию
	DevicePaging_TITLE DevicePaging_OrderByType = 2
	// По дате последней попытки синхронизации
	DevicePaging_SYNC_AT DevicePaging_OrderByType = 3
)

// Enum value maps for DevicePaging_OrderByType.
var (
	DevicePaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "ID",
		2: "TITLE",
		3: "SYNC_AT",
	}
	DevicePaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"ID":                    1,
		"TITLE":                 2,
		"SYNC_AT":               3,
	}
)

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

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

func (DevicePaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[10].Descriptor()
}

func (DevicePaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[10]
}

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

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

// Справочник типов направлений сортировки.
// # Тип: byte
type DevicePaging_DirectionType int32

const (
	// Значение не указано
	DevicePaging_DIRECTION_TYPE_UNKNOWN DevicePaging_DirectionType = 0
	// От большего к меньшему
	DevicePaging_DESC DevicePaging_DirectionType = 1
	// От меньшего к большему
	DevicePaging_ASC DevicePaging_DirectionType = 2
)

// Enum value maps for DevicePaging_DirectionType.
var (
	DevicePaging_DirectionType_name = map[int32]string{
		0: "DIRECTION_TYPE_UNKNOWN",
		1: "DESC",
		2: "ASC",
	}
	DevicePaging_DirectionType_value = map[string]int32{
		"DIRECTION_TYPE_UNKNOWN": 0,
		"DESC":                   1,
		"ASC":                    2,
	}
)

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

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

func (DevicePaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[11].Descriptor()
}

func (DevicePaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[11]
}

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

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

// Справочник типов значений сортировки.
// # Тип: byte
type DeviceConfigurationStatusGroupedPaging_OrderByType int32

const (
	// Значение не указано
	DeviceConfigurationStatusGroupedPaging_ORDER_BY_TYPE_UNKNOWN DeviceConfigurationStatusGroupedPaging_OrderByType = 0
	// По идентификатору устройства
	DeviceConfigurationStatusGroupedPaging_DEVICE_ID DeviceConfigurationStatusGroupedPaging_OrderByType = 1
)

// Enum value maps for DeviceConfigurationStatusGroupedPaging_OrderByType.
var (
	DeviceConfigurationStatusGroupedPaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "DEVICE_ID",
	}
	DeviceConfigurationStatusGroupedPaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"DEVICE_ID":             1,
	}
)

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

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

func (DeviceConfigurationStatusGroupedPaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[12].Descriptor()
}

func (DeviceConfigurationStatusGroupedPaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[12]
}

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

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

// Справочник типов направлений сортировки.
// # Тип: byte
type DeviceConfigurationStatusGroupedPaging_DirectionType int32

const (
	// Значение не указано
	DeviceConfigurationStatusGroupedPaging_DIRECTION_TYPE_UNKNOWN DeviceConfigurationStatusGroupedPaging_DirectionType = 0
	// От большего к меньшему
	DeviceConfigurationStatusGroupedPaging_DESC DeviceConfigurationStatusGroupedPaging_DirectionType = 1
	// От меньшего к большему
	DeviceConfigurationStatusGroupedPaging_ASC DeviceConfigurationStatusGroupedPaging_DirectionType = 2
)

// Enum value maps for DeviceConfigurationStatusGroupedPaging_DirectionType.
var (
	DeviceConfigurationStatusGroupedPaging_DirectionType_name = map[int32]string{
		0: "DIRECTION_TYPE_UNKNOWN",
		1: "DESC",
		2: "ASC",
	}
	DeviceConfigurationStatusGroupedPaging_DirectionType_value = map[string]int32{
		"DIRECTION_TYPE_UNKNOWN": 0,
		"DESC":                   1,
		"ASC":                    2,
	}
)

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

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

func (DeviceConfigurationStatusGroupedPaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[13].Descriptor()
}

func (DeviceConfigurationStatusGroupedPaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[13]
}

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

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

// Справочник статусов.
// # Тип: byte
type Preset_StatusType int32

const (
	// Значение не указано
	Preset_STATUS_TYPE_UNKNOWN Preset_StatusType = 0
	// Активный
	Preset_ACTIVE Preset_StatusType = 1
	// Архивный
	Preset_ARCHIVE Preset_StatusType = 2
)

// Enum value maps for Preset_StatusType.
var (
	Preset_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "ACTIVE",
		2: "ARCHIVE",
	}
	Preset_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"ACTIVE":              1,
		"ARCHIVE":             2,
	}
)

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

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

func (Preset_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[14].Descriptor()
}

func (Preset_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[14]
}

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

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

// Тип протокола.
// # Тип: byte
type Preset_Syslog_ProtocolType int32

const (
	// Значение не указано
	Preset_Syslog_PROTOCOL_TYPE_UNKNOWN Preset_Syslog_ProtocolType = 0
	// Протокол UDP
	Preset_Syslog_UDP Preset_Syslog_ProtocolType = 1
	// Протокол TCP
	Preset_Syslog_TCP Preset_Syslog_ProtocolType = 2
)

// Enum value maps for Preset_Syslog_ProtocolType.
var (
	Preset_Syslog_ProtocolType_name = map[int32]string{
		0: "PROTOCOL_TYPE_UNKNOWN",
		1: "UDP",
		2: "TCP",
	}
	Preset_Syslog_ProtocolType_value = map[string]int32{
		"PROTOCOL_TYPE_UNKNOWN": 0,
		"UDP":                   1,
		"TCP":                   2,
	}
)

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

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

func (Preset_Syslog_ProtocolType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[15].Descriptor()
}

func (Preset_Syslog_ProtocolType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[15]
}

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

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

// Справочник качеств.
// # Тип: byte
type Preset_VideoConfig_QualityType int32

const (
	// Значение не указано
	Preset_VideoConfig_QUALITY_TYPE_UNKNOWN Preset_VideoConfig_QualityType = 0
	// Высокое качество
	Preset_VideoConfig_HIGH Preset_VideoConfig_QualityType = 1
	// Среднее качество
	Preset_VideoConfig_MEDIUM Preset_VideoConfig_QualityType = 2
)

// Enum value maps for Preset_VideoConfig_QualityType.
var (
	Preset_VideoConfig_QualityType_name = map[int32]string{
		0: "QUALITY_TYPE_UNKNOWN",
		1: "HIGH",
		2: "MEDIUM",
	}
	Preset_VideoConfig_QualityType_value = map[string]int32{
		"QUALITY_TYPE_UNKNOWN": 0,
		"HIGH":                 1,
		"MEDIUM":               2,
	}
)

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

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

func (Preset_VideoConfig_QualityType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[16].Descriptor()
}

func (Preset_VideoConfig_QualityType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[16]
}

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

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

// Тип конфигурации.
// # Тип: byte
type Preset_FaceRecognition_ConfigurationType int32

const (
	// Значение не указано
	Preset_FaceRecognition_CONFIGURATION_TYPE_UNKNOWN Preset_FaceRecognition_ConfigurationType = 0
	// По умолчанию
	Preset_FaceRecognition_DEFAULT Preset_FaceRecognition_ConfigurationType = 1
)

// Enum value maps for Preset_FaceRecognition_ConfigurationType.
var (
	Preset_FaceRecognition_ConfigurationType_name = map[int32]string{
		0: "CONFIGURATION_TYPE_UNKNOWN",
		1: "DEFAULT",
	}
	Preset_FaceRecognition_ConfigurationType_value = map[string]int32{
		"CONFIGURATION_TYPE_UNKNOWN": 0,
		"DEFAULT":                    1,
	}
)

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

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

func (Preset_FaceRecognition_ConfigurationType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[17].Descriptor()
}

func (Preset_FaceRecognition_ConfigurationType) Type() protoreflect.EnumType {
	return &file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes[17]
}

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

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

// Устройство.
// # Описание модели
type Device struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор.
	// # Диапазон: 0..2147483647
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Идентификатор пресета.
	// # Диапазон: 1..2147483647
	PresetId int32 `protobuf:"varint,2,opt,name=preset_id,json=presetId,proto3" json:"preset_id,omitempty"`
	// Статус установки пресета.
	// # Поле вычисляется в коде приложения
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	PresetStatusType Device_PresetStatusType `protobuf:"varint,3,opt,name=preset_status_type,json=presetStatusType,proto3,enum=keyapis.device.v1.Device_PresetStatusType" json:"preset_status_type,omitempty"`
	// Дата установки пресета на устройство.
	// # Тип: DateTime
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	PresetConfiguredAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=preset_configured_at,json=presetConfiguredAt,proto3" json:"preset_configured_at,omitempty"`
	// Настройка режима SL3
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	IsSl3ModeEnabled bool `protobuf:"varint,5,opt,name=is_sl3_mode_enabled,json=isSl3ModeEnabled,proto3" json:"is_sl3_mode_enabled,omitempty"`
	// Тип назначения устройства
	Type Device_Type `protobuf:"varint,6,opt,name=type,proto3,enum=keyapis.device.v1.Device_Type" json:"type,omitempty"`
	// MAC-адрес.
	// # Диапазон: 17..17.
	// # Паттерн: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/
	MacAddress string `protobuf:"bytes,7,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
	// Наименование устройства.
	// # Диапазон: 3..256
	Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
	// Модель устройства
	ModelType Device_ModelType `protobuf:"varint,9,opt,name=model_type,json=modelType,proto3,enum=keyapis.device.v1.Device_ModelType" json:"model_type,omitempty"`
	// Идентификатор компании владельца.
	// # Диапазон: 1..2147483647
	OwnerCompanyId int32 `protobuf:"varint,10,opt,name=owner_company_id,json=ownerCompanyId,proto3" json:"owner_company_id,omitempty"`
	// Серийный номер.
	// # Диапазон: 1..16
	SerialNumber string `protobuf:"bytes,11,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
	// Идентификатор квартирограммы.
	// # Диапазон: 1..2147483647
	FlatgrammId int32 `protobuf:"varint,12,opt,name=flatgramm_id,json=flatgrammId,proto3" json:"flatgramm_id,omitempty"`
	// Смещение таймзоны в минутах.
	// # Диапазон: -720..840
	UtcOffset int32 `protobuf:"varint,13,opt,name=utc_offset,json=utcOffset,proto3" json:"utc_offset,omitempty"`
	// Статус устройства
	StatusType Device_StatusType `protobuf:"varint,14,opt,name=status_type,json=statusType,proto3,enum=keyapis.device.v1.Device_StatusType" json:"status_type,omitempty"`
	// Сетевой адрес.
	// # Диапазон: 0..250
	IpAddress *wrapperspb.StringValue `protobuf:"bytes,15,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	// Сетевой порт.
	// # Диапазон: 0..65535
	Port *wrapperspb.Int32Value `protobuf:"bytes,16,opt,name=port,proto3" json:"port,omitempty"`
	// Учетные данные.
	// Используется для устройств с типом модели SPUTNIK_IO
	SputnikCredentials *Device_SputnikCredentials `protobuf:"bytes,17,opt,name=sputnik_credentials,json=sputnikCredentials,proto3" json:"sputnik_credentials,omitempty"`
	// Координаты
	Location *Device_Location `protobuf:"bytes,18,opt,name=location,proto3" json:"location,omitempty"`
	// Идентификатор камеры uid.
	// # Тип: Guid
	CameraId *wrapperspb.StringValue `protobuf:"bytes,19,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
	// Список тегов устройства.
	// # Диапазон: 1..50
	Tags []string `protobuf:"bytes,20,rep,name=tags,proto3" json:"tags,omitempty"`
	// Настройки устройства
	Settings *Device_Settings `protobuf:"bytes,21,opt,name=settings,proto3" json:"settings,omitempty"`
	// Версия аппаратного обеспенения
	HardwareVersion string `protobuf:"bytes,22,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"`
	// Версия программного обеспенения
	SoftwareVersion string `protobuf:"bytes,23,opt,name=software_version,json=softwareVersion,proto3" json:"software_version,omitempty"`
	// Диспетчеризации
	Dispatching *Device_Dispatching `protobuf:"bytes,24,opt,name=dispatching,proto3" json:"dispatching,omitempty"`
	// Транк
	SipTrunk *Device_SipTrunk `protobuf:"bytes,25,opt,name=sip_trunk,json=sipTrunk,proto3" json:"sip_trunk,omitempty"`
	// Переадресация
	Redirect *Device_Redirect `protobuf:"bytes,26,opt,name=redirect,proto3" json:"redirect,omitempty"`
	// Настройки автозамены пароля
	AutochangePasswordSettings *Device_AutochangePasswordSettings `protobuf:"bytes,27,opt,name=autochange_password_settings,json=autochangePasswordSettings,proto3" json:"autochange_password_settings,omitempty"`
	// Учетные данные пользователей
	Credentials []*Device_Credentials `protobuf:"bytes,28,rep,name=credentials,proto3" json:"credentials,omitempty"`
	// Сип-аккаунт
	SipAccount *wrapperspb.StringValue `protobuf:"bytes,29,opt,name=sip_account,json=sipAccount,proto3" json:"sip_account,omitempty"`
	// Статус синхронизации
	SyncStatus *SyncStatus `protobuf:"bytes,30,opt,name=sync_status,json=syncStatus,proto3" json:"sync_status,omitempty"`
}

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

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

func (*Device) ProtoMessage() {}

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

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

func (x *Device) GetPresetId() int32 {
	if x != nil {
		return x.PresetId
	}
	return 0
}

// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
func (x *Device) GetPresetStatusType() Device_PresetStatusType {
	if x != nil {
		return x.PresetStatusType
	}
	return Device_PRESET_STATUS_TYPE_UNKNOWN
}

// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
func (x *Device) GetPresetConfiguredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.PresetConfiguredAt
	}
	return nil
}

// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
func (x *Device) GetIsSl3ModeEnabled() bool {
	if x != nil {
		return x.IsSl3ModeEnabled
	}
	return false
}

func (x *Device) GetType() Device_Type {
	if x != nil {
		return x.Type
	}
	return Device_TYPE_UNKNOWN
}

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

func (x *Device) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Device) GetModelType() Device_ModelType {
	if x != nil {
		return x.ModelType
	}
	return Device_MODEL_TYPE_UNKNOWN
}

func (x *Device) GetOwnerCompanyId() int32 {
	if x != nil {
		return x.OwnerCompanyId
	}
	return 0
}

func (x *Device) GetSerialNumber() string {
	if x != nil {
		return x.SerialNumber
	}
	return ""
}

func (x *Device) GetFlatgrammId() int32 {
	if x != nil {
		return x.FlatgrammId
	}
	return 0
}

func (x *Device) GetUtcOffset() int32 {
	if x != nil {
		return x.UtcOffset
	}
	return 0
}

func (x *Device) GetStatusType() Device_StatusType {
	if x != nil {
		return x.StatusType
	}
	return Device_STATUS_TYPE_UNKNOWN
}

func (x *Device) GetIpAddress() *wrapperspb.StringValue {
	if x != nil {
		return x.IpAddress
	}
	return nil
}

func (x *Device) GetPort() *wrapperspb.Int32Value {
	if x != nil {
		return x.Port
	}
	return nil
}

func (x *Device) GetSputnikCredentials() *Device_SputnikCredentials {
	if x != nil {
		return x.SputnikCredentials
	}
	return nil
}

func (x *Device) GetLocation() *Device_Location {
	if x != nil {
		return x.Location
	}
	return nil
}

func (x *Device) GetCameraId() *wrapperspb.StringValue {
	if x != nil {
		return x.CameraId
	}
	return nil
}

func (x *Device) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

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

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

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

func (x *Device) GetDispatching() *Device_Dispatching {
	if x != nil {
		return x.Dispatching
	}
	return nil
}

func (x *Device) GetSipTrunk() *Device_SipTrunk {
	if x != nil {
		return x.SipTrunk
	}
	return nil
}

func (x *Device) GetRedirect() *Device_Redirect {
	if x != nil {
		return x.Redirect
	}
	return nil
}

func (x *Device) GetAutochangePasswordSettings() *Device_AutochangePasswordSettings {
	if x != nil {
		return x.AutochangePasswordSettings
	}
	return nil
}

func (x *Device) GetCredentials() []*Device_Credentials {
	if x != nil {
		return x.Credentials
	}
	return nil
}

func (x *Device) GetSipAccount() *wrapperspb.StringValue {
	if x != nil {
		return x.SipAccount
	}
	return nil
}

func (x *Device) GetSyncStatus() *SyncStatus {
	if x != nil {
		return x.SyncStatus
	}
	return nil
}

// Облегчённое устройство.
// # Описание модели
type DeviceLite struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор.
	// # Диапазон: 0..2147483647
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Тип назначения устройства
	Type Device_Type `protobuf:"varint,2,opt,name=type,proto3,enum=keyapis.device.v1.Device_Type" json:"type,omitempty"`
	// # Диапазон: 3..256
	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
	// Координаты
	Location *Device_Location `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"`
	// Статус устройства
	StatusType Device_StatusType `protobuf:"varint,5,opt,name=status_type,json=statusType,proto3,enum=keyapis.device.v1.Device_StatusType" json:"status_type,omitempty"`
}

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

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

func (*DeviceLite) ProtoMessage() {}

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

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

func (x *DeviceLite) GetType() Device_Type {
	if x != nil {
		return x.Type
	}
	return Device_TYPE_UNKNOWN
}

func (x *DeviceLite) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *DeviceLite) GetLocation() *Device_Location {
	if x != nil {
		return x.Location
	}
	return nil
}

func (x *DeviceLite) GetStatusType() Device_StatusType {
	if x != nil {
		return x.StatusType
	}
	return Device_STATUS_TYPE_UNKNOWN
}

// Статус конфигурации устройства.
// # Описание модели
type DeviceConfigurationStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Идентификатор устройства
	DeviceId int32 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	// Тип конфигурации
	ConfigurationType DeviceConfigurationStatus_ConfigurationType `protobuf:"varint,3,opt,name=configuration_type,json=configurationType,proto3,enum=keyapis.device.v1.DeviceConfigurationStatus_ConfigurationType" json:"configuration_type,omitempty"`
	// Статус конфигурации настройки устройства
	StatusType DeviceConfigurationStatus_StatusType `protobuf:"varint,4,opt,name=status_type,json=statusType,proto3,enum=keyapis.device.v1.DeviceConfigurationStatus_StatusType" json:"status_type,omitempty"`
	// Дата последней конфигурации устройства.
	// # Тип: DateTime
	ConfiguredAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=configured_at,json=configuredAt,proto3" json:"configured_at,omitempty"`
	// Текст ошибки
	ErrorMessage *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// Количество попыток
	RetryCount int32 `protobuf:"varint,7,opt,name=retry_count,json=retryCount,proto3" json:"retry_count,omitempty"`
	// Дополнительная полезная нагрузка
	Payload *DeviceConfigurationStatus_Payload `protobuf:"bytes,8,opt,name=payload,proto3" json:"payload,omitempty"`
	// Минимально возможная дата выполнения следующей попытки.
	// # Тип: DateTime
	NextRetryAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=next_retry_at,json=nextRetryAt,proto3" json:"next_retry_at,omitempty"`
}

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

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

func (*DeviceConfigurationStatus) ProtoMessage() {}

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

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

func (x *DeviceConfigurationStatus) GetDeviceId() int32 {
	if x != nil {
		return x.DeviceId
	}
	return 0
}

func (x *DeviceConfigurationStatus) GetConfigurationType() DeviceConfigurationStatus_ConfigurationType {
	if x != nil {
		return x.ConfigurationType
	}
	return DeviceConfigurationStatus_CONFIGURATION_TYPE_UNKNOWN
}

func (x *DeviceConfigurationStatus) GetStatusType() DeviceConfigurationStatus_StatusType {
	if x != nil {
		return x.StatusType
	}
	return DeviceConfigurationStatus_STATUS_TYPE_UNKNOWN
}

func (x *DeviceConfigurationStatus) GetConfiguredAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ConfiguredAt
	}
	return nil
}

func (x *DeviceConfigurationStatus) GetErrorMessage() *wrapperspb.StringValue {
	if x != nil {
		return x.ErrorMessage
	}
	return nil
}

func (x *DeviceConfigurationStatus) GetRetryCount() int32 {
	if x != nil {
		return x.RetryCount
	}
	return 0
}

func (x *DeviceConfigurationStatus) GetPayload() *DeviceConfigurationStatus_Payload {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *DeviceConfigurationStatus) GetNextRetryAt() *timestamppb.Timestamp {
	if x != nil {
		return x.NextRetryAt
	}
	return nil
}

// Сгруппированный по устройству список конфигураций
type DeviceConfigurationStatusGrouped struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор устройства
	DeviceId int32 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	// Список конфигураций
	Statuses []*DeviceConfigurationStatus `protobuf:"bytes,2,rep,name=statuses,proto3" json:"statuses,omitempty"`
}

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

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

func (*DeviceConfigurationStatusGrouped) ProtoMessage() {}

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

func (x *DeviceConfigurationStatusGrouped) GetDeviceId() int32 {
	if x != nil {
		return x.DeviceId
	}
	return 0
}

func (x *DeviceConfigurationStatusGrouped) GetStatuses() []*DeviceConfigurationStatus {
	if x != nil {
		return x.Statuses
	}
	return nil
}

// Статус камеры.
// # Описание модели
type CameraStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор камеры uid.
	// # Тип: Guid
	Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Статус камеры
	StatusType CameraStatus_StatusType `protobuf:"varint,2,opt,name=status_type,json=statusType,proto3,enum=keyapis.device.v1.CameraStatus_StatusType" json:"status_type,omitempty"`
	// Сообщение об ошибке
	ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}

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

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

func (*CameraStatus) ProtoMessage() {}

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

func (x *CameraStatus) GetId() *wrapperspb.StringValue {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *CameraStatus) GetStatusType() CameraStatus_StatusType {
	if x != nil {
		return x.StatusType
	}
	return CameraStatus_STATUS_TYPE_UNKNOWN
}

func (x *CameraStatus) GetErrorMessage() string {
	if x != nil {
		return x.ErrorMessage
	}
	return ""
}

// Статус синхронизации.
// # Описание модели
type SyncStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус синхронизации
	StatusType SyncStatus_StatusType `protobuf:"varint,1,opt,name=status_type,json=statusType,proto3,enum=keyapis.device.v1.SyncStatus_StatusType" json:"status_type,omitempty"`
	// Сообщение об ошибке
	ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// Количество попыток
	RetryCount int32 `protobuf:"varint,3,opt,name=retry_count,json=retryCount,proto3" json:"retry_count,omitempty"`
	// Дата последней успешной синхронизации.
	// # Тип: DateTime
	SuccessfulAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=successful_at,json=successfulAt,proto3" json:"successful_at,omitempty"`
	// Дата последней синхронизации.
	// # Тип: DateTime
	SyncAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=sync_at,json=syncAt,proto3" json:"sync_at,omitempty"`
}

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

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

func (*SyncStatus) ProtoMessage() {}

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

func (x *SyncStatus) GetStatusType() SyncStatus_StatusType {
	if x != nil {
		return x.StatusType
	}
	return SyncStatus_STATUS_TYPE_UNKNOWN
}

func (x *SyncStatus) GetErrorMessage() string {
	if x != nil {
		return x.ErrorMessage
	}
	return ""
}

func (x *SyncStatus) GetRetryCount() int32 {
	if x != nil {
		return x.RetryCount
	}
	return 0
}

func (x *SyncStatus) GetSuccessfulAt() *timestamppb.Timestamp {
	if x != nil {
		return x.SuccessfulAt
	}
	return nil
}

func (x *SyncStatus) GetSyncAt() *timestamppb.Timestamp {
	if x != nil {
		return x.SyncAt
	}
	return nil
}

// Запрос получения устройства
type GetDeviceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*GetDeviceRequest) ProtoMessage() {}

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

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

// Ответ на запрос получения устройства
type GetDeviceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceResponse_Data
	Type isGetDeviceResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetDeviceResponse) ProtoMessage() {}

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

func (m *GetDeviceResponse) GetType() isGetDeviceResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceResponse) GetData() *Device {
	if x, ok := x.GetType().(*GetDeviceResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isGetDeviceResponse_Type interface {
	isGetDeviceResponse_Type()
}

type GetDeviceResponse_Data struct {
	// Устройство
	Data *Device `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*GetDeviceResponse_Data) isGetDeviceResponse_Type() {}

// Запрос получения устройства
type GetDeviceLiteRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*GetDeviceLiteRequest) ProtoMessage() {}

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

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

// Ответ на запрос получения устройства
type GetDeviceLiteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceLiteResponse_Data
	Type isGetDeviceLiteResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetDeviceLiteResponse) ProtoMessage() {}

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

func (m *GetDeviceLiteResponse) GetType() isGetDeviceLiteResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceLiteResponse) GetData() *DeviceLite {
	if x, ok := x.GetType().(*GetDeviceLiteResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isGetDeviceLiteResponse_Type interface {
	isGetDeviceLiteResponse_Type()
}

type GetDeviceLiteResponse_Data struct {
	// Устройство
	Data *DeviceLite `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*GetDeviceLiteResponse_Data) isGetDeviceLiteResponse_Type() {}

// Запрос на создание/изменение устройства
type PostDeviceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Устройство
	Data *Device `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

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

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

func (*PostDeviceRequest) ProtoMessage() {}

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

func (x *PostDeviceRequest) GetData() *Device {
	if x != nil {
		return x.Data
	}
	return nil
}

// Ответ на запрос на создание/изменение устройства
type PostDeviceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*PostDeviceResponse_Data
	//	*PostDeviceResponse_Error_
	Type isPostDeviceResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostDeviceResponse) ProtoMessage() {}

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

func (m *PostDeviceResponse) GetType() isPostDeviceResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostDeviceResponse) GetData() *Device {
	if x, ok := x.GetType().(*PostDeviceResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostDeviceResponse) GetError() *PostDeviceResponse_Error {
	if x, ok := x.GetType().(*PostDeviceResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostDeviceResponse_Type interface {
	isPostDeviceResponse_Type()
}

type PostDeviceResponse_Data struct {
	// Устройство
	Data *Device `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type PostDeviceResponse_Error_ struct {
	// Ошибка
	Error *PostDeviceResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*PostDeviceResponse_Data) isPostDeviceResponse_Type() {}

func (*PostDeviceResponse_Error_) isPostDeviceResponse_Type() {}

// Запрос получения списка устройств
type GetDeviceListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *DeviceFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// Вариант разбиения на страницы
	//
	// Types that are assignable to Pagination:
	//
	//	*GetDeviceListRequest_Paging
	Pagination isGetDeviceListRequest_Pagination `protobuf_oneof:"pagination"`
}

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

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

func (*GetDeviceListRequest) ProtoMessage() {}

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

func (x *GetDeviceListRequest) GetFilter() *DeviceFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetDeviceListRequest) GetPagination() isGetDeviceListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetDeviceListRequest) GetPaging() *DevicePaging {
	if x, ok := x.GetPagination().(*GetDeviceListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetDeviceListRequest_Pagination interface {
	isGetDeviceListRequest_Pagination()
}

type GetDeviceListRequest_Paging struct {
	// Пагинация
	Paging *DevicePaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetDeviceListRequest_Paging) isGetDeviceListRequest_Pagination() {}

// Ответ на запрос получения списка устройств
type GetDeviceListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceListResponse_Data
	//	*GetDeviceListResponse_Error_
	Type isGetDeviceListResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetDeviceListResponse) ProtoMessage() {}

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

func (m *GetDeviceListResponse) GetType() isGetDeviceListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceListResponse) GetData() *Device {
	if x, ok := x.GetType().(*GetDeviceListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetDeviceListResponse) GetError() *GetDeviceListResponse_Error {
	if x, ok := x.GetType().(*GetDeviceListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetDeviceListResponse_Type interface {
	isGetDeviceListResponse_Type()
}

type GetDeviceListResponse_Data struct {
	// Устройство
	Data *Device `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type GetDeviceListResponse_Error_ struct {
	// Ошибка
	Error *GetDeviceListResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetDeviceListResponse_Data) isGetDeviceListResponse_Type() {}

func (*GetDeviceListResponse_Error_) isGetDeviceListResponse_Type() {}

// Запрос получения количества устройств
type GetDeviceCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *DeviceFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

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

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

func (*GetDeviceCountRequest) ProtoMessage() {}

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

func (x *GetDeviceCountRequest) GetFilter() *DeviceFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

// Ответ на запрос получения количества устройств
type GetDeviceCountResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceCountResponse_Data
	//	*GetDeviceCountResponse_Error_
	Type isGetDeviceCountResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*GetDeviceCountResponse) ProtoMessage() {}

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

func (m *GetDeviceCountResponse) GetType() isGetDeviceCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceCountResponse) GetData() int32 {
	if x, ok := x.GetType().(*GetDeviceCountResponse_Data); ok {
		return x.Data
	}
	return 0
}

func (x *GetDeviceCountResponse) GetError() *GetDeviceCountResponse_Error {
	if x, ok := x.GetType().(*GetDeviceCountResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetDeviceCountResponse_Type interface {
	isGetDeviceCountResponse_Type()
}

type GetDeviceCountResponse_Data struct {
	// Количество
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

type GetDeviceCountResponse_Error_ struct {
	// Ошибка
	Error *GetDeviceCountResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetDeviceCountResponse_Data) isGetDeviceCountResponse_Type() {}

func (*GetDeviceCountResponse_Error_) isGetDeviceCountResponse_Type() {}

// Запрос изменения устройства
type PutDeviceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор устройства
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Идентификатор пресета
	PresetId int32 `protobuf:"varint,2,opt,name=preset_id,json=presetId,proto3" json:"preset_id,omitempty"`
	// Настройка режима SL3
	IsSl3ModeEnabled bool `protobuf:"varint,3,opt,name=is_sl3_mode_enabled,json=isSl3ModeEnabled,proto3" json:"is_sl3_mode_enabled,omitempty"`
}

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

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

func (*PutDeviceRequest) ProtoMessage() {}

func (x *PutDeviceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PutDeviceRequest.ProtoReflect.Descriptor instead.
func (*PutDeviceRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{16}
}

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

func (x *PutDeviceRequest) GetPresetId() int32 {
	if x != nil {
		return x.PresetId
	}
	return 0
}

func (x *PutDeviceRequest) GetIsSl3ModeEnabled() bool {
	if x != nil {
		return x.IsSl3ModeEnabled
	}
	return false
}

// ответ на завпрос изменения устройства
type PutDeviceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*PutDeviceResponse_Data
	Type isPutDeviceResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PutDeviceResponse) ProtoMessage() {}

func (x *PutDeviceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PutDeviceResponse.ProtoReflect.Descriptor instead.
func (*PutDeviceResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{17}
}

func (m *PutDeviceResponse) GetType() isPutDeviceResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PutDeviceResponse) GetData() *Device {
	if x, ok := x.GetType().(*PutDeviceResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isPutDeviceResponse_Type interface {
	isPutDeviceResponse_Type()
}

type PutDeviceResponse_Data struct {
	// Устройство
	Data *Device `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*PutDeviceResponse_Data) isPutDeviceResponse_Type() {}

// Запрос установки пресета на устройство
type PostDeviceInstallPresetRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*PostDeviceInstallPresetRequest) ProtoMessage() {}

func (x *PostDeviceInstallPresetRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceInstallPresetRequest.ProtoReflect.Descriptor instead.
func (*PostDeviceInstallPresetRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{18}
}

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

// Ответ на запрос установки пресета на устройство
type PostDeviceInstallPresetResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*PostDeviceInstallPresetResponse_Error_
	Type isPostDeviceInstallPresetResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostDeviceInstallPresetResponse) ProtoMessage() {}

func (x *PostDeviceInstallPresetResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceInstallPresetResponse.ProtoReflect.Descriptor instead.
func (*PostDeviceInstallPresetResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{19}
}

func (m *PostDeviceInstallPresetResponse) GetType() isPostDeviceInstallPresetResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostDeviceInstallPresetResponse) GetError() *PostDeviceInstallPresetResponse_Error {
	if x, ok := x.GetType().(*PostDeviceInstallPresetResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostDeviceInstallPresetResponse_Type interface {
	isPostDeviceInstallPresetResponse_Type()
}

type PostDeviceInstallPresetResponse_Error_ struct {
	// Ошибка при установке пресета
	Error *PostDeviceInstallPresetResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

func (*PostDeviceInstallPresetResponse_Error_) isPostDeviceInstallPresetResponse_Type() {}

// Запрос на замену устройства
type PostDeviceReplaceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор устройства
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Хост
	Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
	// MAC-адрес.
	// # Диапазон: 17..17.
	// # Паттерн: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/
	MacAddress string `protobuf:"bytes,3,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
	// Серийный номер
	SerialNumber string `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
	// Логин (для модели спутник)
	Login string `protobuf:"bytes,5,opt,name=login,proto3" json:"login,omitempty"`
}

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

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

func (*PostDeviceReplaceRequest) ProtoMessage() {}

func (x *PostDeviceReplaceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceReplaceRequest.ProtoReflect.Descriptor instead.
func (*PostDeviceReplaceRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{20}
}

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

func (x *PostDeviceReplaceRequest) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

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

func (x *PostDeviceReplaceRequest) GetSerialNumber() string {
	if x != nil {
		return x.SerialNumber
	}
	return ""
}

func (x *PostDeviceReplaceRequest) GetLogin() string {
	if x != nil {
		return x.Login
	}
	return ""
}

// Ответ на запрос на замену устройства
type PostDeviceReplaceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*PostDeviceReplaceResponse_Error_
	Type isPostDeviceReplaceResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostDeviceReplaceResponse) ProtoMessage() {}

func (x *PostDeviceReplaceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceReplaceResponse.ProtoReflect.Descriptor instead.
func (*PostDeviceReplaceResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{21}
}

func (m *PostDeviceReplaceResponse) GetType() isPostDeviceReplaceResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostDeviceReplaceResponse) GetError() *PostDeviceReplaceResponse_Error {
	if x, ok := x.GetType().(*PostDeviceReplaceResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostDeviceReplaceResponse_Type interface {
	isPostDeviceReplaceResponse_Type()
}

type PostDeviceReplaceResponse_Error_ struct {
	// Ошибка замены устройства
	Error *PostDeviceReplaceResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

func (*PostDeviceReplaceResponse_Error_) isPostDeviceReplaceResponse_Type() {}

// Запрос на переконфигурирование устройства
type PostDeviceReconfigureRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор устройства
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*PostDeviceReconfigureRequest) ProtoMessage() {}

func (x *PostDeviceReconfigureRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceReconfigureRequest.ProtoReflect.Descriptor instead.
func (*PostDeviceReconfigureRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{22}
}

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

// Ответ на запрос на переконфигурирование устройства
type PostDeviceReconfigureResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*PostDeviceReconfigureResponse_Error_
	Type isPostDeviceReconfigureResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostDeviceReconfigureResponse) ProtoMessage() {}

func (x *PostDeviceReconfigureResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceReconfigureResponse.ProtoReflect.Descriptor instead.
func (*PostDeviceReconfigureResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{23}
}

func (m *PostDeviceReconfigureResponse) GetType() isPostDeviceReconfigureResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostDeviceReconfigureResponse) GetError() *PostDeviceReconfigureResponse_Error {
	if x, ok := x.GetType().(*PostDeviceReconfigureResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostDeviceReconfigureResponse_Type interface {
	isPostDeviceReconfigureResponse_Type()
}

type PostDeviceReconfigureResponse_Error_ struct {
	// Ошибка переконфигурирования устройства
	Error *PostDeviceReconfigureResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

func (*PostDeviceReconfigureResponse_Error_) isPostDeviceReconfigureResponse_Type() {}

// Запрос получения статусов конфигурации устройства
type GetDeviceConfigurationStatusesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *GetDeviceConfigurationStatusesRequest) Reset() {
	*x = GetDeviceConfigurationStatusesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusesRequest) ProtoMessage() {}

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

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

// Ответ на запрос получения статусов конфигурации устройства
type GetDeviceConfigurationStatusesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceConfigurationStatusesResponse_Data
	//	*GetDeviceConfigurationStatusesResponse_Error_
	Type isGetDeviceConfigurationStatusesResponse_Type `protobuf_oneof:"type"`
}

func (x *GetDeviceConfigurationStatusesResponse) Reset() {
	*x = GetDeviceConfigurationStatusesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusesResponse) ProtoMessage() {}

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

func (m *GetDeviceConfigurationStatusesResponse) GetType() isGetDeviceConfigurationStatusesResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceConfigurationStatusesResponse) GetData() *GetDeviceConfigurationStatusesResponse_Statuses {
	if x, ok := x.GetType().(*GetDeviceConfigurationStatusesResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetDeviceConfigurationStatusesResponse) GetError() *GetDeviceConfigurationStatusesResponse_Error {
	if x, ok := x.GetType().(*GetDeviceConfigurationStatusesResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetDeviceConfigurationStatusesResponse_Type interface {
	isGetDeviceConfigurationStatusesResponse_Type()
}

type GetDeviceConfigurationStatusesResponse_Data struct {
	// Устройство
	Data *GetDeviceConfigurationStatusesResponse_Statuses `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type GetDeviceConfigurationStatusesResponse_Error_ struct {
	// Ошибка
	Error *GetDeviceConfigurationStatusesResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetDeviceConfigurationStatusesResponse_Data) isGetDeviceConfigurationStatusesResponse_Type() {}

func (*GetDeviceConfigurationStatusesResponse_Error_) isGetDeviceConfigurationStatusesResponse_Type() {
}

// Запрос на изменение статуса конфигурации устройства
type PostDeviceConfigurationStatusRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус конфигурации устройства
	Data *DeviceConfigurationStatus `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

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

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

func (*PostDeviceConfigurationStatusRequest) ProtoMessage() {}

func (x *PostDeviceConfigurationStatusRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceConfigurationStatusRequest.ProtoReflect.Descriptor instead.
func (*PostDeviceConfigurationStatusRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{26}
}

func (x *PostDeviceConfigurationStatusRequest) GetData() *DeviceConfigurationStatus {
	if x != nil {
		return x.Data
	}
	return nil
}

// Ответ на запрос на изменение статуса конфигурации устройства
type PostDeviceConfigurationStatusResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*PostDeviceConfigurationStatusResponse_Data
	//	*PostDeviceConfigurationStatusResponse_Error_
	Type isPostDeviceConfigurationStatusResponse_Type `protobuf_oneof:"type"`
}

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

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

func (*PostDeviceConfigurationStatusResponse) ProtoMessage() {}

func (x *PostDeviceConfigurationStatusResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostDeviceConfigurationStatusResponse.ProtoReflect.Descriptor instead.
func (*PostDeviceConfigurationStatusResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{27}
}

func (m *PostDeviceConfigurationStatusResponse) GetType() isPostDeviceConfigurationStatusResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostDeviceConfigurationStatusResponse) GetData() *DeviceConfigurationStatus {
	if x, ok := x.GetType().(*PostDeviceConfigurationStatusResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostDeviceConfigurationStatusResponse) GetError() *PostDeviceConfigurationStatusResponse_Error {
	if x, ok := x.GetType().(*PostDeviceConfigurationStatusResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostDeviceConfigurationStatusResponse_Type interface {
	isPostDeviceConfigurationStatusResponse_Type()
}

type PostDeviceConfigurationStatusResponse_Data struct {
	// Статус конфигурации устройства
	Data *DeviceConfigurationStatus `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type PostDeviceConfigurationStatusResponse_Error_ struct {
	// Ошибка
	Error *PostDeviceConfigurationStatusResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*PostDeviceConfigurationStatusResponse_Data) isPostDeviceConfigurationStatusResponse_Type() {}

func (*PostDeviceConfigurationStatusResponse_Error_) isPostDeviceConfigurationStatusResponse_Type() {}

// Запрос получения списка конфигураций сгруппированных по устройству
type GetDeviceConfigurationStatusGroupedListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *DeviceConfigurationStatusGroupedFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// Вариант разбиения на страницы
	//
	// Types that are assignable to Pagination:
	//
	//	*GetDeviceConfigurationStatusGroupedListRequest_Paging
	Pagination isGetDeviceConfigurationStatusGroupedListRequest_Pagination `protobuf_oneof:"pagination"`
}

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

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

func (*GetDeviceConfigurationStatusGroupedListRequest) ProtoMessage() {}

func (x *GetDeviceConfigurationStatusGroupedListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetDeviceConfigurationStatusGroupedListRequest.ProtoReflect.Descriptor instead.
func (*GetDeviceConfigurationStatusGroupedListRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{28}
}

func (x *GetDeviceConfigurationStatusGroupedListRequest) GetFilter() *DeviceConfigurationStatusGroupedFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetDeviceConfigurationStatusGroupedListRequest) GetPagination() isGetDeviceConfigurationStatusGroupedListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetDeviceConfigurationStatusGroupedListRequest) GetPaging() *DeviceConfigurationStatusGroupedPaging {
	if x, ok := x.GetPagination().(*GetDeviceConfigurationStatusGroupedListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetDeviceConfigurationStatusGroupedListRequest_Pagination interface {
	isGetDeviceConfigurationStatusGroupedListRequest_Pagination()
}

type GetDeviceConfigurationStatusGroupedListRequest_Paging struct {
	// Стандартный постраничный вывод
	Paging *DeviceConfigurationStatusGroupedPaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetDeviceConfigurationStatusGroupedListRequest_Paging) isGetDeviceConfigurationStatusGroupedListRequest_Pagination() {
}

// Ответ на запрос получения списка конфигураций сгруппированных по устройству
type GetDeviceConfigurationStatusGroupedListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceConfigurationStatusGroupedListResponse_Data
	//	*GetDeviceConfigurationStatusGroupedListResponse_Error_
	Type isGetDeviceConfigurationStatusGroupedListResponse_Type `protobuf_oneof:"type"`
}

func (x *GetDeviceConfigurationStatusGroupedListResponse) Reset() {
	*x = GetDeviceConfigurationStatusGroupedListResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusGroupedListResponse) ProtoMessage() {}

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

func (m *GetDeviceConfigurationStatusGroupedListResponse) GetType() isGetDeviceConfigurationStatusGroupedListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceConfigurationStatusGroupedListResponse) GetData() *DeviceConfigurationStatusGrouped {
	if x, ok := x.GetType().(*GetDeviceConfigurationStatusGroupedListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetDeviceConfigurationStatusGroupedListResponse) GetError() *GetDeviceConfigurationStatusGroupedListResponse_Error {
	if x, ok := x.GetType().(*GetDeviceConfigurationStatusGroupedListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetDeviceConfigurationStatusGroupedListResponse_Type interface {
	isGetDeviceConfigurationStatusGroupedListResponse_Type()
}

type GetDeviceConfigurationStatusGroupedListResponse_Data struct {
	// Конфигурации устройства
	Data *DeviceConfigurationStatusGrouped `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type GetDeviceConfigurationStatusGroupedListResponse_Error_ struct {
	// Ошибка
	Error *GetDeviceConfigurationStatusGroupedListResponse_Error `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*GetDeviceConfigurationStatusGroupedListResponse_Data) isGetDeviceConfigurationStatusGroupedListResponse_Type() {
}

func (*GetDeviceConfigurationStatusGroupedListResponse_Error_) isGetDeviceConfigurationStatusGroupedListResponse_Type() {
}

// Запрос получения количества конфигураций сгруппированных по устройству
type GetDeviceConfigurationStatusGroupedCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *DeviceConfigurationStatusGroupedFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

func (x *GetDeviceConfigurationStatusGroupedCountRequest) Reset() {
	*x = GetDeviceConfigurationStatusGroupedCountRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusGroupedCountRequest) ProtoMessage() {}

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

func (x *GetDeviceConfigurationStatusGroupedCountRequest) GetFilter() *DeviceConfigurationStatusGroupedFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

// Ответ на запрос получения количества конфигураций сгруппированных по устройству
type GetDeviceConfigurationStatusGroupedCountResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetDeviceConfigurationStatusGroupedCountResponse_Data
	Type isGetDeviceConfigurationStatusGroupedCountResponse_Type `protobuf_oneof:"type"`
}

func (x *GetDeviceConfigurationStatusGroupedCountResponse) Reset() {
	*x = GetDeviceConfigurationStatusGroupedCountResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusGroupedCountResponse) ProtoMessage() {}

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

func (m *GetDeviceConfigurationStatusGroupedCountResponse) GetType() isGetDeviceConfigurationStatusGroupedCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetDeviceConfigurationStatusGroupedCountResponse) GetData() int32 {
	if x, ok := x.GetType().(*GetDeviceConfigurationStatusGroupedCountResponse_Data); ok {
		return x.Data
	}
	return 0
}

type isGetDeviceConfigurationStatusGroupedCountResponse_Type interface {
	isGetDeviceConfigurationStatusGroupedCountResponse_Type()
}

type GetDeviceConfigurationStatusGroupedCountResponse_Data struct {
	// Количество
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

func (*GetDeviceConfigurationStatusGroupedCountResponse_Data) isGetDeviceConfigurationStatusGroupedCountResponse_Type() {
}

// Запрос удаления устройства
type DeleteDeviceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор устройства
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *DeleteDeviceRequest) Reset() {
	*x = DeleteDeviceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeleteDeviceRequest) ProtoMessage() {}

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

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

// Ответ на запрос удаления устройства
type DeleteDeviceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteDeviceResponse) Reset() {
	*x = DeleteDeviceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeleteDeviceResponse) ProtoMessage() {}

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

// Ошибки реинстала
type ReinstallError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*ReinstallError_SipLoginIsMissing_
	Reason isReinstallError_Reason `protobuf_oneof:"reason"`
}

func (x *ReinstallError) Reset() {
	*x = ReinstallError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReinstallError) ProtoMessage() {}

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

func (m *ReinstallError) GetReason() isReinstallError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *ReinstallError) GetSipLoginIsMissing() *ReinstallError_SipLoginIsMissing {
	if x, ok := x.GetReason().(*ReinstallError_SipLoginIsMissing_); ok {
		return x.SipLoginIsMissing
	}
	return nil
}

type isReinstallError_Reason interface {
	isReinstallError_Reason()
}

type ReinstallError_SipLoginIsMissing_ struct {
	// Сип-логин отсутствует на устройстве
	SipLoginIsMissing *ReinstallError_SipLoginIsMissing `protobuf:"bytes,1,opt,name=sip_login_is_missing,json=sipLoginIsMissing,proto3,oneof"`
}

func (*ReinstallError_SipLoginIsMissing_) isReinstallError_Reason() {}

// Фильтр устройств
type DeviceFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По идентификаторам компании владельца
	OwnerCompanyIds []int32 `protobuf:"varint,1,rep,packed,name=owner_company_ids,json=ownerCompanyIds,proto3" json:"owner_company_ids,omitempty"`
	// Поиск по тексту.
	// Если значение не передано то поиск по нему не производится.
	// # Диапазон: 3..64.
	// # Поиск производится по полям:
	// # - Наименование;
	// # - MAC-адрес;
	// # - Список тегов устройства;
	// # - Сетевой адрес;
	// # - Серийный номер
	Text *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	// Идентификатор квартирограммы
	FlatgrammIds []int32 `protobuf:"varint,3,rep,packed,name=flatgramm_ids,json=flatgrammIds,proto3" json:"flatgramm_ids,omitempty"`
	// Серийный номер
	SerialNumbers []string `protobuf:"bytes,4,rep,name=serial_numbers,json=serialNumbers,proto3" json:"serial_numbers,omitempty"`
	// Статус устройства
	DeviceStatusTypes []Device_StatusType `protobuf:"varint,5,rep,packed,name=device_status_types,json=deviceStatusTypes,proto3,enum=keyapis.device.v1.Device_StatusType" json:"device_status_types,omitempty"`
	// Тип назначения устройства
	DeviceTypes []Device_Type `protobuf:"varint,6,rep,packed,name=device_types,json=deviceTypes,proto3,enum=keyapis.device.v1.Device_Type" json:"device_types,omitempty"`
	// Модель устройства
	DeviceModelTypes []Device_ModelType `protobuf:"varint,7,rep,packed,name=device_model_types,json=deviceModelTypes,proto3,enum=keyapis.device.v1.Device_ModelType" json:"device_model_types,omitempty"`
	// Переадресация на консъержа
	IsConciergeEnabled *wrapperspb.BoolValue `protobuf:"bytes,8,opt,name=is_concierge_enabled,json=isConciergeEnabled,proto3" json:"is_concierge_enabled,omitempty"`
	// Диспетчеризация
	IsDispatchingEnabled *wrapperspb.BoolValue `protobuf:"bytes,9,opt,name=is_dispatching_enabled,json=isDispatchingEnabled,proto3" json:"is_dispatching_enabled,omitempty"`
	// Поиск по публичному номеру диспетчеризации.
	// Если значение не передано то поиск по нему не производится.
	// # Диапазон: 3..64
	DispatchingPublicNumber *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=dispatching_public_number,json=dispatchingPublicNumber,proto3" json:"dispatching_public_number,omitempty"`
	// Версия аппаратного обеспенения.
	// # Диапазон: 3..64
	HardwareVersion *wrapperspb.StringValue `protobuf:"bytes,11,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"`
	// Версия программного обеспенения.
	// # Диапазон: 3..64
	SoftwareVersion *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=software_version,json=softwareVersion,proto3" json:"software_version,omitempty"`
	// Автозамена пароля
	IsAutochangePasswordEnabled *wrapperspb.BoolValue `protobuf:"bytes,13,opt,name=is_autochange_password_enabled,json=isAutochangePasswordEnabled,proto3" json:"is_autochange_password_enabled,omitempty"`
	// ABC-номер
	AbcNumber []string `protobuf:"bytes,14,rep,name=abc_number,json=abcNumber,proto3" json:"abc_number,omitempty"`
	// Идентификаторы камер
	CameraIds []string `protobuf:"bytes,15,rep,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
	// Фильтр по статусу синхронизации (SyncStatus.status_type)
	SyncStatusStatusTypes []SyncStatus_StatusType `protobuf:"varint,16,rep,packed,name=sync_status_status_types,json=syncStatusStatusTypes,proto3,enum=keyapis.device.v1.SyncStatus_StatusType" json:"sync_status_status_types,omitempty"`
	// Пороговое значение количества попыток синхронизации.
	// Возвращает записи, у которых sync_retry_count меньше этого значения
	SyncRetryCountLessThen *wrapperspb.Int32Value `protobuf:"bytes,17,opt,name=sync_retry_count_less_then,json=syncRetryCountLessThen,proto3" json:"sync_retry_count_less_then,omitempty"`
	// От даты успешной синхронизации включительно (>=)
	BeginSyncSuccessfulAt *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=begin_sync_successful_at,json=beginSyncSuccessfulAt,proto3" json:"begin_sync_successful_at,omitempty"`
	// До даты успешной синхронизации (<)
	EndSyncSuccessfulAt *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=end_sync_successful_at,json=endSyncSuccessfulAt,proto3" json:"end_sync_successful_at,omitempty"`
	// От даты синхронизации включительно (>=)
	BeginSyncAt *timestamppb.Timestamp `protobuf:"bytes,20,opt,name=begin_sync_at,json=beginSyncAt,proto3" json:"begin_sync_at,omitempty"`
	// До даты синхронизации (<)
	EndSyncAt *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=end_sync_at,json=endSyncAt,proto3" json:"end_sync_at,omitempty"`
}

func (x *DeviceFilter) Reset() {
	*x = DeviceFilter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceFilter) ProtoMessage() {}

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

func (x *DeviceFilter) GetOwnerCompanyIds() []int32 {
	if x != nil {
		return x.OwnerCompanyIds
	}
	return nil
}

func (x *DeviceFilter) GetText() *wrapperspb.StringValue {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *DeviceFilter) GetFlatgrammIds() []int32 {
	if x != nil {
		return x.FlatgrammIds
	}
	return nil
}

func (x *DeviceFilter) GetSerialNumbers() []string {
	if x != nil {
		return x.SerialNumbers
	}
	return nil
}

func (x *DeviceFilter) GetDeviceStatusTypes() []Device_StatusType {
	if x != nil {
		return x.DeviceStatusTypes
	}
	return nil
}

func (x *DeviceFilter) GetDeviceTypes() []Device_Type {
	if x != nil {
		return x.DeviceTypes
	}
	return nil
}

func (x *DeviceFilter) GetDeviceModelTypes() []Device_ModelType {
	if x != nil {
		return x.DeviceModelTypes
	}
	return nil
}

func (x *DeviceFilter) GetIsConciergeEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsConciergeEnabled
	}
	return nil
}

func (x *DeviceFilter) GetIsDispatchingEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsDispatchingEnabled
	}
	return nil
}

func (x *DeviceFilter) GetDispatchingPublicNumber() *wrapperspb.StringValue {
	if x != nil {
		return x.DispatchingPublicNumber
	}
	return nil
}

func (x *DeviceFilter) GetHardwareVersion() *wrapperspb.StringValue {
	if x != nil {
		return x.HardwareVersion
	}
	return nil
}

func (x *DeviceFilter) GetSoftwareVersion() *wrapperspb.StringValue {
	if x != nil {
		return x.SoftwareVersion
	}
	return nil
}

func (x *DeviceFilter) GetIsAutochangePasswordEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsAutochangePasswordEnabled
	}
	return nil
}

func (x *DeviceFilter) GetAbcNumber() []string {
	if x != nil {
		return x.AbcNumber
	}
	return nil
}

func (x *DeviceFilter) GetCameraIds() []string {
	if x != nil {
		return x.CameraIds
	}
	return nil
}

func (x *DeviceFilter) GetSyncStatusStatusTypes() []SyncStatus_StatusType {
	if x != nil {
		return x.SyncStatusStatusTypes
	}
	return nil
}

func (x *DeviceFilter) GetSyncRetryCountLessThen() *wrapperspb.Int32Value {
	if x != nil {
		return x.SyncRetryCountLessThen
	}
	return nil
}

func (x *DeviceFilter) GetBeginSyncSuccessfulAt() *timestamppb.Timestamp {
	if x != nil {
		return x.BeginSyncSuccessfulAt
	}
	return nil
}

func (x *DeviceFilter) GetEndSyncSuccessfulAt() *timestamppb.Timestamp {
	if x != nil {
		return x.EndSyncSuccessfulAt
	}
	return nil
}

func (x *DeviceFilter) GetBeginSyncAt() *timestamppb.Timestamp {
	if x != nil {
		return x.BeginSyncAt
	}
	return nil
}

func (x *DeviceFilter) GetEndSyncAt() *timestamppb.Timestamp {
	if x != nil {
		return x.EndSyncAt
	}
	return nil
}

// Постраничный вывод
type DevicePaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: ID
	OrderByType DevicePaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.device.v1.DevicePaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType DevicePaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.device.v1.DevicePaging_DirectionType" json:"direction_type,omitempty"`
	// Количество записей на страницу.
	// Если значение 0 (не передано), то будет взято значение по умолчанию.
	// # Диапазон: 0..100.
	// # По умолчанию: 20
	Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// Сдвиг.
	// # Диапазон: 0..2147483647
	Offset int32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}

func (x *DevicePaging) Reset() {
	*x = DevicePaging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DevicePaging) ProtoMessage() {}

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

func (x *DevicePaging) GetOrderByType() DevicePaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return DevicePaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *DevicePaging) GetDirectionType() DevicePaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return DevicePaging_DIRECTION_TYPE_UNKNOWN
}

func (x *DevicePaging) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *DevicePaging) GetOffset() int32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

// Фильтр конфигураций сгруппированных по устройству
type DeviceConfigurationStatusGroupedFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По идентификаторам устройства
	DeviceIds []int32 `protobuf:"varint,1,rep,packed,name=device_ids,json=deviceIds,proto3" json:"device_ids,omitempty"`
	// По типам конфигурации
	ConfigurationTypes []DeviceConfigurationStatus_ConfigurationType `protobuf:"varint,2,rep,packed,name=configuration_types,json=configurationTypes,proto3,enum=keyapis.device.v1.DeviceConfigurationStatus_ConfigurationType" json:"configuration_types,omitempty"`
	// По статусам конфигурации настройки
	StatusTypes []DeviceConfigurationStatus_StatusType `protobuf:"varint,3,rep,packed,name=status_types,json=statusTypes,proto3,enum=keyapis.device.v1.DeviceConfigurationStatus_StatusType" json:"status_types,omitempty"`
	// Флаг, указывающий на готовность настройки к конфигурированию.
	// Значение next_retry_at меньше текущей даты
	IsReadyForRetry *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=is_ready_for_retry,json=isReadyForRetry,proto3" json:"is_ready_for_retry,omitempty"`
	// Пороговое значение количества попыток.
	// Возвращает записи, у которых retry_count меньше этого значения
	RetryCountLessThen *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=retry_count_less_then,json=retryCountLessThen,proto3" json:"retry_count_less_then,omitempty"`
}

func (x *DeviceConfigurationStatusGroupedFilter) Reset() {
	*x = DeviceConfigurationStatusGroupedFilter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceConfigurationStatusGroupedFilter) ProtoMessage() {}

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

func (x *DeviceConfigurationStatusGroupedFilter) GetDeviceIds() []int32 {
	if x != nil {
		return x.DeviceIds
	}
	return nil
}

func (x *DeviceConfigurationStatusGroupedFilter) GetConfigurationTypes() []DeviceConfigurationStatus_ConfigurationType {
	if x != nil {
		return x.ConfigurationTypes
	}
	return nil
}

func (x *DeviceConfigurationStatusGroupedFilter) GetStatusTypes() []DeviceConfigurationStatus_StatusType {
	if x != nil {
		return x.StatusTypes
	}
	return nil
}

func (x *DeviceConfigurationStatusGroupedFilter) GetIsReadyForRetry() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsReadyForRetry
	}
	return nil
}

func (x *DeviceConfigurationStatusGroupedFilter) GetRetryCountLessThen() *wrapperspb.Int32Value {
	if x != nil {
		return x.RetryCountLessThen
	}
	return nil
}

// Постраничный вывод конфигураций сгруппированных по устройству
type DeviceConfigurationStatusGroupedPaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: DEVICE_ID
	OrderByType DeviceConfigurationStatusGroupedPaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.device.v1.DeviceConfigurationStatusGroupedPaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType DeviceConfigurationStatusGroupedPaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.device.v1.DeviceConfigurationStatusGroupedPaging_DirectionType" json:"direction_type,omitempty"`
	// Количество записей на страницу.
	// Если значение 0 (не передано), то будет взято значение по умолчанию.
	// # Диапазон: 0..1000.
	// # По умолчанию: 20
	Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// Сдвиг.
	// # Диапазон: 0..2147483647
	Offset int32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}

func (x *DeviceConfigurationStatusGroupedPaging) Reset() {
	*x = DeviceConfigurationStatusGroupedPaging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceConfigurationStatusGroupedPaging) ProtoMessage() {}

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

func (x *DeviceConfigurationStatusGroupedPaging) GetOrderByType() DeviceConfigurationStatusGroupedPaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return DeviceConfigurationStatusGroupedPaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *DeviceConfigurationStatusGroupedPaging) GetDirectionType() DeviceConfigurationStatusGroupedPaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return DeviceConfigurationStatusGroupedPaging_DIRECTION_TYPE_UNKNOWN
}

func (x *DeviceConfigurationStatusGroupedPaging) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *DeviceConfigurationStatusGroupedPaging) GetOffset() int32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

// Ошибки валидации.
// Эти проверки выполняются до обращения в базу данных
type ValidationError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Путь к полю в формате наименования прото
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// Валидационное сообщение
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *ValidationError) Reset() {
	*x = ValidationError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ValidationError) ProtoMessage() {}

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

func (x *ValidationError) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ValidationError) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// Пресет.
// Пресет с id=1 устанавливается при создании устройства по умолчанию
type Preset struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор.
	// # Диапазон: 1..2147483647
	Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Наименование.
	// # Диапазон: 3..256
	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	// Идентификатор МРФ.
	// # Диапазон: 0..10
	MrfIds []int32 `protobuf:"varint,3,rep,packed,name=mrf_ids,json=mrfIds,proto3" json:"mrf_ids,omitempty"`
	// Идентификатор РФ.
	// # Диапазон: 0..100
	RfIds []int32 `protobuf:"varint,4,rep,packed,name=rf_ids,json=rfIds,proto3" json:"rf_ids,omitempty"`
	// Описание.
	// # Диапазон: 3..1024
	Description *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// Дата и время создания.
	// # Тип: DateTime
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Дата последнего изменения.
	// Заполняется и обновляется сервером.
	// Заполняется при создании и изменении.
	// Является версией объекта.
	// # Тип: DateTime
	ChangedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=changed_at,json=changedAt,proto3" json:"changed_at,omitempty"`
	// Статус
	StatusType Preset_StatusType `protobuf:"varint,8,opt,name=status_type,json=statusType,proto3,enum=keyapis.device.v1.Preset_StatusType" json:"status_type,omitempty"`
	// Параметр SIP
	Sip *Preset_Sip `protobuf:"bytes,9,opt,name=sip,proto3" json:"sip,omitempty"`
	// Параметр NTP
	Ntp *Preset_Ntp `protobuf:"bytes,10,opt,name=ntp,proto3" json:"ntp,omitempty"`
	// Параметр Syslog
	Syslog *Preset_Syslog `protobuf:"bytes,11,opt,name=syslog,proto3" json:"syslog,omitempty"`
	// Помещения.
	// # Диапазон: 0..10000
	Rooms []*Preset_Room `protobuf:"bytes,12,rep,name=rooms,proto3" json:"rooms,omitempty"`
	// Параметры конфигурации видео
	VideoConfig *Preset_VideoConfig `protobuf:"bytes,13,opt,name=video_config,json=videoConfig,proto3" json:"video_config,omitempty"`
	// Параметр DTMF.
	// # Диапазон: 0..64
	Dtmf []*Preset_Dtmf `protobuf:"bytes,14,rep,name=dtmf,proto3" json:"dtmf,omitempty"`
	// Распознование лиц
	FaceRecognition *Preset_FaceRecognition `protobuf:"bytes,15,opt,name=face_recognition,json=faceRecognition,proto3" json:"face_recognition,omitempty"`
}

func (x *Preset) Reset() {
	*x = Preset{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset) ProtoMessage() {}

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

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

func (x *Preset) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Preset) GetMrfIds() []int32 {
	if x != nil {
		return x.MrfIds
	}
	return nil
}

func (x *Preset) GetRfIds() []int32 {
	if x != nil {
		return x.RfIds
	}
	return nil
}

func (x *Preset) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *Preset) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Preset) GetChangedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ChangedAt
	}
	return nil
}

func (x *Preset) GetStatusType() Preset_StatusType {
	if x != nil {
		return x.StatusType
	}
	return Preset_STATUS_TYPE_UNKNOWN
}

func (x *Preset) GetSip() *Preset_Sip {
	if x != nil {
		return x.Sip
	}
	return nil
}

func (x *Preset) GetNtp() *Preset_Ntp {
	if x != nil {
		return x.Ntp
	}
	return nil
}

func (x *Preset) GetSyslog() *Preset_Syslog {
	if x != nil {
		return x.Syslog
	}
	return nil
}

func (x *Preset) GetRooms() []*Preset_Room {
	if x != nil {
		return x.Rooms
	}
	return nil
}

func (x *Preset) GetVideoConfig() *Preset_VideoConfig {
	if x != nil {
		return x.VideoConfig
	}
	return nil
}

func (x *Preset) GetDtmf() []*Preset_Dtmf {
	if x != nil {
		return x.Dtmf
	}
	return nil
}

func (x *Preset) GetFaceRecognition() *Preset_FaceRecognition {
	if x != nil {
		return x.FaceRecognition
	}
	return nil
}

// Учетные данные.
// Используется для устройств с типом модели SPUTNIK_IO
type Device_SputnikCredentials struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Логин.
	// # Тип: Guid
	Login string `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
	// Пароль.
	// На чтение выводится только для пользователя с типом service
	Password *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *Device_SputnikCredentials) Reset() {
	*x = Device_SputnikCredentials{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SputnikCredentials) ProtoMessage() {}

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

func (x *Device_SputnikCredentials) GetLogin() string {
	if x != nil {
		return x.Login
	}
	return ""
}

func (x *Device_SputnikCredentials) GetPassword() *wrapperspb.StringValue {
	if x != nil {
		return x.Password
	}
	return nil
}

// Координаты
type Device_Location struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Широта
	Latitude float32 `protobuf:"fixed32,1,opt,name=latitude,proto3" json:"latitude,omitempty"`
	// Долгота
	Longitude float32 `protobuf:"fixed32,2,opt,name=longitude,proto3" json:"longitude,omitempty"`
}

func (x *Device_Location) Reset() {
	*x = Device_Location{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Location) ProtoMessage() {}

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

func (x *Device_Location) GetLatitude() float32 {
	if x != nil {
		return x.Latitude
	}
	return 0
}

func (x *Device_Location) GetLongitude() float32 {
	if x != nil {
		return x.Longitude
	}
	return 0
}

// Настройки устройства
type Device_Settings struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Настройки ККМ
	CoordinateMatrixSwitch *Device_Settings_CoordinateMatrixSwitch `protobuf:"bytes,1,opt,name=coordinate_matrix_switch,json=coordinateMatrixSwitch,proto3" json:"coordinate_matrix_switch,omitempty"`
	// Настройки вызова консьержа.
	// Требуется капабилити CONCIERGE_CALL
	ConciergeCall *Device_Settings_ConciergeCall `protobuf:"bytes,2,opt,name=concierge_call,json=conciergeCall,proto3" json:"concierge_call,omitempty"`
	// Настройки автосбора
	Autocollect *Device_Settings_Autocollect `protobuf:"bytes,3,opt,name=autocollect,proto3" json:"autocollect,omitempty"`
	// Настройки распознования лиц
	FaceRecognition *Device_Settings_FaceRecognition `protobuf:"bytes,4,opt,name=face_recognition,json=faceRecognition,proto3" json:"face_recognition,omitempty"`
	// Настройки режима SL3
	Sl3Mode *Device_Settings_Sl3Mode `protobuf:"bytes,5,opt,name=sl3_mode,json=sl3Mode,proto3" json:"sl3_mode,omitempty"`
	// Настройки вызова экстренной службы.
	// Только для устройств с CapabilityType=EMERGENCY_CALL
	EmergencyCall *Device_Settings_EmergencyCall `protobuf:"bytes,6,opt,name=emergency_call,json=emergencyCall,proto3" json:"emergency_call,omitempty"`
}

func (x *Device_Settings) Reset() {
	*x = Device_Settings{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings) ProtoMessage() {}

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

func (x *Device_Settings) GetCoordinateMatrixSwitch() *Device_Settings_CoordinateMatrixSwitch {
	if x != nil {
		return x.CoordinateMatrixSwitch
	}
	return nil
}

func (x *Device_Settings) GetConciergeCall() *Device_Settings_ConciergeCall {
	if x != nil {
		return x.ConciergeCall
	}
	return nil
}

func (x *Device_Settings) GetAutocollect() *Device_Settings_Autocollect {
	if x != nil {
		return x.Autocollect
	}
	return nil
}

func (x *Device_Settings) GetFaceRecognition() *Device_Settings_FaceRecognition {
	if x != nil {
		return x.FaceRecognition
	}
	return nil
}

func (x *Device_Settings) GetSl3Mode() *Device_Settings_Sl3Mode {
	if x != nil {
		return x.Sl3Mode
	}
	return nil
}

func (x *Device_Settings) GetEmergencyCall() *Device_Settings_EmergencyCall {
	if x != nil {
		return x.EmergencyCall
	}
	return nil
}

// Диспетчеризации
type Device_Dispatching struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус настройки диспетчеризации
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
	// Публичный номер.
	// # Паттерн: /^[1-9]\d{3,7}$/
	PublicIdentity *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=public_identity,json=publicIdentity,proto3" json:"public_identity,omitempty"`
}

func (x *Device_Dispatching) Reset() {
	*x = Device_Dispatching{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Dispatching) ProtoMessage() {}

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

func (x *Device_Dispatching) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

func (x *Device_Dispatching) GetPublicIdentity() *wrapperspb.StringValue {
	if x != nil {
		return x.PublicIdentity
	}
	return nil
}

// Транк.
// Параметры для соединения между устрйоством и телефонной сетью общего пользования.
// Требуется капабилити SIP_CALLS
type Device_SipTrunk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ABC-номер.
	// # Паттерн: /^(\+7)(\d{10})$/
	AbcNumber string `protobuf:"bytes,1,opt,name=abc_number,json=abcNumber,proto3" json:"abc_number,omitempty"`
	// Хост.
	// # Диапазон: 0..250
	Host *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
	// Порт.
	// # Диапазон: 0..65535
	Port *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty"`
	// Тип сети связи
	SipType Device_SipTrunk_SipType `protobuf:"varint,4,opt,name=sip_type,json=sipType,proto3,enum=keyapis.device.v1.Device_SipTrunk_SipType" json:"sip_type,omitempty"`
}

func (x *Device_SipTrunk) Reset() {
	*x = Device_SipTrunk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SipTrunk) ProtoMessage() {}

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

func (x *Device_SipTrunk) GetAbcNumber() string {
	if x != nil {
		return x.AbcNumber
	}
	return ""
}

func (x *Device_SipTrunk) GetHost() *wrapperspb.StringValue {
	if x != nil {
		return x.Host
	}
	return nil
}

func (x *Device_SipTrunk) GetPort() *wrapperspb.Int32Value {
	if x != nil {
		return x.Port
	}
	return nil
}

func (x *Device_SipTrunk) GetSipType() Device_SipTrunk_SipType {
	if x != nil {
		return x.SipType
	}
	return Device_SipTrunk_SIP_TYPE_UNKNOWN
}

// Переадресация.
// Требуется капабилити SIP_CALLS
type Device_Redirect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Переадресация на SIP
	IsEnabledSip bool `protobuf:"varint,1,opt,name=is_enabled_sip,json=isEnabledSip,proto3" json:"is_enabled_sip,omitempty"`
	// Переадресация на телефон
	IsEnabledPhone bool `protobuf:"varint,2,opt,name=is_enabled_phone,json=isEnabledPhone,proto3" json:"is_enabled_phone,omitempty"`
}

func (x *Device_Redirect) Reset() {
	*x = Device_Redirect{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Redirect) ProtoMessage() {}

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

func (x *Device_Redirect) GetIsEnabledSip() bool {
	if x != nil {
		return x.IsEnabledSip
	}
	return false
}

func (x *Device_Redirect) GetIsEnabledPhone() bool {
	if x != nil {
		return x.IsEnabledPhone
	}
	return false
}

// Настройки автозамены пароля
type Device_AutochangePasswordSettings struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус настройки автозамены пароля
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
}

func (x *Device_AutochangePasswordSettings) Reset() {
	*x = Device_AutochangePasswordSettings{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_AutochangePasswordSettings) ProtoMessage() {}

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

func (x *Device_AutochangePasswordSettings) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

// Учетные данные пользователей
type Device_Credentials struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Логин.
	// # Диапазон: 0..100
	Login *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=login,proto3" json:"login,omitempty"`
	// Пароль.
	// # Диапазон: 0..100
	Password *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	// Тип доступа пользователя
	UserAccessType Device_Credentials_UserAccessType `protobuf:"varint,3,opt,name=user_access_type,json=userAccessType,proto3,enum=keyapis.device.v1.Device_Credentials_UserAccessType" json:"user_access_type,omitempty"`
}

func (x *Device_Credentials) Reset() {
	*x = Device_Credentials{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Credentials) ProtoMessage() {}

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

func (x *Device_Credentials) GetLogin() *wrapperspb.StringValue {
	if x != nil {
		return x.Login
	}
	return nil
}

func (x *Device_Credentials) GetPassword() *wrapperspb.StringValue {
	if x != nil {
		return x.Password
	}
	return nil
}

func (x *Device_Credentials) GetUserAccessType() Device_Credentials_UserAccessType {
	if x != nil {
		return x.UserAccessType
	}
	return Device_Credentials_USER_ACCESS_TYPE_UNKNOWN
}

// Ошибка сохранения.
// Эти проверки выполняются при работе с базой данных и сторонними сервисами
type Device_SavingError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*Device_SavingError_MacAddressInvalid_
	//	*Device_SavingError_SerialNumberInvalid_
	//	*Device_SavingError_NotAllowedForType_
	//	*Device_SavingError_NotAllowedForModel_
	//	*Device_SavingError_SerialNumberForModelIsExist_
	//	*Device_SavingError_MacAddressIsExist_
	//	*Device_SavingError_CapabilityIsNotSupported_
	//	*Device_SavingError_AbcNumberIsExistOnAnotherDevice_
	//	*Device_SavingError_PublicIdentityIsExist_
	//	*Device_SavingError_ConciergeRoomNotFound_
	//	*Device_SavingError_LoginIsExist_
	//	*Device_SavingError_CredentialsAreRequired_
	//	*Device_SavingError_FieldIsNotSupported_
	Reason isDevice_SavingError_Reason `protobuf_oneof:"reason"`
}

func (x *Device_SavingError) Reset() {
	*x = Device_SavingError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError) ProtoMessage() {}

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

func (m *Device_SavingError) GetReason() isDevice_SavingError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
func (x *Device_SavingError) GetMacAddressInvalid() *Device_SavingError_MacAddressInvalid {
	if x, ok := x.GetReason().(*Device_SavingError_MacAddressInvalid_); ok {
		return x.MacAddressInvalid
	}
	return nil
}

// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
func (x *Device_SavingError) GetSerialNumberInvalid() *Device_SavingError_SerialNumberInvalid {
	if x, ok := x.GetReason().(*Device_SavingError_SerialNumberInvalid_); ok {
		return x.SerialNumberInvalid
	}
	return nil
}

func (x *Device_SavingError) GetNotAllowedForType() *Device_SavingError_NotAllowedForType {
	if x, ok := x.GetReason().(*Device_SavingError_NotAllowedForType_); ok {
		return x.NotAllowedForType
	}
	return nil
}

func (x *Device_SavingError) GetNotAllowedForModel() *Device_SavingError_NotAllowedForModel {
	if x, ok := x.GetReason().(*Device_SavingError_NotAllowedForModel_); ok {
		return x.NotAllowedForModel
	}
	return nil
}

func (x *Device_SavingError) GetSerialNumberForModelIsExist() *Device_SavingError_SerialNumberForModelIsExist {
	if x, ok := x.GetReason().(*Device_SavingError_SerialNumberForModelIsExist_); ok {
		return x.SerialNumberForModelIsExist
	}
	return nil
}

func (x *Device_SavingError) GetMacAddressIsExist() *Device_SavingError_MacAddressIsExist {
	if x, ok := x.GetReason().(*Device_SavingError_MacAddressIsExist_); ok {
		return x.MacAddressIsExist
	}
	return nil
}

func (x *Device_SavingError) GetCapabilityIsNotSupported() *Device_SavingError_CapabilityIsNotSupported {
	if x, ok := x.GetReason().(*Device_SavingError_CapabilityIsNotSupported_); ok {
		return x.CapabilityIsNotSupported
	}
	return nil
}

func (x *Device_SavingError) GetAbcNumberIsExistOnAnotherDevice() *Device_SavingError_AbcNumberIsExistOnAnotherDevice {
	if x, ok := x.GetReason().(*Device_SavingError_AbcNumberIsExistOnAnotherDevice_); ok {
		return x.AbcNumberIsExistOnAnotherDevice
	}
	return nil
}

func (x *Device_SavingError) GetPublicIdentityIsExist() *Device_SavingError_PublicIdentityIsExist {
	if x, ok := x.GetReason().(*Device_SavingError_PublicIdentityIsExist_); ok {
		return x.PublicIdentityIsExist
	}
	return nil
}

func (x *Device_SavingError) GetConciergeRoomNotFound() *Device_SavingError_ConciergeRoomNotFound {
	if x, ok := x.GetReason().(*Device_SavingError_ConciergeRoomNotFound_); ok {
		return x.ConciergeRoomNotFound
	}
	return nil
}

func (x *Device_SavingError) GetLoginIsExist() *Device_SavingError_LoginIsExist {
	if x, ok := x.GetReason().(*Device_SavingError_LoginIsExist_); ok {
		return x.LoginIsExist
	}
	return nil
}

func (x *Device_SavingError) GetCredentialsAreRequired() *Device_SavingError_CredentialsAreRequired {
	if x, ok := x.GetReason().(*Device_SavingError_CredentialsAreRequired_); ok {
		return x.CredentialsAreRequired
	}
	return nil
}

func (x *Device_SavingError) GetFieldIsNotSupported() *Device_SavingError_FieldIsNotSupported {
	if x, ok := x.GetReason().(*Device_SavingError_FieldIsNotSupported_); ok {
		return x.FieldIsNotSupported
	}
	return nil
}

type isDevice_SavingError_Reason interface {
	isDevice_SavingError_Reason()
}

type Device_SavingError_MacAddressInvalid_ struct {
	// Переданный мак-адрес не валидный
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	MacAddressInvalid *Device_SavingError_MacAddressInvalid `protobuf:"bytes,1,opt,name=mac_address_invalid,json=macAddressInvalid,proto3,oneof"`
}

type Device_SavingError_SerialNumberInvalid_ struct {
	// Переданный серийный номер не валидный
	//
	// Deprecated: Marked as deprecated in keyapis/device/v1/keyapis_device_device_v1.proto.
	SerialNumberInvalid *Device_SavingError_SerialNumberInvalid `protobuf:"bytes,2,opt,name=serial_number_invalid,json=serialNumberInvalid,proto3,oneof"`
}

type Device_SavingError_NotAllowedForType_ struct {
	// Нельзя изменить тип назначения девайса
	NotAllowedForType *Device_SavingError_NotAllowedForType `protobuf:"bytes,3,opt,name=not_allowed_for_type,json=notAllowedForType,proto3,oneof"`
}

type Device_SavingError_NotAllowedForModel_ struct {
	// Нельзя изменить модель девайса
	NotAllowedForModel *Device_SavingError_NotAllowedForModel `protobuf:"bytes,4,opt,name=not_allowed_for_model,json=notAllowedForModel,proto3,oneof"`
}

type Device_SavingError_SerialNumberForModelIsExist_ struct {
	// Серийный номер для данной модели уже существует на платформе
	SerialNumberForModelIsExist *Device_SavingError_SerialNumberForModelIsExist `protobuf:"bytes,5,opt,name=serial_number_for_model_is_exist,json=serialNumberForModelIsExist,proto3,oneof"`
}

type Device_SavingError_MacAddressIsExist_ struct {
	// MAC-адрес уже существует на платформе
	MacAddressIsExist *Device_SavingError_MacAddressIsExist `protobuf:"bytes,6,opt,name=mac_address_is_exist,json=macAddressIsExist,proto3,oneof"`
}

type Device_SavingError_CapabilityIsNotSupported_ struct {
	// Настройка не поддерживается
	CapabilityIsNotSupported *Device_SavingError_CapabilityIsNotSupported `protobuf:"bytes,7,opt,name=capability_is_not_supported,json=capabilityIsNotSupported,proto3,oneof"`
}

type Device_SavingError_AbcNumberIsExistOnAnotherDevice_ struct {
	// ABC-номер присвоен другому устройству
	AbcNumberIsExistOnAnotherDevice *Device_SavingError_AbcNumberIsExistOnAnotherDevice `protobuf:"bytes,8,opt,name=abc_number_is_exist_on_another_device,json=abcNumberIsExistOnAnotherDevice,proto3,oneof"`
}

type Device_SavingError_PublicIdentityIsExist_ struct {
	// Публичный номер уже существует на платформе
	PublicIdentityIsExist *Device_SavingError_PublicIdentityIsExist `protobuf:"bytes,9,opt,name=public_identity_is_exist,json=publicIdentityIsExist,proto3,oneof"`
}

type Device_SavingError_ConciergeRoomNotFound_ struct {
	// Не найдена квартира для консьержа
	ConciergeRoomNotFound *Device_SavingError_ConciergeRoomNotFound `protobuf:"bytes,10,opt,name=concierge_room_not_found,json=conciergeRoomNotFound,proto3,oneof"`
}

type Device_SavingError_LoginIsExist_ struct {
	// Логин уже существует на платформе
	LoginIsExist *Device_SavingError_LoginIsExist `protobuf:"bytes,11,opt,name=login_is_exist,json=loginIsExist,proto3,oneof"`
}

type Device_SavingError_CredentialsAreRequired_ struct {
	// Отсутствуют реквизиты для модели "Спутник"
	CredentialsAreRequired *Device_SavingError_CredentialsAreRequired `protobuf:"bytes,12,opt,name=credentials_are_required,json=credentialsAreRequired,proto3,oneof"`
}

type Device_SavingError_FieldIsNotSupported_ struct {
	// Переданное поле не поддерживается
	FieldIsNotSupported *Device_SavingError_FieldIsNotSupported `protobuf:"bytes,13,opt,name=field_is_not_supported,json=fieldIsNotSupported,proto3,oneof"`
}

func (*Device_SavingError_MacAddressInvalid_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_SerialNumberInvalid_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_NotAllowedForType_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_NotAllowedForModel_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_SerialNumberForModelIsExist_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_MacAddressIsExist_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_CapabilityIsNotSupported_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_AbcNumberIsExistOnAnotherDevice_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_PublicIdentityIsExist_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_ConciergeRoomNotFound_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_LoginIsExist_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_CredentialsAreRequired_) isDevice_SavingError_Reason() {}

func (*Device_SavingError_FieldIsNotSupported_) isDevice_SavingError_Reason() {}

// Настройки ККМ.
// Коммутатор координатно-матричный (устройство для подключения аналоговых трубок к домофону)
type Device_Settings_CoordinateMatrixSwitch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Состояние
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
}

func (x *Device_Settings_CoordinateMatrixSwitch) Reset() {
	*x = Device_Settings_CoordinateMatrixSwitch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings_CoordinateMatrixSwitch) ProtoMessage() {}

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

func (x *Device_Settings_CoordinateMatrixSwitch) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

// Настройки вызова консьержа
type Device_Settings_ConciergeCall struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус настройки вызова консьержа
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
	// Идентификатор ОРПОН
	Orpon int64 `protobuf:"varint,2,opt,name=orpon,proto3" json:"orpon,omitempty"`
	// Номер квартиры.
	// # Диапазон: 1..5
	RoomNumber string `protobuf:"bytes,3,opt,name=room_number,json=roomNumber,proto3" json:"room_number,omitempty"`
	// Номер сип-трубки
	SipNumber string `protobuf:"bytes,4,opt,name=sip_number,json=sipNumber,proto3" json:"sip_number,omitempty"`
}

func (x *Device_Settings_ConciergeCall) Reset() {
	*x = Device_Settings_ConciergeCall{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings_ConciergeCall) ProtoMessage() {}

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

func (x *Device_Settings_ConciergeCall) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

func (x *Device_Settings_ConciergeCall) GetOrpon() int64 {
	if x != nil {
		return x.Orpon
	}
	return 0
}

func (x *Device_Settings_ConciergeCall) GetRoomNumber() string {
	if x != nil {
		return x.RoomNumber
	}
	return ""
}

func (x *Device_Settings_ConciergeCall) GetSipNumber() string {
	if x != nil {
		return x.SipNumber
	}
	return ""
}

// Настройки автосбора
type Device_Settings_Autocollect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус настройки автосбора
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
}

func (x *Device_Settings_Autocollect) Reset() {
	*x = Device_Settings_Autocollect{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings_Autocollect) ProtoMessage() {}

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

func (x *Device_Settings_Autocollect) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

// Настройки распознования лиц
type Device_Settings_FaceRecognition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус настройки
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
}

func (x *Device_Settings_FaceRecognition) Reset() {
	*x = Device_Settings_FaceRecognition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings_FaceRecognition) ProtoMessage() {}

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

func (x *Device_Settings_FaceRecognition) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

// Настройки режима SL3
type Device_Settings_Sl3Mode struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статус настройки
	IsEnabled bool `protobuf:"varint,1,opt,name=is_enabled,json=isEnabled,proto3" json:"is_enabled,omitempty"`
	// Идентификатор профиля шифрования
	EncryptionProfileId *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=encryption_profile_id,json=encryptionProfileId,proto3" json:"encryption_profile_id,omitempty"`
}

func (x *Device_Settings_Sl3Mode) Reset() {
	*x = Device_Settings_Sl3Mode{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings_Sl3Mode) ProtoMessage() {}

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

func (x *Device_Settings_Sl3Mode) GetIsEnabled() bool {
	if x != nil {
		return x.IsEnabled
	}
	return false
}

func (x *Device_Settings_Sl3Mode) GetEncryptionProfileId() *wrapperspb.StringValue {
	if x != nil {
		return x.EncryptionProfileId
	}
	return nil
}

// Настройки вызова экстренной службы.
// Только для устройств с CapabilityType=EMERGENCY_CALL
type Device_Settings_EmergencyCall struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Возможность вызова экстренной службы
	IsCallAvailable bool `protobuf:"varint,1,opt,name=is_call_available,json=isCallAvailable,proto3" json:"is_call_available,omitempty"`
	// АБС-номер экстренной службы.
	// # Паттерн: /^\+[1-9][0-9]{10}$/
	EmergencyNumber string `protobuf:"bytes,2,opt,name=emergency_number,json=emergencyNumber,proto3" json:"emergency_number,omitempty"`
}

func (x *Device_Settings_EmergencyCall) Reset() {
	*x = Device_Settings_EmergencyCall{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_Settings_EmergencyCall) ProtoMessage() {}

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

func (x *Device_Settings_EmergencyCall) GetIsCallAvailable() bool {
	if x != nil {
		return x.IsCallAvailable
	}
	return false
}

func (x *Device_Settings_EmergencyCall) GetEmergencyNumber() string {
	if x != nil {
		return x.EmergencyNumber
	}
	return ""
}

// Переданный мак-адрес не валидный
type Device_SavingError_MacAddressInvalid struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_MacAddressInvalid) Reset() {
	*x = Device_SavingError_MacAddressInvalid{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_MacAddressInvalid) ProtoMessage() {}

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

// Переданный серийный номер не валидный
type Device_SavingError_SerialNumberInvalid struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_SerialNumberInvalid) Reset() {
	*x = Device_SavingError_SerialNumberInvalid{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_SerialNumberInvalid) ProtoMessage() {}

func (x *Device_SavingError_SerialNumberInvalid) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[57]
	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 Device_SavingError_SerialNumberInvalid.ProtoReflect.Descriptor instead.
func (*Device_SavingError_SerialNumberInvalid) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 1}
}

// Нельзя изменить тип назначения девайса
type Device_SavingError_NotAllowedForType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_NotAllowedForType) Reset() {
	*x = Device_SavingError_NotAllowedForType{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_NotAllowedForType) ProtoMessage() {}

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

// Нельзя изменить модель девайса
type Device_SavingError_NotAllowedForModel struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_NotAllowedForModel) Reset() {
	*x = Device_SavingError_NotAllowedForModel{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_NotAllowedForModel) ProtoMessage() {}

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

// Серийный номер для данной модели уже существует на платформе
type Device_SavingError_SerialNumberForModelIsExist struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_SerialNumberForModelIsExist) Reset() {
	*x = Device_SavingError_SerialNumberForModelIsExist{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_SerialNumberForModelIsExist) ProtoMessage() {}

func (x *Device_SavingError_SerialNumberForModelIsExist) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[60]
	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 Device_SavingError_SerialNumberForModelIsExist.ProtoReflect.Descriptor instead.
func (*Device_SavingError_SerialNumberForModelIsExist) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 4}
}

// MAC-адрес уже существует на платформе
type Device_SavingError_MacAddressIsExist struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_MacAddressIsExist) Reset() {
	*x = Device_SavingError_MacAddressIsExist{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_MacAddressIsExist) ProtoMessage() {}

func (x *Device_SavingError_MacAddressIsExist) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[61]
	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 Device_SavingError_MacAddressIsExist.ProtoReflect.Descriptor instead.
func (*Device_SavingError_MacAddressIsExist) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 5}
}

// Функциональность не поддерживается моделью устройства
type Device_SavingError_CapabilityIsNotSupported struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Возможность
	ModelCapabilityType Model_CapabilityType `protobuf:"varint,1,opt,name=model_capability_type,json=modelCapabilityType,proto3,enum=keyapis.device.v1.Model_CapabilityType" json:"model_capability_type,omitempty"`
}

func (x *Device_SavingError_CapabilityIsNotSupported) Reset() {
	*x = Device_SavingError_CapabilityIsNotSupported{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_CapabilityIsNotSupported) ProtoMessage() {}

func (x *Device_SavingError_CapabilityIsNotSupported) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[62]
	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 Device_SavingError_CapabilityIsNotSupported.ProtoReflect.Descriptor instead.
func (*Device_SavingError_CapabilityIsNotSupported) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 6}
}

func (x *Device_SavingError_CapabilityIsNotSupported) GetModelCapabilityType() Model_CapabilityType {
	if x != nil {
		return x.ModelCapabilityType
	}
	return Model_CAPABILITY_TYPE_UNKNOWN
}

// ABC-номер присвоен другому устройству
type Device_SavingError_AbcNumberIsExistOnAnotherDevice struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор устройства на котором находится ABC-номер
	DeviceId int32 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
}

func (x *Device_SavingError_AbcNumberIsExistOnAnotherDevice) Reset() {
	*x = Device_SavingError_AbcNumberIsExistOnAnotherDevice{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_AbcNumberIsExistOnAnotherDevice) ProtoMessage() {}

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

func (x *Device_SavingError_AbcNumberIsExistOnAnotherDevice) GetDeviceId() int32 {
	if x != nil {
		return x.DeviceId
	}
	return 0
}

// Публичный номер уже существует на платформе
type Device_SavingError_PublicIdentityIsExist struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_PublicIdentityIsExist) Reset() {
	*x = Device_SavingError_PublicIdentityIsExist{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_PublicIdentityIsExist) ProtoMessage() {}

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

// Не найдена квартира для консьержа
type Device_SavingError_ConciergeRoomNotFound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_ConciergeRoomNotFound) Reset() {
	*x = Device_SavingError_ConciergeRoomNotFound{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_ConciergeRoomNotFound) ProtoMessage() {}

func (x *Device_SavingError_ConciergeRoomNotFound) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[65]
	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 Device_SavingError_ConciergeRoomNotFound.ProtoReflect.Descriptor instead.
func (*Device_SavingError_ConciergeRoomNotFound) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 9}
}

// Логин уже существует на платформе
type Device_SavingError_LoginIsExist struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_LoginIsExist) Reset() {
	*x = Device_SavingError_LoginIsExist{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_LoginIsExist) ProtoMessage() {}

func (x *Device_SavingError_LoginIsExist) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[66]
	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 Device_SavingError_LoginIsExist.ProtoReflect.Descriptor instead.
func (*Device_SavingError_LoginIsExist) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 10}
}

// Отсутствуют реквизиты для модели "Спутник"
type Device_SavingError_CredentialsAreRequired struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_CredentialsAreRequired) Reset() {
	*x = Device_SavingError_CredentialsAreRequired{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_CredentialsAreRequired) ProtoMessage() {}

func (x *Device_SavingError_CredentialsAreRequired) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[67]
	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 Device_SavingError_CredentialsAreRequired.ProtoReflect.Descriptor instead.
func (*Device_SavingError_CredentialsAreRequired) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{0, 8, 11}
}

// Переданное поле не поддерживается
type Device_SavingError_FieldIsNotSupported struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Device_SavingError_FieldIsNotSupported) Reset() {
	*x = Device_SavingError_FieldIsNotSupported{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Device_SavingError_FieldIsNotSupported) ProtoMessage() {}

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

// Дополнительная полезная нагрузка
type DeviceConfigurationStatus_Payload struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Атрибут
	//
	// Types that are assignable to Attribute:
	//
	//	*DeviceConfigurationStatus_Payload_Autocollect_
	Attribute isDeviceConfigurationStatus_Payload_Attribute `protobuf_oneof:"attribute"`
}

func (x *DeviceConfigurationStatus_Payload) Reset() {
	*x = DeviceConfigurationStatus_Payload{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceConfigurationStatus_Payload) ProtoMessage() {}

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

func (m *DeviceConfigurationStatus_Payload) GetAttribute() isDeviceConfigurationStatus_Payload_Attribute {
	if m != nil {
		return m.Attribute
	}
	return nil
}

func (x *DeviceConfigurationStatus_Payload) GetAutocollect() *DeviceConfigurationStatus_Payload_Autocollect {
	if x, ok := x.GetAttribute().(*DeviceConfigurationStatus_Payload_Autocollect_); ok {
		return x.Autocollect
	}
	return nil
}

type isDeviceConfigurationStatus_Payload_Attribute interface {
	isDeviceConfigurationStatus_Payload_Attribute()
}

type DeviceConfigurationStatus_Payload_Autocollect_ struct {
	// Автоколлект
	Autocollect *DeviceConfigurationStatus_Payload_Autocollect `protobuf:"bytes,1,opt,name=autocollect,proto3,oneof"`
}

func (*DeviceConfigurationStatus_Payload_Autocollect_) isDeviceConfigurationStatus_Payload_Attribute() {
}

// Автоколлект
type DeviceConfigurationStatus_Payload_Autocollect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Дата включения автосбора.
	// # Тип: DateTime
	EnabledAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=enabled_at,json=enabledAt,proto3" json:"enabled_at,omitempty"`
	// Дата отключения автосбора.
	// # Тип: DateTime
	ToBeDisabledAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=to_be_disabled_at,json=toBeDisabledAt,proto3" json:"to_be_disabled_at,omitempty"`
}

func (x *DeviceConfigurationStatus_Payload_Autocollect) Reset() {
	*x = DeviceConfigurationStatus_Payload_Autocollect{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeviceConfigurationStatus_Payload_Autocollect) ProtoMessage() {}

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

func (x *DeviceConfigurationStatus_Payload_Autocollect) GetEnabledAt() *timestamppb.Timestamp {
	if x != nil {
		return x.EnabledAt
	}
	return nil
}

func (x *DeviceConfigurationStatus_Payload_Autocollect) GetToBeDisabledAt() *timestamppb.Timestamp {
	if x != nil {
		return x.ToBeDisabledAt
	}
	return nil
}

// Ошибка запроса сохранения устройства
type PostDeviceResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostDeviceResponse_Error_Validation
	//	*PostDeviceResponse_Error_Saving
	Reason isPostDeviceResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostDeviceResponse_Error) Reset() {
	*x = PostDeviceResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceResponse_Error) ProtoMessage() {}

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

func (m *PostDeviceResponse_Error) GetReason() isPostDeviceResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostDeviceResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*PostDeviceResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

func (x *PostDeviceResponse_Error) GetSaving() *Device_SavingError {
	if x, ok := x.GetReason().(*PostDeviceResponse_Error_Saving); ok {
		return x.Saving
	}
	return nil
}

type isPostDeviceResponse_Error_Reason interface {
	isPostDeviceResponse_Error_Reason()
}

type PostDeviceResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

type PostDeviceResponse_Error_Saving struct {
	// Ошибка сохранения
	Saving *Device_SavingError `protobuf:"bytes,2,opt,name=saving,proto3,oneof"`
}

func (*PostDeviceResponse_Error_Validation) isPostDeviceResponse_Error_Reason() {}

func (*PostDeviceResponse_Error_Saving) isPostDeviceResponse_Error_Reason() {}

// Ошибка запроса на получение списка устройств
type GetDeviceListResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetDeviceListResponse_Error_Validation
	Reason isGetDeviceListResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *GetDeviceListResponse_Error) Reset() {
	*x = GetDeviceListResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceListResponse_Error) ProtoMessage() {}

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

func (m *GetDeviceListResponse_Error) GetReason() isGetDeviceListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetDeviceListResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetDeviceListResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetDeviceListResponse_Error_Reason interface {
	isGetDeviceListResponse_Error_Reason()
}

type GetDeviceListResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetDeviceListResponse_Error_Validation) isGetDeviceListResponse_Error_Reason() {}

// Ошибка
type GetDeviceCountResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetDeviceCountResponse_Error_Validation
	Reason isGetDeviceCountResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *GetDeviceCountResponse_Error) Reset() {
	*x = GetDeviceCountResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceCountResponse_Error) ProtoMessage() {}

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

func (m *GetDeviceCountResponse_Error) GetReason() isGetDeviceCountResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetDeviceCountResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetDeviceCountResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetDeviceCountResponse_Error_Reason interface {
	isGetDeviceCountResponse_Error_Reason()
}

type GetDeviceCountResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetDeviceCountResponse_Error_Validation) isGetDeviceCountResponse_Error_Reason() {}

// Ошибка при установке пресета
type PostDeviceInstallPresetResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing_
	Reason isPostDeviceInstallPresetResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostDeviceInstallPresetResponse_Error) Reset() {
	*x = PostDeviceInstallPresetResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceInstallPresetResponse_Error) ProtoMessage() {}

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

func (m *PostDeviceInstallPresetResponse_Error) GetReason() isPostDeviceInstallPresetResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostDeviceInstallPresetResponse_Error) GetPresetStatusIsProcessing() *PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing {
	if x, ok := x.GetReason().(*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing_); ok {
		return x.PresetStatusIsProcessing
	}
	return nil
}

type isPostDeviceInstallPresetResponse_Error_Reason interface {
	isPostDeviceInstallPresetResponse_Error_Reason()
}

type PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing_ struct {
	// Пресет в процессе установки
	PresetStatusIsProcessing *PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing `protobuf:"bytes,1,opt,name=preset_status_is_processing,json=presetStatusIsProcessing,proto3,oneof"`
}

func (*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing_) isPostDeviceInstallPresetResponse_Error_Reason() {
}

// Пресет в процессе установки
type PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing) Reset() {
	*x = PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing) ProtoMessage() {}

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

// Ошибка замены устройства
type PostDeviceReplaceResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostDeviceReplaceResponse_Error_ValidationError
	//	*PostDeviceReplaceResponse_Error_HostExists_
	//	*PostDeviceReplaceResponse_Error_MacAddressExists_
	//	*PostDeviceReplaceResponse_Error_SerialNumberExists_
	//	*PostDeviceReplaceResponse_Error_LoginExists_
	//	*PostDeviceReplaceResponse_Error_LoginIsRequired_
	//	*PostDeviceReplaceResponse_Error_ReinstallError
	Reason isPostDeviceReplaceResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostDeviceReplaceResponse_Error) Reset() {
	*x = PostDeviceReplaceResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReplaceResponse_Error) ProtoMessage() {}

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

func (m *PostDeviceReplaceResponse_Error) GetReason() isPostDeviceReplaceResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetValidationError() *ValidationError {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_ValidationError); ok {
		return x.ValidationError
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetHostExists() *PostDeviceReplaceResponse_Error_HostExists {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_HostExists_); ok {
		return x.HostExists
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetMacAddressExists() *PostDeviceReplaceResponse_Error_MacAddressExists {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_MacAddressExists_); ok {
		return x.MacAddressExists
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetSerialNumberExists() *PostDeviceReplaceResponse_Error_SerialNumberExists {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_SerialNumberExists_); ok {
		return x.SerialNumberExists
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetLoginExists() *PostDeviceReplaceResponse_Error_LoginExists {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_LoginExists_); ok {
		return x.LoginExists
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetLoginIsRequired() *PostDeviceReplaceResponse_Error_LoginIsRequired {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_LoginIsRequired_); ok {
		return x.LoginIsRequired
	}
	return nil
}

func (x *PostDeviceReplaceResponse_Error) GetReinstallError() *ReinstallError {
	if x, ok := x.GetReason().(*PostDeviceReplaceResponse_Error_ReinstallError); ok {
		return x.ReinstallError
	}
	return nil
}

type isPostDeviceReplaceResponse_Error_Reason interface {
	isPostDeviceReplaceResponse_Error_Reason()
}

type PostDeviceReplaceResponse_Error_ValidationError struct {
	// Ошибка валидации
	ValidationError *ValidationError `protobuf:"bytes,1,opt,name=validation_error,json=validationError,proto3,oneof"`
}

type PostDeviceReplaceResponse_Error_HostExists_ struct {
	// На платформе уже существует устройство с таким хостом
	HostExists *PostDeviceReplaceResponse_Error_HostExists `protobuf:"bytes,2,opt,name=host_exists,json=hostExists,proto3,oneof"`
}

type PostDeviceReplaceResponse_Error_MacAddressExists_ struct {
	// На платформе уже существует устройство с таким MAC-адресом
	MacAddressExists *PostDeviceReplaceResponse_Error_MacAddressExists `protobuf:"bytes,3,opt,name=mac_address_exists,json=macAddressExists,proto3,oneof"`
}

type PostDeviceReplaceResponse_Error_SerialNumberExists_ struct {
	// На платформе уже существует устройство с таким серийным номером
	SerialNumberExists *PostDeviceReplaceResponse_Error_SerialNumberExists `protobuf:"bytes,4,opt,name=serial_number_exists,json=serialNumberExists,proto3,oneof"`
}

type PostDeviceReplaceResponse_Error_LoginExists_ struct {
	// На платформе уже существует устройство с таким логином (для устройст модели "Спутник")
	LoginExists *PostDeviceReplaceResponse_Error_LoginExists `protobuf:"bytes,5,opt,name=login_exists,json=loginExists,proto3,oneof"`
}

type PostDeviceReplaceResponse_Error_LoginIsRequired_ struct {
	// Отсутствует поле Login для модели "Спутник"
	LoginIsRequired *PostDeviceReplaceResponse_Error_LoginIsRequired `protobuf:"bytes,6,opt,name=login_is_required,json=loginIsRequired,proto3,oneof"`
}

type PostDeviceReplaceResponse_Error_ReinstallError struct {
	// Ошибка реинстала
	ReinstallError *ReinstallError `protobuf:"bytes,7,opt,name=reinstall_error,json=reinstallError,proto3,oneof"`
}

func (*PostDeviceReplaceResponse_Error_ValidationError) isPostDeviceReplaceResponse_Error_Reason() {}

func (*PostDeviceReplaceResponse_Error_HostExists_) isPostDeviceReplaceResponse_Error_Reason() {}

func (*PostDeviceReplaceResponse_Error_MacAddressExists_) isPostDeviceReplaceResponse_Error_Reason() {
}

func (*PostDeviceReplaceResponse_Error_SerialNumberExists_) isPostDeviceReplaceResponse_Error_Reason() {
}

func (*PostDeviceReplaceResponse_Error_LoginExists_) isPostDeviceReplaceResponse_Error_Reason() {}

func (*PostDeviceReplaceResponse_Error_LoginIsRequired_) isPostDeviceReplaceResponse_Error_Reason() {}

func (*PostDeviceReplaceResponse_Error_ReinstallError) isPostDeviceReplaceResponse_Error_Reason() {}

// На платформе уже существует устройство с таким хостом
type PostDeviceReplaceResponse_Error_HostExists struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostDeviceReplaceResponse_Error_HostExists) Reset() {
	*x = PostDeviceReplaceResponse_Error_HostExists{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReplaceResponse_Error_HostExists) ProtoMessage() {}

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

// На платформе уже существует устройство с таким MAC-адресом
type PostDeviceReplaceResponse_Error_MacAddressExists struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostDeviceReplaceResponse_Error_MacAddressExists) Reset() {
	*x = PostDeviceReplaceResponse_Error_MacAddressExists{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReplaceResponse_Error_MacAddressExists) ProtoMessage() {}

func (x *PostDeviceReplaceResponse_Error_MacAddressExists) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[78]
	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 PostDeviceReplaceResponse_Error_MacAddressExists.ProtoReflect.Descriptor instead.
func (*PostDeviceReplaceResponse_Error_MacAddressExists) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{21, 0, 1}
}

// На платформе уже существует устройство с таким серийным номером
type PostDeviceReplaceResponse_Error_SerialNumberExists struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostDeviceReplaceResponse_Error_SerialNumberExists) Reset() {
	*x = PostDeviceReplaceResponse_Error_SerialNumberExists{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReplaceResponse_Error_SerialNumberExists) ProtoMessage() {}

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

// На платформе уже существует устройство с таким логином (для устройст модели "Спутник")
type PostDeviceReplaceResponse_Error_LoginExists struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostDeviceReplaceResponse_Error_LoginExists) Reset() {
	*x = PostDeviceReplaceResponse_Error_LoginExists{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReplaceResponse_Error_LoginExists) ProtoMessage() {}

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

// Отсутствует поле Login для модели "Спутник"
type PostDeviceReplaceResponse_Error_LoginIsRequired struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostDeviceReplaceResponse_Error_LoginIsRequired) Reset() {
	*x = PostDeviceReplaceResponse_Error_LoginIsRequired{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReplaceResponse_Error_LoginIsRequired) ProtoMessage() {}

func (x *PostDeviceReplaceResponse_Error_LoginIsRequired) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[81]
	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 PostDeviceReplaceResponse_Error_LoginIsRequired.ProtoReflect.Descriptor instead.
func (*PostDeviceReplaceResponse_Error_LoginIsRequired) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{21, 0, 4}
}

// Ошибка переконфигурирования устройства
type PostDeviceReconfigureResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostDeviceReconfigureResponse_Error_ValidationError
	//	*PostDeviceReconfigureResponse_Error_ReinstallError
	Reason isPostDeviceReconfigureResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostDeviceReconfigureResponse_Error) Reset() {
	*x = PostDeviceReconfigureResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceReconfigureResponse_Error) ProtoMessage() {}

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

func (m *PostDeviceReconfigureResponse_Error) GetReason() isPostDeviceReconfigureResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostDeviceReconfigureResponse_Error) GetValidationError() *ValidationError {
	if x, ok := x.GetReason().(*PostDeviceReconfigureResponse_Error_ValidationError); ok {
		return x.ValidationError
	}
	return nil
}

func (x *PostDeviceReconfigureResponse_Error) GetReinstallError() *ReinstallError {
	if x, ok := x.GetReason().(*PostDeviceReconfigureResponse_Error_ReinstallError); ok {
		return x.ReinstallError
	}
	return nil
}

type isPostDeviceReconfigureResponse_Error_Reason interface {
	isPostDeviceReconfigureResponse_Error_Reason()
}

type PostDeviceReconfigureResponse_Error_ValidationError struct {
	// Ошибка валидации
	ValidationError *ValidationError `protobuf:"bytes,1,opt,name=validation_error,json=validationError,proto3,oneof"`
}

type PostDeviceReconfigureResponse_Error_ReinstallError struct {
	// Ошибка реинстала
	ReinstallError *ReinstallError `protobuf:"bytes,2,opt,name=reinstall_error,json=reinstallError,proto3,oneof"`
}

func (*PostDeviceReconfigureResponse_Error_ValidationError) isPostDeviceReconfigureResponse_Error_Reason() {
}

func (*PostDeviceReconfigureResponse_Error_ReinstallError) isPostDeviceReconfigureResponse_Error_Reason() {
}

// Статусы
type GetDeviceConfigurationStatusesResponse_Statuses struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Статусы конфигурации устройства
	DeviceConfigurationStatuses []*DeviceConfigurationStatus `protobuf:"bytes,1,rep,name=device_configuration_statuses,json=deviceConfigurationStatuses,proto3" json:"device_configuration_statuses,omitempty"`
	// Статус камеры
	CameraStatus *CameraStatus `protobuf:"bytes,2,opt,name=camera_status,json=cameraStatus,proto3" json:"camera_status,omitempty"`
	// Статус синхронизации
	SyncStatus *SyncStatus `protobuf:"bytes,3,opt,name=sync_status,json=syncStatus,proto3" json:"sync_status,omitempty"`
	// Статус устройства
	DeviceStatusType Device_StatusType `protobuf:"varint,4,opt,name=device_status_type,json=deviceStatusType,proto3,enum=keyapis.device.v1.Device_StatusType" json:"device_status_type,omitempty"`
}

func (x *GetDeviceConfigurationStatusesResponse_Statuses) Reset() {
	*x = GetDeviceConfigurationStatusesResponse_Statuses{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusesResponse_Statuses) ProtoMessage() {}

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

func (x *GetDeviceConfigurationStatusesResponse_Statuses) GetDeviceConfigurationStatuses() []*DeviceConfigurationStatus {
	if x != nil {
		return x.DeviceConfigurationStatuses
	}
	return nil
}

func (x *GetDeviceConfigurationStatusesResponse_Statuses) GetCameraStatus() *CameraStatus {
	if x != nil {
		return x.CameraStatus
	}
	return nil
}

func (x *GetDeviceConfigurationStatusesResponse_Statuses) GetSyncStatus() *SyncStatus {
	if x != nil {
		return x.SyncStatus
	}
	return nil
}

func (x *GetDeviceConfigurationStatusesResponse_Statuses) GetDeviceStatusType() Device_StatusType {
	if x != nil {
		return x.DeviceStatusType
	}
	return Device_STATUS_TYPE_UNKNOWN
}

// Ошибка
type GetDeviceConfigurationStatusesResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetDeviceConfigurationStatusesResponse_Error_ValidationError
	Reason isGetDeviceConfigurationStatusesResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *GetDeviceConfigurationStatusesResponse_Error) Reset() {
	*x = GetDeviceConfigurationStatusesResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusesResponse_Error) ProtoMessage() {}

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

func (m *GetDeviceConfigurationStatusesResponse_Error) GetReason() isGetDeviceConfigurationStatusesResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetDeviceConfigurationStatusesResponse_Error) GetValidationError() *ValidationError {
	if x, ok := x.GetReason().(*GetDeviceConfigurationStatusesResponse_Error_ValidationError); ok {
		return x.ValidationError
	}
	return nil
}

type isGetDeviceConfigurationStatusesResponse_Error_Reason interface {
	isGetDeviceConfigurationStatusesResponse_Error_Reason()
}

type GetDeviceConfigurationStatusesResponse_Error_ValidationError struct {
	// Ошибка валидации
	ValidationError *ValidationError `protobuf:"bytes,1,opt,name=validation_error,json=validationError,proto3,oneof"`
}

func (*GetDeviceConfigurationStatusesResponse_Error_ValidationError) isGetDeviceConfigurationStatusesResponse_Error_Reason() {
}

// Ошибка запроса сохранения статуса конфигурации устройства
type PostDeviceConfigurationStatusResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*PostDeviceConfigurationStatusResponse_Error_Validation
	Reason isPostDeviceConfigurationStatusResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *PostDeviceConfigurationStatusResponse_Error) Reset() {
	*x = PostDeviceConfigurationStatusResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostDeviceConfigurationStatusResponse_Error) ProtoMessage() {}

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

func (m *PostDeviceConfigurationStatusResponse_Error) GetReason() isPostDeviceConfigurationStatusResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *PostDeviceConfigurationStatusResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*PostDeviceConfigurationStatusResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isPostDeviceConfigurationStatusResponse_Error_Reason interface {
	isPostDeviceConfigurationStatusResponse_Error_Reason()
}

type PostDeviceConfigurationStatusResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*PostDeviceConfigurationStatusResponse_Error_Validation) isPostDeviceConfigurationStatusResponse_Error_Reason() {
}

// Ошибка
type GetDeviceConfigurationStatusGroupedListResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetDeviceConfigurationStatusGroupedListResponse_Error_Validation
	Reason isGetDeviceConfigurationStatusGroupedListResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *GetDeviceConfigurationStatusGroupedListResponse_Error) Reset() {
	*x = GetDeviceConfigurationStatusGroupedListResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetDeviceConfigurationStatusGroupedListResponse_Error) ProtoMessage() {}

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

func (m *GetDeviceConfigurationStatusGroupedListResponse_Error) GetReason() isGetDeviceConfigurationStatusGroupedListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetDeviceConfigurationStatusGroupedListResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetDeviceConfigurationStatusGroupedListResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetDeviceConfigurationStatusGroupedListResponse_Error_Reason interface {
	isGetDeviceConfigurationStatusGroupedListResponse_Error_Reason()
}

type GetDeviceConfigurationStatusGroupedListResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetDeviceConfigurationStatusGroupedListResponse_Error_Validation) isGetDeviceConfigurationStatusGroupedListResponse_Error_Reason() {
}

// Сип-логин отсутствует на устройстве
type ReinstallError_SipLoginIsMissing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReinstallError_SipLoginIsMissing) Reset() {
	*x = ReinstallError_SipLoginIsMissing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReinstallError_SipLoginIsMissing) ProtoMessage() {}

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

// Параметр SIP
type Preset_Sip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Хост.
	// # Диапазон: 5..256
	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// Порт.
	// # Диапазон: 1..65536
	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	// Хост reg.
	// # Диапазон: 5..256
	RegHost string `protobuf:"bytes,3,opt,name=reg_host,json=regHost,proto3" json:"reg_host,omitempty"`
	// Порт reg.
	// # Диапазон: 1..65536
	RegPort int32 `protobuf:"varint,4,opt,name=reg_port,json=regPort,proto3" json:"reg_port,omitempty"`
	// Хост proxy.
	// # Диапазон: 5..256
	ProxyHost string `protobuf:"bytes,5,opt,name=proxy_host,json=proxyHost,proto3" json:"proxy_host,omitempty"`
	// Порт proxy.
	// # Диапазон: 1..65536
	ProxyPort int32 `protobuf:"varint,6,opt,name=proxy_port,json=proxyPort,proto3" json:"proxy_port,omitempty"`
}

func (x *Preset_Sip) Reset() {
	*x = Preset_Sip{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_Sip) ProtoMessage() {}

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

func (x *Preset_Sip) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

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

func (x *Preset_Sip) GetRegHost() string {
	if x != nil {
		return x.RegHost
	}
	return ""
}

func (x *Preset_Sip) GetRegPort() int32 {
	if x != nil {
		return x.RegPort
	}
	return 0
}

func (x *Preset_Sip) GetProxyHost() string {
	if x != nil {
		return x.ProxyHost
	}
	return ""
}

func (x *Preset_Sip) GetProxyPort() int32 {
	if x != nil {
		return x.ProxyPort
	}
	return 0
}

// Параметр NTP
type Preset_Ntp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Хост.
	// # Диапазон: 5..256
	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// Порт.
	// # Диапазон: 1..65536
	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

func (x *Preset_Ntp) Reset() {
	*x = Preset_Ntp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_Ntp) ProtoMessage() {}

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

func (x *Preset_Ntp) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

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

// Параметр Syslog
type Preset_Syslog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Хост.
	// # Диапазон: 5..256
	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// Порт.
	// # Диапазон: 1..65536
	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	// Протокол
	ProtocolType Preset_Syslog_ProtocolType `protobuf:"varint,3,opt,name=protocol_type,json=protocolType,proto3,enum=keyapis.device.v1.Preset_Syslog_ProtocolType" json:"protocol_type,omitempty"`
}

func (x *Preset_Syslog) Reset() {
	*x = Preset_Syslog{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_Syslog) ProtoMessage() {}

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

func (x *Preset_Syslog) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

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

func (x *Preset_Syslog) GetProtocolType() Preset_Syslog_ProtocolType {
	if x != nil {
		return x.ProtocolType
	}
	return Preset_Syslog_PROTOCOL_TYPE_UNKNOWN
}

// Помещение
type Preset_Room struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Номер телефона.
	// # Диапазон: 5..14
	Phone string `protobuf:"bytes,1,opt,name=phone,proto3" json:"phone,omitempty"`
	// Номер помещения.
	// # Диапазон: 1..10000
	Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"`
}

func (x *Preset_Room) Reset() {
	*x = Preset_Room{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_Room) ProtoMessage() {}

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

func (x *Preset_Room) GetPhone() string {
	if x != nil {
		return x.Phone
	}
	return ""
}

func (x *Preset_Room) GetNum() int32 {
	if x != nil {
		return x.Num
	}
	return 0
}

// Параметры конфигурации видео
type Preset_VideoConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип пресета
	QualityType Preset_VideoConfig_QualityType `protobuf:"varint,1,opt,name=quality_type,json=qualityType,proto3,enum=keyapis.device.v1.Preset_VideoConfig_QualityType" json:"quality_type,omitempty"`
	// Пользователь
	RtspUser *Preset_VideoConfig_RtspUser `protobuf:"bytes,2,opt,name=rtsp_user,json=rtspUser,proto3" json:"rtsp_user,omitempty"`
}

func (x *Preset_VideoConfig) Reset() {
	*x = Preset_VideoConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_VideoConfig) ProtoMessage() {}

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

func (x *Preset_VideoConfig) GetQualityType() Preset_VideoConfig_QualityType {
	if x != nil {
		return x.QualityType
	}
	return Preset_VideoConfig_QUALITY_TYPE_UNKNOWN
}

func (x *Preset_VideoConfig) GetRtspUser() *Preset_VideoConfig_RtspUser {
	if x != nil {
		return x.RtspUser
	}
	return nil
}

// Параметр DTMF
type Preset_Dtmf struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Код.
	// # Диапазон: 1..1
	Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
	// Индекс реле.
	// # Диапазон: 0..64
	RelayIndex int32 `protobuf:"varint,2,opt,name=relay_index,json=relayIndex,proto3" json:"relay_index,omitempty"`
}

func (x *Preset_Dtmf) Reset() {
	*x = Preset_Dtmf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_Dtmf) ProtoMessage() {}

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

func (x *Preset_Dtmf) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *Preset_Dtmf) GetRelayIndex() int32 {
	if x != nil {
		return x.RelayIndex
	}
	return 0
}

// Распознование лиц
type Preset_FaceRecognition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Адрес
	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// Альтернативный адрес
	AltHost string `protobuf:"bytes,2,opt,name=alt_host,json=altHost,proto3" json:"alt_host,omitempty"`
	// Путь запроса к серверу
	Endpoint string `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Токен
	AuthToken string `protobuf:"bytes,4,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"`
	// Тип конфигурации
	ConfigurationType Preset_FaceRecognition_ConfigurationType `protobuf:"varint,5,opt,name=configuration_type,json=configurationType,proto3,enum=keyapis.device.v1.Preset_FaceRecognition_ConfigurationType" json:"configuration_type,omitempty"`
	// Идентификатор источника в identix
	OriginId string `protobuf:"bytes,6,opt,name=origin_id,json=originId,proto3" json:"origin_id,omitempty"`
	// Идентификаторы групп профилей в identix
	GroupIds []int32 `protobuf:"varint,7,rep,packed,name=group_ids,json=groupIds,proto3" json:"group_ids,omitempty"`
}

func (x *Preset_FaceRecognition) Reset() {
	*x = Preset_FaceRecognition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_FaceRecognition) ProtoMessage() {}

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

func (x *Preset_FaceRecognition) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *Preset_FaceRecognition) GetAltHost() string {
	if x != nil {
		return x.AltHost
	}
	return ""
}

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

func (x *Preset_FaceRecognition) GetAuthToken() string {
	if x != nil {
		return x.AuthToken
	}
	return ""
}

func (x *Preset_FaceRecognition) GetConfigurationType() Preset_FaceRecognition_ConfigurationType {
	if x != nil {
		return x.ConfigurationType
	}
	return Preset_FaceRecognition_CONFIGURATION_TYPE_UNKNOWN
}

func (x *Preset_FaceRecognition) GetOriginId() string {
	if x != nil {
		return x.OriginId
	}
	return ""
}

func (x *Preset_FaceRecognition) GetGroupIds() []int32 {
	if x != nil {
		return x.GroupIds
	}
	return nil
}

// Ошибка сохранения.
// Эти проверки выполняются при работе с базой данных и сторонними сервисами
type Preset_SavingError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*Preset_SavingError_Conflict_
	//	*Preset_SavingError_NotAllowedForDefault_
	Reason isPreset_SavingError_Reason `protobuf_oneof:"reason"`
}

func (x *Preset_SavingError) Reset() {
	*x = Preset_SavingError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_SavingError) ProtoMessage() {}

func (x *Preset_SavingError) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[95]
	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 Preset_SavingError.ProtoReflect.Descriptor instead.
func (*Preset_SavingError) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{40, 7}
}

func (m *Preset_SavingError) GetReason() isPreset_SavingError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *Preset_SavingError) GetConflict() *Preset_SavingError_Conflict {
	if x, ok := x.GetReason().(*Preset_SavingError_Conflict_); ok {
		return x.Conflict
	}
	return nil
}

func (x *Preset_SavingError) GetNotAllowedForDefault() *Preset_SavingError_NotAllowedForDefault {
	if x, ok := x.GetReason().(*Preset_SavingError_NotAllowedForDefault_); ok {
		return x.NotAllowedForDefault
	}
	return nil
}

type isPreset_SavingError_Reason interface {
	isPreset_SavingError_Reason()
}

type Preset_SavingError_Conflict_ struct {
	// Конфликт версий
	Conflict *Preset_SavingError_Conflict `protobuf:"bytes,1,opt,name=conflict,proto3,oneof"`
}

type Preset_SavingError_NotAllowedForDefault_ struct {
	// Запрещено для дефолтного пресета
	NotAllowedForDefault *Preset_SavingError_NotAllowedForDefault `protobuf:"bytes,2,opt,name=not_allowed_for_default,json=notAllowedForDefault,proto3,oneof"`
}

func (*Preset_SavingError_Conflict_) isPreset_SavingError_Reason() {}

func (*Preset_SavingError_NotAllowedForDefault_) isPreset_SavingError_Reason() {}

// Пользователь
type Preset_VideoConfig_RtspUser struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Имя пользователя.
	// # Диапазон: 3..256
	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	// Пароль.
	// # Диапазон: 3..256
	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *Preset_VideoConfig_RtspUser) Reset() {
	*x = Preset_VideoConfig_RtspUser{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_VideoConfig_RtspUser) ProtoMessage() {}

func (x *Preset_VideoConfig_RtspUser) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[96]
	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 Preset_VideoConfig_RtspUser.ProtoReflect.Descriptor instead.
func (*Preset_VideoConfig_RtspUser) Descriptor() ([]byte, []int) {
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP(), []int{40, 4, 0}
}

func (x *Preset_VideoConfig_RtspUser) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *Preset_VideoConfig_RtspUser) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

// Конфликт версий.
// Причины:
// - В базе хранится другая версия строки, значения changed_at отличаются
type Preset_SavingError_Conflict struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Preset_SavingError_Conflict) Reset() {
	*x = Preset_SavingError_Conflict{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_SavingError_Conflict) ProtoMessage() {}

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

// Недоступно для дефолтного пресета.
// Причины:
// - Смена статуса на Архивный
type Preset_SavingError_NotAllowedForDefault struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Preset_SavingError_NotAllowedForDefault) Reset() {
	*x = Preset_SavingError_NotAllowedForDefault{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Preset_SavingError_NotAllowedForDefault) ProtoMessage() {}

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

var File_keyapis_device_v1_keyapis_device_device_v1_proto protoreflect.FileDescriptor

var file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDesc = []byte{
	0x0a, 0x30, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x31, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x12, 0x11, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x31, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x36, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20,
	0x0a, 0x09, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64,
	0x12, 0x71, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x17, 0xe0, 0x41, 0x03, 0xfa, 0xd2, 0xe4,
	0x93, 0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x18,
	0x01, 0x52, 0x10, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x17, 0xe0,
	0x41, 0x03, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43,
	0x41, 0x54, 0x45, 0x44, 0x18, 0x01, 0x52, 0x12, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x46, 0x0a, 0x13, 0x69, 0x73,
	0x5f, 0x73, 0x6c, 0x33, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x17, 0xe0, 0x41, 0x02, 0xfa, 0xd2, 0xe4, 0x93,
	0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x18, 0x01,
	0x52, 0x10, 0x69, 0x73, 0x53, 0x6c, 0x33, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x1e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x6d,
	0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0a,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65,
	0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65,
	0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x63,
	0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x6e, 0x79, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26,
	0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x74, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x74, 0x67,
	0x72, 0x61, 0x6d, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x74, 0x63, 0x5f, 0x6f, 0x66,
	0x66, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x09, 0x75, 0x74, 0x63, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x12, 0x5d, 0x0a, 0x13, 0x73, 0x70, 0x75, 0x74, 0x6e, 0x69, 0x6b, 0x5f,
	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x75,
	0x74, 0x6e, 0x69, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52,
	0x12, 0x73, 0x70, 0x75, 0x74, 0x6e, 0x69, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x69, 0x64,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x49, 0x64, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61,
	0x67, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x15,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e,
	0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e,
	0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x0b,
	0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x09, 0x73,
	0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x69, 0x70, 0x54, 0x72, 0x75,
	0x6e, 0x6b, 0x52, 0x08, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x3e, 0x0a, 0x08,
	0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x76, 0x0a, 0x1c,
	0x61, 0x75, 0x74, 0x6f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x1b, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75,
	0x74, 0x6f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
	0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0a, 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x69, 0x0a, 0x12, 0x53,
	0x70, 0x75, 0x74, 0x6e, 0x69, 0x6b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
	0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x08,
	0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, 0x4e, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74,
	0x75, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x6e,
	0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x1a, 0xdf, 0x08, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x12, 0x73, 0x0a, 0x18, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74,
	0x65, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69,
	0x6e, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68,
	0x52, 0x16, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x72,
	0x69, 0x78, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x57, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x63,
	0x69, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x30, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x43, 0x61,
	0x6c, 0x6c, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x43, 0x61, 0x6c,
	0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x12, 0x5d, 0x0a, 0x10, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f,
	0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
	0x73, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0f, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x6c, 0x33, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x6c, 0x33, 0x4d, 0x6f, 0x64, 0x65,
	0x52, 0x07, 0x73, 0x6c, 0x33, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x65, 0x6d, 0x65,
	0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x30, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x43,
	0x61, 0x6c, 0x6c, 0x52, 0x0d, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x61,
	0x6c, 0x6c, 0x1a, 0x3c, 0x0a, 0x16, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65,
	0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x0a,
	0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x1a, 0x98, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x43, 0x61,
	0x6c, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, 0x45,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6f, 0x72, 0x70, 0x6f,
	0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x6f, 0x6f,
	0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x69, 0x70, 0x5f, 0x6e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
	0x52, 0x09, 0x73, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x31, 0x0a, 0x0b, 0x41,
	0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73,
	0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x35,
	0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x7f, 0x0a, 0x07, 0x53, 0x6c, 0x33, 0x4d, 0x6f, 0x64, 0x65,
	0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x12, 0x50, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x13, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x1a, 0x70, 0x0a, 0x0d, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65,
	0x6e, 0x63, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x63, 0x61,
	0x6c, 0x6c, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x69, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x41,
	0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x65, 0x6d, 0x65, 0x72,
	0x67, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e,
	0x63, 0x79, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x78, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70,
	0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0f, 0x70,
	0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x1a, 0x91, 0x02, 0x0a, 0x08, 0x53, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12,
	0x22, 0x0a, 0x0a, 0x61, 0x62, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x62, 0x63, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4a, 0x0a, 0x08, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x53, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x2e, 0x53, 0x69, 0x70,
	0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x69, 0x70, 0x54, 0x79,
	0x70, 0x65, 0x22, 0x32, 0x0a, 0x07, 0x53, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
	0x10, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
	0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x49, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a,
	0x03, 0x4e, 0x47, 0x4e, 0x10, 0x02, 0x1a, 0x64, 0x0a, 0x08, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x5f, 0x73, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0c, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x69, 0x70, 0x12, 0x2d, 0x0a,
	0x10, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x68, 0x6f, 0x6e,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x69, 0x73,
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x1a, 0x40, 0x0a, 0x1a,
	0x41, 0x75, 0x74, 0x6f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
	0x72, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x73,
	0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xaf,
	0x02, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x32,
	0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, 0x67,
	0x69, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x5e, 0x0a, 0x10,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x75, 0x73,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x0e,
	0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c,
	0x0a, 0x18, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59,
	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
	0x41, 0x50, 0x49, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x45, 0x42, 0x10, 0x02, 0x12, 0x08,
	0x0a, 0x04, 0x52, 0x54, 0x53, 0x50, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x53, 0x55, 0x10, 0x04,
	0x1a, 0xde, 0x0f, 0x0a, 0x0b, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x12, 0x6d, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f,
	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x61,
	0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12,
	0x73, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52,
	0x13, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x12, 0x6a, 0x0a, 0x14, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f,
	0x77, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61,
	0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c,
	0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x11, 0x6e,
	0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x6d, 0x0a, 0x15, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f,
	0x66, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e,
	0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65,
	0x64, 0x46, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x74,
	0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12,
	0x8a, 0x01, 0x0a, 0x20, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x73, 0x5f, 0x65,
	0x78, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6f,
	0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x1b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6f, 0x72,
	0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x6a, 0x0a, 0x14,
	0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x65,
	0x78, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x2e, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x73, 0x45, 0x78,
	0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x1b, 0x63, 0x61, 0x70, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x75,
	0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49,
	0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52,
	0x18, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x73, 0x4e, 0x6f, 0x74,
	0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x97, 0x01, 0x0a, 0x25, 0x61, 0x62,
	0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x69, 0x73,
	0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x2e, 0x41, 0x62, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x4f, 0x6e, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x48, 0x00, 0x52, 0x1f, 0x61, 0x62, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x45,
	0x78, 0x69, 0x73, 0x74, 0x4f, 0x6e, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x18, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x69, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x50, 0x75, 0x62,
	0x6c, 0x69, 0x63, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x73, 0x45, 0x78, 0x69,
	0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x76, 0x0a, 0x18, 0x63,
	0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x6f,
	0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x52, 0x6f,
	0x6f, 0x6d, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x15, 0x63, 0x6f,
	0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x5a, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x69, 0x73, 0x5f,
	0x65, 0x78, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x48,
	0x00, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12,
	0x78, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x61,
	0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x3c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76,
	0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x61, 0x6c, 0x73, 0x41, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x48,
	0x00, 0x52, 0x16, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x41, 0x72,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x70, 0x0a, 0x16, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
	0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f,
	0x72, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x73, 0x4e,
	0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x1a, 0x13, 0x0a, 0x11, 0x4d,
	0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x1a, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x1a, 0x13, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x41, 0x6c,
	0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x14, 0x0a, 0x12,
	0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x4d, 0x6f, 0x64,
	0x65, 0x6c, 0x1a, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x46, 0x6f, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x1a, 0x13, 0x0a, 0x11, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49,
	0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x1a, 0x77, 0x0a, 0x18, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
	0x65, 0x64, 0x12, 0x5b, 0x0a, 0x15, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x27, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x61, 0x70, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x13, 0x6d, 0x6f, 0x64, 0x65,
	0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x1a,
	0x43, 0x0a, 0x1f, 0x41, 0x62, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x45, 0x78,
	0x69, 0x73, 0x74, 0x4f, 0x6e, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x49, 0x64, 0x1a, 0x17, 0x0a, 0x15, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x1a, 0x17, 0x0a,
	0x15, 0x43, 0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x6f,
	0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x0e, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49,
	0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x1a, 0x18, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 0x73, 0x41, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x1a, 0x15, 0x0a, 0x13, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75,
	0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x1a, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54,
	0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x1a, 0x14, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a,
	0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x08, 0x01, 0x12, 0x24, 0x0a, 0x0a,
	0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x1a, 0x14, 0xfa, 0xd2,
	0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44,
	0x08, 0x01, 0x12, 0x21, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x1a,
	0x14, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41,
	0x54, 0x45, 0x44, 0x08, 0x01, 0x12, 0x1f, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03,
	0x1a, 0x14, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43,
	0x41, 0x54, 0x45, 0x44, 0x08, 0x01, 0x1a, 0x14, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a,
	0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x18, 0x01, 0x22, 0xbe, 0x01, 0x0a,
	0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52,
	0x43, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x43, 0x41,
	0x4d, 0x45, 0x52, 0x41, 0x10, 0x02, 0x1a, 0x14, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a,
	0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x08, 0x01, 0x12, 0x0b, 0x0a, 0x07,
	0x42, 0x41, 0x52, 0x52, 0x49, 0x45, 0x52, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x41, 0x54,
	0x45, 0x10, 0x04, 0x12, 0x2e, 0x0a, 0x14, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x4f,
	0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x41, 0x4e, 0x45, 0x4c, 0x10, 0x05, 0x1a, 0x14, 0xfa,
	0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45,
	0x44, 0x08, 0x01, 0x12, 0x28, 0x0a, 0x0e, 0x4f, 0x55, 0x54, 0x44, 0x4f, 0x4f, 0x52, 0x5f, 0x43,
	0x41, 0x4d, 0x45, 0x52, 0x41, 0x10, 0x06, 0x1a, 0x14, 0xfa, 0xd2, 0xe4, 0x93, 0x02, 0x0c, 0x12,
	0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x08, 0x01, 0x22, 0xd0, 0x03,
	0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4d,
	0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
	0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x4f, 0x44, 0x4f, 0x53, 0x38, 0x10, 0x01, 0x12,
	0x0a, 0x0a, 0x06, 0x42, 0x45, 0x57, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x51,
	0x54, 0x45, 0x43, 0x48, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x41, 0x54, 0x45, 0x4b, 0x53,
	0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x4e, 0x42, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4d,
	0x41, 0x58, 0x45, 0x54, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x4e,
	0x42, 0x5f, 0x44, 0x4f, 0x32, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x57, 0x41, 0x52,
	0x44, 0x5f, 0x44, 0x53, 0x38, 0x36, 0x30, 0x31, 0x37, 0x43, 0x50, 0x10, 0x08, 0x12, 0x14, 0x0a,
	0x10, 0x42, 0x45, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x44, 0x53, 0x38, 0x35, 0x30, 0x30, 0x36, 0x4d,
	0x50, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x41, 0x48, 0x55, 0x41, 0x5f, 0x56, 0x54, 0x4f,
	0x32, 0x31, 0x30, 0x31, 0x45, 0x5f, 0x50, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x49, 0x4b,
	0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x53, 0x5f, 0x4b, 0x56, 0x38, 0x31, 0x35, 0x35,
	0x5f, 0x49, 0x4d, 0x10, 0x0b, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4f, 0x44, 0x4f, 0x53, 0x38, 0x5f,
	0x32, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4b, 0x55, 0x56, 0x4f, 0x58, 0x5f, 0x52, 0x32,
	0x39, 0x43, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x41, 0x46, 0x45, 0x5f, 0x4c, 0x4f, 0x47,
	0x49, 0x43, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x44,
	0x53, 0x38, 0x36, 0x30, 0x30, 0x36, 0x41, 0x50, 0x10, 0x0f, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x50,
	0x55, 0x54, 0x4e, 0x49, 0x4b, 0x5f, 0x49, 0x4f, 0x10, 0x10, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x45,
	0x57, 0x41, 0x52, 0x44, 0x5f, 0x46, 0x52, 0x10, 0x11, 0x12, 0x0c, 0x0a, 0x08, 0x51, 0x54, 0x45,
	0x43, 0x48, 0x5f, 0x46, 0x52, 0x10, 0x12, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4c, 0x54, 0x45, 0x58,
	0x5f, 0x49, 0x50, 0x41, 0x5f, 0x45, 0x52, 0x5f, 0x30, 0x31, 0x30, 0x10, 0x13, 0x12, 0x11, 0x0a,
	0x0d, 0x42, 0x45, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x4d, 0x49, 0x46, 0x41, 0x52, 0x45, 0x10, 0x14,
	0x12, 0x12, 0x0a, 0x0e, 0x42, 0x41, 0x53, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x41, 0x5f, 0x31, 0x32,
	0x46, 0x42, 0x10, 0x15, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x4b, 0x55, 0x56, 0x4f, 0x58, 0x5f, 0x58,
	0x39, 0x31, 0x35, 0x53, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x55, 0x42, 0x45, 0x54, 0x45,
	0x4b, 0x5f, 0x52, 0x56, 0x5f, 0x33, 0x34, 0x33, 0x34, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x53,
	0x4f, 0x4b, 0x4f, 0x4c, 0x5f, 0x50, 0x4c, 0x55, 0x53, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x42,
	0x45, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x10, 0x19,
	0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17,
	0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49,
	0x4e, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02,
	0x22, 0xf7, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x74, 0x65, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69,
	0x74, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0xab, 0x09, 0x0a, 0x19, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x72, 0x0a, 0x12, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5d,
	0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a,
	0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65,
	0x64, 0x41, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x07,
	0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c,
	0x6f, 0x61, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
	0x64, 0x12, 0x43, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f,
	0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x52,
	0x65, 0x74, 0x72, 0x79, 0x41, 0x74, 0x1a, 0x8e, 0x02, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6c, 0x6f,
	0x61, 0x64, 0x12, 0x64, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x41, 0x75,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x75, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x1a, 0x8f, 0x01, 0x0a, 0x0b, 0x41, 0x75, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x41, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x74, 0x6f, 0x5f, 0x62, 0x65, 0x5f, 0x64, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x74, 0x6f, 0x42, 0x65,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x74,
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a,
	0x1a, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54,
	0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a,
	0x06, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x50,
	0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x49,
	0x50, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x41, 0x54,
	0x45, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x46, 0x49, 0x44, 0x53, 0x10, 0x05, 0x12, 0x09,
	0x0a, 0x05, 0x43, 0x4f, 0x44, 0x45, 0x53, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x43,
	0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12,
	0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x45, 0x52, 0x47, 0x45, 0x10, 0x08, 0x12, 0x0f,
	0x0a, 0x0b, 0x41, 0x55, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x10, 0x09, 0x12,
	0x07, 0x0a, 0x03, 0x53, 0x4c, 0x33, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4d, 0x45, 0x52,
	0x47, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x0b, 0x22, 0x5a, 0x0a, 0x0a,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54,
	0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
	0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01,
	0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50,
	0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43,
	0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x22, 0x93, 0x01, 0x0a, 0x20, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x12, 0x20, 0x0a,
	0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12,
	0x4d, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0x91,
	0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x50, 0x0a,
	0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x57, 0x0a, 0x0a, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55,
	0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
	0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x01,
	0x12, 0x14, 0x0a, 0x10, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x45,
	0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45,
	0x10, 0x03, 0x22, 0x8f, 0x03, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x72,
	0x65, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f,
	0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x66, 0x75, 0x6c, 0x41, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x63, 0x41,
	0x74, 0x22, 0x61, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10,
	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09,
	0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43,
	0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c,
	0x45, 0x44, 0x10, 0x05, 0x22, 0x27, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c, 0x0a,
	0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x14, 0x47,
	0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x74, 0x65, 0x48, 0x00,
	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x47,
	0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xad, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f,
	0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12,
	0x43, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x1a, 0x98, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44,
	0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73,
	0x61, 0x76, 0x69, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42,
	0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x37, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x70, 0x61, 0x67,
	0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61,
	0x67, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x22, 0xf1, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x57, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44,
	0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x50, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x37, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xd8, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x1a, 0x57, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x22, 0x7d, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x09,
	0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x32,
	0x0a, 0x13, 0x69, 0x73, 0x5f, 0x73, 0x6c, 0x33, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01,
	0x52, 0x10, 0x69, 0x73, 0x53, 0x6c, 0x33, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x22, 0x4c, 0x0a, 0x11, 0x50, 0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x22, 0x35, 0x0a, 0x1e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc0, 0x02, 0x0a, 0x1f, 0x50, 0x6f, 0x73, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x65,
	0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
	0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0xc2, 0x01,
	0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x1b, 0x70, 0x72, 0x65, 0x73,
	0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f,
	0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6c, 0x6c, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x49, 0x73, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67,
	0x48, 0x00, 0x52, 0x18, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x49, 0x73, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x1a, 0x1a, 0x0a, 0x18,
	0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x73, 0x50, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x18, 0x50,
	0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
	0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74,
	0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c,
	0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0xa5, 0x07, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x1a, 0xb3, 0x06, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x60, 0x0a, 0x0b, 0x68,
	0x6f, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
	0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x48,
	0x00, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x73, 0x0a,
	0x12, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x69,
	0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f,
	0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4d, 0x61,
	0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x48, 0x00,
	0x52, 0x10, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x73, 0x12, 0x79, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x45, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
	0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65, 0x72, 0x69, 0x61,
	0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x63, 0x0a,
	0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x69,
	0x73, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x69, 0x73, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c,
	0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
	0x64, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c,
	0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x52, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x1a, 0x0c, 0x0a, 0x0a, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73,
	0x1a, 0x12, 0x0a, 0x10, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x45, 0x78,
	0x69, 0x73, 0x74, 0x73, 0x1a, 0x14, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75,
	0x6d, 0x62, 0x65, 0x72, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x1a, 0x0d, 0x0a, 0x0b, 0x4c, 0x6f,
	0x67, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x1a, 0x11, 0x0a, 0x0f, 0x4c, 0x6f, 0x67,
	0x69, 0x6e, 0x49, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06,
	0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x33,
	0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x02, 0x69, 0x64, 0x22, 0xaa, 0x02, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0xb0, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12,
	0x4f, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52,
	0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e,
	0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08,
	0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x22, 0x3c, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xa0,
	0x05, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x12, 0x57, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0xd6, 0x02, 0x0a,
	0x08, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x70, 0x0a, 0x1d, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1b,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x63,
	0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x52, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x62, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f,
	0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42,
	0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x22, 0x6d, 0x0a, 0x24, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x22, 0xa4, 0x02, 0x0a, 0x25, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56,
	0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x57, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12,
	0x44, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42,
	0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x2e, 0x47, 0x65, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x46,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a,
	0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x65, 0x64, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69,
	0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0xbf, 0x02, 0x0a, 0x2f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12,
	0x60, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x1a, 0x57, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x2f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x30, 0x47, 0x65, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x13, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x97, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x12, 0x66, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f,
	0x69, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x33, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x2e, 0x53, 0x69, 0x70, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x73, 0x4d, 0x69,
	0x73, 0x73, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x11, 0x73, 0x69, 0x70, 0x4c, 0x6f, 0x67, 0x69,
	0x6e, 0x49, 0x73, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x1a, 0x13, 0x0a, 0x11, 0x53, 0x69,
	0x70, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x73, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x42,
	0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xad, 0x0b, 0x0a, 0x0c, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x77,
	0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70,
	0x61, 0x6e, 0x79, 0x49, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x74,
	0x67, 0x72, 0x61, 0x6d, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52,
	0x0c, 0x66, 0x6c, 0x61, 0x74, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a,
	0x0e, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0e, 0x32, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x1e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x51, 0x0a,
	0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73,
	0x12, 0x4c, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65,
	0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x69, 0x73, 0x43, 0x6f,
	0x6e, 0x63, 0x69, 0x65, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x50,
	0x0a, 0x16, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67,
	0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x73, 0x44, 0x69,
	0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x12, 0x58, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f,
	0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x17, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x75,
	0x62, 0x6c, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x10, 0x68, 0x61,
	0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x10, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x73, 0x6f, 0x66,
	0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x1e,
	0x69, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x52, 0x1b, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a,
	0x0a, 0x61, 0x62, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x09, 0x61, 0x62, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a,
	0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x49, 0x64, 0x73, 0x12, 0x61, 0x0a, 0x18, 0x73,
	0x79, 0x6e, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x57,
	0x0a, 0x1a, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x65, 0x6e, 0x18, 0x11, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x16, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c,
	0x65, 0x73, 0x73, 0x54, 0x68, 0x65, 0x6e, 0x12, 0x53, 0x0a, 0x18, 0x62, 0x65, 0x67, 0x69, 0x6e,
	0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c,
	0x5f, 0x61, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x15, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63,
	0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x41, 0x74, 0x12, 0x4f, 0x0a, 0x16,
	0x65, 0x6e, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x66, 0x75, 0x6c, 0x5f, 0x61, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x13, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e,
	0x63, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x41, 0x74, 0x12, 0x3e, 0x0a,
	0x0d, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x74, 0x18, 0x14,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x52, 0x0b, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x74, 0x12, 0x3a, 0x0a,
	0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x74, 0x18, 0x15, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
	0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x74, 0x22, 0xed, 0x02, 0x0a, 0x0c, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69,
	0x6e, 0x67, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b,
	0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61,
	0x67, 0x69, 0x6e, 0x67, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22,
	0x48, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19,
	0x0a, 0x15, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x44, 0x10,
	0x01, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07,
	0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x54, 0x10, 0x03, 0x22, 0x3e, 0x0a, 0x0d, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x49,
	0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01,
	0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x02, 0x22, 0xad, 0x03, 0x0a, 0x26, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x46, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69,
	0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x49, 0x64, 0x73, 0x12, 0x6f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x3e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x79, 0x70, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73,
	0x12, 0x47, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x66, 0x6f, 0x72,
	0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42,
	0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64,
	0x79, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x4e, 0x0a, 0x15, 0x72, 0x65, 0x74,
	0x72, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68,
	0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x65, 0x6e, 0x22, 0xaa, 0x03, 0x0a, 0x26, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x50, 0x61,
	0x67, 0x69, 0x6e, 0x67, 0x12, 0x69, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64,
	0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x6e, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x50, 0x61, 0x67, 0x69,
	0x6e, 0x67, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x37, 0x0a,
	0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15,
	0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x56, 0x49, 0x43,
	0x45, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x22, 0x3e, 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x49, 0x52, 0x45, 0x43,
	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
	0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x12, 0x07, 0x0a,
	0x03, 0x41, 0x53, 0x43, 0x10, 0x02, 0x22, 0x49, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74,
	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x61,
	0x74, 0x68, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0x96, 0x13, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x72, 0x66, 0x5f, 0x69,
	0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x6d,
	0x72, 0x66, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x66, 0x49, 0x64,
	0x73, 0x12, 0x43, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x53, 0x69, 0x70, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x03, 0x73, 0x69, 0x70, 0x12, 0x34, 0x0a, 0x03, 0x6e, 0x74, 0x70, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74,
	0x2e, 0x4e, 0x74, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6e, 0x74, 0x70, 0x12, 0x3d,
	0x0a, 0x06, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x12, 0x39, 0x0a,
	0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65,
	0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65,
	0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x18,
	0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74,
	0x2e, 0x44, 0x74, 0x6d, 0x66, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x74, 0x6d, 0x66,
	0x12, 0x54, 0x0a, 0x10, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67,
	0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbf, 0x01, 0x0a, 0x03, 0x53, 0x69, 0x70, 0x12, 0x17,
	0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
	0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x67, 0x48, 0x6f, 0x73, 0x74,
	0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x67, 0x50, 0x6f, 0x72, 0x74,
	0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79,
	0x48, 0x6f, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x6f,
	0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70,
	0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x1a, 0x37, 0x0a, 0x03, 0x4e, 0x74, 0x70, 0x12,
	0x17, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x72,
	0x74, 0x1a, 0xd0, 0x01, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x12, 0x17, 0x0a, 0x04,
	0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x57,
	0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74,
	0x2e, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x54, 0x4f,
	0x43, 0x4f, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
	0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54,
	0x43, 0x50, 0x10, 0x02, 0x1a, 0x38, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x05,
	0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x1a, 0xc7,
	0x02, 0x0a, 0x0b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59,
	0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e,
	0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x51, 0x75, 0x61, 0x6c,
	0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x71, 0x75,
	0x61, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x09, 0x72, 0x74, 0x73,
	0x70, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x52, 0x74, 0x73, 0x70, 0x55, 0x73, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x08, 0x72, 0x74, 0x73, 0x70, 0x55, 0x73, 0x65, 0x72, 0x1a, 0x4c, 0x0a, 0x08, 0x52,
	0x74, 0x73, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3d, 0x0a, 0x0b, 0x51, 0x75, 0x61,
	0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x55, 0x41, 0x4c,
	0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
	0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06,
	0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x1a, 0x40, 0x0a, 0x04, 0x44, 0x74, 0x6d, 0x66,
	0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6c,
	0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
	0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xfc, 0x02, 0x0a, 0x0f, 0x46,
	0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17,
	0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x5f, 0x68,
	0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x74, 0x48, 0x6f,
	0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x75,
	0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x6f, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x46,
	0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67,
	0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x22, 0x40, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a,
	0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59,
	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
	0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x1a, 0xfe, 0x01, 0x0a, 0x0b, 0x53, 0x61,
	0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x08, 0x63, 0x6f, 0x6e,
	0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63,
	0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x12, 0x73, 0x0a, 0x17, 0x6e, 0x6f, 0x74, 0x5f, 0x61,
	0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75,
	0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65,
	0x73, 0x65, 0x74, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e,
	0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x44, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x14, 0x6e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77,
	0x65, 0x64, 0x46, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x0a, 0x0a, 0x08,
	0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x1a, 0x16, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x41,
	0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54,
	0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a,
	0x07, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x10, 0x02, 0x32, 0xc1, 0x12, 0x0a, 0x0d, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7a, 0x0a, 0x09,
	0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
	0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x6c, 0x69, 0x73,
	0x74, 0x30, 0x01, 0x12, 0x8a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x7b, 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x24,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7b, 0x0a,
	0x09, 0x50, 0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a,
	0x1a, 0x15, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
	0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x88, 0x02, 0x01, 0x12, 0xb3, 0x01, 0x0a, 0x17, 0x50,
	0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
	0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x31, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x65, 0x73,
	0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f,
	0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50,
	0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x29, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x64,
	0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74,
	0x12, 0x9d, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
	0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65,
	0x12, 0xaa, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
	0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x28, 0x22, 0x26, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x64,
	0x7d, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0xd0, 0x01,
	0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73,
	0x12, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73,
	0x12, 0xc9, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x37, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x6f, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a,
	0x22, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
	0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xf3, 0x01, 0x0a,
	0x27, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x41, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64,
	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x2f, 0x6c, 0x69, 0x73, 0x74,
	0x30, 0x01, 0x12, 0xf5, 0x01, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x42, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a,
	0x12, 0x38, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
	0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x65, 0x64, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0c, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d,
	0x12, 0x8b, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69,
	0x74, 0x65, 0x12, 0x27, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x42, 0x9a,
	0x01, 0x0a, 0x14, 0x72, 0x75, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x14, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x03, 0x50,
	0x00, 0x5a, 0x12, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x5f, 0x76, 0x31, 0xd8, 0x01, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x0f, 0x4b, 0x45,
	0x59, 0x41, 0x50, 0x49, 0x53, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x56, 0x31, 0xaa, 0x02, 0x11,
	0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x56,
	0x31, 0xca, 0x02, 0x11, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x13, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a,
	0x3a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescOnce sync.Once
	file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescData = file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDesc
)

func file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescGZIP() []byte {
	file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescOnce.Do(func() {
		file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescData = protoimpl.X.CompressGZIP(file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescData)
	})
	return file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDescData
}

var file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes = make([]protoimpl.EnumInfo, 18)
var file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes = make([]protoimpl.MessageInfo, 99)
var file_keyapis_device_v1_keyapis_device_device_v1_proto_goTypes = []interface{}{
	(Device_PresetStatusType)(0),                                           // 0: keyapis.device.v1.Device.PresetStatusType
	(Device_Type)(0),                                                       // 1: keyapis.device.v1.Device.Type
	(Device_ModelType)(0),                                                  // 2: keyapis.device.v1.Device.ModelType
	(Device_StatusType)(0),                                                 // 3: keyapis.device.v1.Device.StatusType
	(Device_SipTrunk_SipType)(0),                                           // 4: keyapis.device.v1.Device.SipTrunk.SipType
	(Device_Credentials_UserAccessType)(0),                                 // 5: keyapis.device.v1.Device.Credentials.UserAccessType
	(DeviceConfigurationStatus_ConfigurationType)(0),                       // 6: keyapis.device.v1.DeviceConfigurationStatus.ConfigurationType
	(DeviceConfigurationStatus_StatusType)(0),                              // 7: keyapis.device.v1.DeviceConfigurationStatus.StatusType
	(CameraStatus_StatusType)(0),                                           // 8: keyapis.device.v1.CameraStatus.StatusType
	(SyncStatus_StatusType)(0),                                             // 9: keyapis.device.v1.SyncStatus.StatusType
	(DevicePaging_OrderByType)(0),                                          // 10: keyapis.device.v1.DevicePaging.OrderByType
	(DevicePaging_DirectionType)(0),                                        // 11: keyapis.device.v1.DevicePaging.DirectionType
	(DeviceConfigurationStatusGroupedPaging_OrderByType)(0),                // 12: keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.OrderByType
	(DeviceConfigurationStatusGroupedPaging_DirectionType)(0),              // 13: keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.DirectionType
	(Preset_StatusType)(0),                                                 // 14: keyapis.device.v1.Preset.StatusType
	(Preset_Syslog_ProtocolType)(0),                                        // 15: keyapis.device.v1.Preset.Syslog.ProtocolType
	(Preset_VideoConfig_QualityType)(0),                                    // 16: keyapis.device.v1.Preset.VideoConfig.QualityType
	(Preset_FaceRecognition_ConfigurationType)(0),                          // 17: keyapis.device.v1.Preset.FaceRecognition.ConfigurationType
	(*Device)(nil),                                                         // 18: keyapis.device.v1.Device
	(*DeviceLite)(nil),                                                     // 19: keyapis.device.v1.DeviceLite
	(*DeviceConfigurationStatus)(nil),                                      // 20: keyapis.device.v1.DeviceConfigurationStatus
	(*DeviceConfigurationStatusGrouped)(nil),                               // 21: keyapis.device.v1.DeviceConfigurationStatusGrouped
	(*CameraStatus)(nil),                                                   // 22: keyapis.device.v1.CameraStatus
	(*SyncStatus)(nil),                                                     // 23: keyapis.device.v1.SyncStatus
	(*GetDeviceRequest)(nil),                                               // 24: keyapis.device.v1.GetDeviceRequest
	(*GetDeviceResponse)(nil),                                              // 25: keyapis.device.v1.GetDeviceResponse
	(*GetDeviceLiteRequest)(nil),                                           // 26: keyapis.device.v1.GetDeviceLiteRequest
	(*GetDeviceLiteResponse)(nil),                                          // 27: keyapis.device.v1.GetDeviceLiteResponse
	(*PostDeviceRequest)(nil),                                              // 28: keyapis.device.v1.PostDeviceRequest
	(*PostDeviceResponse)(nil),                                             // 29: keyapis.device.v1.PostDeviceResponse
	(*GetDeviceListRequest)(nil),                                           // 30: keyapis.device.v1.GetDeviceListRequest
	(*GetDeviceListResponse)(nil),                                          // 31: keyapis.device.v1.GetDeviceListResponse
	(*GetDeviceCountRequest)(nil),                                          // 32: keyapis.device.v1.GetDeviceCountRequest
	(*GetDeviceCountResponse)(nil),                                         // 33: keyapis.device.v1.GetDeviceCountResponse
	(*PutDeviceRequest)(nil),                                               // 34: keyapis.device.v1.PutDeviceRequest
	(*PutDeviceResponse)(nil),                                              // 35: keyapis.device.v1.PutDeviceResponse
	(*PostDeviceInstallPresetRequest)(nil),                                 // 36: keyapis.device.v1.PostDeviceInstallPresetRequest
	(*PostDeviceInstallPresetResponse)(nil),                                // 37: keyapis.device.v1.PostDeviceInstallPresetResponse
	(*PostDeviceReplaceRequest)(nil),                                       // 38: keyapis.device.v1.PostDeviceReplaceRequest
	(*PostDeviceReplaceResponse)(nil),                                      // 39: keyapis.device.v1.PostDeviceReplaceResponse
	(*PostDeviceReconfigureRequest)(nil),                                   // 40: keyapis.device.v1.PostDeviceReconfigureRequest
	(*PostDeviceReconfigureResponse)(nil),                                  // 41: keyapis.device.v1.PostDeviceReconfigureResponse
	(*GetDeviceConfigurationStatusesRequest)(nil),                          // 42: keyapis.device.v1.GetDeviceConfigurationStatusesRequest
	(*GetDeviceConfigurationStatusesResponse)(nil),                         // 43: keyapis.device.v1.GetDeviceConfigurationStatusesResponse
	(*PostDeviceConfigurationStatusRequest)(nil),                           // 44: keyapis.device.v1.PostDeviceConfigurationStatusRequest
	(*PostDeviceConfigurationStatusResponse)(nil),                          // 45: keyapis.device.v1.PostDeviceConfigurationStatusResponse
	(*GetDeviceConfigurationStatusGroupedListRequest)(nil),                 // 46: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListRequest
	(*GetDeviceConfigurationStatusGroupedListResponse)(nil),                // 47: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse
	(*GetDeviceConfigurationStatusGroupedCountRequest)(nil),                // 48: keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountRequest
	(*GetDeviceConfigurationStatusGroupedCountResponse)(nil),               // 49: keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountResponse
	(*DeleteDeviceRequest)(nil),                                            // 50: keyapis.device.v1.DeleteDeviceRequest
	(*DeleteDeviceResponse)(nil),                                           // 51: keyapis.device.v1.DeleteDeviceResponse
	(*ReinstallError)(nil),                                                 // 52: keyapis.device.v1.ReinstallError
	(*DeviceFilter)(nil),                                                   // 53: keyapis.device.v1.DeviceFilter
	(*DevicePaging)(nil),                                                   // 54: keyapis.device.v1.DevicePaging
	(*DeviceConfigurationStatusGroupedFilter)(nil),                         // 55: keyapis.device.v1.DeviceConfigurationStatusGroupedFilter
	(*DeviceConfigurationStatusGroupedPaging)(nil),                         // 56: keyapis.device.v1.DeviceConfigurationStatusGroupedPaging
	(*ValidationError)(nil),                                                // 57: keyapis.device.v1.ValidationError
	(*Preset)(nil),                                                         // 58: keyapis.device.v1.Preset
	(*Device_SputnikCredentials)(nil),                                      // 59: keyapis.device.v1.Device.SputnikCredentials
	(*Device_Location)(nil),                                                // 60: keyapis.device.v1.Device.Location
	(*Device_Settings)(nil),                                                // 61: keyapis.device.v1.Device.Settings
	(*Device_Dispatching)(nil),                                             // 62: keyapis.device.v1.Device.Dispatching
	(*Device_SipTrunk)(nil),                                                // 63: keyapis.device.v1.Device.SipTrunk
	(*Device_Redirect)(nil),                                                // 64: keyapis.device.v1.Device.Redirect
	(*Device_AutochangePasswordSettings)(nil),                              // 65: keyapis.device.v1.Device.AutochangePasswordSettings
	(*Device_Credentials)(nil),                                             // 66: keyapis.device.v1.Device.Credentials
	(*Device_SavingError)(nil),                                             // 67: keyapis.device.v1.Device.SavingError
	(*Device_Settings_CoordinateMatrixSwitch)(nil),                         // 68: keyapis.device.v1.Device.Settings.CoordinateMatrixSwitch
	(*Device_Settings_ConciergeCall)(nil),                                  // 69: keyapis.device.v1.Device.Settings.ConciergeCall
	(*Device_Settings_Autocollect)(nil),                                    // 70: keyapis.device.v1.Device.Settings.Autocollect
	(*Device_Settings_FaceRecognition)(nil),                                // 71: keyapis.device.v1.Device.Settings.FaceRecognition
	(*Device_Settings_Sl3Mode)(nil),                                        // 72: keyapis.device.v1.Device.Settings.Sl3Mode
	(*Device_Settings_EmergencyCall)(nil),                                  // 73: keyapis.device.v1.Device.Settings.EmergencyCall
	(*Device_SavingError_MacAddressInvalid)(nil),                           // 74: keyapis.device.v1.Device.SavingError.MacAddressInvalid
	(*Device_SavingError_SerialNumberInvalid)(nil),                         // 75: keyapis.device.v1.Device.SavingError.SerialNumberInvalid
	(*Device_SavingError_NotAllowedForType)(nil),                           // 76: keyapis.device.v1.Device.SavingError.NotAllowedForType
	(*Device_SavingError_NotAllowedForModel)(nil),                          // 77: keyapis.device.v1.Device.SavingError.NotAllowedForModel
	(*Device_SavingError_SerialNumberForModelIsExist)(nil),                 // 78: keyapis.device.v1.Device.SavingError.SerialNumberForModelIsExist
	(*Device_SavingError_MacAddressIsExist)(nil),                           // 79: keyapis.device.v1.Device.SavingError.MacAddressIsExist
	(*Device_SavingError_CapabilityIsNotSupported)(nil),                    // 80: keyapis.device.v1.Device.SavingError.CapabilityIsNotSupported
	(*Device_SavingError_AbcNumberIsExistOnAnotherDevice)(nil),             // 81: keyapis.device.v1.Device.SavingError.AbcNumberIsExistOnAnotherDevice
	(*Device_SavingError_PublicIdentityIsExist)(nil),                       // 82: keyapis.device.v1.Device.SavingError.PublicIdentityIsExist
	(*Device_SavingError_ConciergeRoomNotFound)(nil),                       // 83: keyapis.device.v1.Device.SavingError.ConciergeRoomNotFound
	(*Device_SavingError_LoginIsExist)(nil),                                // 84: keyapis.device.v1.Device.SavingError.LoginIsExist
	(*Device_SavingError_CredentialsAreRequired)(nil),                      // 85: keyapis.device.v1.Device.SavingError.CredentialsAreRequired
	(*Device_SavingError_FieldIsNotSupported)(nil),                         // 86: keyapis.device.v1.Device.SavingError.FieldIsNotSupported
	(*DeviceConfigurationStatus_Payload)(nil),                              // 87: keyapis.device.v1.DeviceConfigurationStatus.Payload
	(*DeviceConfigurationStatus_Payload_Autocollect)(nil),                  // 88: keyapis.device.v1.DeviceConfigurationStatus.Payload.Autocollect
	(*PostDeviceResponse_Error)(nil),                                       // 89: keyapis.device.v1.PostDeviceResponse.Error
	(*GetDeviceListResponse_Error)(nil),                                    // 90: keyapis.device.v1.GetDeviceListResponse.Error
	(*GetDeviceCountResponse_Error)(nil),                                   // 91: keyapis.device.v1.GetDeviceCountResponse.Error
	(*PostDeviceInstallPresetResponse_Error)(nil),                          // 92: keyapis.device.v1.PostDeviceInstallPresetResponse.Error
	(*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing)(nil), // 93: keyapis.device.v1.PostDeviceInstallPresetResponse.Error.PresetStatusIsProcessing
	(*PostDeviceReplaceResponse_Error)(nil),                                // 94: keyapis.device.v1.PostDeviceReplaceResponse.Error
	(*PostDeviceReplaceResponse_Error_HostExists)(nil),                     // 95: keyapis.device.v1.PostDeviceReplaceResponse.Error.HostExists
	(*PostDeviceReplaceResponse_Error_MacAddressExists)(nil),               // 96: keyapis.device.v1.PostDeviceReplaceResponse.Error.MacAddressExists
	(*PostDeviceReplaceResponse_Error_SerialNumberExists)(nil),             // 97: keyapis.device.v1.PostDeviceReplaceResponse.Error.SerialNumberExists
	(*PostDeviceReplaceResponse_Error_LoginExists)(nil),                    // 98: keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginExists
	(*PostDeviceReplaceResponse_Error_LoginIsRequired)(nil),                // 99: keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginIsRequired
	(*PostDeviceReconfigureResponse_Error)(nil),                            // 100: keyapis.device.v1.PostDeviceReconfigureResponse.Error
	(*GetDeviceConfigurationStatusesResponse_Statuses)(nil),                // 101: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses
	(*GetDeviceConfigurationStatusesResponse_Error)(nil),                   // 102: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Error
	(*PostDeviceConfigurationStatusResponse_Error)(nil),                    // 103: keyapis.device.v1.PostDeviceConfigurationStatusResponse.Error
	(*GetDeviceConfigurationStatusGroupedListResponse_Error)(nil),          // 104: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.Error
	(*ReinstallError_SipLoginIsMissing)(nil),                               // 105: keyapis.device.v1.ReinstallError.SipLoginIsMissing
	(*Preset_Sip)(nil),                                                     // 106: keyapis.device.v1.Preset.Sip
	(*Preset_Ntp)(nil),                                                     // 107: keyapis.device.v1.Preset.Ntp
	(*Preset_Syslog)(nil),                                                  // 108: keyapis.device.v1.Preset.Syslog
	(*Preset_Room)(nil),                                                    // 109: keyapis.device.v1.Preset.Room
	(*Preset_VideoConfig)(nil),                                             // 110: keyapis.device.v1.Preset.VideoConfig
	(*Preset_Dtmf)(nil),                                                    // 111: keyapis.device.v1.Preset.Dtmf
	(*Preset_FaceRecognition)(nil),                                         // 112: keyapis.device.v1.Preset.FaceRecognition
	(*Preset_SavingError)(nil),                                             // 113: keyapis.device.v1.Preset.SavingError
	(*Preset_VideoConfig_RtspUser)(nil),                                    // 114: keyapis.device.v1.Preset.VideoConfig.RtspUser
	(*Preset_SavingError_Conflict)(nil),                                    // 115: keyapis.device.v1.Preset.SavingError.Conflict
	(*Preset_SavingError_NotAllowedForDefault)(nil),                        // 116: keyapis.device.v1.Preset.SavingError.NotAllowedForDefault
	(*timestamppb.Timestamp)(nil),                                          // 117: google.protobuf.Timestamp
	(*wrapperspb.StringValue)(nil),                                         // 118: google.protobuf.StringValue
	(*wrapperspb.Int32Value)(nil),                                          // 119: google.protobuf.Int32Value
	(*wrapperspb.BoolValue)(nil),                                           // 120: google.protobuf.BoolValue
	(Model_CapabilityType)(0),                                              // 121: keyapis.device.v1.Model.CapabilityType
}
var file_keyapis_device_v1_keyapis_device_device_v1_proto_depIdxs = []int32{
	0,   // 0: keyapis.device.v1.Device.preset_status_type:type_name -> keyapis.device.v1.Device.PresetStatusType
	117, // 1: keyapis.device.v1.Device.preset_configured_at:type_name -> google.protobuf.Timestamp
	1,   // 2: keyapis.device.v1.Device.type:type_name -> keyapis.device.v1.Device.Type
	2,   // 3: keyapis.device.v1.Device.model_type:type_name -> keyapis.device.v1.Device.ModelType
	3,   // 4: keyapis.device.v1.Device.status_type:type_name -> keyapis.device.v1.Device.StatusType
	118, // 5: keyapis.device.v1.Device.ip_address:type_name -> google.protobuf.StringValue
	119, // 6: keyapis.device.v1.Device.port:type_name -> google.protobuf.Int32Value
	59,  // 7: keyapis.device.v1.Device.sputnik_credentials:type_name -> keyapis.device.v1.Device.SputnikCredentials
	60,  // 8: keyapis.device.v1.Device.location:type_name -> keyapis.device.v1.Device.Location
	118, // 9: keyapis.device.v1.Device.camera_id:type_name -> google.protobuf.StringValue
	61,  // 10: keyapis.device.v1.Device.settings:type_name -> keyapis.device.v1.Device.Settings
	62,  // 11: keyapis.device.v1.Device.dispatching:type_name -> keyapis.device.v1.Device.Dispatching
	63,  // 12: keyapis.device.v1.Device.sip_trunk:type_name -> keyapis.device.v1.Device.SipTrunk
	64,  // 13: keyapis.device.v1.Device.redirect:type_name -> keyapis.device.v1.Device.Redirect
	65,  // 14: keyapis.device.v1.Device.autochange_password_settings:type_name -> keyapis.device.v1.Device.AutochangePasswordSettings
	66,  // 15: keyapis.device.v1.Device.credentials:type_name -> keyapis.device.v1.Device.Credentials
	118, // 16: keyapis.device.v1.Device.sip_account:type_name -> google.protobuf.StringValue
	23,  // 17: keyapis.device.v1.Device.sync_status:type_name -> keyapis.device.v1.SyncStatus
	1,   // 18: keyapis.device.v1.DeviceLite.type:type_name -> keyapis.device.v1.Device.Type
	60,  // 19: keyapis.device.v1.DeviceLite.location:type_name -> keyapis.device.v1.Device.Location
	3,   // 20: keyapis.device.v1.DeviceLite.status_type:type_name -> keyapis.device.v1.Device.StatusType
	6,   // 21: keyapis.device.v1.DeviceConfigurationStatus.configuration_type:type_name -> keyapis.device.v1.DeviceConfigurationStatus.ConfigurationType
	7,   // 22: keyapis.device.v1.DeviceConfigurationStatus.status_type:type_name -> keyapis.device.v1.DeviceConfigurationStatus.StatusType
	117, // 23: keyapis.device.v1.DeviceConfigurationStatus.configured_at:type_name -> google.protobuf.Timestamp
	118, // 24: keyapis.device.v1.DeviceConfigurationStatus.error_message:type_name -> google.protobuf.StringValue
	87,  // 25: keyapis.device.v1.DeviceConfigurationStatus.payload:type_name -> keyapis.device.v1.DeviceConfigurationStatus.Payload
	117, // 26: keyapis.device.v1.DeviceConfigurationStatus.next_retry_at:type_name -> google.protobuf.Timestamp
	20,  // 27: keyapis.device.v1.DeviceConfigurationStatusGrouped.statuses:type_name -> keyapis.device.v1.DeviceConfigurationStatus
	118, // 28: keyapis.device.v1.CameraStatus.id:type_name -> google.protobuf.StringValue
	8,   // 29: keyapis.device.v1.CameraStatus.status_type:type_name -> keyapis.device.v1.CameraStatus.StatusType
	9,   // 30: keyapis.device.v1.SyncStatus.status_type:type_name -> keyapis.device.v1.SyncStatus.StatusType
	117, // 31: keyapis.device.v1.SyncStatus.successful_at:type_name -> google.protobuf.Timestamp
	117, // 32: keyapis.device.v1.SyncStatus.sync_at:type_name -> google.protobuf.Timestamp
	18,  // 33: keyapis.device.v1.GetDeviceResponse.data:type_name -> keyapis.device.v1.Device
	19,  // 34: keyapis.device.v1.GetDeviceLiteResponse.data:type_name -> keyapis.device.v1.DeviceLite
	18,  // 35: keyapis.device.v1.PostDeviceRequest.data:type_name -> keyapis.device.v1.Device
	18,  // 36: keyapis.device.v1.PostDeviceResponse.data:type_name -> keyapis.device.v1.Device
	89,  // 37: keyapis.device.v1.PostDeviceResponse.error:type_name -> keyapis.device.v1.PostDeviceResponse.Error
	53,  // 38: keyapis.device.v1.GetDeviceListRequest.filter:type_name -> keyapis.device.v1.DeviceFilter
	54,  // 39: keyapis.device.v1.GetDeviceListRequest.paging:type_name -> keyapis.device.v1.DevicePaging
	18,  // 40: keyapis.device.v1.GetDeviceListResponse.data:type_name -> keyapis.device.v1.Device
	90,  // 41: keyapis.device.v1.GetDeviceListResponse.error:type_name -> keyapis.device.v1.GetDeviceListResponse.Error
	53,  // 42: keyapis.device.v1.GetDeviceCountRequest.filter:type_name -> keyapis.device.v1.DeviceFilter
	91,  // 43: keyapis.device.v1.GetDeviceCountResponse.error:type_name -> keyapis.device.v1.GetDeviceCountResponse.Error
	18,  // 44: keyapis.device.v1.PutDeviceResponse.data:type_name -> keyapis.device.v1.Device
	92,  // 45: keyapis.device.v1.PostDeviceInstallPresetResponse.error:type_name -> keyapis.device.v1.PostDeviceInstallPresetResponse.Error
	94,  // 46: keyapis.device.v1.PostDeviceReplaceResponse.error:type_name -> keyapis.device.v1.PostDeviceReplaceResponse.Error
	100, // 47: keyapis.device.v1.PostDeviceReconfigureResponse.error:type_name -> keyapis.device.v1.PostDeviceReconfigureResponse.Error
	101, // 48: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.data:type_name -> keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses
	102, // 49: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.error:type_name -> keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Error
	20,  // 50: keyapis.device.v1.PostDeviceConfigurationStatusRequest.data:type_name -> keyapis.device.v1.DeviceConfigurationStatus
	20,  // 51: keyapis.device.v1.PostDeviceConfigurationStatusResponse.data:type_name -> keyapis.device.v1.DeviceConfigurationStatus
	103, // 52: keyapis.device.v1.PostDeviceConfigurationStatusResponse.error:type_name -> keyapis.device.v1.PostDeviceConfigurationStatusResponse.Error
	55,  // 53: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListRequest.filter:type_name -> keyapis.device.v1.DeviceConfigurationStatusGroupedFilter
	56,  // 54: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListRequest.paging:type_name -> keyapis.device.v1.DeviceConfigurationStatusGroupedPaging
	21,  // 55: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.data:type_name -> keyapis.device.v1.DeviceConfigurationStatusGrouped
	104, // 56: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.error:type_name -> keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.Error
	55,  // 57: keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountRequest.filter:type_name -> keyapis.device.v1.DeviceConfigurationStatusGroupedFilter
	105, // 58: keyapis.device.v1.ReinstallError.sip_login_is_missing:type_name -> keyapis.device.v1.ReinstallError.SipLoginIsMissing
	118, // 59: keyapis.device.v1.DeviceFilter.text:type_name -> google.protobuf.StringValue
	3,   // 60: keyapis.device.v1.DeviceFilter.device_status_types:type_name -> keyapis.device.v1.Device.StatusType
	1,   // 61: keyapis.device.v1.DeviceFilter.device_types:type_name -> keyapis.device.v1.Device.Type
	2,   // 62: keyapis.device.v1.DeviceFilter.device_model_types:type_name -> keyapis.device.v1.Device.ModelType
	120, // 63: keyapis.device.v1.DeviceFilter.is_concierge_enabled:type_name -> google.protobuf.BoolValue
	120, // 64: keyapis.device.v1.DeviceFilter.is_dispatching_enabled:type_name -> google.protobuf.BoolValue
	118, // 65: keyapis.device.v1.DeviceFilter.dispatching_public_number:type_name -> google.protobuf.StringValue
	118, // 66: keyapis.device.v1.DeviceFilter.hardware_version:type_name -> google.protobuf.StringValue
	118, // 67: keyapis.device.v1.DeviceFilter.software_version:type_name -> google.protobuf.StringValue
	120, // 68: keyapis.device.v1.DeviceFilter.is_autochange_password_enabled:type_name -> google.protobuf.BoolValue
	9,   // 69: keyapis.device.v1.DeviceFilter.sync_status_status_types:type_name -> keyapis.device.v1.SyncStatus.StatusType
	119, // 70: keyapis.device.v1.DeviceFilter.sync_retry_count_less_then:type_name -> google.protobuf.Int32Value
	117, // 71: keyapis.device.v1.DeviceFilter.begin_sync_successful_at:type_name -> google.protobuf.Timestamp
	117, // 72: keyapis.device.v1.DeviceFilter.end_sync_successful_at:type_name -> google.protobuf.Timestamp
	117, // 73: keyapis.device.v1.DeviceFilter.begin_sync_at:type_name -> google.protobuf.Timestamp
	117, // 74: keyapis.device.v1.DeviceFilter.end_sync_at:type_name -> google.protobuf.Timestamp
	10,  // 75: keyapis.device.v1.DevicePaging.order_by_type:type_name -> keyapis.device.v1.DevicePaging.OrderByType
	11,  // 76: keyapis.device.v1.DevicePaging.direction_type:type_name -> keyapis.device.v1.DevicePaging.DirectionType
	6,   // 77: keyapis.device.v1.DeviceConfigurationStatusGroupedFilter.configuration_types:type_name -> keyapis.device.v1.DeviceConfigurationStatus.ConfigurationType
	7,   // 78: keyapis.device.v1.DeviceConfigurationStatusGroupedFilter.status_types:type_name -> keyapis.device.v1.DeviceConfigurationStatus.StatusType
	120, // 79: keyapis.device.v1.DeviceConfigurationStatusGroupedFilter.is_ready_for_retry:type_name -> google.protobuf.BoolValue
	119, // 80: keyapis.device.v1.DeviceConfigurationStatusGroupedFilter.retry_count_less_then:type_name -> google.protobuf.Int32Value
	12,  // 81: keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.order_by_type:type_name -> keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.OrderByType
	13,  // 82: keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.direction_type:type_name -> keyapis.device.v1.DeviceConfigurationStatusGroupedPaging.DirectionType
	118, // 83: keyapis.device.v1.Preset.description:type_name -> google.protobuf.StringValue
	117, // 84: keyapis.device.v1.Preset.created_at:type_name -> google.protobuf.Timestamp
	117, // 85: keyapis.device.v1.Preset.changed_at:type_name -> google.protobuf.Timestamp
	14,  // 86: keyapis.device.v1.Preset.status_type:type_name -> keyapis.device.v1.Preset.StatusType
	106, // 87: keyapis.device.v1.Preset.sip:type_name -> keyapis.device.v1.Preset.Sip
	107, // 88: keyapis.device.v1.Preset.ntp:type_name -> keyapis.device.v1.Preset.Ntp
	108, // 89: keyapis.device.v1.Preset.syslog:type_name -> keyapis.device.v1.Preset.Syslog
	109, // 90: keyapis.device.v1.Preset.rooms:type_name -> keyapis.device.v1.Preset.Room
	110, // 91: keyapis.device.v1.Preset.video_config:type_name -> keyapis.device.v1.Preset.VideoConfig
	111, // 92: keyapis.device.v1.Preset.dtmf:type_name -> keyapis.device.v1.Preset.Dtmf
	112, // 93: keyapis.device.v1.Preset.face_recognition:type_name -> keyapis.device.v1.Preset.FaceRecognition
	118, // 94: keyapis.device.v1.Device.SputnikCredentials.password:type_name -> google.protobuf.StringValue
	68,  // 95: keyapis.device.v1.Device.Settings.coordinate_matrix_switch:type_name -> keyapis.device.v1.Device.Settings.CoordinateMatrixSwitch
	69,  // 96: keyapis.device.v1.Device.Settings.concierge_call:type_name -> keyapis.device.v1.Device.Settings.ConciergeCall
	70,  // 97: keyapis.device.v1.Device.Settings.autocollect:type_name -> keyapis.device.v1.Device.Settings.Autocollect
	71,  // 98: keyapis.device.v1.Device.Settings.face_recognition:type_name -> keyapis.device.v1.Device.Settings.FaceRecognition
	72,  // 99: keyapis.device.v1.Device.Settings.sl3_mode:type_name -> keyapis.device.v1.Device.Settings.Sl3Mode
	73,  // 100: keyapis.device.v1.Device.Settings.emergency_call:type_name -> keyapis.device.v1.Device.Settings.EmergencyCall
	118, // 101: keyapis.device.v1.Device.Dispatching.public_identity:type_name -> google.protobuf.StringValue
	118, // 102: keyapis.device.v1.Device.SipTrunk.host:type_name -> google.protobuf.StringValue
	119, // 103: keyapis.device.v1.Device.SipTrunk.port:type_name -> google.protobuf.Int32Value
	4,   // 104: keyapis.device.v1.Device.SipTrunk.sip_type:type_name -> keyapis.device.v1.Device.SipTrunk.SipType
	118, // 105: keyapis.device.v1.Device.Credentials.login:type_name -> google.protobuf.StringValue
	118, // 106: keyapis.device.v1.Device.Credentials.password:type_name -> google.protobuf.StringValue
	5,   // 107: keyapis.device.v1.Device.Credentials.user_access_type:type_name -> keyapis.device.v1.Device.Credentials.UserAccessType
	74,  // 108: keyapis.device.v1.Device.SavingError.mac_address_invalid:type_name -> keyapis.device.v1.Device.SavingError.MacAddressInvalid
	75,  // 109: keyapis.device.v1.Device.SavingError.serial_number_invalid:type_name -> keyapis.device.v1.Device.SavingError.SerialNumberInvalid
	76,  // 110: keyapis.device.v1.Device.SavingError.not_allowed_for_type:type_name -> keyapis.device.v1.Device.SavingError.NotAllowedForType
	77,  // 111: keyapis.device.v1.Device.SavingError.not_allowed_for_model:type_name -> keyapis.device.v1.Device.SavingError.NotAllowedForModel
	78,  // 112: keyapis.device.v1.Device.SavingError.serial_number_for_model_is_exist:type_name -> keyapis.device.v1.Device.SavingError.SerialNumberForModelIsExist
	79,  // 113: keyapis.device.v1.Device.SavingError.mac_address_is_exist:type_name -> keyapis.device.v1.Device.SavingError.MacAddressIsExist
	80,  // 114: keyapis.device.v1.Device.SavingError.capability_is_not_supported:type_name -> keyapis.device.v1.Device.SavingError.CapabilityIsNotSupported
	81,  // 115: keyapis.device.v1.Device.SavingError.abc_number_is_exist_on_another_device:type_name -> keyapis.device.v1.Device.SavingError.AbcNumberIsExistOnAnotherDevice
	82,  // 116: keyapis.device.v1.Device.SavingError.public_identity_is_exist:type_name -> keyapis.device.v1.Device.SavingError.PublicIdentityIsExist
	83,  // 117: keyapis.device.v1.Device.SavingError.concierge_room_not_found:type_name -> keyapis.device.v1.Device.SavingError.ConciergeRoomNotFound
	84,  // 118: keyapis.device.v1.Device.SavingError.login_is_exist:type_name -> keyapis.device.v1.Device.SavingError.LoginIsExist
	85,  // 119: keyapis.device.v1.Device.SavingError.credentials_are_required:type_name -> keyapis.device.v1.Device.SavingError.CredentialsAreRequired
	86,  // 120: keyapis.device.v1.Device.SavingError.field_is_not_supported:type_name -> keyapis.device.v1.Device.SavingError.FieldIsNotSupported
	118, // 121: keyapis.device.v1.Device.Settings.Sl3Mode.encryption_profile_id:type_name -> google.protobuf.StringValue
	121, // 122: keyapis.device.v1.Device.SavingError.CapabilityIsNotSupported.model_capability_type:type_name -> keyapis.device.v1.Model.CapabilityType
	88,  // 123: keyapis.device.v1.DeviceConfigurationStatus.Payload.autocollect:type_name -> keyapis.device.v1.DeviceConfigurationStatus.Payload.Autocollect
	117, // 124: keyapis.device.v1.DeviceConfigurationStatus.Payload.Autocollect.enabled_at:type_name -> google.protobuf.Timestamp
	117, // 125: keyapis.device.v1.DeviceConfigurationStatus.Payload.Autocollect.to_be_disabled_at:type_name -> google.protobuf.Timestamp
	57,  // 126: keyapis.device.v1.PostDeviceResponse.Error.validation:type_name -> keyapis.device.v1.ValidationError
	67,  // 127: keyapis.device.v1.PostDeviceResponse.Error.saving:type_name -> keyapis.device.v1.Device.SavingError
	57,  // 128: keyapis.device.v1.GetDeviceListResponse.Error.validation:type_name -> keyapis.device.v1.ValidationError
	57,  // 129: keyapis.device.v1.GetDeviceCountResponse.Error.validation:type_name -> keyapis.device.v1.ValidationError
	93,  // 130: keyapis.device.v1.PostDeviceInstallPresetResponse.Error.preset_status_is_processing:type_name -> keyapis.device.v1.PostDeviceInstallPresetResponse.Error.PresetStatusIsProcessing
	57,  // 131: keyapis.device.v1.PostDeviceReplaceResponse.Error.validation_error:type_name -> keyapis.device.v1.ValidationError
	95,  // 132: keyapis.device.v1.PostDeviceReplaceResponse.Error.host_exists:type_name -> keyapis.device.v1.PostDeviceReplaceResponse.Error.HostExists
	96,  // 133: keyapis.device.v1.PostDeviceReplaceResponse.Error.mac_address_exists:type_name -> keyapis.device.v1.PostDeviceReplaceResponse.Error.MacAddressExists
	97,  // 134: keyapis.device.v1.PostDeviceReplaceResponse.Error.serial_number_exists:type_name -> keyapis.device.v1.PostDeviceReplaceResponse.Error.SerialNumberExists
	98,  // 135: keyapis.device.v1.PostDeviceReplaceResponse.Error.login_exists:type_name -> keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginExists
	99,  // 136: keyapis.device.v1.PostDeviceReplaceResponse.Error.login_is_required:type_name -> keyapis.device.v1.PostDeviceReplaceResponse.Error.LoginIsRequired
	52,  // 137: keyapis.device.v1.PostDeviceReplaceResponse.Error.reinstall_error:type_name -> keyapis.device.v1.ReinstallError
	57,  // 138: keyapis.device.v1.PostDeviceReconfigureResponse.Error.validation_error:type_name -> keyapis.device.v1.ValidationError
	52,  // 139: keyapis.device.v1.PostDeviceReconfigureResponse.Error.reinstall_error:type_name -> keyapis.device.v1.ReinstallError
	20,  // 140: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses.device_configuration_statuses:type_name -> keyapis.device.v1.DeviceConfigurationStatus
	22,  // 141: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses.camera_status:type_name -> keyapis.device.v1.CameraStatus
	23,  // 142: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses.sync_status:type_name -> keyapis.device.v1.SyncStatus
	3,   // 143: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Statuses.device_status_type:type_name -> keyapis.device.v1.Device.StatusType
	57,  // 144: keyapis.device.v1.GetDeviceConfigurationStatusesResponse.Error.validation_error:type_name -> keyapis.device.v1.ValidationError
	57,  // 145: keyapis.device.v1.PostDeviceConfigurationStatusResponse.Error.validation:type_name -> keyapis.device.v1.ValidationError
	57,  // 146: keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse.Error.validation:type_name -> keyapis.device.v1.ValidationError
	15,  // 147: keyapis.device.v1.Preset.Syslog.protocol_type:type_name -> keyapis.device.v1.Preset.Syslog.ProtocolType
	16,  // 148: keyapis.device.v1.Preset.VideoConfig.quality_type:type_name -> keyapis.device.v1.Preset.VideoConfig.QualityType
	114, // 149: keyapis.device.v1.Preset.VideoConfig.rtsp_user:type_name -> keyapis.device.v1.Preset.VideoConfig.RtspUser
	17,  // 150: keyapis.device.v1.Preset.FaceRecognition.configuration_type:type_name -> keyapis.device.v1.Preset.FaceRecognition.ConfigurationType
	115, // 151: keyapis.device.v1.Preset.SavingError.conflict:type_name -> keyapis.device.v1.Preset.SavingError.Conflict
	116, // 152: keyapis.device.v1.Preset.SavingError.not_allowed_for_default:type_name -> keyapis.device.v1.Preset.SavingError.NotAllowedForDefault
	24,  // 153: keyapis.device.v1.DeviceService.GetDevice:input_type -> keyapis.device.v1.GetDeviceRequest
	30,  // 154: keyapis.device.v1.DeviceService.GetDeviceList:input_type -> keyapis.device.v1.GetDeviceListRequest
	32,  // 155: keyapis.device.v1.DeviceService.GetDeviceCount:input_type -> keyapis.device.v1.GetDeviceCountRequest
	28,  // 156: keyapis.device.v1.DeviceService.PostDevice:input_type -> keyapis.device.v1.PostDeviceRequest
	34,  // 157: keyapis.device.v1.DeviceService.PutDevice:input_type -> keyapis.device.v1.PutDeviceRequest
	36,  // 158: keyapis.device.v1.DeviceService.PostDeviceInstallPreset:input_type -> keyapis.device.v1.PostDeviceInstallPresetRequest
	38,  // 159: keyapis.device.v1.DeviceService.PostDeviceReplace:input_type -> keyapis.device.v1.PostDeviceReplaceRequest
	40,  // 160: keyapis.device.v1.DeviceService.PostDeviceReconfigure:input_type -> keyapis.device.v1.PostDeviceReconfigureRequest
	42,  // 161: keyapis.device.v1.DeviceService.GetDeviceConfigurationStatuses:input_type -> keyapis.device.v1.GetDeviceConfigurationStatusesRequest
	44,  // 162: keyapis.device.v1.DeviceService.PostDeviceConfigurationStatus:input_type -> keyapis.device.v1.PostDeviceConfigurationStatusRequest
	46,  // 163: keyapis.device.v1.DeviceService.GetDeviceConfigurationStatusGroupedList:input_type -> keyapis.device.v1.GetDeviceConfigurationStatusGroupedListRequest
	48,  // 164: keyapis.device.v1.DeviceService.GetDeviceConfigurationStatusGroupedCount:input_type -> keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountRequest
	50,  // 165: keyapis.device.v1.DeviceService.DeleteDevice:input_type -> keyapis.device.v1.DeleteDeviceRequest
	26,  // 166: keyapis.device.v1.DeviceService.GetDeviceLite:input_type -> keyapis.device.v1.GetDeviceLiteRequest
	25,  // 167: keyapis.device.v1.DeviceService.GetDevice:output_type -> keyapis.device.v1.GetDeviceResponse
	31,  // 168: keyapis.device.v1.DeviceService.GetDeviceList:output_type -> keyapis.device.v1.GetDeviceListResponse
	33,  // 169: keyapis.device.v1.DeviceService.GetDeviceCount:output_type -> keyapis.device.v1.GetDeviceCountResponse
	29,  // 170: keyapis.device.v1.DeviceService.PostDevice:output_type -> keyapis.device.v1.PostDeviceResponse
	35,  // 171: keyapis.device.v1.DeviceService.PutDevice:output_type -> keyapis.device.v1.PutDeviceResponse
	37,  // 172: keyapis.device.v1.DeviceService.PostDeviceInstallPreset:output_type -> keyapis.device.v1.PostDeviceInstallPresetResponse
	39,  // 173: keyapis.device.v1.DeviceService.PostDeviceReplace:output_type -> keyapis.device.v1.PostDeviceReplaceResponse
	41,  // 174: keyapis.device.v1.DeviceService.PostDeviceReconfigure:output_type -> keyapis.device.v1.PostDeviceReconfigureResponse
	43,  // 175: keyapis.device.v1.DeviceService.GetDeviceConfigurationStatuses:output_type -> keyapis.device.v1.GetDeviceConfigurationStatusesResponse
	45,  // 176: keyapis.device.v1.DeviceService.PostDeviceConfigurationStatus:output_type -> keyapis.device.v1.PostDeviceConfigurationStatusResponse
	47,  // 177: keyapis.device.v1.DeviceService.GetDeviceConfigurationStatusGroupedList:output_type -> keyapis.device.v1.GetDeviceConfigurationStatusGroupedListResponse
	49,  // 178: keyapis.device.v1.DeviceService.GetDeviceConfigurationStatusGroupedCount:output_type -> keyapis.device.v1.GetDeviceConfigurationStatusGroupedCountResponse
	51,  // 179: keyapis.device.v1.DeviceService.DeleteDevice:output_type -> keyapis.device.v1.DeleteDeviceResponse
	27,  // 180: keyapis.device.v1.DeviceService.GetDeviceLite:output_type -> keyapis.device.v1.GetDeviceLiteResponse
	167, // [167:181] is the sub-list for method output_type
	153, // [153:167] is the sub-list for method input_type
	153, // [153:153] is the sub-list for extension type_name
	153, // [153:153] is the sub-list for extension extendee
	0,   // [0:153] is the sub-list for field type_name
}

func init() { file_keyapis_device_v1_keyapis_device_device_v1_proto_init() }
func file_keyapis_device_v1_keyapis_device_device_v1_proto_init() {
	if File_keyapis_device_v1_keyapis_device_device_v1_proto != nil {
		return
	}
	file_keyapis_device_v1_keyapis_device_model_v1_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceLite); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceConfigurationStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceConfigurationStatusGrouped); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CameraStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SyncStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceLiteRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceLiteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutDeviceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PutDeviceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceInstallPresetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceInstallPresetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReconfigureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReconfigureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceConfigurationStatusRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceConfigurationStatusResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusGroupedListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusGroupedListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusGroupedCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusGroupedCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteDeviceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteDeviceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReinstallError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DevicePaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceConfigurationStatusGroupedFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceConfigurationStatusGroupedPaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValidationError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SputnikCredentials); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Location); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Dispatching); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SipTrunk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Redirect); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_AutochangePasswordSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Credentials); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings_CoordinateMatrixSwitch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings_ConciergeCall); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings_Autocollect); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings_FaceRecognition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings_Sl3Mode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_Settings_EmergencyCall); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_MacAddressInvalid); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_SerialNumberInvalid); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_NotAllowedForType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_NotAllowedForModel); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_SerialNumberForModelIsExist); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_MacAddressIsExist); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_CapabilityIsNotSupported); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_AbcNumberIsExistOnAnotherDevice); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_PublicIdentityIsExist); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_ConciergeRoomNotFound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_LoginIsExist); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_CredentialsAreRequired); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device_SavingError_FieldIsNotSupported); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceConfigurationStatus_Payload); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceConfigurationStatus_Payload_Autocollect); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceCountResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceInstallPresetResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse_Error_HostExists); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse_Error_MacAddressExists); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse_Error_SerialNumberExists); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse_Error_LoginExists); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReplaceResponse_Error_LoginIsRequired); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceReconfigureResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusesResponse_Statuses); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusesResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostDeviceConfigurationStatusResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDeviceConfigurationStatusGroupedListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReinstallError_SipLoginIsMissing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_Sip); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_Ntp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_Syslog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_Room); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_VideoConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_Dtmf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_FaceRecognition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_SavingError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_VideoConfig_RtspUser); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_SavingError_Conflict); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Preset_SavingError_NotAllowedForDefault); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[7].OneofWrappers = []interface{}{
		(*GetDeviceResponse_Data)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[9].OneofWrappers = []interface{}{
		(*GetDeviceLiteResponse_Data)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*PostDeviceResponse_Data)(nil),
		(*PostDeviceResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*GetDeviceListRequest_Paging)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[13].OneofWrappers = []interface{}{
		(*GetDeviceListResponse_Data)(nil),
		(*GetDeviceListResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[15].OneofWrappers = []interface{}{
		(*GetDeviceCountResponse_Data)(nil),
		(*GetDeviceCountResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[17].OneofWrappers = []interface{}{
		(*PutDeviceResponse_Data)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[19].OneofWrappers = []interface{}{
		(*PostDeviceInstallPresetResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[21].OneofWrappers = []interface{}{
		(*PostDeviceReplaceResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[23].OneofWrappers = []interface{}{
		(*PostDeviceReconfigureResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[25].OneofWrappers = []interface{}{
		(*GetDeviceConfigurationStatusesResponse_Data)(nil),
		(*GetDeviceConfigurationStatusesResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[27].OneofWrappers = []interface{}{
		(*PostDeviceConfigurationStatusResponse_Data)(nil),
		(*PostDeviceConfigurationStatusResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[28].OneofWrappers = []interface{}{
		(*GetDeviceConfigurationStatusGroupedListRequest_Paging)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[29].OneofWrappers = []interface{}{
		(*GetDeviceConfigurationStatusGroupedListResponse_Data)(nil),
		(*GetDeviceConfigurationStatusGroupedListResponse_Error_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[31].OneofWrappers = []interface{}{
		(*GetDeviceConfigurationStatusGroupedCountResponse_Data)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[34].OneofWrappers = []interface{}{
		(*ReinstallError_SipLoginIsMissing_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[49].OneofWrappers = []interface{}{
		(*Device_SavingError_MacAddressInvalid_)(nil),
		(*Device_SavingError_SerialNumberInvalid_)(nil),
		(*Device_SavingError_NotAllowedForType_)(nil),
		(*Device_SavingError_NotAllowedForModel_)(nil),
		(*Device_SavingError_SerialNumberForModelIsExist_)(nil),
		(*Device_SavingError_MacAddressIsExist_)(nil),
		(*Device_SavingError_CapabilityIsNotSupported_)(nil),
		(*Device_SavingError_AbcNumberIsExistOnAnotherDevice_)(nil),
		(*Device_SavingError_PublicIdentityIsExist_)(nil),
		(*Device_SavingError_ConciergeRoomNotFound_)(nil),
		(*Device_SavingError_LoginIsExist_)(nil),
		(*Device_SavingError_CredentialsAreRequired_)(nil),
		(*Device_SavingError_FieldIsNotSupported_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[69].OneofWrappers = []interface{}{
		(*DeviceConfigurationStatus_Payload_Autocollect_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[71].OneofWrappers = []interface{}{
		(*PostDeviceResponse_Error_Validation)(nil),
		(*PostDeviceResponse_Error_Saving)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[72].OneofWrappers = []interface{}{
		(*GetDeviceListResponse_Error_Validation)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[73].OneofWrappers = []interface{}{
		(*GetDeviceCountResponse_Error_Validation)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[74].OneofWrappers = []interface{}{
		(*PostDeviceInstallPresetResponse_Error_PresetStatusIsProcessing_)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[76].OneofWrappers = []interface{}{
		(*PostDeviceReplaceResponse_Error_ValidationError)(nil),
		(*PostDeviceReplaceResponse_Error_HostExists_)(nil),
		(*PostDeviceReplaceResponse_Error_MacAddressExists_)(nil),
		(*PostDeviceReplaceResponse_Error_SerialNumberExists_)(nil),
		(*PostDeviceReplaceResponse_Error_LoginExists_)(nil),
		(*PostDeviceReplaceResponse_Error_LoginIsRequired_)(nil),
		(*PostDeviceReplaceResponse_Error_ReinstallError)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[82].OneofWrappers = []interface{}{
		(*PostDeviceReconfigureResponse_Error_ValidationError)(nil),
		(*PostDeviceReconfigureResponse_Error_ReinstallError)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[84].OneofWrappers = []interface{}{
		(*GetDeviceConfigurationStatusesResponse_Error_ValidationError)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[85].OneofWrappers = []interface{}{
		(*PostDeviceConfigurationStatusResponse_Error_Validation)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[86].OneofWrappers = []interface{}{
		(*GetDeviceConfigurationStatusGroupedListResponse_Error_Validation)(nil),
	}
	file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes[95].OneofWrappers = []interface{}{
		(*Preset_SavingError_Conflict_)(nil),
		(*Preset_SavingError_NotAllowedForDefault_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDesc,
			NumEnums:      18,
			NumMessages:   99,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_keyapis_device_v1_keyapis_device_device_v1_proto_goTypes,
		DependencyIndexes: file_keyapis_device_v1_keyapis_device_device_v1_proto_depIdxs,
		EnumInfos:         file_keyapis_device_v1_keyapis_device_device_v1_proto_enumTypes,
		MessageInfos:      file_keyapis_device_v1_keyapis_device_device_v1_proto_msgTypes,
	}.Build()
	File_keyapis_device_v1_keyapis_device_device_v1_proto = out.File
	file_keyapis_device_v1_keyapis_device_device_v1_proto_rawDesc = nil
	file_keyapis_device_v1_keyapis_device_device_v1_proto_goTypes = nil
	file_keyapis_device_v1_keyapis_device_device_v1_proto_depIdxs = nil
}
