You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1176 lines
68 KiB
1176 lines
68 KiB
<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="cloudiot_v1.html">Cloud IoT API</a> . <a href="cloudiot_v1.projects.html">projects</a> . <a href="cloudiot_v1.projects.locations.html">locations</a> . <a href="cloudiot_v1.projects.locations.registries.html">registries</a> . <a href="cloudiot_v1.projects.locations.registries.devices.html">devices</a></h1>
|
|
<h2>Instance Methods</h2>
|
|
<p class="toc_element">
|
|
<code><a href="cloudiot_v1.projects.locations.registries.devices.configVersions.html">configVersions()</a></code>
|
|
</p>
|
|
<p class="firstline">Returns the configVersions Resource.</p>
|
|
|
|
<p class="toc_element">
|
|
<code><a href="cloudiot_v1.projects.locations.registries.devices.states.html">states()</a></code>
|
|
</p>
|
|
<p class="firstline">Returns the states Resource.</p>
|
|
|
|
<p class="toc_element">
|
|
<code><a href="#create">create(parent, body, x__xgafv=None)</a></code></p>
|
|
<p class="firstline">Creates a device in a device registry.</p>
|
|
<p class="toc_element">
|
|
<code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
|
|
<p class="firstline">Deletes a device.</p>
|
|
<p class="toc_element">
|
|
<code><a href="#get">get(name, fieldMask=None, x__xgafv=None)</a></code></p>
|
|
<p class="firstline">Gets details about a device.</p>
|
|
<p class="toc_element">
|
|
<code><a href="#list">list(parent, pageSize=None, fieldMask=None, deviceNumIds=None, x__xgafv=None, deviceIds=None, pageToken=None, gatewayListOptions_associationsGatewayId=None, gatewayListOptions_associationsDeviceId=None, gatewayListOptions_gatewayType=None)</a></code></p>
|
|
<p class="firstline">List devices in a device registry.</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>
|
|
<p class="toc_element">
|
|
<code><a href="#modifyCloudToDeviceConfig">modifyCloudToDeviceConfig(name, body, x__xgafv=None)</a></code></p>
|
|
<p class="firstline">Modifies the configuration for the device, which is eventually sent from</p>
|
|
<p class="toc_element">
|
|
<code><a href="#patch">patch(name, body, updateMask=None, x__xgafv=None)</a></code></p>
|
|
<p class="firstline">Updates a device.</p>
|
|
<p class="toc_element">
|
|
<code><a href="#sendCommandToDevice">sendCommandToDevice(name, body, x__xgafv=None)</a></code></p>
|
|
<p class="firstline">Sends a command to the specified device. In order for a device to be able</p>
|
|
<h3>Method Details</h3>
|
|
<div class="method">
|
|
<code class="details" id="create">create(parent, body, x__xgafv=None)</code>
|
|
<pre>Creates a device in a device registry.
|
|
|
|
Args:
|
|
parent: string, The name of the device registry where this device should be created.
|
|
For example,
|
|
`projects/example-project/locations/us-central1/registries/my-registry`. (required)
|
|
body: object, The request body. (required)
|
|
The object takes the form of:
|
|
|
|
{ # The device resource.
|
|
"lastStateTime": "A String", # [Output only] The last time a state event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"gatewayConfig": { # Gateway-related configuration and state. # Gateway-related configuration and state.
|
|
"lastAccessedGatewayTime": "A String", # [Output only] The most recent time at which the device accessed the gateway
|
|
# specified in `last_accessed_gateway`.
|
|
"lastAccessedGatewayId": "A String", # [Output only] The ID of the gateway the device accessed most recently.
|
|
"gatewayAuthMethod": "A String", # Indicates how to authorize and/or authenticate devices to access the
|
|
# gateway.
|
|
"gatewayType": "A String", # Indicates whether the device is a gateway.
|
|
},
|
|
"lastConfigSendTime": "A String", # [Output only] The last time a cloud-to-device config version was sent to
|
|
# the device.
|
|
"lastEventTime": "A String", # [Output only] The last time a telemetry event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"lastErrorTime": "A String", # [Output only] The time the most recent error occurred, such as a failure to
|
|
# publish to Cloud Pub/Sub. This field is the timestamp of
|
|
# 'last_error_status'.
|
|
"numId": "A String", # [Output only] A server-defined unique numeric ID for the device. This is a
|
|
# more compact way to identify devices, and it is globally unique.
|
|
"lastHeartbeatTime": "A String", # [Output only] The last time an MQTT `PINGREQ` was received. This field
|
|
# applies only to devices connecting through MQTT. MQTT clients usually only
|
|
# send `PINGREQ` messages if the connection is idle, and no other messages
|
|
# have been sent. Timestamps are periodically collected and written to
|
|
# storage; they may be stale by a few minutes.
|
|
"lastConfigAckTime": "A String", # [Output only] The last time a cloud-to-device config version acknowledgment
|
|
# was received from the device. This field is only for configurations
|
|
# sent through MQTT.
|
|
"logLevel": "A String", # **Beta Feature**
|
|
#
|
|
# The logging verbosity for device activity. If unspecified,
|
|
# DeviceRegistry.log_level will be used.
|
|
"state": { # The device state, as reported by the device. # [Output only] The state most recently received from the device. If no state
|
|
# has been reported, this field is not present.
|
|
"updateTime": "A String", # [Output only] The time at which this state version was updated in Cloud
|
|
# IoT Core.
|
|
"binaryData": "A String", # The device state data.
|
|
},
|
|
"lastErrorStatus": { # The `Status` type defines a logical error model that is suitable for # [Output only] The error message of the most recent error, such as a failure
|
|
# to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
|
# field. If no errors have occurred, this field has an empty message
|
|
# and the status code 0 == OK. Otherwise, this field is expected to have a
|
|
# status code other than OK.
|
|
# different programming environments, including REST APIs and RPC APIs. It is
|
|
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
# three pieces of data: error code, error message, and error details.
|
|
#
|
|
# You can find out more about this error model and how to work with it in the
|
|
# [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
"message": "A String", # A developer-facing error message, which should be in English. Any
|
|
# user-facing error message should be localized and sent in the
|
|
# google.rpc.Status.details field, or localized by the client.
|
|
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
|
|
"details": [ # A list of messages that carry the error details. There is a common set of
|
|
# message types for APIs to use.
|
|
{
|
|
"a_key": "", # Properties of the object. Contains field @type with type URL.
|
|
},
|
|
],
|
|
},
|
|
"blocked": True or False, # If a device is blocked, connections or requests from this device will fail.
|
|
# Can be used to temporarily prevent the device from connecting if, for
|
|
# example, the sensor is generating bad data and needs maintenance.
|
|
"credentials": [ # The credentials used to authenticate this device. To allow credential
|
|
# rotation without interruption, multiple device credentials can be bound to
|
|
# this device. No more than 3 credentials can be bound to a single device at
|
|
# a time. When new credentials are added to a device, they are verified
|
|
# against the registry credentials. For details, see the description of the
|
|
# `DeviceRegistry.credentials` field.
|
|
{ # A server-stored device credential used for authentication.
|
|
"publicKey": { # A public key format and data. # A public key used to verify the signature of JSON Web Tokens (JWTs).
|
|
# When adding a new device credential, either via device creation or via
|
|
# modifications, this public key credential may be required to be signed by
|
|
# one of the registry level certificates. More specifically, if the
|
|
# registry contains at least one certificate, any new device credential
|
|
# must be signed by one of the registry certificates. As a result,
|
|
# when the registry contains certificates, only X.509 certificates are
|
|
# accepted as device credentials. However, if the registry does
|
|
# not contain a certificate, self-signed certificates and public keys will
|
|
# be accepted. New device credentials must be different from every
|
|
# registry-level certificate.
|
|
"key": "A String", # The key data.
|
|
"format": "A String", # The format of the key.
|
|
},
|
|
"expirationTime": "A String", # [Optional] The time at which this credential becomes invalid. This
|
|
# credential will be ignored for new client authentication requests after
|
|
# this timestamp; however, it will not be automatically deleted.
|
|
},
|
|
],
|
|
"metadata": { # The metadata key-value pairs assigned to the device. This metadata is not
|
|
# interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
|
# information for the device.
|
|
#
|
|
# Keys must conform to the regular expression a-zA-Z+ and
|
|
# be less than 128 bytes in length.
|
|
#
|
|
# Values are free-form strings. Each value must be less than or equal to 32
|
|
# KB in size.
|
|
#
|
|
# The total size of all keys and values must be less than 256 KB, and the
|
|
# maximum number of key-value pairs is 500.
|
|
"a_key": "A String",
|
|
},
|
|
"config": { # The device configuration. Eventually delivered to devices. # The most recent device configuration, which is eventually sent from
|
|
# Cloud IoT Core to the device. If not present on creation, the
|
|
# configuration will be initialized with an empty payload and version value
|
|
# of `1`. To update this field after creation, use the
|
|
# `DeviceManager.ModifyCloudToDeviceConfig` method.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
},
|
|
"id": "A String", # The user-defined device identifier. The device ID must be unique
|
|
# within a device registry.
|
|
"name": "A String", # The resource path name. For example,
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
# When `name` is populated as a response from the service, it always ends
|
|
# in the device numeric ID.
|
|
}
|
|
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # The device resource.
|
|
"lastStateTime": "A String", # [Output only] The last time a state event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"gatewayConfig": { # Gateway-related configuration and state. # Gateway-related configuration and state.
|
|
"lastAccessedGatewayTime": "A String", # [Output only] The most recent time at which the device accessed the gateway
|
|
# specified in `last_accessed_gateway`.
|
|
"lastAccessedGatewayId": "A String", # [Output only] The ID of the gateway the device accessed most recently.
|
|
"gatewayAuthMethod": "A String", # Indicates how to authorize and/or authenticate devices to access the
|
|
# gateway.
|
|
"gatewayType": "A String", # Indicates whether the device is a gateway.
|
|
},
|
|
"lastConfigSendTime": "A String", # [Output only] The last time a cloud-to-device config version was sent to
|
|
# the device.
|
|
"lastEventTime": "A String", # [Output only] The last time a telemetry event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"lastErrorTime": "A String", # [Output only] The time the most recent error occurred, such as a failure to
|
|
# publish to Cloud Pub/Sub. This field is the timestamp of
|
|
# 'last_error_status'.
|
|
"numId": "A String", # [Output only] A server-defined unique numeric ID for the device. This is a
|
|
# more compact way to identify devices, and it is globally unique.
|
|
"lastHeartbeatTime": "A String", # [Output only] The last time an MQTT `PINGREQ` was received. This field
|
|
# applies only to devices connecting through MQTT. MQTT clients usually only
|
|
# send `PINGREQ` messages if the connection is idle, and no other messages
|
|
# have been sent. Timestamps are periodically collected and written to
|
|
# storage; they may be stale by a few minutes.
|
|
"lastConfigAckTime": "A String", # [Output only] The last time a cloud-to-device config version acknowledgment
|
|
# was received from the device. This field is only for configurations
|
|
# sent through MQTT.
|
|
"logLevel": "A String", # **Beta Feature**
|
|
#
|
|
# The logging verbosity for device activity. If unspecified,
|
|
# DeviceRegistry.log_level will be used.
|
|
"state": { # The device state, as reported by the device. # [Output only] The state most recently received from the device. If no state
|
|
# has been reported, this field is not present.
|
|
"updateTime": "A String", # [Output only] The time at which this state version was updated in Cloud
|
|
# IoT Core.
|
|
"binaryData": "A String", # The device state data.
|
|
},
|
|
"lastErrorStatus": { # The `Status` type defines a logical error model that is suitable for # [Output only] The error message of the most recent error, such as a failure
|
|
# to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
|
# field. If no errors have occurred, this field has an empty message
|
|
# and the status code 0 == OK. Otherwise, this field is expected to have a
|
|
# status code other than OK.
|
|
# different programming environments, including REST APIs and RPC APIs. It is
|
|
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
# three pieces of data: error code, error message, and error details.
|
|
#
|
|
# You can find out more about this error model and how to work with it in the
|
|
# [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
"message": "A String", # A developer-facing error message, which should be in English. Any
|
|
# user-facing error message should be localized and sent in the
|
|
# google.rpc.Status.details field, or localized by the client.
|
|
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
|
|
"details": [ # A list of messages that carry the error details. There is a common set of
|
|
# message types for APIs to use.
|
|
{
|
|
"a_key": "", # Properties of the object. Contains field @type with type URL.
|
|
},
|
|
],
|
|
},
|
|
"blocked": True or False, # If a device is blocked, connections or requests from this device will fail.
|
|
# Can be used to temporarily prevent the device from connecting if, for
|
|
# example, the sensor is generating bad data and needs maintenance.
|
|
"credentials": [ # The credentials used to authenticate this device. To allow credential
|
|
# rotation without interruption, multiple device credentials can be bound to
|
|
# this device. No more than 3 credentials can be bound to a single device at
|
|
# a time. When new credentials are added to a device, they are verified
|
|
# against the registry credentials. For details, see the description of the
|
|
# `DeviceRegistry.credentials` field.
|
|
{ # A server-stored device credential used for authentication.
|
|
"publicKey": { # A public key format and data. # A public key used to verify the signature of JSON Web Tokens (JWTs).
|
|
# When adding a new device credential, either via device creation or via
|
|
# modifications, this public key credential may be required to be signed by
|
|
# one of the registry level certificates. More specifically, if the
|
|
# registry contains at least one certificate, any new device credential
|
|
# must be signed by one of the registry certificates. As a result,
|
|
# when the registry contains certificates, only X.509 certificates are
|
|
# accepted as device credentials. However, if the registry does
|
|
# not contain a certificate, self-signed certificates and public keys will
|
|
# be accepted. New device credentials must be different from every
|
|
# registry-level certificate.
|
|
"key": "A String", # The key data.
|
|
"format": "A String", # The format of the key.
|
|
},
|
|
"expirationTime": "A String", # [Optional] The time at which this credential becomes invalid. This
|
|
# credential will be ignored for new client authentication requests after
|
|
# this timestamp; however, it will not be automatically deleted.
|
|
},
|
|
],
|
|
"metadata": { # The metadata key-value pairs assigned to the device. This metadata is not
|
|
# interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
|
# information for the device.
|
|
#
|
|
# Keys must conform to the regular expression a-zA-Z+ and
|
|
# be less than 128 bytes in length.
|
|
#
|
|
# Values are free-form strings. Each value must be less than or equal to 32
|
|
# KB in size.
|
|
#
|
|
# The total size of all keys and values must be less than 256 KB, and the
|
|
# maximum number of key-value pairs is 500.
|
|
"a_key": "A String",
|
|
},
|
|
"config": { # The device configuration. Eventually delivered to devices. # The most recent device configuration, which is eventually sent from
|
|
# Cloud IoT Core to the device. If not present on creation, the
|
|
# configuration will be initialized with an empty payload and version value
|
|
# of `1`. To update this field after creation, use the
|
|
# `DeviceManager.ModifyCloudToDeviceConfig` method.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
},
|
|
"id": "A String", # The user-defined device identifier. The device ID must be unique
|
|
# within a device registry.
|
|
"name": "A String", # The resource path name. For example,
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
# When `name` is populated as a response from the service, it always ends
|
|
# in the device numeric ID.
|
|
}</pre>
|
|
</div>
|
|
|
|
<div class="method">
|
|
<code class="details" id="delete">delete(name, x__xgafv=None)</code>
|
|
<pre>Deletes a device.
|
|
|
|
Args:
|
|
name: string, The name of the device. For example,
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`. (required)
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # A generic empty message that you can re-use to avoid defining duplicated
|
|
# empty messages in your APIs. A typical example is to use it as the request
|
|
# or the response type of an API method. For instance:
|
|
#
|
|
# service Foo {
|
|
# rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
|
|
# }
|
|
#
|
|
# The JSON representation for `Empty` is empty JSON object `{}`.
|
|
}</pre>
|
|
</div>
|
|
|
|
<div class="method">
|
|
<code class="details" id="get">get(name, fieldMask=None, x__xgafv=None)</code>
|
|
<pre>Gets details about a device.
|
|
|
|
Args:
|
|
name: string, The name of the device. For example,
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`. (required)
|
|
fieldMask: string, The fields of the `Device` resource to be returned in the response. If the
|
|
field mask is unset or empty, all fields are returned.
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # The device resource.
|
|
"lastStateTime": "A String", # [Output only] The last time a state event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"gatewayConfig": { # Gateway-related configuration and state. # Gateway-related configuration and state.
|
|
"lastAccessedGatewayTime": "A String", # [Output only] The most recent time at which the device accessed the gateway
|
|
# specified in `last_accessed_gateway`.
|
|
"lastAccessedGatewayId": "A String", # [Output only] The ID of the gateway the device accessed most recently.
|
|
"gatewayAuthMethod": "A String", # Indicates how to authorize and/or authenticate devices to access the
|
|
# gateway.
|
|
"gatewayType": "A String", # Indicates whether the device is a gateway.
|
|
},
|
|
"lastConfigSendTime": "A String", # [Output only] The last time a cloud-to-device config version was sent to
|
|
# the device.
|
|
"lastEventTime": "A String", # [Output only] The last time a telemetry event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"lastErrorTime": "A String", # [Output only] The time the most recent error occurred, such as a failure to
|
|
# publish to Cloud Pub/Sub. This field is the timestamp of
|
|
# 'last_error_status'.
|
|
"numId": "A String", # [Output only] A server-defined unique numeric ID for the device. This is a
|
|
# more compact way to identify devices, and it is globally unique.
|
|
"lastHeartbeatTime": "A String", # [Output only] The last time an MQTT `PINGREQ` was received. This field
|
|
# applies only to devices connecting through MQTT. MQTT clients usually only
|
|
# send `PINGREQ` messages if the connection is idle, and no other messages
|
|
# have been sent. Timestamps are periodically collected and written to
|
|
# storage; they may be stale by a few minutes.
|
|
"lastConfigAckTime": "A String", # [Output only] The last time a cloud-to-device config version acknowledgment
|
|
# was received from the device. This field is only for configurations
|
|
# sent through MQTT.
|
|
"logLevel": "A String", # **Beta Feature**
|
|
#
|
|
# The logging verbosity for device activity. If unspecified,
|
|
# DeviceRegistry.log_level will be used.
|
|
"state": { # The device state, as reported by the device. # [Output only] The state most recently received from the device. If no state
|
|
# has been reported, this field is not present.
|
|
"updateTime": "A String", # [Output only] The time at which this state version was updated in Cloud
|
|
# IoT Core.
|
|
"binaryData": "A String", # The device state data.
|
|
},
|
|
"lastErrorStatus": { # The `Status` type defines a logical error model that is suitable for # [Output only] The error message of the most recent error, such as a failure
|
|
# to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
|
# field. If no errors have occurred, this field has an empty message
|
|
# and the status code 0 == OK. Otherwise, this field is expected to have a
|
|
# status code other than OK.
|
|
# different programming environments, including REST APIs and RPC APIs. It is
|
|
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
# three pieces of data: error code, error message, and error details.
|
|
#
|
|
# You can find out more about this error model and how to work with it in the
|
|
# [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
"message": "A String", # A developer-facing error message, which should be in English. Any
|
|
# user-facing error message should be localized and sent in the
|
|
# google.rpc.Status.details field, or localized by the client.
|
|
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
|
|
"details": [ # A list of messages that carry the error details. There is a common set of
|
|
# message types for APIs to use.
|
|
{
|
|
"a_key": "", # Properties of the object. Contains field @type with type URL.
|
|
},
|
|
],
|
|
},
|
|
"blocked": True or False, # If a device is blocked, connections or requests from this device will fail.
|
|
# Can be used to temporarily prevent the device from connecting if, for
|
|
# example, the sensor is generating bad data and needs maintenance.
|
|
"credentials": [ # The credentials used to authenticate this device. To allow credential
|
|
# rotation without interruption, multiple device credentials can be bound to
|
|
# this device. No more than 3 credentials can be bound to a single device at
|
|
# a time. When new credentials are added to a device, they are verified
|
|
# against the registry credentials. For details, see the description of the
|
|
# `DeviceRegistry.credentials` field.
|
|
{ # A server-stored device credential used for authentication.
|
|
"publicKey": { # A public key format and data. # A public key used to verify the signature of JSON Web Tokens (JWTs).
|
|
# When adding a new device credential, either via device creation or via
|
|
# modifications, this public key credential may be required to be signed by
|
|
# one of the registry level certificates. More specifically, if the
|
|
# registry contains at least one certificate, any new device credential
|
|
# must be signed by one of the registry certificates. As a result,
|
|
# when the registry contains certificates, only X.509 certificates are
|
|
# accepted as device credentials. However, if the registry does
|
|
# not contain a certificate, self-signed certificates and public keys will
|
|
# be accepted. New device credentials must be different from every
|
|
# registry-level certificate.
|
|
"key": "A String", # The key data.
|
|
"format": "A String", # The format of the key.
|
|
},
|
|
"expirationTime": "A String", # [Optional] The time at which this credential becomes invalid. This
|
|
# credential will be ignored for new client authentication requests after
|
|
# this timestamp; however, it will not be automatically deleted.
|
|
},
|
|
],
|
|
"metadata": { # The metadata key-value pairs assigned to the device. This metadata is not
|
|
# interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
|
# information for the device.
|
|
#
|
|
# Keys must conform to the regular expression a-zA-Z+ and
|
|
# be less than 128 bytes in length.
|
|
#
|
|
# Values are free-form strings. Each value must be less than or equal to 32
|
|
# KB in size.
|
|
#
|
|
# The total size of all keys and values must be less than 256 KB, and the
|
|
# maximum number of key-value pairs is 500.
|
|
"a_key": "A String",
|
|
},
|
|
"config": { # The device configuration. Eventually delivered to devices. # The most recent device configuration, which is eventually sent from
|
|
# Cloud IoT Core to the device. If not present on creation, the
|
|
# configuration will be initialized with an empty payload and version value
|
|
# of `1`. To update this field after creation, use the
|
|
# `DeviceManager.ModifyCloudToDeviceConfig` method.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
},
|
|
"id": "A String", # The user-defined device identifier. The device ID must be unique
|
|
# within a device registry.
|
|
"name": "A String", # The resource path name. For example,
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
# When `name` is populated as a response from the service, it always ends
|
|
# in the device numeric ID.
|
|
}</pre>
|
|
</div>
|
|
|
|
<div class="method">
|
|
<code class="details" id="list">list(parent, pageSize=None, fieldMask=None, deviceNumIds=None, x__xgafv=None, deviceIds=None, pageToken=None, gatewayListOptions_associationsGatewayId=None, gatewayListOptions_associationsDeviceId=None, gatewayListOptions_gatewayType=None)</code>
|
|
<pre>List devices in a device registry.
|
|
|
|
Args:
|
|
parent: string, The device registry path. Required. For example,
|
|
`projects/my-project/locations/us-central1/registries/my-registry`. (required)
|
|
pageSize: integer, The maximum number of devices to return in the response. If this value
|
|
is zero, the service will select a default size. A call may return fewer
|
|
objects than requested. A non-empty `next_page_token` in the response
|
|
indicates that more data is available.
|
|
fieldMask: string, The fields of the `Device` resource to be returned in the response. The
|
|
fields `id` and `num_id` are always returned, along with any
|
|
other fields specified.
|
|
deviceNumIds: string, A list of device numeric IDs. If empty, this field is ignored. Maximum
|
|
IDs: 10,000. (repeated)
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
deviceIds: string, A list of device string IDs. For example, `['device0', 'device12']`.
|
|
If empty, this field is ignored. Maximum IDs: 10,000 (repeated)
|
|
pageToken: string, The value returned by the last `ListDevicesResponse`; indicates
|
|
that this is a continuation of a prior `ListDevices` call and
|
|
the system should return the next page of data.
|
|
gatewayListOptions_associationsGatewayId: string, If set, only devices associated with the specified gateway are returned.
|
|
The gateway ID can be numeric (`num_id`) or the user-defined string
|
|
(`id`). For example, if `123` is specified, only devices bound to the
|
|
gateway with `num_id` 123 are returned.
|
|
gatewayListOptions_associationsDeviceId: string, If set, returns only the gateways with which the specified device is
|
|
associated. The device ID can be numeric (`num_id`) or the user-defined
|
|
string (`id`). For example, if `456` is specified, returns only the
|
|
gateways to which the device with `num_id` 456 is bound.
|
|
gatewayListOptions_gatewayType: string, If `GATEWAY` is specified, only gateways are returned. If `NON_GATEWAY`
|
|
is specified, only non-gateway devices are returned. If
|
|
`GATEWAY_TYPE_UNSPECIFIED` is specified, all devices are returned.
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # Response for `ListDevices`.
|
|
"nextPageToken": "A String", # If not empty, indicates that there may be more devices that match the
|
|
# request; this value should be passed in a new `ListDevicesRequest`.
|
|
"devices": [ # The devices that match the request.
|
|
{ # The device resource.
|
|
"lastStateTime": "A String", # [Output only] The last time a state event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"gatewayConfig": { # Gateway-related configuration and state. # Gateway-related configuration and state.
|
|
"lastAccessedGatewayTime": "A String", # [Output only] The most recent time at which the device accessed the gateway
|
|
# specified in `last_accessed_gateway`.
|
|
"lastAccessedGatewayId": "A String", # [Output only] The ID of the gateway the device accessed most recently.
|
|
"gatewayAuthMethod": "A String", # Indicates how to authorize and/or authenticate devices to access the
|
|
# gateway.
|
|
"gatewayType": "A String", # Indicates whether the device is a gateway.
|
|
},
|
|
"lastConfigSendTime": "A String", # [Output only] The last time a cloud-to-device config version was sent to
|
|
# the device.
|
|
"lastEventTime": "A String", # [Output only] The last time a telemetry event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"lastErrorTime": "A String", # [Output only] The time the most recent error occurred, such as a failure to
|
|
# publish to Cloud Pub/Sub. This field is the timestamp of
|
|
# 'last_error_status'.
|
|
"numId": "A String", # [Output only] A server-defined unique numeric ID for the device. This is a
|
|
# more compact way to identify devices, and it is globally unique.
|
|
"lastHeartbeatTime": "A String", # [Output only] The last time an MQTT `PINGREQ` was received. This field
|
|
# applies only to devices connecting through MQTT. MQTT clients usually only
|
|
# send `PINGREQ` messages if the connection is idle, and no other messages
|
|
# have been sent. Timestamps are periodically collected and written to
|
|
# storage; they may be stale by a few minutes.
|
|
"lastConfigAckTime": "A String", # [Output only] The last time a cloud-to-device config version acknowledgment
|
|
# was received from the device. This field is only for configurations
|
|
# sent through MQTT.
|
|
"logLevel": "A String", # **Beta Feature**
|
|
#
|
|
# The logging verbosity for device activity. If unspecified,
|
|
# DeviceRegistry.log_level will be used.
|
|
"state": { # The device state, as reported by the device. # [Output only] The state most recently received from the device. If no state
|
|
# has been reported, this field is not present.
|
|
"updateTime": "A String", # [Output only] The time at which this state version was updated in Cloud
|
|
# IoT Core.
|
|
"binaryData": "A String", # The device state data.
|
|
},
|
|
"lastErrorStatus": { # The `Status` type defines a logical error model that is suitable for # [Output only] The error message of the most recent error, such as a failure
|
|
# to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
|
# field. If no errors have occurred, this field has an empty message
|
|
# and the status code 0 == OK. Otherwise, this field is expected to have a
|
|
# status code other than OK.
|
|
# different programming environments, including REST APIs and RPC APIs. It is
|
|
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
# three pieces of data: error code, error message, and error details.
|
|
#
|
|
# You can find out more about this error model and how to work with it in the
|
|
# [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
"message": "A String", # A developer-facing error message, which should be in English. Any
|
|
# user-facing error message should be localized and sent in the
|
|
# google.rpc.Status.details field, or localized by the client.
|
|
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
|
|
"details": [ # A list of messages that carry the error details. There is a common set of
|
|
# message types for APIs to use.
|
|
{
|
|
"a_key": "", # Properties of the object. Contains field @type with type URL.
|
|
},
|
|
],
|
|
},
|
|
"blocked": True or False, # If a device is blocked, connections or requests from this device will fail.
|
|
# Can be used to temporarily prevent the device from connecting if, for
|
|
# example, the sensor is generating bad data and needs maintenance.
|
|
"credentials": [ # The credentials used to authenticate this device. To allow credential
|
|
# rotation without interruption, multiple device credentials can be bound to
|
|
# this device. No more than 3 credentials can be bound to a single device at
|
|
# a time. When new credentials are added to a device, they are verified
|
|
# against the registry credentials. For details, see the description of the
|
|
# `DeviceRegistry.credentials` field.
|
|
{ # A server-stored device credential used for authentication.
|
|
"publicKey": { # A public key format and data. # A public key used to verify the signature of JSON Web Tokens (JWTs).
|
|
# When adding a new device credential, either via device creation or via
|
|
# modifications, this public key credential may be required to be signed by
|
|
# one of the registry level certificates. More specifically, if the
|
|
# registry contains at least one certificate, any new device credential
|
|
# must be signed by one of the registry certificates. As a result,
|
|
# when the registry contains certificates, only X.509 certificates are
|
|
# accepted as device credentials. However, if the registry does
|
|
# not contain a certificate, self-signed certificates and public keys will
|
|
# be accepted. New device credentials must be different from every
|
|
# registry-level certificate.
|
|
"key": "A String", # The key data.
|
|
"format": "A String", # The format of the key.
|
|
},
|
|
"expirationTime": "A String", # [Optional] The time at which this credential becomes invalid. This
|
|
# credential will be ignored for new client authentication requests after
|
|
# this timestamp; however, it will not be automatically deleted.
|
|
},
|
|
],
|
|
"metadata": { # The metadata key-value pairs assigned to the device. This metadata is not
|
|
# interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
|
# information for the device.
|
|
#
|
|
# Keys must conform to the regular expression a-zA-Z+ and
|
|
# be less than 128 bytes in length.
|
|
#
|
|
# Values are free-form strings. Each value must be less than or equal to 32
|
|
# KB in size.
|
|
#
|
|
# The total size of all keys and values must be less than 256 KB, and the
|
|
# maximum number of key-value pairs is 500.
|
|
"a_key": "A String",
|
|
},
|
|
"config": { # The device configuration. Eventually delivered to devices. # The most recent device configuration, which is eventually sent from
|
|
# Cloud IoT Core to the device. If not present on creation, the
|
|
# configuration will be initialized with an empty payload and version value
|
|
# of `1`. To update this field after creation, use the
|
|
# `DeviceManager.ModifyCloudToDeviceConfig` method.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
},
|
|
"id": "A String", # The user-defined device identifier. The device ID must be unique
|
|
# within a device registry.
|
|
"name": "A String", # The resource path name. For example,
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
# When `name` is populated as a response from the service, it always ends
|
|
# in the device numeric ID.
|
|
},
|
|
],
|
|
}</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 'execute()' on to request the next
|
|
page. Returns None if there are no more items in the collection.
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="method">
|
|
<code class="details" id="modifyCloudToDeviceConfig">modifyCloudToDeviceConfig(name, body, x__xgafv=None)</code>
|
|
<pre>Modifies the configuration for the device, which is eventually sent from
|
|
the Cloud IoT Core servers. Returns the modified configuration version and
|
|
its metadata.
|
|
|
|
Args:
|
|
name: string, The name of the device. For example,
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`. (required)
|
|
body: object, The request body. (required)
|
|
The object takes the form of:
|
|
|
|
{ # Request for `ModifyCloudToDeviceConfig`.
|
|
"versionToUpdate": "A String", # The version number to update. If this value is zero, it will not check the
|
|
# version number of the server and will always update the current version;
|
|
# otherwise, this update will fail if the version number found on the server
|
|
# does not match this version number. This is used to support multiple
|
|
# simultaneous updates without losing data.
|
|
"binaryData": "A String", # The configuration data for the device.
|
|
}
|
|
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # The device configuration. Eventually delivered to devices.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
}</pre>
|
|
</div>
|
|
|
|
<div class="method">
|
|
<code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
|
|
<pre>Updates a device.
|
|
|
|
Args:
|
|
name: string, The resource path name. For example,
|
|
`projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
`projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
When `name` is populated as a response from the service, it always ends
|
|
in the device numeric ID. (required)
|
|
body: object, The request body. (required)
|
|
The object takes the form of:
|
|
|
|
{ # The device resource.
|
|
"lastStateTime": "A String", # [Output only] The last time a state event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"gatewayConfig": { # Gateway-related configuration and state. # Gateway-related configuration and state.
|
|
"lastAccessedGatewayTime": "A String", # [Output only] The most recent time at which the device accessed the gateway
|
|
# specified in `last_accessed_gateway`.
|
|
"lastAccessedGatewayId": "A String", # [Output only] The ID of the gateway the device accessed most recently.
|
|
"gatewayAuthMethod": "A String", # Indicates how to authorize and/or authenticate devices to access the
|
|
# gateway.
|
|
"gatewayType": "A String", # Indicates whether the device is a gateway.
|
|
},
|
|
"lastConfigSendTime": "A String", # [Output only] The last time a cloud-to-device config version was sent to
|
|
# the device.
|
|
"lastEventTime": "A String", # [Output only] The last time a telemetry event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"lastErrorTime": "A String", # [Output only] The time the most recent error occurred, such as a failure to
|
|
# publish to Cloud Pub/Sub. This field is the timestamp of
|
|
# 'last_error_status'.
|
|
"numId": "A String", # [Output only] A server-defined unique numeric ID for the device. This is a
|
|
# more compact way to identify devices, and it is globally unique.
|
|
"lastHeartbeatTime": "A String", # [Output only] The last time an MQTT `PINGREQ` was received. This field
|
|
# applies only to devices connecting through MQTT. MQTT clients usually only
|
|
# send `PINGREQ` messages if the connection is idle, and no other messages
|
|
# have been sent. Timestamps are periodically collected and written to
|
|
# storage; they may be stale by a few minutes.
|
|
"lastConfigAckTime": "A String", # [Output only] The last time a cloud-to-device config version acknowledgment
|
|
# was received from the device. This field is only for configurations
|
|
# sent through MQTT.
|
|
"logLevel": "A String", # **Beta Feature**
|
|
#
|
|
# The logging verbosity for device activity. If unspecified,
|
|
# DeviceRegistry.log_level will be used.
|
|
"state": { # The device state, as reported by the device. # [Output only] The state most recently received from the device. If no state
|
|
# has been reported, this field is not present.
|
|
"updateTime": "A String", # [Output only] The time at which this state version was updated in Cloud
|
|
# IoT Core.
|
|
"binaryData": "A String", # The device state data.
|
|
},
|
|
"lastErrorStatus": { # The `Status` type defines a logical error model that is suitable for # [Output only] The error message of the most recent error, such as a failure
|
|
# to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
|
# field. If no errors have occurred, this field has an empty message
|
|
# and the status code 0 == OK. Otherwise, this field is expected to have a
|
|
# status code other than OK.
|
|
# different programming environments, including REST APIs and RPC APIs. It is
|
|
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
# three pieces of data: error code, error message, and error details.
|
|
#
|
|
# You can find out more about this error model and how to work with it in the
|
|
# [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
"message": "A String", # A developer-facing error message, which should be in English. Any
|
|
# user-facing error message should be localized and sent in the
|
|
# google.rpc.Status.details field, or localized by the client.
|
|
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
|
|
"details": [ # A list of messages that carry the error details. There is a common set of
|
|
# message types for APIs to use.
|
|
{
|
|
"a_key": "", # Properties of the object. Contains field @type with type URL.
|
|
},
|
|
],
|
|
},
|
|
"blocked": True or False, # If a device is blocked, connections or requests from this device will fail.
|
|
# Can be used to temporarily prevent the device from connecting if, for
|
|
# example, the sensor is generating bad data and needs maintenance.
|
|
"credentials": [ # The credentials used to authenticate this device. To allow credential
|
|
# rotation without interruption, multiple device credentials can be bound to
|
|
# this device. No more than 3 credentials can be bound to a single device at
|
|
# a time. When new credentials are added to a device, they are verified
|
|
# against the registry credentials. For details, see the description of the
|
|
# `DeviceRegistry.credentials` field.
|
|
{ # A server-stored device credential used for authentication.
|
|
"publicKey": { # A public key format and data. # A public key used to verify the signature of JSON Web Tokens (JWTs).
|
|
# When adding a new device credential, either via device creation or via
|
|
# modifications, this public key credential may be required to be signed by
|
|
# one of the registry level certificates. More specifically, if the
|
|
# registry contains at least one certificate, any new device credential
|
|
# must be signed by one of the registry certificates. As a result,
|
|
# when the registry contains certificates, only X.509 certificates are
|
|
# accepted as device credentials. However, if the registry does
|
|
# not contain a certificate, self-signed certificates and public keys will
|
|
# be accepted. New device credentials must be different from every
|
|
# registry-level certificate.
|
|
"key": "A String", # The key data.
|
|
"format": "A String", # The format of the key.
|
|
},
|
|
"expirationTime": "A String", # [Optional] The time at which this credential becomes invalid. This
|
|
# credential will be ignored for new client authentication requests after
|
|
# this timestamp; however, it will not be automatically deleted.
|
|
},
|
|
],
|
|
"metadata": { # The metadata key-value pairs assigned to the device. This metadata is not
|
|
# interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
|
# information for the device.
|
|
#
|
|
# Keys must conform to the regular expression a-zA-Z+ and
|
|
# be less than 128 bytes in length.
|
|
#
|
|
# Values are free-form strings. Each value must be less than or equal to 32
|
|
# KB in size.
|
|
#
|
|
# The total size of all keys and values must be less than 256 KB, and the
|
|
# maximum number of key-value pairs is 500.
|
|
"a_key": "A String",
|
|
},
|
|
"config": { # The device configuration. Eventually delivered to devices. # The most recent device configuration, which is eventually sent from
|
|
# Cloud IoT Core to the device. If not present on creation, the
|
|
# configuration will be initialized with an empty payload and version value
|
|
# of `1`. To update this field after creation, use the
|
|
# `DeviceManager.ModifyCloudToDeviceConfig` method.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
},
|
|
"id": "A String", # The user-defined device identifier. The device ID must be unique
|
|
# within a device registry.
|
|
"name": "A String", # The resource path name. For example,
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
# When `name` is populated as a response from the service, it always ends
|
|
# in the device numeric ID.
|
|
}
|
|
|
|
updateMask: string, Only updates the `device` fields indicated by this mask.
|
|
The field mask must not be empty, and it must not contain fields that
|
|
are immutable or only set by the server.
|
|
Mutable top-level fields: `credentials`, `blocked`, and `metadata`
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # The device resource.
|
|
"lastStateTime": "A String", # [Output only] The last time a state event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"gatewayConfig": { # Gateway-related configuration and state. # Gateway-related configuration and state.
|
|
"lastAccessedGatewayTime": "A String", # [Output only] The most recent time at which the device accessed the gateway
|
|
# specified in `last_accessed_gateway`.
|
|
"lastAccessedGatewayId": "A String", # [Output only] The ID of the gateway the device accessed most recently.
|
|
"gatewayAuthMethod": "A String", # Indicates how to authorize and/or authenticate devices to access the
|
|
# gateway.
|
|
"gatewayType": "A String", # Indicates whether the device is a gateway.
|
|
},
|
|
"lastConfigSendTime": "A String", # [Output only] The last time a cloud-to-device config version was sent to
|
|
# the device.
|
|
"lastEventTime": "A String", # [Output only] The last time a telemetry event was received. Timestamps are
|
|
# periodically collected and written to storage; they may be stale by a few
|
|
# minutes.
|
|
"lastErrorTime": "A String", # [Output only] The time the most recent error occurred, such as a failure to
|
|
# publish to Cloud Pub/Sub. This field is the timestamp of
|
|
# 'last_error_status'.
|
|
"numId": "A String", # [Output only] A server-defined unique numeric ID for the device. This is a
|
|
# more compact way to identify devices, and it is globally unique.
|
|
"lastHeartbeatTime": "A String", # [Output only] The last time an MQTT `PINGREQ` was received. This field
|
|
# applies only to devices connecting through MQTT. MQTT clients usually only
|
|
# send `PINGREQ` messages if the connection is idle, and no other messages
|
|
# have been sent. Timestamps are periodically collected and written to
|
|
# storage; they may be stale by a few minutes.
|
|
"lastConfigAckTime": "A String", # [Output only] The last time a cloud-to-device config version acknowledgment
|
|
# was received from the device. This field is only for configurations
|
|
# sent through MQTT.
|
|
"logLevel": "A String", # **Beta Feature**
|
|
#
|
|
# The logging verbosity for device activity. If unspecified,
|
|
# DeviceRegistry.log_level will be used.
|
|
"state": { # The device state, as reported by the device. # [Output only] The state most recently received from the device. If no state
|
|
# has been reported, this field is not present.
|
|
"updateTime": "A String", # [Output only] The time at which this state version was updated in Cloud
|
|
# IoT Core.
|
|
"binaryData": "A String", # The device state data.
|
|
},
|
|
"lastErrorStatus": { # The `Status` type defines a logical error model that is suitable for # [Output only] The error message of the most recent error, such as a failure
|
|
# to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
|
# field. If no errors have occurred, this field has an empty message
|
|
# and the status code 0 == OK. Otherwise, this field is expected to have a
|
|
# status code other than OK.
|
|
# different programming environments, including REST APIs and RPC APIs. It is
|
|
# used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
# three pieces of data: error code, error message, and error details.
|
|
#
|
|
# You can find out more about this error model and how to work with it in the
|
|
# [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
"message": "A String", # A developer-facing error message, which should be in English. Any
|
|
# user-facing error message should be localized and sent in the
|
|
# google.rpc.Status.details field, or localized by the client.
|
|
"code": 42, # The status code, which should be an enum value of google.rpc.Code.
|
|
"details": [ # A list of messages that carry the error details. There is a common set of
|
|
# message types for APIs to use.
|
|
{
|
|
"a_key": "", # Properties of the object. Contains field @type with type URL.
|
|
},
|
|
],
|
|
},
|
|
"blocked": True or False, # If a device is blocked, connections or requests from this device will fail.
|
|
# Can be used to temporarily prevent the device from connecting if, for
|
|
# example, the sensor is generating bad data and needs maintenance.
|
|
"credentials": [ # The credentials used to authenticate this device. To allow credential
|
|
# rotation without interruption, multiple device credentials can be bound to
|
|
# this device. No more than 3 credentials can be bound to a single device at
|
|
# a time. When new credentials are added to a device, they are verified
|
|
# against the registry credentials. For details, see the description of the
|
|
# `DeviceRegistry.credentials` field.
|
|
{ # A server-stored device credential used for authentication.
|
|
"publicKey": { # A public key format and data. # A public key used to verify the signature of JSON Web Tokens (JWTs).
|
|
# When adding a new device credential, either via device creation or via
|
|
# modifications, this public key credential may be required to be signed by
|
|
# one of the registry level certificates. More specifically, if the
|
|
# registry contains at least one certificate, any new device credential
|
|
# must be signed by one of the registry certificates. As a result,
|
|
# when the registry contains certificates, only X.509 certificates are
|
|
# accepted as device credentials. However, if the registry does
|
|
# not contain a certificate, self-signed certificates and public keys will
|
|
# be accepted. New device credentials must be different from every
|
|
# registry-level certificate.
|
|
"key": "A String", # The key data.
|
|
"format": "A String", # The format of the key.
|
|
},
|
|
"expirationTime": "A String", # [Optional] The time at which this credential becomes invalid. This
|
|
# credential will be ignored for new client authentication requests after
|
|
# this timestamp; however, it will not be automatically deleted.
|
|
},
|
|
],
|
|
"metadata": { # The metadata key-value pairs assigned to the device. This metadata is not
|
|
# interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
|
# information for the device.
|
|
#
|
|
# Keys must conform to the regular expression a-zA-Z+ and
|
|
# be less than 128 bytes in length.
|
|
#
|
|
# Values are free-form strings. Each value must be less than or equal to 32
|
|
# KB in size.
|
|
#
|
|
# The total size of all keys and values must be less than 256 KB, and the
|
|
# maximum number of key-value pairs is 500.
|
|
"a_key": "A String",
|
|
},
|
|
"config": { # The device configuration. Eventually delivered to devices. # The most recent device configuration, which is eventually sent from
|
|
# Cloud IoT Core to the device. If not present on creation, the
|
|
# configuration will be initialized with an empty payload and version value
|
|
# of `1`. To update this field after creation, use the
|
|
# `DeviceManager.ModifyCloudToDeviceConfig` method.
|
|
"version": "A String", # [Output only] The version of this update. The version number is assigned by
|
|
# the server, and is always greater than 0 after device creation. The
|
|
# version must be 0 on the `CreateDevice` request if a `config` is
|
|
# specified; the response of `CreateDevice` will always have a value of 1.
|
|
"cloudUpdateTime": "A String", # [Output only] The time at which this configuration version was updated in
|
|
# Cloud IoT Core. This timestamp is set by the server.
|
|
"binaryData": "A String", # The device configuration data.
|
|
"deviceAckTime": "A String", # [Output only] The time at which Cloud IoT Core received the
|
|
# acknowledgment from the device, indicating that the device has received
|
|
# this configuration version. If this field is not present, the device has
|
|
# not yet acknowledged that it received this version. Note that when
|
|
# the config was sent to the device, many config versions may have been
|
|
# available in Cloud IoT Core while the device was disconnected, and on
|
|
# connection, only the latest version is sent to the device. Some
|
|
# versions may never be sent to the device, and therefore are never
|
|
# acknowledged. This timestamp is set by Cloud IoT Core.
|
|
},
|
|
"id": "A String", # The user-defined device identifier. The device ID must be unique
|
|
# within a device registry.
|
|
"name": "A String", # The resource path name. For example,
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
|
# `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
|
# When `name` is populated as a response from the service, it always ends
|
|
# in the device numeric ID.
|
|
}</pre>
|
|
</div>
|
|
|
|
<div class="method">
|
|
<code class="details" id="sendCommandToDevice">sendCommandToDevice(name, body, x__xgafv=None)</code>
|
|
<pre>Sends a command to the specified device. In order for a device to be able
|
|
to receive commands, it must:
|
|
1) be connected to Cloud IoT Core using the MQTT protocol, and
|
|
2) be subscribed to the group of MQTT topics specified by
|
|
/devices/{device-id}/commands/#. This subscription will receive commands
|
|
at the top-level topic /devices/{device-id}/commands as well as commands
|
|
for subfolders, like /devices/{device-id}/commands/subfolder.
|
|
Note that subscribing to specific subfolders is not supported.
|
|
If the command could not be delivered to the device, this method will
|
|
return an error; in particular, if the device is not subscribed, this
|
|
method will return FAILED_PRECONDITION. Otherwise, this method will
|
|
return OK. If the subscription is QoS 1, at least once delivery will be
|
|
guaranteed; for QoS 0, no acknowledgment will be expected from the device.
|
|
|
|
Args:
|
|
name: string, The name of the device. For example,
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
|
`projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`. (required)
|
|
body: object, The request body. (required)
|
|
The object takes the form of:
|
|
|
|
{ # Request for `SendCommandToDevice`.
|
|
"binaryData": "A String", # The command data to send to the device.
|
|
"subfolder": "A String", # Optional subfolder for the command. If empty, the command will be delivered
|
|
# to the /devices/{device-id}/commands topic, otherwise it will be delivered
|
|
# to the /devices/{device-id}/commands/{subfolder} topic. Multi-level
|
|
# subfolders are allowed. This field must not have more than 256 characters,
|
|
# and must not contain any MQTT wildcards ("+" or "#") or null characters.
|
|
}
|
|
|
|
x__xgafv: string, V1 error format.
|
|
Allowed values
|
|
1 - v1 error format
|
|
2 - v2 error format
|
|
|
|
Returns:
|
|
An object of the form:
|
|
|
|
{ # Response for `SendCommandToDevice`.
|
|
}</pre>
|
|
</div>
|
|
|
|
</body></html> |