summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/home/graph/v1/device.proto
blob: 9a8fc33028f4ab2e2357606cae11deebdebb741f (plain)
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;
}