<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="homegraph_v1.html">HomeGraph API</a> . <a href="homegraph_v1.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="#query">query(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the current states in Home Graph for the given set of the third-party user's devices. The third-party user's identity is passed in via the `agent_user_id` (see QueryRequest). This request must be authorized using service account credentials from your Actions console project.</p>
<p class="toc_element">
  <code><a href="#reportStateAndNotification">reportStateAndNotification(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Reports device state and optionally sends device notifications. Called by your smart home Action when the state of a third-party device changes or you need to send a notification about the device. See [Implement Report State](https://developers.google.com/assistant/smarthome/develop/report-state) for more information. This method updates the device state according to its declared [traits](https://developers.google.com/assistant/smarthome/concepts/devices-traits). Publishing a new state value outside of these traits will result in an `INVALID_ARGUMENT` error response. The third-party user's identity is passed in via the `agent_user_id` (see ReportStateAndNotificationRequest). This request must be authorized using service account credentials from your Actions console project.</p>
<p class="toc_element">
  <code><a href="#requestSync">requestSync(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Requests Google to send an `action.devices.SYNC` [intent](https://developers.google.com/assistant/smarthome/reference/intent/sync) to your smart home Action to update device metadata for the given user. The third-party user's identity is passed via the `agent_user_id` (see RequestSyncDevicesRequest). This request must be authorized using service account credentials from your Actions console project.</p>
<p class="toc_element">
  <code><a href="#sync">sync(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets all the devices associated with the given third-party user. The third-party user's identity is passed in via the `agent_user_id` (see SyncRequest). This request must be authorized using service account credentials from your Actions console project.</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="query">query(body=None, x__xgafv=None)</code>
  <pre>Gets the current states in Home Graph for the given set of the third-party user&#x27;s devices. The third-party user&#x27;s identity is passed in via the `agent_user_id` (see QueryRequest). This request must be authorized using service account credentials from your Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call.
  &quot;agentUserId&quot;: &quot;A String&quot;, # Required. Third-party user ID.
  &quot;inputs&quot;: [ # Required. Inputs containing third-party device IDs for which to get the device states.
    { # Device ID inputs to QueryRequest.
      &quot;payload&quot;: { # Payload containing device IDs. # Payload containing third-party device IDs.
        &quot;devices&quot;: [ # Third-party device IDs for which to get the device states.
          { # Third-party device ID for one device.
            &quot;id&quot;: &quot;A String&quot;, # Third-party device ID.
          },
        ],
      },
    },
  ],
  &quot;requestId&quot;: &quot;A String&quot;, # Request ID used for debugging.
}

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

Returns:
  An object of the form:

    { # Response type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call. This should follow the same format as the Google smart home `action.devices.QUERY` [response](https://developers.google.com/assistant/smarthome/reference/intent/query). # Example ```json { &quot;requestId&quot;: &quot;ff36a3cc-ec34-11e6-b1a0-64510650abcf&quot;, &quot;payload&quot;: { &quot;devices&quot;: { &quot;123&quot;: { &quot;on&quot;: true, &quot;online&quot;: true }, &quot;456&quot;: { &quot;on&quot;: true, &quot;online&quot;: true, &quot;brightness&quot;: 80, &quot;color&quot;: { &quot;name&quot;: &quot;cerulean&quot;, &quot;spectrumRGB&quot;: 31655 } } } } } ```
  &quot;payload&quot;: { # Payload containing device states information. # Device states for the devices given in the request.
    &quot;devices&quot;: { # States of the devices. Map of third-party device ID to struct of device states.
      &quot;a_key&quot;: {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
    },
  },
  &quot;requestId&quot;: &quot;A String&quot;, # Request ID used for debugging. Copied from the request.
}</pre>
</div>

<div class="method">
    <code class="details" id="reportStateAndNotification">reportStateAndNotification(body=None, x__xgafv=None)</code>
  <pre>Reports device state and optionally sends device notifications. Called by your smart home Action when the state of a third-party device changes or you need to send a notification about the device. See [Implement Report State](https://developers.google.com/assistant/smarthome/develop/report-state) for more information. This method updates the device state according to its declared [traits](https://developers.google.com/assistant/smarthome/concepts/devices-traits). Publishing a new state value outside of these traits will result in an `INVALID_ARGUMENT` error response. The third-party user&#x27;s identity is passed in via the `agent_user_id` (see ReportStateAndNotificationRequest). This request must be authorized using service account credentials from your Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification) call. It may include states, notifications, or both. States and notifications are defined per `device_id` (for example, &quot;123&quot; and &quot;456&quot; in the following example). # Example ```json { &quot;requestId&quot;: &quot;ff36a3cc-ec34-11e6-b1a0-64510650abcf&quot;, &quot;agentUserId&quot;: &quot;1234&quot;, &quot;payload&quot;: { &quot;devices&quot;: { &quot;states&quot;: { &quot;123&quot;: { &quot;on&quot;: true }, &quot;456&quot;: { &quot;on&quot;: true, &quot;brightness&quot;: 10 } }, } } } ```
  &quot;agentUserId&quot;: &quot;A String&quot;, # Required. Third-party user ID.
  &quot;eventId&quot;: &quot;A String&quot;, # Unique identifier per event (for example, a doorbell press).
  &quot;followUpToken&quot;: &quot;A String&quot;, # Deprecated.
  &quot;payload&quot;: { # Payload containing the state and notification information for devices. # Required. State of devices to update and notification metadata for devices.
    &quot;devices&quot;: { # The states and notifications specific to a device. # The devices for updating state and sending notifications.
      &quot;notifications&quot;: { # Notifications metadata for devices. See the **Device NOTIFICATIONS** section of the individual trait [reference guides](https://developers.google.com/assistant/smarthome/traits).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;states&quot;: { # States of devices to update. See the **Device STATES** section of the individual trait [reference guides](https://developers.google.com/assistant/smarthome/traits).
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
    },
  },
  &quot;requestId&quot;: &quot;A String&quot;, # Request ID used for debugging.
}

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

Returns:
  An object of the form:

    { # Response type for the [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification) call.
  &quot;requestId&quot;: &quot;A String&quot;, # Request ID copied from ReportStateAndNotificationRequest.
}</pre>
</div>

<div class="method">
    <code class="details" id="requestSync">requestSync(body=None, x__xgafv=None)</code>
  <pre>Requests Google to send an `action.devices.SYNC` [intent](https://developers.google.com/assistant/smarthome/reference/intent/sync) to your smart home Action to update device metadata for the given user. The third-party user&#x27;s identity is passed via the `agent_user_id` (see RequestSyncDevicesRequest). This request must be authorized using service account credentials from your Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the [`RequestSyncDevices`](#google.home.graph.v1.HomeGraphApiService.RequestSyncDevices) call.
  &quot;agentUserId&quot;: &quot;A String&quot;, # Required. Third-party user ID.
  &quot;async&quot;: True or False, # Optional. If set, the request will be added to a queue and a response will be returned immediately. This enables concurrent requests for the given `agent_user_id`, but the caller will not receive any error responses.
}

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

Returns:
  An object of the form:

    { # Response type for the [`RequestSyncDevices`](#google.home.graph.v1.HomeGraphApiService.RequestSyncDevices) call. Intentionally empty upon success. An HTTP response code is returned with more details upon failure.
}</pre>
</div>

<div class="method">
    <code class="details" id="sync">sync(body=None, x__xgafv=None)</code>
  <pre>Gets all the devices associated with the given third-party user. The third-party user&#x27;s identity is passed in via the `agent_user_id` (see SyncRequest). This request must be authorized using service account credentials from your Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call.
  &quot;agentUserId&quot;: &quot;A String&quot;, # Required. Third-party user ID.
  &quot;requestId&quot;: &quot;A String&quot;, # Request ID used for debugging.
}

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

Returns:
  An object of the form:

    { # Response type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call. This should follow the same format as the Google smart home `action.devices.SYNC` [response](https://developers.google.com/assistant/smarthome/reference/intent/sync). # Example ```json { &quot;requestId&quot;: &quot;ff36a3cc-ec34-11e6-b1a0-64510650abcf&quot;, &quot;payload&quot;: { &quot;agentUserId&quot;: &quot;1836.15267389&quot;, &quot;devices&quot;: [{ &quot;id&quot;: &quot;123&quot;, &quot;type&quot;: &quot;action.devices.types.OUTLET&quot;, &quot;traits&quot;: [ &quot;action.devices.traits.OnOff&quot; ], &quot;name&quot;: { &quot;defaultNames&quot;: [&quot;My Outlet 1234&quot;], &quot;name&quot;: &quot;Night light&quot;, &quot;nicknames&quot;: [&quot;wall plug&quot;] }, &quot;willReportState&quot;: false, &quot;deviceInfo&quot;: { &quot;manufacturer&quot;: &quot;lights-out-inc&quot;, &quot;model&quot;: &quot;hs1234&quot;, &quot;hwVersion&quot;: &quot;3.2&quot;, &quot;swVersion&quot;: &quot;11.4&quot; }, &quot;customData&quot;: { &quot;fooValue&quot;: 74, &quot;barValue&quot;: true, &quot;bazValue&quot;: &quot;foo&quot; } }] } } ```
  &quot;payload&quot;: { # Payload containing device information. # Devices associated with the third-party user.
    &quot;agentUserId&quot;: &quot;A String&quot;, # Third-party user ID
    &quot;devices&quot;: [ # Devices associated with the third-party user.
      { # Third-party device definition. Next ID = 14
        &quot;attributes&quot;: { # Attributes for the traits supported by the device.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
        &quot;customData&quot;: { # 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. Data in this object has a few constraints: No sensitive information, including but not limited to Personally Identifiable Information.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
        &quot;deviceInfo&quot;: { # Device information. # Device manufacturer, model, hardware version, and software version.
          &quot;hwVersion&quot;: &quot;A String&quot;, # Device hardware version.
          &quot;manufacturer&quot;: &quot;A String&quot;, # Device manufacturer.
          &quot;model&quot;: &quot;A String&quot;, # Device model.
          &quot;swVersion&quot;: &quot;A String&quot;, # Device software version.
        },
        &quot;id&quot;: &quot;A String&quot;, # Third-party device ID.
        &quot;name&quot;: { # Identifiers used to describe the device. # Names given to this device by your smart home Action.
          &quot;defaultNames&quot;: [ # List of names provided by the manufacturer rather than the user, such as serial numbers, SKUs, etc.
            &quot;A String&quot;,
          ],
          &quot;name&quot;: &quot;A String&quot;, # Primary name of the device, generally provided by the user.
          &quot;nicknames&quot;: [ # Additional names provided by the user for the device.
            &quot;A String&quot;,
          ],
        },
        &quot;notificationSupportedByAgent&quot;: True or False, # 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.
        &quot;otherDeviceIds&quot;: [ # 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).
          { # Alternate third-party device ID.
            &quot;agentId&quot;: &quot;A String&quot;, # Project ID for your smart home Action.
            &quot;deviceId&quot;: &quot;A String&quot;, # Unique third-party device ID.
          },
        ],
        &quot;roomHint&quot;: &quot;A String&quot;, # Suggested name for the room where this device is installed. Google attempts to use this value during user setup.
        &quot;structureHint&quot;: &quot;A String&quot;, # Suggested name for the structure where this device is installed. Google attempts to use this value during user setup.
        &quot;traits&quot;: [ # Traits supported by the device. See [device traits](https://developers.google.com/assistant/smarthome/traits).
          &quot;A String&quot;,
        ],
        &quot;type&quot;: &quot;A String&quot;, # Hardware type of the device. See [device types](https://developers.google.com/assistant/smarthome/guides).
        &quot;willReportState&quot;: True or False, # Indicates whether your smart home Action will report state of this device to Google via ReportStateAndNotification.
      },
    ],
  },
  &quot;requestId&quot;: &quot;A String&quot;, # Request ID used for debugging. Copied from the request.
}</pre>
</div>

</body></html>