<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="smartdevicemanagement_v1.html">Smart Device Management API</a> . <a href="smartdevicemanagement_v1.enterprises.html">enterprises</a> . <a href="smartdevicemanagement_v1.enterprises.devices.html">devices</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#executeCommand">executeCommand(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Executes a command to device managed by the enterprise.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a device managed by the enterprise.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, pageToken=None, pageSize=None, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists devices managed by the enterprise.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="executeCommand">executeCommand(name, body=None, x__xgafv=None)</code>
  <pre>Executes a command to device managed by the enterprise.

Args:
  name: string, The name of the device requested. For example: &quot;enterprises/XYZ/devices/123&quot; (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for SmartDeviceManagementService.ExecuteDeviceCommand
    &quot;params&quot;: { # The command message to execute, represented as a Struct.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;command&quot;: &quot;A String&quot;, # The command name to execute, represented by the fully qualified protobuf message name.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for SmartDeviceManagementService.ExecuteDeviceCommand
    &quot;results&quot;: { # The results of executing the command.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets a device managed by the enterprise.

Args:
  name: string, The name of the device requested. For example: &quot;enterprises/XYZ/devices/123&quot; (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Device resource represents an instance of enterprise managed device in the property.
    &quot;assignee&quot;: &quot;A String&quot;, # Output only. The name of the structure/room where the device is assigned to. For example: &quot;enterprises/XYZ/structures/ABC&quot; or &quot;enterprises/XYZ/structures/ABC/rooms/123&quot;
    &quot;parentRelations&quot;: [ # Assignee details of the device.
      { # Represents device relationships, for instance, structure/room to which the device is assigned to. For now this is only filled in the enterprise flow.
        &quot;displayName&quot;: &quot;A String&quot;, # Output only. The custom name of the relation -- e.g., structure/room where the device is assigned to.
        &quot;parent&quot;: &quot;A String&quot;, # Output only. The name of the relation -- e.g., structure/room where the device is assigned to. For example: &quot;enterprises/XYZ/structures/ABC&quot; or &quot;enterprises/XYZ/structures/ABC/rooms/123&quot;
      },
    ],
    &quot;traits&quot;: { # Output only. Device traits.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;name&quot;: &quot;A String&quot;, # Required. The resource name of the device. For example: &quot;enterprises/XYZ/devices/123&quot;.
    &quot;type&quot;: &quot;A String&quot;, # Output only. Type of the device for general display purposes. For example: &quot;THERMOSTAT&quot;. 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageToken=None, pageSize=None, view=None, x__xgafv=None)</code>
  <pre>Lists devices managed by the enterprise.

Args:
  parent: string, The parent enterprise to list devices under. E.g. &quot;enterprises/XYZ&quot;. (required)
  filter: string, Optional filter to list devices. Filters can match the exact assignee (could be a structure or a room). E.g. &#x27;assignee=enterprises/XYZ/structures/abc&#x27; Also could filter by parent (group): &#x27;parent=enterprises/XYZ/groups/jkl&#x27; or filter by device custom name (substring match): &#x27;customName=wing&#x27;
  pageToken: string, Optional token of the page to retrieve.
  pageSize: integer, Optional requested page size. Server may return fewer devices than requested. If unspecified, server will pick an appropriate default.
  view: string, Additional details that need to be provided for the device.
    Allowed values
      DEVICE_DETAILS_VIEW_UNSPECIFIED - Default option this would return basic details for both Get and Listd Devices. Currently this view is supported only for device types, SPEAKER, DISPLAY,
      DEVICE_CONSOLE_VIEW - Selecting this option would return the structureId and structure name to which the device is assigned alongwith other basic details. Currently this view is supported only for device types -- sdm.devices.types.SPEAKER -- sdm.devices.types.CHROMECAST -- sdm.devices.types.DISPLAY -- sdm.devices.types.CAMERA Any other device type would only return a basic view during ListDevices invocation.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for SmartDeviceManagementService.ListDevices
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The pagination token to retrieve the next page of results.
    &quot;devices&quot;: [ # The list of devices.
      { # Device resource represents an instance of enterprise managed device in the property.
        &quot;assignee&quot;: &quot;A String&quot;, # Output only. The name of the structure/room where the device is assigned to. For example: &quot;enterprises/XYZ/structures/ABC&quot; or &quot;enterprises/XYZ/structures/ABC/rooms/123&quot;
        &quot;parentRelations&quot;: [ # Assignee details of the device.
          { # Represents device relationships, for instance, structure/room to which the device is assigned to. For now this is only filled in the enterprise flow.
            &quot;displayName&quot;: &quot;A String&quot;, # Output only. The custom name of the relation -- e.g., structure/room where the device is assigned to.
            &quot;parent&quot;: &quot;A String&quot;, # Output only. The name of the relation -- e.g., structure/room where the device is assigned to. For example: &quot;enterprises/XYZ/structures/ABC&quot; or &quot;enterprises/XYZ/structures/ABC/rooms/123&quot;
          },
        ],
        &quot;traits&quot;: { # Output only. Device traits.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
        &quot;name&quot;: &quot;A String&quot;, # Required. The resource name of the device. For example: &quot;enterprises/XYZ/devices/123&quot;.
        &quot;type&quot;: &quot;A String&quot;, # Output only. Type of the device for general display purposes. For example: &quot;THERMOSTAT&quot;. 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.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>