1{
2  "auth": {
3    "oauth2": {
4      "scopes": {
5        "https://www.googleapis.com/auth/sdm.service": {
6          "description": "See and/or control the devices that you selected"
7        },
8        "https://www.googleapis.com/auth/sdm.thermostat.service": {
9          "description": "See and control the Nest thermostats that you select"
10        }
11      }
12    }
13  },
14  "basePath": "",
15  "baseUrl": "https://smartdevicemanagement.googleapis.com/",
16  "batchPath": "batch",
17  "canonicalName": "Smart Device Management",
18  "description": "Allow select enterprise partners to access, control, and manage Google and Nest devices programmatically.",
19  "discoveryVersion": "v1",
20  "documentationLink": "https://developers.google.com/nest/device-access",
21  "fullyEncodeReservedExpansion": true,
22  "icons": {
23    "x16": "http://www.google.com/images/icons/product/search-16.gif",
24    "x32": "http://www.google.com/images/icons/product/search-32.gif"
25  },
26  "id": "smartdevicemanagement:v1",
27  "kind": "discovery#restDescription",
28  "mtlsRootUrl": "https://smartdevicemanagement.mtls.googleapis.com/",
29  "name": "smartdevicemanagement",
30  "ownerDomain": "google.com",
31  "ownerName": "Google",
32  "parameters": {
33    "$.xgafv": {
34      "description": "V1 error format.",
35      "enum": [
36        "1",
37        "2"
38      ],
39      "enumDescriptions": [
40        "v1 error format",
41        "v2 error format"
42      ],
43      "location": "query",
44      "type": "string"
45    },
46    "access_token": {
47      "description": "OAuth access token.",
48      "location": "query",
49      "type": "string"
50    },
51    "alt": {
52      "default": "json",
53      "description": "Data format for response.",
54      "enum": [
55        "json",
56        "media",
57        "proto"
58      ],
59      "enumDescriptions": [
60        "Responses with Content-Type of application/json",
61        "Media download with context-dependent Content-Type",
62        "Responses with Content-Type of application/x-protobuf"
63      ],
64      "location": "query",
65      "type": "string"
66    },
67    "callback": {
68      "description": "JSONP",
69      "location": "query",
70      "type": "string"
71    },
72    "fields": {
73      "description": "Selector specifying which fields to include in a partial response.",
74      "location": "query",
75      "type": "string"
76    },
77    "key": {
78      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
79      "location": "query",
80      "type": "string"
81    },
82    "oauth_token": {
83      "description": "OAuth 2.0 token for the current user.",
84      "location": "query",
85      "type": "string"
86    },
87    "prettyPrint": {
88      "default": "true",
89      "description": "Returns response with indentations and line breaks.",
90      "location": "query",
91      "type": "boolean"
92    },
93    "quotaUser": {
94      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
95      "location": "query",
96      "type": "string"
97    },
98    "uploadType": {
99      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
100      "location": "query",
101      "type": "string"
102    },
103    "upload_protocol": {
104      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
105      "location": "query",
106      "type": "string"
107    }
108  },
109  "protocol": "rest",
110  "resources": {
111    "enterprises": {
112      "resources": {
113        "devices": {
114          "methods": {
115            "executeCommand": {
116              "description": "Executes a command to device managed by the enterprise.",
117              "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}:executeCommand",
118              "httpMethod": "POST",
119              "id": "smartdevicemanagement.enterprises.devices.executeCommand",
120              "parameterOrder": [
121                "name"
122              ],
123              "parameters": {
124                "name": {
125                  "description": "The name of the device requested. For example: \"enterprises/XYZ/devices/123\"",
126                  "location": "path",
127                  "pattern": "^enterprises/[^/]+/devices/[^/]+$",
128                  "required": true,
129                  "type": "string"
130                }
131              },
132              "path": "v1/{+name}:executeCommand",
133              "request": {
134                "$ref": "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandRequest"
135              },
136              "response": {
137                "$ref": "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandResponse"
138              },
139              "scopes": [
140                "https://www.googleapis.com/auth/sdm.service",
141                "https://www.googleapis.com/auth/sdm.thermostat.service"
142              ]
143            },
144            "get": {
145              "description": "Gets a device managed by the enterprise.",
146              "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}",
147              "httpMethod": "GET",
148              "id": "smartdevicemanagement.enterprises.devices.get",
149              "parameterOrder": [
150                "name"
151              ],
152              "parameters": {
153                "name": {
154                  "description": "The name of the device requested. For example: \"enterprises/XYZ/devices/123\"",
155                  "location": "path",
156                  "pattern": "^enterprises/[^/]+/devices/[^/]+$",
157                  "required": true,
158                  "type": "string"
159                }
160              },
161              "path": "v1/{+name}",
162              "response": {
163                "$ref": "GoogleHomeEnterpriseSdmV1Device"
164              },
165              "scopes": [
166                "https://www.googleapis.com/auth/sdm.service",
167                "https://www.googleapis.com/auth/sdm.thermostat.service"
168              ]
169            },
170            "list": {
171              "description": "Lists devices managed by the enterprise.",
172              "flatPath": "v1/enterprises/{enterprisesId}/devices",
173              "httpMethod": "GET",
174              "id": "smartdevicemanagement.enterprises.devices.list",
175              "parameterOrder": [
176                "parent"
177              ],
178              "parameters": {
179                "filter": {
180                  "description": "Optional filter to list devices. Filters can be done on: Device custom name (substring match): 'customName=wing'",
181                  "location": "query",
182                  "type": "string"
183                },
184                "pageSize": {
185                  "description": "Optional requested page size. Server may return fewer devices than requested. If unspecified, server will pick an appropriate default.",
186                  "format": "int32",
187                  "location": "query",
188                  "type": "integer"
189                },
190                "pageToken": {
191                  "description": "Optional token of the page to retrieve.",
192                  "location": "query",
193                  "type": "string"
194                },
195                "parent": {
196                  "description": "The parent enterprise to list devices under. E.g. \"enterprises/XYZ\".",
197                  "location": "path",
198                  "pattern": "^enterprises/[^/]+$",
199                  "required": true,
200                  "type": "string"
201                }
202              },
203              "path": "v1/{+parent}/devices",
204              "response": {
205                "$ref": "GoogleHomeEnterpriseSdmV1ListDevicesResponse"
206              },
207              "scopes": [
208                "https://www.googleapis.com/auth/sdm.service",
209                "https://www.googleapis.com/auth/sdm.thermostat.service"
210              ]
211            }
212          }
213        },
214        "structures": {
215          "methods": {
216            "get": {
217              "description": "Gets a structure managed by the enterprise.",
218              "flatPath": "v1/enterprises/{enterprisesId}/structures/{structuresId}",
219              "httpMethod": "GET",
220              "id": "smartdevicemanagement.enterprises.structures.get",
221              "parameterOrder": [
222                "name"
223              ],
224              "parameters": {
225                "name": {
226                  "description": "The name of the structure requested. For example: \"enterprises/XYZ/structures/ABC\".",
227                  "location": "path",
228                  "pattern": "^enterprises/[^/]+/structures/[^/]+$",
229                  "required": true,
230                  "type": "string"
231                }
232              },
233              "path": "v1/{+name}",
234              "response": {
235                "$ref": "GoogleHomeEnterpriseSdmV1Structure"
236              },
237              "scopes": [
238                "https://www.googleapis.com/auth/sdm.service",
239                "https://www.googleapis.com/auth/sdm.thermostat.service"
240              ]
241            },
242            "list": {
243              "description": "Lists structures managed by the enterprise.",
244              "flatPath": "v1/enterprises/{enterprisesId}/structures",
245              "httpMethod": "GET",
246              "id": "smartdevicemanagement.enterprises.structures.list",
247              "parameterOrder": [
248                "parent"
249              ],
250              "parameters": {
251                "filter": {
252                  "description": "Optional filter to list structures.",
253                  "location": "query",
254                  "type": "string"
255                },
256                "pageSize": {
257                  "description": "Requested page size. Server may return fewer structures than requested. If unspecified, server will pick an appropriate default.",
258                  "format": "int32",
259                  "location": "query",
260                  "type": "integer"
261                },
262                "pageToken": {
263                  "description": "The token of the page to retrieve.",
264                  "location": "query",
265                  "type": "string"
266                },
267                "parent": {
268                  "description": "The parent enterprise to list structures under. E.g. \"enterprises/XYZ\".",
269                  "location": "path",
270                  "pattern": "^enterprises/[^/]+$",
271                  "required": true,
272                  "type": "string"
273                }
274              },
275              "path": "v1/{+parent}/structures",
276              "response": {
277                "$ref": "GoogleHomeEnterpriseSdmV1ListStructuresResponse"
278              },
279              "scopes": [
280                "https://www.googleapis.com/auth/sdm.service",
281                "https://www.googleapis.com/auth/sdm.thermostat.service"
282              ]
283            }
284          },
285          "resources": {
286            "rooms": {
287              "methods": {
288                "get": {
289                  "description": "Gets a room managed by the enterprise.",
290                  "flatPath": "v1/enterprises/{enterprisesId}/structures/{structuresId}/rooms/{roomsId}",
291                  "httpMethod": "GET",
292                  "id": "smartdevicemanagement.enterprises.structures.rooms.get",
293                  "parameterOrder": [
294                    "name"
295                  ],
296                  "parameters": {
297                    "name": {
298                      "description": "The name of the room requested. For example: \"enterprises/XYZ/structures/ABC/rooms/123\".",
299                      "location": "path",
300                      "pattern": "^enterprises/[^/]+/structures/[^/]+/rooms/[^/]+$",
301                      "required": true,
302                      "type": "string"
303                    }
304                  },
305                  "path": "v1/{+name}",
306                  "response": {
307                    "$ref": "GoogleHomeEnterpriseSdmV1Room"
308                  },
309                  "scopes": [
310                    "https://www.googleapis.com/auth/sdm.service",
311                    "https://www.googleapis.com/auth/sdm.thermostat.service"
312                  ]
313                },
314                "list": {
315                  "description": "Lists rooms managed by the enterprise.",
316                  "flatPath": "v1/enterprises/{enterprisesId}/structures/{structuresId}/rooms",
317                  "httpMethod": "GET",
318                  "id": "smartdevicemanagement.enterprises.structures.rooms.list",
319                  "parameterOrder": [
320                    "parent"
321                  ],
322                  "parameters": {
323                    "pageSize": {
324                      "description": "Requested page size. Server may return fewer rooms than requested. If unspecified, server will pick an appropriate default.",
325                      "format": "int32",
326                      "location": "query",
327                      "type": "integer"
328                    },
329                    "pageToken": {
330                      "description": "The token of the page to retrieve.",
331                      "location": "query",
332                      "type": "string"
333                    },
334                    "parent": {
335                      "description": "The parent resource name of the rooms requested. For example: \"enterprises/XYZ/structures/ABC\".",
336                      "location": "path",
337                      "pattern": "^enterprises/[^/]+/structures/[^/]+$",
338                      "required": true,
339                      "type": "string"
340                    }
341                  },
342                  "path": "v1/{+parent}/rooms",
343                  "response": {
344                    "$ref": "GoogleHomeEnterpriseSdmV1ListRoomsResponse"
345                  },
346                  "scopes": [
347                    "https://www.googleapis.com/auth/sdm.service",
348                    "https://www.googleapis.com/auth/sdm.thermostat.service"
349                  ]
350                }
351              }
352            }
353          }
354        }
355      }
356    }
357  },
358  "revision": "20211215",
359  "rootUrl": "https://smartdevicemanagement.googleapis.com/",
360  "schemas": {
361    "GoogleHomeEnterpriseSdmV1Device": {
362      "description": "Device resource represents an instance of enterprise managed device in the property.",
363      "id": "GoogleHomeEnterpriseSdmV1Device",
364      "properties": {
365        "name": {
366          "description": "Required. The resource name of the device. For example: \"enterprises/XYZ/devices/123\".",
367          "type": "string"
368        },
369        "parentRelations": {
370          "description": "Assignee details of the device.",
371          "items": {
372            "$ref": "GoogleHomeEnterpriseSdmV1ParentRelation"
373          },
374          "type": "array"
375        },
376        "traits": {
377          "additionalProperties": {
378            "description": "Properties of the object.",
379            "type": "any"
380          },
381          "description": "Output only. Device traits.",
382          "readOnly": true,
383          "type": "object"
384        },
385        "type": {
386          "description": "Output only. Type of the device for general display purposes. For example: \"THERMOSTAT\". The device type should not be used to deduce or infer functionality of the actual device it is assigned to. Instead, use the returned traits for the device.",
387          "readOnly": true,
388          "type": "string"
389        }
390      },
391      "type": "object"
392    },
393    "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandRequest": {
394      "description": "Request message for SmartDeviceManagementService.ExecuteDeviceCommand",
395      "id": "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandRequest",
396      "properties": {
397        "command": {
398          "description": "The command name to execute, represented by the fully qualified protobuf message name.",
399          "type": "string"
400        },
401        "params": {
402          "additionalProperties": {
403            "description": "Properties of the object.",
404            "type": "any"
405          },
406          "description": "The command message to execute, represented as a Struct.",
407          "type": "object"
408        }
409      },
410      "type": "object"
411    },
412    "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandResponse": {
413      "description": "Response message for SmartDeviceManagementService.ExecuteDeviceCommand",
414      "id": "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandResponse",
415      "properties": {
416        "results": {
417          "additionalProperties": {
418            "description": "Properties of the object.",
419            "type": "any"
420          },
421          "description": "The results of executing the command.",
422          "type": "object"
423        }
424      },
425      "type": "object"
426    },
427    "GoogleHomeEnterpriseSdmV1ListDevicesResponse": {
428      "description": "Response message for SmartDeviceManagementService.ListDevices",
429      "id": "GoogleHomeEnterpriseSdmV1ListDevicesResponse",
430      "properties": {
431        "devices": {
432          "description": "The list of devices.",
433          "items": {
434            "$ref": "GoogleHomeEnterpriseSdmV1Device"
435          },
436          "type": "array"
437        },
438        "nextPageToken": {
439          "description": "The pagination token to retrieve the next page of results.",
440          "type": "string"
441        }
442      },
443      "type": "object"
444    },
445    "GoogleHomeEnterpriseSdmV1ListRoomsResponse": {
446      "description": "Response message for SmartDeviceManagementService.ListRooms",
447      "id": "GoogleHomeEnterpriseSdmV1ListRoomsResponse",
448      "properties": {
449        "nextPageToken": {
450          "description": "The pagination token to retrieve the next page of results. If this field is omitted, there are no subsequent pages.",
451          "type": "string"
452        },
453        "rooms": {
454          "description": "The list of rooms.",
455          "items": {
456            "$ref": "GoogleHomeEnterpriseSdmV1Room"
457          },
458          "type": "array"
459        }
460      },
461      "type": "object"
462    },
463    "GoogleHomeEnterpriseSdmV1ListStructuresResponse": {
464      "description": "Response message for SmartDeviceManagementService.ListStructures",
465      "id": "GoogleHomeEnterpriseSdmV1ListStructuresResponse",
466      "properties": {
467        "nextPageToken": {
468          "description": "The pagination token to retrieve the next page of results. If this field is omitted, there are no subsequent pages.",
469          "type": "string"
470        },
471        "structures": {
472          "description": "The list of structures.",
473          "items": {
474            "$ref": "GoogleHomeEnterpriseSdmV1Structure"
475          },
476          "type": "array"
477        }
478      },
479      "type": "object"
480    },
481    "GoogleHomeEnterpriseSdmV1ParentRelation": {
482      "description": "Represents device relationships, for instance, structure/room to which the device is assigned to.",
483      "id": "GoogleHomeEnterpriseSdmV1ParentRelation",
484      "properties": {
485        "displayName": {
486          "description": "Output only. The custom name of the relation -- e.g., structure/room where the device is assigned to.",
487          "readOnly": true,
488          "type": "string"
489        },
490        "parent": {
491          "description": "Output only. The name of the relation -- e.g., structure/room where the device is assigned to. For example: \"enterprises/XYZ/structures/ABC\" or \"enterprises/XYZ/structures/ABC/rooms/123\"",
492          "readOnly": true,
493          "type": "string"
494        }
495      },
496      "type": "object"
497    },
498    "GoogleHomeEnterpriseSdmV1Room": {
499      "description": "Room resource represents an instance of sub-space within a structure such as rooms in a hotel suite or rental apartment.",
500      "id": "GoogleHomeEnterpriseSdmV1Room",
501      "properties": {
502        "name": {
503          "description": "Output only. The resource name of the room. For example: \"enterprises/XYZ/structures/ABC/rooms/123\".",
504          "readOnly": true,
505          "type": "string"
506        },
507        "traits": {
508          "additionalProperties": {
509            "description": "Properties of the object.",
510            "type": "any"
511          },
512          "description": "Room traits.",
513          "type": "object"
514        }
515      },
516      "type": "object"
517    },
518    "GoogleHomeEnterpriseSdmV1Structure": {
519      "description": "Structure resource represents an instance of enterprise managed home or hotel room.",
520      "id": "GoogleHomeEnterpriseSdmV1Structure",
521      "properties": {
522        "name": {
523          "description": "Output only. The resource name of the structure. For example: \"enterprises/XYZ/structures/ABC\".",
524          "readOnly": true,
525          "type": "string"
526        },
527        "traits": {
528          "additionalProperties": {
529            "description": "Properties of the object.",
530            "type": "any"
531          },
532          "description": "Structure traits.",
533          "type": "object"
534        }
535      },
536      "type": "object"
537    }
538  },
539  "servicePath": "",
540  "title": "Smart Device Management API",
541  "version": "v1",
542  "version_module": true
543}