// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/home/graph/v1/device.proto

package graph

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_struct "github.com/golang/protobuf/ptypes/struct"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Third-party device definition.
type Device struct {
	// Third-party device ID.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Hardware type of the device.
	// See [device
	// types](https://developers.google.com/assistant/smarthome/guides).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// Traits supported by the device.
	// See [device
	// traits](https://developers.google.com/assistant/smarthome/traits).
	Traits []string `protobuf:"bytes,3,rep,name=traits,proto3" json:"traits,omitempty"`
	// Names given to this device by your smart home Action.
	Name *DeviceNames `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	// Indicates whether your smart home Action will report state of this device
	// to Google via [ReportStateAndNotification][].
	WillReportState bool `protobuf:"varint,5,opt,name=will_report_state,json=willReportState,proto3" json:"will_report_state,omitempty"`
	// Suggested name for the room where this device is installed.
	// Google attempts to use this value during user setup.
	RoomHint string `protobuf:"bytes,6,opt,name=room_hint,json=roomHint,proto3" json:"room_hint,omitempty"`
	// Suggested name for the structure where this device is installed.
	// Google attempts to use this value during user setup.
	StructureHint string `protobuf:"bytes,7,opt,name=structure_hint,json=structureHint,proto3" json:"structure_hint,omitempty"`
	// Device manufacturer, model, hardware version, and software version.
	DeviceInfo *DeviceInfo `protobuf:"bytes,8,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"`
	// Attributes for the traits supported by the device.
	Attributes *_struct.Struct `protobuf:"bytes,9,opt,name=attributes,proto3" json:"attributes,omitempty"`
	// Custom device attributes stored in Home Graph and provided to your
	// smart home Action in each
	// [QUERY](https://developers.google.com/assistant/smarthome/reference/intent/query)
	// and
	// [EXECUTE](https://developers.google.com/assistant/smarthome/reference/intent/execute)
	// intent.
	CustomData *_struct.Struct `protobuf:"bytes,10,opt,name=custom_data,json=customData,proto3" json:"custom_data,omitempty"`
	// Alternate IDs associated with this device.
	// This is used to identify cloud synced devices enabled for [local
	// fulfillment](https://developers.google.com/assistant/smarthome/concepts/local).
	OtherDeviceIds []*AgentOtherDeviceId `protobuf:"bytes,11,rep,name=other_device_ids,json=otherDeviceIds,proto3" json:"other_device_ids,omitempty"`
	// Indicates whether your smart home Action will report notifications
	// to Google for this device via [ReportStateAndNotification][].
	//
	// If your smart home Action enables users to control device notifications,
	// you should update this field and call [RequestSyncDevices][].
	NotificationSupportedByAgent bool     `protobuf:"varint,12,opt,name=notification_supported_by_agent,json=notificationSupportedByAgent,proto3" json:"notification_supported_by_agent,omitempty"`
	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
	XXX_unrecognized             []byte   `json:"-"`
	XXX_sizecache                int32    `json:"-"`
}

func (m *Device) Reset()         { *m = Device{} }
func (m *Device) String() string { return proto.CompactTextString(m) }
func (*Device) ProtoMessage()    {}
func (*Device) Descriptor() ([]byte, []int) {
	return fileDescriptor_1729f8e53993f499, []int{0}
}

func (m *Device) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Device.Unmarshal(m, b)
}
func (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Device.Marshal(b, m, deterministic)
}
func (m *Device) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Device.Merge(m, src)
}
func (m *Device) XXX_Size() int {
	return xxx_messageInfo_Device.Size(m)
}
func (m *Device) XXX_DiscardUnknown() {
	xxx_messageInfo_Device.DiscardUnknown(m)
}

var xxx_messageInfo_Device proto.InternalMessageInfo

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

func (m *Device) GetType() string {
	if m != nil {
		return m.Type
	}
	return ""
}

func (m *Device) GetTraits() []string {
	if m != nil {
		return m.Traits
	}
	return nil
}

func (m *Device) GetName() *DeviceNames {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *Device) GetWillReportState() bool {
	if m != nil {
		return m.WillReportState
	}
	return false
}

func (m *Device) GetRoomHint() string {
	if m != nil {
		return m.RoomHint
	}
	return ""
}

func (m *Device) GetStructureHint() string {
	if m != nil {
		return m.StructureHint
	}
	return ""
}

func (m *Device) GetDeviceInfo() *DeviceInfo {
	if m != nil {
		return m.DeviceInfo
	}
	return nil
}

func (m *Device) GetAttributes() *_struct.Struct {
	if m != nil {
		return m.Attributes
	}
	return nil
}

func (m *Device) GetCustomData() *_struct.Struct {
	if m != nil {
		return m.CustomData
	}
	return nil
}

func (m *Device) GetOtherDeviceIds() []*AgentOtherDeviceId {
	if m != nil {
		return m.OtherDeviceIds
	}
	return nil
}

func (m *Device) GetNotificationSupportedByAgent() bool {
	if m != nil {
		return m.NotificationSupportedByAgent
	}
	return false
}

// Identifiers used to describe the device.
type DeviceNames struct {
	// Primary name of the device, generally provided by the user.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Additional names provided by the user for the device.
	Nicknames []string `protobuf:"bytes,2,rep,name=nicknames,proto3" json:"nicknames,omitempty"`
	// List of names provided by the manufacturer rather than the user, such as
	// serial numbers, SKUs, etc.
	DefaultNames         []string `protobuf:"bytes,3,rep,name=default_names,json=defaultNames,proto3" json:"default_names,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeviceNames) Reset()         { *m = DeviceNames{} }
func (m *DeviceNames) String() string { return proto.CompactTextString(m) }
func (*DeviceNames) ProtoMessage()    {}
func (*DeviceNames) Descriptor() ([]byte, []int) {
	return fileDescriptor_1729f8e53993f499, []int{1}
}

func (m *DeviceNames) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeviceNames.Unmarshal(m, b)
}
func (m *DeviceNames) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeviceNames.Marshal(b, m, deterministic)
}
func (m *DeviceNames) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeviceNames.Merge(m, src)
}
func (m *DeviceNames) XXX_Size() int {
	return xxx_messageInfo_DeviceNames.Size(m)
}
func (m *DeviceNames) XXX_DiscardUnknown() {
	xxx_messageInfo_DeviceNames.DiscardUnknown(m)
}

var xxx_messageInfo_DeviceNames proto.InternalMessageInfo

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

func (m *DeviceNames) GetNicknames() []string {
	if m != nil {
		return m.Nicknames
	}
	return nil
}

func (m *DeviceNames) GetDefaultNames() []string {
	if m != nil {
		return m.DefaultNames
	}
	return nil
}

// Device information.
type DeviceInfo struct {
	// Device manufacturer.
	Manufacturer string `protobuf:"bytes,1,opt,name=manufacturer,proto3" json:"manufacturer,omitempty"`
	// Device model.
	Model string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
	// Device hardware version.
	HwVersion string `protobuf:"bytes,3,opt,name=hw_version,json=hwVersion,proto3" json:"hw_version,omitempty"`
	// Device software version.
	SwVersion            string   `protobuf:"bytes,4,opt,name=sw_version,json=swVersion,proto3" json:"sw_version,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeviceInfo) Reset()         { *m = DeviceInfo{} }
func (m *DeviceInfo) String() string { return proto.CompactTextString(m) }
func (*DeviceInfo) ProtoMessage()    {}
func (*DeviceInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_1729f8e53993f499, []int{2}
}

func (m *DeviceInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeviceInfo.Unmarshal(m, b)
}
func (m *DeviceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeviceInfo.Marshal(b, m, deterministic)
}
func (m *DeviceInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeviceInfo.Merge(m, src)
}
func (m *DeviceInfo) XXX_Size() int {
	return xxx_messageInfo_DeviceInfo.Size(m)
}
func (m *DeviceInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_DeviceInfo.DiscardUnknown(m)
}

var xxx_messageInfo_DeviceInfo proto.InternalMessageInfo

func (m *DeviceInfo) GetManufacturer() string {
	if m != nil {
		return m.Manufacturer
	}
	return ""
}

func (m *DeviceInfo) GetModel() string {
	if m != nil {
		return m.Model
	}
	return ""
}

func (m *DeviceInfo) GetHwVersion() string {
	if m != nil {
		return m.HwVersion
	}
	return ""
}

func (m *DeviceInfo) GetSwVersion() string {
	if m != nil {
		return m.SwVersion
	}
	return ""
}

// Alternate third-party device ID.
type AgentOtherDeviceId struct {
	// Project ID for your smart home Action.
	AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"`
	// Unique third-party device ID.
	DeviceId             string   `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AgentOtherDeviceId) Reset()         { *m = AgentOtherDeviceId{} }
func (m *AgentOtherDeviceId) String() string { return proto.CompactTextString(m) }
func (*AgentOtherDeviceId) ProtoMessage()    {}
func (*AgentOtherDeviceId) Descriptor() ([]byte, []int) {
	return fileDescriptor_1729f8e53993f499, []int{3}
}

func (m *AgentOtherDeviceId) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AgentOtherDeviceId.Unmarshal(m, b)
}
func (m *AgentOtherDeviceId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AgentOtherDeviceId.Marshal(b, m, deterministic)
}
func (m *AgentOtherDeviceId) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AgentOtherDeviceId.Merge(m, src)
}
func (m *AgentOtherDeviceId) XXX_Size() int {
	return xxx_messageInfo_AgentOtherDeviceId.Size(m)
}
func (m *AgentOtherDeviceId) XXX_DiscardUnknown() {
	xxx_messageInfo_AgentOtherDeviceId.DiscardUnknown(m)
}

var xxx_messageInfo_AgentOtherDeviceId proto.InternalMessageInfo

func (m *AgentOtherDeviceId) GetAgentId() string {
	if m != nil {
		return m.AgentId
	}
	return ""
}

func (m *AgentOtherDeviceId) GetDeviceId() string {
	if m != nil {
		return m.DeviceId
	}
	return ""
}

func init() {
	proto.RegisterType((*Device)(nil), "google.home.graph.v1.Device")
	proto.RegisterType((*DeviceNames)(nil), "google.home.graph.v1.DeviceNames")
	proto.RegisterType((*DeviceInfo)(nil), "google.home.graph.v1.DeviceInfo")
	proto.RegisterType((*AgentOtherDeviceId)(nil), "google.home.graph.v1.AgentOtherDeviceId")
}

func init() {
	proto.RegisterFile("google/home/graph/v1/device.proto", fileDescriptor_1729f8e53993f499)
}

var fileDescriptor_1729f8e53993f499 = []byte{
	// 571 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0xdf, 0x6b, 0x13, 0x41,
	0x10, 0x26, 0x3f, 0x9a, 0x26, 0x93, 0xb6, 0xea, 0x52, 0x74, 0xd5, 0x8a, 0x69, 0x44, 0x08, 0x3e,
	0xdc, 0xd1, 0x8a, 0xa8, 0xf8, 0xd4, 0x52, 0xc1, 0x82, 0xa8, 0x5c, 0xc1, 0x07, 0x5f, 0x96, 0x4d,
	0x76, 0x73, 0x59, 0xbc, 0xdb, 0x3d, 0x76, 0xf7, 0x52, 0xfa, 0xee, 0x9f, 0xe5, 0x1f, 0x27, 0x3b,
	0x7b, 0x49, 0x53, 0x0c, 0xfa, 0x36, 0xf3, 0xcd, 0x37, 0x3f, 0x76, 0xe6, 0xbb, 0x83, 0xe3, 0xdc,
	0x98, 0xbc, 0x90, 0xe9, 0xc2, 0x94, 0x32, 0xcd, 0x2d, 0xaf, 0x16, 0xe9, 0xf2, 0x24, 0x15, 0x72,
	0xa9, 0x66, 0x32, 0xa9, 0xac, 0xf1, 0x86, 0x1c, 0x46, 0x4a, 0x12, 0x28, 0x09, 0x52, 0x92, 0xe5,
	0xc9, 0x93, 0xa3, 0x26, 0x11, 0x39, 0xd3, 0x7a, 0x9e, 0x3a, 0x6f, 0xeb, 0x99, 0x8f, 0x39, 0xe3,
	0xdf, 0x5d, 0xe8, 0x5d, 0x60, 0x11, 0x72, 0x00, 0x6d, 0x25, 0x68, 0x6b, 0xd4, 0x9a, 0x0c, 0xb2,
	0xb6, 0x12, 0x84, 0x40, 0xd7, 0xdf, 0x54, 0x92, 0xb6, 0x11, 0x41, 0x9b, 0x3c, 0x84, 0x9e, 0xb7,
	0x5c, 0x79, 0x47, 0x3b, 0xa3, 0xce, 0x64, 0x90, 0x35, 0x1e, 0x79, 0x03, 0x5d, 0xcd, 0x4b, 0x49,
	0xbb, 0xa3, 0xd6, 0x64, 0x78, 0x7a, 0x9c, 0x6c, 0x9b, 0x24, 0x89, 0x7d, 0xbe, 0xf0, 0x52, 0xba,
	0x0c, 0xe9, 0xe4, 0x15, 0x3c, 0xb8, 0x56, 0x45, 0xc1, 0xac, 0xac, 0x8c, 0xf5, 0xcc, 0x79, 0xee,
	0x25, 0xdd, 0x19, 0xb5, 0x26, 0xfd, 0xec, 0x5e, 0x08, 0x64, 0x88, 0x5f, 0x05, 0x98, 0x3c, 0x85,
	0x81, 0x35, 0xa6, 0x64, 0x0b, 0xa5, 0x3d, 0xed, 0xe1, 0x4c, 0xfd, 0x00, 0x7c, 0x52, 0xda, 0x93,
	0x97, 0x70, 0x10, 0x9f, 0x55, 0x5b, 0x19, 0x19, 0xbb, 0xc8, 0xd8, 0x5f, 0xa3, 0x48, 0x3b, 0x83,
	0x61, 0xdc, 0x18, 0x53, 0x7a, 0x6e, 0x68, 0x1f, 0xa7, 0x1d, 0xfd, 0x6b, 0xda, 0x4b, 0x3d, 0x37,
	0x19, 0x88, 0xb5, 0x4d, 0xde, 0x02, 0x70, 0xef, 0xad, 0x9a, 0xd6, 0x5e, 0x3a, 0x3a, 0xc0, 0x0a,
	0x8f, 0x56, 0x15, 0x56, 0x3b, 0x4e, 0xae, 0xb0, 0x6d, 0xb6, 0x41, 0x25, 0xef, 0x60, 0x38, 0xab,
	0x9d, 0x37, 0x25, 0x13, 0xdc, 0x73, 0x0a, 0xff, 0xc9, 0x8c, 0xdc, 0x0b, 0xee, 0x39, 0xc9, 0xe0,
	0xbe, 0xf1, 0x0b, 0x69, 0xd9, 0x6a, 0x76, 0xe1, 0xe8, 0x70, 0xd4, 0x99, 0x0c, 0x4f, 0x27, 0xdb,
	0x47, 0x3f, 0xcb, 0xa5, 0xf6, 0x5f, 0x43, 0x4a, 0xf3, 0x08, 0x91, 0x1d, 0x98, 0x4d, 0xd7, 0x91,
	0x8f, 0xf0, 0x5c, 0x1b, 0xaf, 0xe6, 0x6a, 0xc6, 0xbd, 0x32, 0x9a, 0xb9, 0xba, 0x0a, 0xab, 0x96,
	0x82, 0x4d, 0x6f, 0x18, 0x0f, 0xf9, 0x74, 0x0f, 0xef, 0x70, 0xb4, 0x49, 0xbb, 0x5a, 0xb1, 0xce,
	0x6f, 0xb0, 0xc7, 0x58, 0xc0, 0x70, 0xe3, 0xaa, 0x41, 0x32, 0x28, 0x83, 0x28, 0xa2, 0x78, 0xe3,
	0x23, 0x18, 0x68, 0x35, 0xfb, 0x19, 0x6c, 0x47, 0xdb, 0xa8, 0x9a, 0x5b, 0x80, 0xbc, 0x80, 0x7d,
	0x21, 0xe7, 0xbc, 0x2e, 0x3c, 0x8b, 0x8c, 0xa8, 0xab, 0xbd, 0x06, 0xc4, 0xb2, 0xe3, 0x5f, 0x2d,
	0x80, 0xdb, 0x73, 0x90, 0x31, 0xec, 0x95, 0x5c, 0xd7, 0x73, 0x8e, 0x87, 0xb5, 0x4d, 0xb7, 0x3b,
	0x18, 0x39, 0x84, 0x9d, 0xd2, 0x08, 0x59, 0x34, 0xea, 0x8d, 0x0e, 0x79, 0x06, 0xb0, 0xb8, 0x66,
	0x4b, 0x69, 0x9d, 0x32, 0x9a, 0x76, 0x30, 0x34, 0x58, 0x5c, 0x7f, 0x8f, 0x40, 0x08, 0xbb, 0xdb,
	0x70, 0x37, 0x86, 0xdd, 0x2a, 0x3c, 0xfe, 0x0c, 0xe4, 0xef, 0xcd, 0x92, 0xc7, 0xd0, 0xc7, 0x7d,
	0xb1, 0xf5, 0xc7, 0xb3, 0x8b, 0xfe, 0xa5, 0x08, 0x92, 0x5d, 0x9f, 0xac, 0x19, 0xa4, 0xdf, 0x48,
	0x49, 0x9c, 0x4f, 0x81, 0xce, 0x4c, 0xb9, 0xf5, 0x80, 0xe7, 0xcd, 0x52, 0xbf, 0x05, 0x51, 0xfc,
	0x78, 0xdf, 0x50, 0x72, 0x53, 0x70, 0x9d, 0x27, 0xc6, 0xe6, 0x69, 0x2e, 0x35, 0x0a, 0x26, 0x8d,
	0x21, 0x5e, 0x29, 0x77, 0xf7, 0xc7, 0xf0, 0x01, 0x8d, 0x69, 0x0f, 0x59, 0xaf, 0xff, 0x04, 0x00,
	0x00, 0xff, 0xff, 0x76, 0xaa, 0x42, 0xfe, 0x3d, 0x04, 0x00, 0x00,
}
