// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for nigori keys.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.6.1
// source: device_info_specifics.proto

package sync_pb

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

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Enum defining available Sharing features.
type SharingSpecificFields_EnabledFeatures int32

const (
	SharingSpecificFields_UNKNOWN SharingSpecificFields_EnabledFeatures = 0
	// Supports Click to Call only via VAPID.
	SharingSpecificFields_CLICK_TO_CALL_VAPID SharingSpecificFields_EnabledFeatures = 1
	// Supports Shared Clipboard only via VAPID.
	SharingSpecificFields_SHARED_CLIPBOARD_VAPID SharingSpecificFields_EnabledFeatures = 2
	SharingSpecificFields_SMS_FETCHER            SharingSpecificFields_EnabledFeatures = 3
	SharingSpecificFields_REMOTE_COPY            SharingSpecificFields_EnabledFeatures = 4
	SharingSpecificFields_DISCOVERY              SharingSpecificFields_EnabledFeatures = 6
	// Suppots Click to Call via both VAPID and sender ID.
	SharingSpecificFields_CLICK_TO_CALL_V2 SharingSpecificFields_EnabledFeatures = 7
	// Suppots Shared Clipboard via both VAPID and sender ID.
	SharingSpecificFields_SHARED_CLIPBOARD_V2 SharingSpecificFields_EnabledFeatures = 8
	// Supports optimization guide push notification.
	SharingSpecificFields_OPTIMIZATION_GUIDE_PUSH_NOTIFICATION SharingSpecificFields_EnabledFeatures = 9
)

// Enum value maps for SharingSpecificFields_EnabledFeatures.
var (
	SharingSpecificFields_EnabledFeatures_name = map[int32]string{
		0: "UNKNOWN",
		1: "CLICK_TO_CALL_VAPID",
		2: "SHARED_CLIPBOARD_VAPID",
		3: "SMS_FETCHER",
		4: "REMOTE_COPY",
		6: "DISCOVERY",
		7: "CLICK_TO_CALL_V2",
		8: "SHARED_CLIPBOARD_V2",
		9: "OPTIMIZATION_GUIDE_PUSH_NOTIFICATION",
	}
	SharingSpecificFields_EnabledFeatures_value = map[string]int32{
		"UNKNOWN":                              0,
		"CLICK_TO_CALL_VAPID":                  1,
		"SHARED_CLIPBOARD_VAPID":               2,
		"SMS_FETCHER":                          3,
		"REMOTE_COPY":                          4,
		"DISCOVERY":                            6,
		"CLICK_TO_CALL_V2":                     7,
		"SHARED_CLIPBOARD_V2":                  8,
		"OPTIMIZATION_GUIDE_PUSH_NOTIFICATION": 9,
	}
)

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

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

func (SharingSpecificFields_EnabledFeatures) Descriptor() protoreflect.EnumDescriptor {
	return file_device_info_specifics_proto_enumTypes[0].Descriptor()
}

func (SharingSpecificFields_EnabledFeatures) Type() protoreflect.EnumType {
	return &file_device_info_specifics_proto_enumTypes[0]
}

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

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

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

// Information about a device that is running a sync-enabled Chrome browser.  We
// are mapping the per-client cache guid to more specific information about the
// device.
type DeviceInfoSpecifics struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The cache_guid created to identify a sync client on this device.
	CacheGuid *string `protobuf:"bytes,1,opt,name=cache_guid,json=cacheGuid" json:"cache_guid,omitempty"`
	// A non-unique but human readable name to describe this client.
	ClientName *string `protobuf:"bytes,2,opt,name=client_name,json=clientName" json:"client_name,omitempty"`
	// The platform of the device.
	// Deprecated in M110, but still populated for backwards compatibility.
	// Replaced by os_type + device_form_factor.
	//
	// Deprecated: Marked as deprecated in device_info_specifics.proto.
	DeviceType *SyncEnums_DeviceType `protobuf:"varint,3,opt,name=device_type,json=deviceType,enum=sync_pb.SyncEnums_DeviceType" json:"device_type,omitempty"`
	// The UserAgent used when contacting the Chrome Sync server.
	// Only present when talking to the HTTP server.
	SyncUserAgent *string `protobuf:"bytes,4,opt,name=sync_user_agent,json=syncUserAgent" json:"sync_user_agent,omitempty"`
	// The Chrome instance's version.  Updated (if necessary) on every startup.
	// DEPRECATED in M92. Still populated for backward compatibility.
	//
	// Deprecated: Marked as deprecated in device_info_specifics.proto.
	ChromeVersion *string `protobuf:"bytes,5,opt,name=chrome_version,json=chromeVersion" json:"chrome_version,omitempty"`
	// Last time when pre-sync data on the device was saved. The device can be
	// restored to state back to this time. In millisecond since UNIX epoch.
	// DEPRECATED in M50.
	//
	// Deprecated: Marked as deprecated in device_info_specifics.proto.
	DeprecatedBackupTimestamp *int64 `protobuf:"varint,6,opt,name=deprecated_backup_timestamp,json=deprecatedBackupTimestamp" json:"deprecated_backup_timestamp,omitempty"`
	// Device_id that is stable until user signs out. This device_id is used for
	// annotating login scoped refresh token. Present only for Chrome Clients.
	SigninScopedDeviceId *string `protobuf:"bytes,7,opt,name=signin_scoped_device_id,json=signinScopedDeviceId" json:"signin_scoped_device_id,omitempty"`
	// This field is updated to be the current time periodically, and is also set
	// to the current time whenever another field changes. By examining the
	// difference between this field and the current time, it should be possible
	// to reason about the inactivity of any device that was syncing at one time.
	LastUpdatedTimestamp *int64 `protobuf:"varint,8,opt,name=last_updated_timestamp,json=lastUpdatedTimestamp" json:"last_updated_timestamp,omitempty"`
	// Device info fields that are specific to a feature. This is information that
	// can not be derived from the other fields in the proto and are not general
	// enough to be used by another feature.
	FeatureFields *FeatureSpecificFields `protobuf:"bytes,9,opt,name=feature_fields,json=featureFields" json:"feature_fields,omitempty"`
	// Device specific information for Sharing feature.
	SharingFields *SharingSpecificFields `protobuf:"bytes,10,opt,name=sharing_fields,json=sharingFields" json:"sharing_fields,omitempty"`
	// Model of device.
	Model *string `protobuf:"bytes,11,opt,name=model" json:"model,omitempty"`
	// Name of device manufacturer.
	Manufacturer *string `protobuf:"bytes,12,opt,name=manufacturer" json:"manufacturer,omitempty"`
	// The interval in minutes with which |last_updated_timestamp| is updated to
	// the sync servers if online and while sync is actively running (e.g.
	// excludes backgrounded apps on Android). Introduced in M81. The legacy
	// default was 1 day.
	PulseIntervalInMinutes *int32 `protobuf:"varint,13,opt,name=pulse_interval_in_minutes,json=pulseIntervalInMinutes" json:"pulse_interval_in_minutes,omitempty"`
	// Device specific information for Sync invalidations.
	InvalidationFields *InvalidationSpecificFields `protobuf:"bytes,14,opt,name=invalidation_fields,json=invalidationFields" json:"invalidation_fields,omitempty"`
	// Information for contacting this device in order to perform security key
	// operations.
	PaaskFields *PhoneAsASecurityKeySpecificFields `protobuf:"bytes,15,opt,name=paask_fields,json=paaskFields" json:"paask_fields,omitempty"`
	// Unique hardware identifier string which details the HW combination of
	// a ChromeOS device. This field will be empty on other OS devices.
	FullHardwareClass *string `protobuf:"bytes,16,opt,name=full_hardware_class,json=fullHardwareClass" json:"full_hardware_class,omitempty"`
	// Version information to pin-point which client implementation this is.
	//
	// Types that are assignable to ClientVersionInfo:
	//	*DeviceInfoSpecifics_ChromeVersionInfo
	//	*DeviceInfoSpecifics_GooglePlayServicesVersionInfo
	ClientVersionInfo isDeviceInfoSpecifics_ClientVersionInfo `protobuf_oneof:"client_version_info"`
	// The OS type the device.
	OsType *SyncEnums_OsType `protobuf:"varint,19,opt,name=os_type,json=osType,enum=sync_pb.SyncEnums_OsType" json:"os_type,omitempty"`
	// The form factor of the device.
	DeviceFormFactor *SyncEnums_DeviceFormFactor `protobuf:"varint,20,opt,name=device_form_factor,json=deviceFormFactor,enum=sync_pb.SyncEnums_DeviceFormFactor" json:"device_form_factor,omitempty"`
	BraveFields      *BraveSpecificFields        `protobuf:"bytes,1000,opt,name=brave_fields,json=braveFields" json:"brave_fields,omitempty"`
}

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

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

func (*DeviceInfoSpecifics) ProtoMessage() {}

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

func (x *DeviceInfoSpecifics) GetCacheGuid() string {
	if x != nil && x.CacheGuid != nil {
		return *x.CacheGuid
	}
	return ""
}

func (x *DeviceInfoSpecifics) GetClientName() string {
	if x != nil && x.ClientName != nil {
		return *x.ClientName
	}
	return ""
}

// Deprecated: Marked as deprecated in device_info_specifics.proto.
func (x *DeviceInfoSpecifics) GetDeviceType() SyncEnums_DeviceType {
	if x != nil && x.DeviceType != nil {
		return *x.DeviceType
	}
	return SyncEnums_TYPE_UNSET
}

func (x *DeviceInfoSpecifics) GetSyncUserAgent() string {
	if x != nil && x.SyncUserAgent != nil {
		return *x.SyncUserAgent
	}
	return ""
}

// Deprecated: Marked as deprecated in device_info_specifics.proto.
func (x *DeviceInfoSpecifics) GetChromeVersion() string {
	if x != nil && x.ChromeVersion != nil {
		return *x.ChromeVersion
	}
	return ""
}

// Deprecated: Marked as deprecated in device_info_specifics.proto.
func (x *DeviceInfoSpecifics) GetDeprecatedBackupTimestamp() int64 {
	if x != nil && x.DeprecatedBackupTimestamp != nil {
		return *x.DeprecatedBackupTimestamp
	}
	return 0
}

func (x *DeviceInfoSpecifics) GetSigninScopedDeviceId() string {
	if x != nil && x.SigninScopedDeviceId != nil {
		return *x.SigninScopedDeviceId
	}
	return ""
}

func (x *DeviceInfoSpecifics) GetLastUpdatedTimestamp() int64 {
	if x != nil && x.LastUpdatedTimestamp != nil {
		return *x.LastUpdatedTimestamp
	}
	return 0
}

func (x *DeviceInfoSpecifics) GetFeatureFields() *FeatureSpecificFields {
	if x != nil {
		return x.FeatureFields
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetSharingFields() *SharingSpecificFields {
	if x != nil {
		return x.SharingFields
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetModel() string {
	if x != nil && x.Model != nil {
		return *x.Model
	}
	return ""
}

func (x *DeviceInfoSpecifics) GetManufacturer() string {
	if x != nil && x.Manufacturer != nil {
		return *x.Manufacturer
	}
	return ""
}

func (x *DeviceInfoSpecifics) GetPulseIntervalInMinutes() int32 {
	if x != nil && x.PulseIntervalInMinutes != nil {
		return *x.PulseIntervalInMinutes
	}
	return 0
}

func (x *DeviceInfoSpecifics) GetInvalidationFields() *InvalidationSpecificFields {
	if x != nil {
		return x.InvalidationFields
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetPaaskFields() *PhoneAsASecurityKeySpecificFields {
	if x != nil {
		return x.PaaskFields
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetFullHardwareClass() string {
	if x != nil && x.FullHardwareClass != nil {
		return *x.FullHardwareClass
	}
	return ""
}

func (m *DeviceInfoSpecifics) GetClientVersionInfo() isDeviceInfoSpecifics_ClientVersionInfo {
	if m != nil {
		return m.ClientVersionInfo
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetChromeVersionInfo() *ChromeVersionInfo {
	if x, ok := x.GetClientVersionInfo().(*DeviceInfoSpecifics_ChromeVersionInfo); ok {
		return x.ChromeVersionInfo
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetGooglePlayServicesVersionInfo() *GooglePlayServicesVersionInfo {
	if x, ok := x.GetClientVersionInfo().(*DeviceInfoSpecifics_GooglePlayServicesVersionInfo); ok {
		return x.GooglePlayServicesVersionInfo
	}
	return nil
}

func (x *DeviceInfoSpecifics) GetOsType() SyncEnums_OsType {
	if x != nil && x.OsType != nil {
		return *x.OsType
	}
	return SyncEnums_OS_TYPE_UNSPECIFIED
}

func (x *DeviceInfoSpecifics) GetDeviceFormFactor() SyncEnums_DeviceFormFactor {
	if x != nil && x.DeviceFormFactor != nil {
		return *x.DeviceFormFactor
	}
	return SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED
}

func (x *DeviceInfoSpecifics) GetBraveFields() *BraveSpecificFields {
	if x != nil {
		return x.BraveFields
	}
	return nil
}

type isDeviceInfoSpecifics_ClientVersionInfo interface {
	isDeviceInfoSpecifics_ClientVersionInfo()
}

type DeviceInfoSpecifics_ChromeVersionInfo struct {
	ChromeVersionInfo *ChromeVersionInfo `protobuf:"bytes,17,opt,name=chrome_version_info,json=chromeVersionInfo,oneof"`
}

type DeviceInfoSpecifics_GooglePlayServicesVersionInfo struct {
	GooglePlayServicesVersionInfo *GooglePlayServicesVersionInfo `protobuf:"bytes,18,opt,name=google_play_services_version_info,json=googlePlayServicesVersionInfo,oneof"`
}

func (*DeviceInfoSpecifics_ChromeVersionInfo) isDeviceInfoSpecifics_ClientVersionInfo() {}

func (*DeviceInfoSpecifics_GooglePlayServicesVersionInfo) isDeviceInfoSpecifics_ClientVersionInfo() {}

// Feature specific information about the device that is running a sync-enabled
// Chrome browser. Adding to this proto is discouraged and should only be added
// when the information can not be derived more generally.
type FeatureSpecificFields struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Tracks whether the SendTabToSelf feature is enabled on the device. For this
	// to be true, two things must be true: (1) The receiving side of the feature
	// must be enabled on the device (2) The user has enabled sync for this
	// feature
	SendTabToSelfReceivingEnabled *bool `protobuf:"varint,1,opt,name=send_tab_to_self_receiving_enabled,json=sendTabToSelfReceivingEnabled" json:"send_tab_to_self_receiving_enabled,omitempty"`
}

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

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

func (*FeatureSpecificFields) ProtoMessage() {}

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

func (x *FeatureSpecificFields) GetSendTabToSelfReceivingEnabled() bool {
	if x != nil && x.SendTabToSelfReceivingEnabled != nil {
		return *x.SendTabToSelfReceivingEnabled
	}
	return false
}

// Device specific information for Sharing feature. Used to send end-to-end
// encrypted message through FCM to other devices.
type SharingSpecificFields struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// FCM registration token of device subscribed using VAPID key.
	// TODO(crbug.com/1012226): Deprecate when VAPID migration is over.
	VapidFcmToken *string `protobuf:"bytes,1,opt,name=vapid_fcm_token,json=vapidFcmToken" json:"vapid_fcm_token,omitempty"`
	// Public key for message encryption [RFC8291] using VAPID key.
	// TODO(crbug.com/1012226): Deprecate when VAPID migration is over.
	VapidP256Dh []byte `protobuf:"bytes,2,opt,name=vapid_p256dh,json=vapidP256dh" json:"vapid_p256dh,omitempty"`
	// Auth secret for message encryption [RFC8291] using VAPID key.
	// TODO(crbug.com/1012226): Deprecate when VAPID migration is over.
	VapidAuthSecret []byte `protobuf:"bytes,3,opt,name=vapid_auth_secret,json=vapidAuthSecret" json:"vapid_auth_secret,omitempty"`
	// A list of enabled Sharing features.
	EnabledFeatures []SharingSpecificFields_EnabledFeatures `protobuf:"varint,4,rep,name=enabled_features,json=enabledFeatures,enum=sync_pb.SharingSpecificFields_EnabledFeatures" json:"enabled_features,omitempty"`
	// Deprecated. Use sender_id_fcm_token_v2 for new clients.
	//
	// Deprecated: Marked as deprecated in device_info_specifics.proto.
	SenderIdFcmTokenDeprecated *string `protobuf:"bytes,5,opt,name=sender_id_fcm_token_deprecated,json=senderIdFcmTokenDeprecated" json:"sender_id_fcm_token_deprecated,omitempty"`
	// Deprecated. Use sender_id_p256dh_v2 for new clients.
	//
	// Deprecated: Marked as deprecated in device_info_specifics.proto.
	SenderIdP256DhDeprecated []byte `protobuf:"bytes,6,opt,name=sender_id_p256dh_deprecated,json=senderIdP256dhDeprecated" json:"sender_id_p256dh_deprecated,omitempty"`
	// Deprecated. Use sender_id_auth_secret_v2 for new clients.
	//
	// Deprecated: Marked as deprecated in device_info_specifics.proto.
	SenderIdAuthSecretDeprecated []byte `protobuf:"bytes,7,opt,name=sender_id_auth_secret_deprecated,json=senderIdAuthSecretDeprecated" json:"sender_id_auth_secret_deprecated,omitempty"`
	// FCM registration token of device subscribed using Sharing sender ID.
	SenderIdFcmTokenV2 *string `protobuf:"bytes,8,opt,name=sender_id_fcm_token_v2,json=senderIdFcmTokenV2" json:"sender_id_fcm_token_v2,omitempty"`
	// Public key for message encryption [RFC8291] using Sharing sender ID.
	SenderIdP256DhV2 []byte `protobuf:"bytes,9,opt,name=sender_id_p256dh_v2,json=senderIdP256dhV2" json:"sender_id_p256dh_v2,omitempty"`
	// Auth secret for message encryption [RFC8291] using Sharing sender ID.
	SenderIdAuthSecretV2 []byte `protobuf:"bytes,10,opt,name=sender_id_auth_secret_v2,json=senderIdAuthSecretV2" json:"sender_id_auth_secret_v2,omitempty"`
}

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

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

func (*SharingSpecificFields) ProtoMessage() {}

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

func (x *SharingSpecificFields) GetVapidFcmToken() string {
	if x != nil && x.VapidFcmToken != nil {
		return *x.VapidFcmToken
	}
	return ""
}

func (x *SharingSpecificFields) GetVapidP256Dh() []byte {
	if x != nil {
		return x.VapidP256Dh
	}
	return nil
}

func (x *SharingSpecificFields) GetVapidAuthSecret() []byte {
	if x != nil {
		return x.VapidAuthSecret
	}
	return nil
}

func (x *SharingSpecificFields) GetEnabledFeatures() []SharingSpecificFields_EnabledFeatures {
	if x != nil {
		return x.EnabledFeatures
	}
	return nil
}

// Deprecated: Marked as deprecated in device_info_specifics.proto.
func (x *SharingSpecificFields) GetSenderIdFcmTokenDeprecated() string {
	if x != nil && x.SenderIdFcmTokenDeprecated != nil {
		return *x.SenderIdFcmTokenDeprecated
	}
	return ""
}

// Deprecated: Marked as deprecated in device_info_specifics.proto.
func (x *SharingSpecificFields) GetSenderIdP256DhDeprecated() []byte {
	if x != nil {
		return x.SenderIdP256DhDeprecated
	}
	return nil
}

// Deprecated: Marked as deprecated in device_info_specifics.proto.
func (x *SharingSpecificFields) GetSenderIdAuthSecretDeprecated() []byte {
	if x != nil {
		return x.SenderIdAuthSecretDeprecated
	}
	return nil
}

func (x *SharingSpecificFields) GetSenderIdFcmTokenV2() string {
	if x != nil && x.SenderIdFcmTokenV2 != nil {
		return *x.SenderIdFcmTokenV2
	}
	return ""
}

func (x *SharingSpecificFields) GetSenderIdP256DhV2() []byte {
	if x != nil {
		return x.SenderIdP256DhV2
	}
	return nil
}

func (x *SharingSpecificFields) GetSenderIdAuthSecretV2() []byte {
	if x != nil {
		return x.SenderIdAuthSecretV2
	}
	return nil
}

// Device specific information telling how to send invalidations to this device.
type InvalidationSpecificFields struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// FCM registration token of device (using Sync sender ID).
	InstanceIdToken *string `protobuf:"bytes,1,opt,name=instance_id_token,json=instanceIdToken" json:"instance_id_token,omitempty"`
	// This device wants to receive only invalidations which are related to these
	// types. The legitimate values of this field correspond to the protobuf field
	// numbers of all EntitySpecifics fields supported by the server (see
	// components/sync/protocol/sync.proto).
	InterestedDataTypeIds []int32 `protobuf:"varint,2,rep,name=interested_data_type_ids,json=interestedDataTypeIds" json:"interested_data_type_ids,omitempty"`
}

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

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

func (*InvalidationSpecificFields) ProtoMessage() {}

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

func (x *InvalidationSpecificFields) GetInstanceIdToken() string {
	if x != nil && x.InstanceIdToken != nil {
		return *x.InstanceIdToken
	}
	return ""
}

func (x *InvalidationSpecificFields) GetInterestedDataTypeIds() []int32 {
	if x != nil {
		return x.InterestedDataTypeIds
	}
	return nil
}

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

	// The encoded tunnel server in the same format as in the BLE advert. See
	// device::cablev2::tunnelserver::DecodeDomain. (Actually a uint16 but
	// proto doesn't have that as a type.)
	TunnelServerDomain *uint32 `protobuf:"varint,1,opt,name=tunnel_server_domain,json=tunnelServerDomain" json:"tunnel_server_domain,omitempty"`
	// An FCM token that can be presented to the tunnel server to contact this
	// device.
	ContactId []byte `protobuf:"bytes,2,opt,name=contact_id,json=contactId" json:"contact_id,omitempty"`
	// A shared secret key, used to enable communication across devices via
	// unauthenticated channels. Knowledge of this secret acts as proof that the
	// remote end is authorized to talk to the device publishing this secret.
	Secret []byte `protobuf:"bytes,3,opt,name=secret" json:"secret,omitempty"`
	// An id that identifies |secret|. This, and |secret|, will be rotated and
	// the ID allows this device to know which |secret| the counterparty is
	// using.
	Id *uint32 `protobuf:"fixed32,4,opt,name=id" json:"id,omitempty"`
	// A P-256, X9.62-encoded public key for this device. Specific to the Chrome
	// instance.
	PeerPublicKeyX962 []byte `protobuf:"bytes,5,opt,name=peer_public_key_x962,json=peerPublicKeyX962" json:"peer_public_key_x962,omitempty"`
	// The credential ID for use when signing into accounts.google.com. This
	// credential ID isn't published as a WebauthnCredentialSpecifics, unlike
	// other passkeys, because it's auto-generated.
	GoogleCredentialId []byte `protobuf:"bytes,6,opt,name=google_credential_id,json=googleCredentialId" json:"google_credential_id,omitempty"`
}

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

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

func (*PhoneAsASecurityKeySpecificFields) ProtoMessage() {}

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

func (x *PhoneAsASecurityKeySpecificFields) GetTunnelServerDomain() uint32 {
	if x != nil && x.TunnelServerDomain != nil {
		return *x.TunnelServerDomain
	}
	return 0
}

func (x *PhoneAsASecurityKeySpecificFields) GetContactId() []byte {
	if x != nil {
		return x.ContactId
	}
	return nil
}

func (x *PhoneAsASecurityKeySpecificFields) GetSecret() []byte {
	if x != nil {
		return x.Secret
	}
	return nil
}

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

func (x *PhoneAsASecurityKeySpecificFields) GetPeerPublicKeyX962() []byte {
	if x != nil {
		return x.PeerPublicKeyX962
	}
	return nil
}

func (x *PhoneAsASecurityKeySpecificFields) GetGoogleCredentialId() []byte {
	if x != nil {
		return x.GoogleCredentialId
	}
	return nil
}

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

	// Version number as per https://www.chromium.org/developers/version-numbers.
	VersionNumber *string `protobuf:"bytes,1,opt,name=version_number,json=versionNumber" json:"version_number,omitempty"`
}

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

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

func (*ChromeVersionInfo) ProtoMessage() {}

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

func (x *ChromeVersionInfo) GetVersionNumber() string {
	if x != nil && x.VersionNumber != nil {
		return *x.VersionNumber
	}
	return ""
}

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

	ApkVersionName *string `protobuf:"bytes,1,opt,name=apk_version_name,json=apkVersionName" json:"apk_version_name,omitempty"`
}

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

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

func (*GooglePlayServicesVersionInfo) ProtoMessage() {}

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

func (x *GooglePlayServicesVersionInfo) GetApkVersionName() string {
	if x != nil && x.ApkVersionName != nil {
		return *x.ApkVersionName
	}
	return ""
}

var File_device_info_specifics_proto protoreflect.FileDescriptor

var file_device_info_specifics_proto_rawDesc = []byte{
	0x0a, 0x1b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73,
	0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x75,
	0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x62, 0x72, 0x61, 0x76, 0x65, 0x5f,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63,
	0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x0a, 0x0a, 0x13,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66,
	0x69, 0x63, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75,
	0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x55, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12,
	0x29, 0x0a, 0x0e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1b, 0x64, 0x65,
	0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42,
	0x02, 0x18, 0x01, 0x52, 0x19, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42,
	0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35,
	0x0a, 0x17, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x5f,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x14, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x73, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69,
	0x65, 0x6c, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63,
	0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72,
	0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64,
	0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12,
	0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75,
	0x72, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x19, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74,
	0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x49, 0x6e, 0x74,
	0x65, 0x72, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x54,
	0x0a, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,
	0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73,
	0x52, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69,
	0x65, 0x6c, 0x64, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x61, 0x61, 0x73, 0x6b, 0x5f, 0x66, 0x69,
	0x65, 0x6c, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x41, 0x73, 0x41, 0x53, 0x65, 0x63,
	0x75, 0x72, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x0b, 0x70, 0x61, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x68, 0x61, 0x72, 0x64,
	0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x11, 0x66, 0x75, 0x6c, 0x6c, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6c,
	0x61, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x13, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d,
	0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x11,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x72, 0x0a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79,
	0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73,
	0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61,
	0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c,
	0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
	0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4f, 0x73, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x12, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18,
	0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e,
	0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0c,
	0x62, 0x72, 0x61, 0x76, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0xe8, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x72,
	0x61, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x73, 0x52, 0x0b, 0x62, 0x72, 0x61, 0x76, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x15,
	0x0a, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x62, 0x0a, 0x15, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x49,
	0x0a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65,
	0x6c, 0x66, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x73, 0x65, 0x6e, 0x64,
	0x54, 0x61, 0x62, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69,
	0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xd2, 0x06, 0x0a, 0x15, 0x53, 0x68,
	0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x66, 0x63, 0x6d,
	0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x61,
	0x70, 0x69, 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x76,
	0x61, 0x70, 0x69, 0x64, 0x5f, 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0b, 0x76, 0x61, 0x70, 0x69, 0x64, 0x50, 0x32, 0x35, 0x36, 0x64, 0x68, 0x12, 0x2a,
	0x0a, 0x11, 0x76, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63,
	0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x76, 0x61, 0x70, 0x69, 0x64,
	0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53,
	0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69,
	0x65, 0x6c, 0x64, 0x73, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x73, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x1e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x5f, 0x66, 0x63, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x65, 0x70,
	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18,
	0x01, 0x52, 0x1a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a,
	0x1b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x32, 0x35, 0x36, 0x64,
	0x68, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64,
	0x50, 0x32, 0x35, 0x36, 0x64, 0x68, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x12, 0x4a, 0x0a, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x75,
	0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,
	0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x1c,
	0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x16,
	0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x63, 0x6d, 0x5f, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32,
	0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x32,
	0x35, 0x36, 0x64, 0x68, 0x5f, 0x76, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x50, 0x32, 0x35, 0x36, 0x64, 0x68, 0x56, 0x32, 0x12,
	0x36, 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74,
	0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53,
	0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x32, 0x22, 0xf4, 0x01, 0x0a, 0x0f, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x49, 0x43,
	0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x56, 0x41, 0x50, 0x49, 0x44, 0x10,
	0x01, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x4c, 0x49, 0x50,
	0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f, 0x56, 0x41, 0x50, 0x49, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a,
	0x0b, 0x53, 0x4d, 0x53, 0x5f, 0x46, 0x45, 0x54, 0x43, 0x48, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0f,
	0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x10, 0x04, 0x12,
	0x0d, 0x0a, 0x09, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x10, 0x06, 0x12, 0x14,
	0x0a, 0x10, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f,
	0x56, 0x32, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43,
	0x4c, 0x49, 0x50, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x08, 0x12, 0x28, 0x0a,
	0x24, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x55,
	0x49, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43,
	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x22, 0x04, 0x08, 0x05, 0x10, 0x05, 0x2a, 0x0f, 0x50,
	0x45, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0x81,
	0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2a, 0x0a,
	0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x74,
	0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x74,
	0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49,
	0x64, 0x73, 0x22, 0xff, 0x01, 0x0a, 0x21, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x41, 0x73, 0x41, 0x53,
	0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66,
	0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x75, 0x6e, 0x6e,
	0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63,
	0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x2f, 0x0a, 0x14, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
	0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x78, 0x39, 0x36, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x11, 0x70, 0x65, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x58, 0x39,
	0x36, 0x32, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x12, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x11, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x22, 0x49, 0x0a, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x70, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, 0x6b,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f,
	0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63,
	0x5f, 0x70, 0x62,
}

var (
	file_device_info_specifics_proto_rawDescOnce sync.Once
	file_device_info_specifics_proto_rawDescData = file_device_info_specifics_proto_rawDesc
)

func file_device_info_specifics_proto_rawDescGZIP() []byte {
	file_device_info_specifics_proto_rawDescOnce.Do(func() {
		file_device_info_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_device_info_specifics_proto_rawDescData)
	})
	return file_device_info_specifics_proto_rawDescData
}

var file_device_info_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_device_info_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_device_info_specifics_proto_goTypes = []interface{}{
	(SharingSpecificFields_EnabledFeatures)(0), // 0: sync_pb.SharingSpecificFields.EnabledFeatures
	(*DeviceInfoSpecifics)(nil),                // 1: sync_pb.DeviceInfoSpecifics
	(*FeatureSpecificFields)(nil),              // 2: sync_pb.FeatureSpecificFields
	(*SharingSpecificFields)(nil),              // 3: sync_pb.SharingSpecificFields
	(*InvalidationSpecificFields)(nil),         // 4: sync_pb.InvalidationSpecificFields
	(*PhoneAsASecurityKeySpecificFields)(nil),  // 5: sync_pb.PhoneAsASecurityKeySpecificFields
	(*ChromeVersionInfo)(nil),                  // 6: sync_pb.ChromeVersionInfo
	(*GooglePlayServicesVersionInfo)(nil),      // 7: sync_pb.GooglePlayServicesVersionInfo
	(SyncEnums_DeviceType)(0),                  // 8: sync_pb.SyncEnums.DeviceType
	(SyncEnums_OsType)(0),                      // 9: sync_pb.SyncEnums.OsType
	(SyncEnums_DeviceFormFactor)(0),            // 10: sync_pb.SyncEnums.DeviceFormFactor
	(*BraveSpecificFields)(nil),                // 11: sync_pb.BraveSpecificFields
}
var file_device_info_specifics_proto_depIdxs = []int32{
	8,  // 0: sync_pb.DeviceInfoSpecifics.device_type:type_name -> sync_pb.SyncEnums.DeviceType
	2,  // 1: sync_pb.DeviceInfoSpecifics.feature_fields:type_name -> sync_pb.FeatureSpecificFields
	3,  // 2: sync_pb.DeviceInfoSpecifics.sharing_fields:type_name -> sync_pb.SharingSpecificFields
	4,  // 3: sync_pb.DeviceInfoSpecifics.invalidation_fields:type_name -> sync_pb.InvalidationSpecificFields
	5,  // 4: sync_pb.DeviceInfoSpecifics.paask_fields:type_name -> sync_pb.PhoneAsASecurityKeySpecificFields
	6,  // 5: sync_pb.DeviceInfoSpecifics.chrome_version_info:type_name -> sync_pb.ChromeVersionInfo
	7,  // 6: sync_pb.DeviceInfoSpecifics.google_play_services_version_info:type_name -> sync_pb.GooglePlayServicesVersionInfo
	9,  // 7: sync_pb.DeviceInfoSpecifics.os_type:type_name -> sync_pb.SyncEnums.OsType
	10, // 8: sync_pb.DeviceInfoSpecifics.device_form_factor:type_name -> sync_pb.SyncEnums.DeviceFormFactor
	11, // 9: sync_pb.DeviceInfoSpecifics.brave_fields:type_name -> sync_pb.BraveSpecificFields
	0,  // 10: sync_pb.SharingSpecificFields.enabled_features:type_name -> sync_pb.SharingSpecificFields.EnabledFeatures
	11, // [11:11] is the sub-list for method output_type
	11, // [11:11] is the sub-list for method input_type
	11, // [11:11] is the sub-list for extension type_name
	11, // [11:11] is the sub-list for extension extendee
	0,  // [0:11] is the sub-list for field type_name
}

func init() { file_device_info_specifics_proto_init() }
func file_device_info_specifics_proto_init() {
	if File_device_info_specifics_proto != nil {
		return
	}
	file_sync_enums_proto_init()
	file_brave_device_info_specifics_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_device_info_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceInfoSpecifics); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_device_info_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureSpecificFields); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_device_info_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SharingSpecificFields); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_device_info_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InvalidationSpecificFields); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_device_info_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PhoneAsASecurityKeySpecificFields); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_device_info_specifics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChromeVersionInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_device_info_specifics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GooglePlayServicesVersionInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_device_info_specifics_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*DeviceInfoSpecifics_ChromeVersionInfo)(nil),
		(*DeviceInfoSpecifics_GooglePlayServicesVersionInfo)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_device_info_specifics_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_device_info_specifics_proto_goTypes,
		DependencyIndexes: file_device_info_specifics_proto_depIdxs,
		EnumInfos:         file_device_info_specifics_proto_enumTypes,
		MessageInfos:      file_device_info_specifics_proto_msgTypes,
	}.Build()
	File_device_info_specifics_proto = out.File
	file_device_info_specifics_proto_rawDesc = nil
	file_device_info_specifics_proto_goTypes = nil
	file_device_info_specifics_proto_depIdxs = nil
}
