Cloud IoT API . projects . locations . registries . groups . devices

Instance Methods

list(parent, pageSize=None, deviceIds=None, deviceNumIds=None, x__xgafv=None, fieldMask=None, pageToken=None, gatewayListOptions_associationsGatewayId=None, gatewayListOptions_associationsDeviceId=None, gatewayListOptions_gatewayType=None)

List devices in a device registry.

list_next(previous_request, previous_response)

Retrieves the next page of results.

Method Details

list(parent, pageSize=None, deviceIds=None, deviceNumIds=None, x__xgafv=None, fieldMask=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.
  deviceIds: string, A list of device string IDs. For example, `['device0', 'device12']`.
If empty, this field is ignored. Maximum IDs: 10,000 (repeated)
  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
  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.
  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.