1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.home.graph.v1;
import "google/protobuf/struct.proto";
option go_package = "google.golang.org/genproto/googleapis/home/graph/v1;graph";
option java_outer_classname = "DeviceProto";
option java_package = "com.google.home.graph.v1";
option php_namespace = "Google\\Home\\Graph\\V1";
// Third-party device definition.
message Device {
// Third-party device ID.
string id = 1;
// Hardware type of the device.
// See [device
// types](https://developers.google.com/assistant/smarthome/guides).
string type = 2;
// Traits supported by the device.
// See [device
// traits](https://developers.google.com/assistant/smarthome/traits).
repeated string traits = 3;
// Names given to this device by your smart home Action.
DeviceNames name = 4;
// Indicates whether your smart home Action will report state of this device
// to Google via
// [ReportStateAndNotification][google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification].
bool will_report_state = 5;
// Suggested name for the room where this device is installed.
// Google attempts to use this value during user setup.
string room_hint = 6;
// Suggested name for the structure where this device is installed.
// Google attempts to use this value during user setup.
string structure_hint = 7;
// Device manufacturer, model, hardware version, and software version.
DeviceInfo device_info = 8;
// Attributes for the traits supported by the device.
google.protobuf.Struct attributes = 9;
// 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.
google.protobuf.Struct custom_data = 10;
// 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).
repeated AgentOtherDeviceId other_device_ids = 11;
// Indicates whether your smart home Action will report notifications
// to Google for this device via
// [ReportStateAndNotification][google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification].
//
// If your smart home Action enables users to control device notifications,
// you should update this field and call
// [RequestSyncDevices][google.home.graph.v1.HomeGraphApiService.RequestSyncDevices].
bool notification_supported_by_agent = 12;
}
// Identifiers used to describe the device.
message DeviceNames {
// Primary name of the device, generally provided by the user.
string name = 1;
// Additional names provided by the user for the device.
repeated string nicknames = 2;
// List of names provided by the manufacturer rather than the user, such as
// serial numbers, SKUs, etc.
repeated string default_names = 3;
}
// Device information.
message DeviceInfo {
// Device manufacturer.
string manufacturer = 1;
// Device model.
string model = 2;
// Device hardware version.
string hw_version = 3;
// Device software version.
string sw_version = 4;
}
// Alternate third-party device ID.
message AgentOtherDeviceId {
// Project ID for your smart home Action.
string agent_id = 1;
// Unique third-party device ID.
string device_id = 2;
}
|