| <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> |