Returns the configVersions Resource.
Returns the states Resource.
create(parent, body, x__xgafv=None)
Creates a device in a device registry.
Deletes a device.
get(name, fieldMask=None, x__xgafv=None)
Gets details about a device.
List devices in a device registry.
list_next(previous_request, previous_response)
Retrieves the next page of results.
modifyCloudToDeviceConfig(name, body, x__xgafv=None)
Modifies the configuration for the device, which is eventually sent from
patch(name, body, updateMask=None, x__xgafv=None)
Updates a device.
sendCommandToDevice(name, body, x__xgafv=None)
Sends a command to the specified device. In order for a device to be able
create(parent, body, x__xgafv=None)
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. }
delete(name, x__xgafv=None)
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 `{}`. }
get(name, fieldMask=None, x__xgafv=None)
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. }
list(parent, pageSize=None, fieldMask=None, deviceNumIds=None, x__xgafv=None, deviceIds=None, pageToken=None, gatewayListOptions_associationsGatewayId=None, gatewayListOptions_associationsDeviceId=None, gatewayListOptions_gatewayType=None)
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. }, ], }
list_next(previous_request, previous_response)
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.
modifyCloudToDeviceConfig(name, body, x__xgafv=None)
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. }
patch(name, body, updateMask=None, x__xgafv=None)
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. }
sendCommandToDevice(name, body, x__xgafv=None)
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`. }