docs: update docs (#916)

* fix: re-run script

* test: fix noxfile
diff --git a/docs/dyn/cloudiot_v1.projects.locations.registries.devices.html b/docs/dyn/cloudiot_v1.projects.locations.registries.devices.html
index 48c50af..9bdb60b 100644
--- a/docs/dyn/cloudiot_v1.projects.locations.registries.devices.html
+++ b/docs/dyn/cloudiot_v1.projects.locations.registries.devices.html
@@ -94,7 +94,7 @@
   <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, deviceIds=None, deviceNumIds=None, gatewayListOptions_associationsDeviceId=None, gatewayListOptions_gatewayType=None, gatewayListOptions_associationsGatewayId=None, pageToken=None, fieldMask=None, pageSize=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, deviceIds=None, gatewayListOptions_associationsDeviceId=None, deviceNumIds=None, gatewayListOptions_gatewayType=None, gatewayListOptions_associationsGatewayId=None, fieldMask=None, pageToken=None, pageSize=None, x__xgafv=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>
@@ -121,32 +121,150 @@
     The object takes the form of:
 
 { # The device resource.
-    &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
-    &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
-      &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
-          # gateway.
-      &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
-          # specified in `last_accessed_gateway`.
-      &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
-      &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+  &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
+    &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+        # message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
+  &quot;config&quot;: { # 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.
+    &quot;version&quot;: &quot;A String&quot;, # [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.
+    &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
+        # Cloud IoT Core. This timestamp is set by the server.
+    &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
+    &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
+  },
+  &quot;state&quot;: { # 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.
+    &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
+        # IoT Core.
+    &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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.
+  &quot;credentials&quot;: [ # 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.
+      &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
+      &quot;publicKey&quot;: { # 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.
+        &quot;key&quot;: &quot;A String&quot;, # The key data.
+        &quot;format&quot;: &quot;A String&quot;, # The format of the key.
+      },
     },
-    &quot;numId&quot;: &quot;A String&quot;, # [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.
-    &quot;blocked&quot;: 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.
-    &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
-    &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
-    &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
-        # the device.
+  ],
+  &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
+      # &#x27;last_error_status&#x27;.
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
+      # 
+      # The logging verbosity for device activity. If unspecified,
+      # DeviceRegistry.log_level will be used.
+  &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
+      # within a device registry.
+  &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
+  &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
+    &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+    &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
+        # gateway.
+    &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
+        # specified in `last_accessed_gateway`.
+    &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
+  },
+  &quot;numId&quot;: &quot;A String&quot;, # [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.
+  &quot;blocked&quot;: 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.
+  &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
+  &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
+  &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
+      # 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 resource.
     &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; is the timestamp of this
         # field. If no errors have occurred, this field has an empty message
@@ -158,26 +276,20 @@
         #
         # 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).
-      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-      &quot;message&quot;: &quot;A String&quot;, # 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.
       &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
           # message types for APIs to use.
         {
           &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
         },
       ],
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;message&quot;: &quot;A String&quot;, # 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.
     },
     &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
-    &quot;state&quot;: { # 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.
-      &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
-          # IoT Core.
-      &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
-    },
     &quot;config&quot;: { # 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
@@ -200,6 +312,17 @@
           # acknowledged. This timestamp is set by Cloud IoT Core.
       &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
     },
+    &quot;state&quot;: { # 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.
+      &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
+          # IoT Core.
+      &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
+    },
+    &quot;name&quot;: &quot;A String&quot;, # 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.
     &quot;credentials&quot;: [ # 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
@@ -226,179 +349,56 @@
         },
       },
     ],
-    &quot;name&quot;: &quot;A String&quot;, # 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.
     &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
         # &#x27;last_error_status&#x27;.
-    &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
-        # 
-        # The logging verbosity for device activity. If unspecified,
-        # DeviceRegistry.log_level will be used.
     &quot;metadata&quot;: { # 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.
       &quot;a_key&quot;: &quot;A String&quot;,
     },
+    &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
+        #
+        # The logging verbosity for device activity. If unspecified,
+        # DeviceRegistry.log_level will be used.
     &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
         # within a device registry.
-  }
-
-  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.
-      &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
-      &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
-        &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
-            # gateway.
-        &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
-            # specified in `last_accessed_gateway`.
-        &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
-        &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
-      },
-      &quot;numId&quot;: &quot;A String&quot;, # [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.
-      &quot;blocked&quot;: 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.
-      &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
-      &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
-      &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
-          # the device.
-      &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
-        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        &quot;message&quot;: &quot;A String&quot;, # 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.
-        &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-            # message types for APIs to use.
-          {
-            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-          },
-        ],
-      },
-      &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
-      &quot;state&quot;: { # 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.
-        &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
-            # IoT Core.
-        &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
-      },
-      &quot;config&quot;: { # 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.
-        &quot;version&quot;: &quot;A String&quot;, # [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.
-        &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
-            # Cloud IoT Core. This timestamp is set by the server.
-        &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
-        &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
-      },
-      &quot;credentials&quot;: [ # 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.
-          &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
-          &quot;publicKey&quot;: { # 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.
-            &quot;key&quot;: &quot;A String&quot;, # The key data.
-            &quot;format&quot;: &quot;A String&quot;, # The format of the key.
-          },
-        },
-      ],
-      &quot;name&quot;: &quot;A String&quot;, # 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.
-      &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
-          # &#x27;last_error_status&#x27;.
-      &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
-          #
-          # The logging verbosity for device activity. If unspecified,
-          # DeviceRegistry.log_level will be used.
-      &quot;metadata&quot;: { # 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.
-        &quot;a_key&quot;: &quot;A String&quot;,
-      },
-      &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
-          # within a device registry.
-    }</pre>
+    &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
+    &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
+      &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+      &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
+          # gateway.
+      &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
+          # specified in `last_accessed_gateway`.
+      &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
+    },
+    &quot;numId&quot;: &quot;A String&quot;, # [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.
+    &quot;blocked&quot;: 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.
+    &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
+    &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
+    &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
+        # the device.
+  }</pre>
 </div>
 
 <div class="method">
@@ -448,144 +448,144 @@
   An object of the form:
 
     { # The device resource.
-      &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
-      &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
-        &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
-            # gateway.
-        &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
-            # specified in `last_accessed_gateway`.
-        &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
-        &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
-      },
-      &quot;numId&quot;: &quot;A String&quot;, # [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.
-      &quot;blocked&quot;: 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.
-      &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
-      &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
-      &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
-          # the device.
-      &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
-        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        &quot;message&quot;: &quot;A String&quot;, # 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.
-        &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-            # message types for APIs to use.
-          {
-            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-          },
-        ],
-      },
-      &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
-      &quot;state&quot;: { # 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.
-        &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
-            # IoT Core.
-        &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
-      },
-      &quot;config&quot;: { # 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.
-        &quot;version&quot;: &quot;A String&quot;, # [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.
-        &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
-            # Cloud IoT Core. This timestamp is set by the server.
-        &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
-        &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
-      },
-      &quot;credentials&quot;: [ # 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.
-          &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
-          &quot;publicKey&quot;: { # 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.
-            &quot;key&quot;: &quot;A String&quot;, # The key data.
-            &quot;format&quot;: &quot;A String&quot;, # The format of the key.
-          },
+    &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
+      &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
         },
       ],
-      &quot;name&quot;: &quot;A String&quot;, # 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.
-      &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
-          # &#x27;last_error_status&#x27;.
-      &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
-          #
-          # The logging verbosity for device activity. If unspecified,
-          # DeviceRegistry.log_level will be used.
-      &quot;metadata&quot;: { # 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.
-        &quot;a_key&quot;: &quot;A String&quot;,
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
+    &quot;config&quot;: { # 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.
+      &quot;version&quot;: &quot;A String&quot;, # [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.
+      &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
+          # Cloud IoT Core. This timestamp is set by the server.
+      &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
+      &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
+    },
+    &quot;state&quot;: { # 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.
+      &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
+          # IoT Core.
+      &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
+    },
+    &quot;name&quot;: &quot;A String&quot;, # 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.
+    &quot;credentials&quot;: [ # 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.
+        &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
+        &quot;publicKey&quot;: { # 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.
+          &quot;key&quot;: &quot;A String&quot;, # The key data.
+          &quot;format&quot;: &quot;A String&quot;, # The format of the key.
+        },
       },
-      &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
-          # within a device registry.
-    }</pre>
+    ],
+    &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
+        # &#x27;last_error_status&#x27;.
+    &quot;metadata&quot;: { # 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.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
+        #
+        # The logging verbosity for device activity. If unspecified,
+        # DeviceRegistry.log_level will be used.
+    &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
+        # within a device registry.
+    &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
+    &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
+      &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+      &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
+          # gateway.
+      &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
+          # specified in `last_accessed_gateway`.
+      &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
+    },
+    &quot;numId&quot;: &quot;A String&quot;, # [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.
+    &quot;blocked&quot;: 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.
+    &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
+    &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
+    &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
+        # the device.
+  }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, deviceIds=None, deviceNumIds=None, gatewayListOptions_associationsDeviceId=None, gatewayListOptions_gatewayType=None, gatewayListOptions_associationsGatewayId=None, pageToken=None, fieldMask=None, pageSize=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, deviceIds=None, gatewayListOptions_associationsDeviceId=None, deviceNumIds=None, gatewayListOptions_gatewayType=None, gatewayListOptions_associationsGatewayId=None, fieldMask=None, pageToken=None, pageSize=None, x__xgafv=None)</code>
   <pre>List devices in a device registry.
 
 Args:
@@ -593,12 +593,12 @@
 `projects/my-project/locations/us-central1/registries/my-registry`. (required)
   deviceIds: string, A list of device string IDs. For example, `[&#x27;device0&#x27;, &#x27;device12&#x27;]`.
 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)
   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.
+  deviceNumIds: string, A list of device numeric IDs. If empty, this field is ignored. Maximum
+IDs: 10,000. (repeated)
   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.
@@ -606,12 +606,12 @@
 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.
-  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.
   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.
   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
@@ -625,145 +625,145 @@
   An object of the form:
 
     { # Response for `ListDevices`.
-    &quot;devices&quot;: [ # The devices that match the request.
-      { # The device resource.
-          &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
-          &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
-            &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
-                # gateway.
-            &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
-                # specified in `last_accessed_gateway`.
-            &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
-            &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
-          },
-          &quot;numId&quot;: &quot;A String&quot;, # [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.
-          &quot;blocked&quot;: 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.
-          &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
-          &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
-          &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
-              # the device.
-          &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
-            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-            &quot;message&quot;: &quot;A String&quot;, # 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.
-            &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-                # message types for APIs to use.
-              {
-                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-              },
-            ],
-          },
-          &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
-          &quot;state&quot;: { # 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.
-            &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
-                # IoT Core.
-            &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
-          },
-          &quot;config&quot;: { # 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.
-            &quot;version&quot;: &quot;A String&quot;, # [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.
-            &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
-                # Cloud IoT Core. This timestamp is set by the server.
-            &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
-            &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
-          },
-          &quot;credentials&quot;: [ # 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.
-              &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
-              &quot;publicKey&quot;: { # 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.
-                &quot;key&quot;: &quot;A String&quot;, # The key data.
-                &quot;format&quot;: &quot;A String&quot;, # The format of the key.
-              },
-            },
-          ],
-          &quot;name&quot;: &quot;A String&quot;, # 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.
-          &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
-              # &#x27;last_error_status&#x27;.
-          &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
-              #
-              # The logging verbosity for device activity. If unspecified,
-              # DeviceRegistry.log_level will be used.
-          &quot;metadata&quot;: { # 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.
-            &quot;a_key&quot;: &quot;A String&quot;,
-          },
-          &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
-              # within a device registry.
-        },
-    ],
     &quot;nextPageToken&quot;: &quot;A String&quot;, # If not empty, indicates that there may be more devices that match the
         # request; this value should be passed in a new `ListDevicesRequest`.
+    &quot;devices&quot;: [ # The devices that match the request.
+      { # The device resource.
+        &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
+          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+              # message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;message&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
+        &quot;config&quot;: { # 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.
+          &quot;version&quot;: &quot;A String&quot;, # [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.
+          &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
+              # Cloud IoT Core. This timestamp is set by the server.
+          &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
+          &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
+        },
+        &quot;state&quot;: { # 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.
+          &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
+              # IoT Core.
+          &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # 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.
+        &quot;credentials&quot;: [ # 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.
+            &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
+            &quot;publicKey&quot;: { # 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.
+              &quot;key&quot;: &quot;A String&quot;, # The key data.
+              &quot;format&quot;: &quot;A String&quot;, # The format of the key.
+            },
+          },
+        ],
+        &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
+            # &#x27;last_error_status&#x27;.
+        &quot;metadata&quot;: { # 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.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
+            #
+            # The logging verbosity for device activity. If unspecified,
+            # DeviceRegistry.log_level will be used.
+        &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
+            # within a device registry.
+        &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
+        &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
+          &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+          &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
+              # gateway.
+          &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
+              # specified in `last_accessed_gateway`.
+          &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
+        },
+        &quot;numId&quot;: &quot;A String&quot;, # [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.
+        &quot;blocked&quot;: 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.
+        &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
+        &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
+        &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
+            # the device.
+      },
+    ],
   }</pre>
 </div>
 
@@ -795,12 +795,12 @@
     The object takes the form of:
 
 { # Request for `ModifyCloudToDeviceConfig`.
+    &quot;binaryData&quot;: &quot;A String&quot;, # Required. The configuration data for the device.
     &quot;versionToUpdate&quot;: &quot;A String&quot;, # 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.
-    &quot;binaryData&quot;: &quot;A String&quot;, # Required. The configuration data for the device.
   }
 
   x__xgafv: string, V1 error format.
@@ -845,32 +845,154 @@
     The object takes the form of:
 
 { # The device resource.
-    &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
-    &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
-      &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
-          # gateway.
-      &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
-          # specified in `last_accessed_gateway`.
-      &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
-      &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+  &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
+    &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
+        # message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
+  &quot;config&quot;: { # 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.
+    &quot;version&quot;: &quot;A String&quot;, # [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.
+    &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
+        # Cloud IoT Core. This timestamp is set by the server.
+    &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
+    &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
+  },
+  &quot;state&quot;: { # 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.
+    &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
+        # IoT Core.
+    &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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.
+  &quot;credentials&quot;: [ # 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.
+      &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
+      &quot;publicKey&quot;: { # 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.
+        &quot;key&quot;: &quot;A String&quot;, # The key data.
+        &quot;format&quot;: &quot;A String&quot;, # The format of the key.
+      },
     },
-    &quot;numId&quot;: &quot;A String&quot;, # [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.
-    &quot;blocked&quot;: 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.
-    &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
-    &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
-    &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
-        # the device.
+  ],
+  &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
+      # &#x27;last_error_status&#x27;.
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
+      # 
+      # The logging verbosity for device activity. If unspecified,
+      # DeviceRegistry.log_level will be used.
+  &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
+      # within a device registry.
+  &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
+  &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
+    &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+    &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
+        # gateway.
+    &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
+        # specified in `last_accessed_gateway`.
+    &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
+  },
+  &quot;numId&quot;: &quot;A String&quot;, # [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.
+  &quot;blocked&quot;: 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.
+  &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
+  &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
+  &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
+      # the device.
+}
+
+  updateMask: string, Required. 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.
     &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; is the timestamp of this
         # field. If no errors have occurred, this field has an empty message
@@ -882,26 +1004,20 @@
         #
         # 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).
-      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-      &quot;message&quot;: &quot;A String&quot;, # 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.
       &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
           # message types for APIs to use.
         {
           &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
         },
       ],
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;message&quot;: &quot;A String&quot;, # 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.
     },
     &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
-    &quot;state&quot;: { # 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.
-      &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
-          # IoT Core.
-      &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
-    },
     &quot;config&quot;: { # 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
@@ -924,6 +1040,17 @@
           # acknowledged. This timestamp is set by Cloud IoT Core.
       &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
     },
+    &quot;state&quot;: { # 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.
+      &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
+          # IoT Core.
+      &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
+    },
+    &quot;name&quot;: &quot;A String&quot;, # 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.
     &quot;credentials&quot;: [ # 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
@@ -950,183 +1077,56 @@
         },
       },
     ],
-    &quot;name&quot;: &quot;A String&quot;, # 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.
     &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
         # &#x27;last_error_status&#x27;.
-    &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
-        # 
-        # The logging verbosity for device activity. If unspecified,
-        # DeviceRegistry.log_level will be used.
     &quot;metadata&quot;: { # 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.
       &quot;a_key&quot;: &quot;A String&quot;,
     },
+    &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
+        #
+        # The logging verbosity for device activity. If unspecified,
+        # DeviceRegistry.log_level will be used.
     &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
         # within a device registry.
-  }
-
-  updateMask: string, Required. 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.
-      &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
-      &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
-        &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
-            # gateway.
-        &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
-            # specified in `last_accessed_gateway`.
-        &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
-        &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
-      },
-      &quot;numId&quot;: &quot;A String&quot;, # [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.
-      &quot;blocked&quot;: 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.
-      &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
-      &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
-      &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
-          # the device.
-      &quot;lastErrorStatus&quot;: { # 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. &#x27;last_error_time&#x27; 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).
-        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
-        &quot;message&quot;: &quot;A String&quot;, # 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.
-        &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
-            # message types for APIs to use.
-          {
-            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
-          },
-        ],
-      },
-      &quot;lastStateTime&quot;: &quot;A String&quot;, # [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.
-      &quot;state&quot;: { # 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.
-        &quot;updateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this state version was updated in Cloud
-            # IoT Core.
-        &quot;binaryData&quot;: &quot;A String&quot;, # The device state data.
-      },
-      &quot;config&quot;: { # 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.
-        &quot;version&quot;: &quot;A String&quot;, # [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.
-        &quot;cloudUpdateTime&quot;: &quot;A String&quot;, # [Output only] The time at which this configuration version was updated in
-            # Cloud IoT Core. This timestamp is set by the server.
-        &quot;deviceAckTime&quot;: &quot;A String&quot;, # [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.
-        &quot;binaryData&quot;: &quot;A String&quot;, # The device configuration data.
-      },
-      &quot;credentials&quot;: [ # 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.
-          &quot;expirationTime&quot;: &quot;A String&quot;, # [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.
-          &quot;publicKey&quot;: { # 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.
-            &quot;key&quot;: &quot;A String&quot;, # The key data.
-            &quot;format&quot;: &quot;A String&quot;, # The format of the key.
-          },
-        },
-      ],
-      &quot;name&quot;: &quot;A String&quot;, # 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.
-      &quot;lastErrorTime&quot;: &quot;A String&quot;, # [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
-          # &#x27;last_error_status&#x27;.
-      &quot;logLevel&quot;: &quot;A String&quot;, # **Beta Feature**
-          #
-          # The logging verbosity for device activity. If unspecified,
-          # DeviceRegistry.log_level will be used.
-      &quot;metadata&quot;: { # 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.
-        &quot;a_key&quot;: &quot;A String&quot;,
-      },
-      &quot;id&quot;: &quot;A String&quot;, # The user-defined device identifier. The device ID must be unique
-          # within a device registry.
-    }</pre>
+    &quot;lastConfigAckTime&quot;: &quot;A String&quot;, # [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.
+    &quot;gatewayConfig&quot;: { # Gateway-related configuration and state. # Gateway-related configuration and state.
+      &quot;lastAccessedGatewayId&quot;: &quot;A String&quot;, # [Output only] The ID of the gateway the device accessed most recently.
+      &quot;gatewayAuthMethod&quot;: &quot;A String&quot;, # Indicates how to authorize and/or authenticate devices to access the
+          # gateway.
+      &quot;lastAccessedGatewayTime&quot;: &quot;A String&quot;, # [Output only] The most recent time at which the device accessed the gateway
+          # specified in `last_accessed_gateway`.
+      &quot;gatewayType&quot;: &quot;A String&quot;, # Indicates whether the device is a gateway.
+    },
+    &quot;numId&quot;: &quot;A String&quot;, # [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.
+    &quot;blocked&quot;: 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.
+    &quot;lastHeartbeatTime&quot;: &quot;A String&quot;, # [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.
+    &quot;lastEventTime&quot;: &quot;A String&quot;, # [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.
+    &quot;lastConfigSendTime&quot;: &quot;A String&quot;, # [Output only] The last time a cloud-to-device config version was sent to
+        # the device.
+  }</pre>
 </div>
 
 <div class="method">