{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloudiot": {
          "description": "Register and manage devices in the Google Cloud IoT service"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "protocol": "rest",
  "id": "cloudiot:v1",
  "ownerName": "Google",
  "schemas": {
    "Empty": {
      "properties": {},
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "Empty",
      "type": "object"
    },
    "DeviceCredential": {
      "properties": {
        "expirationTime": {
          "format": "google-datetime",
          "description": "[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.",
          "type": "string"
        },
        "publicKey": {
          "$ref": "PublicKeyCredential",
          "description": "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."
        }
      },
      "id": "DeviceCredential",
      "description": "A server-stored device credential used for authentication.",
      "type": "object"
    },
    "Binding": {
      "description": "Associates `members` with a `role`.",
      "type": "object",
      "properties": {
        "role": {
          "type": "string",
          "description": "Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`."
        },
        "condition": {
          "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "$ref": "Expr"
        },
        "members": {
          "description": "Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "Binding"
    },
    "GetPolicyOptions": {
      "type": "object",
      "id": "GetPolicyOptions",
      "properties": {
        "requestedPolicyVersion": {
          "format": "int32",
          "type": "integer",
          "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
        }
      },
      "description": "Encapsulates settings provided to GetIamPolicy."
    },
    "X509CertificateDetails": {
      "properties": {
        "publicKeyType": {
          "type": "string",
          "description": "The type of public key in the certificate."
        },
        "issuer": {
          "type": "string",
          "description": "The entity that signed the certificate."
        },
        "subject": {
          "description": "The entity the certificate and public key belong to.",
          "type": "string"
        },
        "signatureAlgorithm": {
          "type": "string",
          "description": "The algorithm used to sign the certificate."
        },
        "expiryTime": {
          "format": "google-datetime",
          "description": "The time the certificate becomes invalid.",
          "type": "string"
        },
        "startTime": {
          "description": "The time the certificate becomes valid.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "X509CertificateDetails",
      "type": "object",
      "description": "Details of an X.509 certificate. For informational purposes only."
    },
    "PublicKeyCredential": {
      "description": "A public key format and data.",
      "id": "PublicKeyCredential",
      "type": "object",
      "properties": {
        "format": {
          "enumDescriptions": [
            "The format has not been specified. This is an invalid default value and must not be used.",
            "An RSA public key encoded in base64, and wrapped by `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----`. This can be used to verify `RS256` signatures in JWT tokens ([RFC7518]( https://www.ietf.org/rfc/rfc7518.txt)).",
            "As RSA_PEM, but wrapped in an X.509v3 certificate ([RFC5280]( https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`.",
            "Public key for the ECDSA algorithm using P-256 and SHA-256, encoded in base64, and wrapped by `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----`. This can be used to verify JWT tokens with the `ES256` algorithm ([RFC7518](https://www.ietf.org/rfc/rfc7518.txt)). This curve is defined in [OpenSSL](https://www.openssl.org/) as the `prime256v1` curve.",
            "As ES256_PEM, but wrapped in an X.509v3 certificate ([RFC5280]( https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`."
          ],
          "type": "string",
          "description": "The format of the key.",
          "enum": [
            "UNSPECIFIED_PUBLIC_KEY_FORMAT",
            "RSA_PEM",
            "RSA_X509_PEM",
            "ES256_PEM",
            "ES256_X509_PEM"
          ]
        },
        "key": {
          "description": "The key data.",
          "type": "string"
        }
      }
    },
    "Policy": {
      "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
      "type": "object",
      "properties": {
        "etag": {
          "type": "string",
          "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.",
          "format": "byte"
        },
        "bindings": {
          "items": {
            "$ref": "Binding"
          },
          "description": "Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.",
          "type": "array"
        },
        "version": {
          "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "Policy"
    },
    "HttpConfig": {
      "properties": {
        "httpEnabledState": {
          "type": "string",
          "description": "If enabled, allows devices to use DeviceService via the HTTP protocol. Otherwise, any requests to DeviceService will fail for this registry.",
          "enumDescriptions": [
            "No HTTP state specified. If not specified, DeviceService will be enabled by default.",
            "Enables DeviceService (HTTP) service for the registry.",
            "Disables DeviceService (HTTP) service for the registry."
          ],
          "enum": [
            "HTTP_STATE_UNSPECIFIED",
            "HTTP_ENABLED",
            "HTTP_DISABLED"
          ]
        }
      },
      "type": "object",
      "description": "The configuration of the HTTP bridge for a device registry.",
      "id": "HttpConfig"
    },
    "DeviceState": {
      "properties": {
        "binaryData": {
          "type": "string",
          "description": "The device state data.",
          "format": "byte"
        },
        "updateTime": {
          "description": "[Output only] The time at which this state version was updated in Cloud IoT Core.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "description": "The device state, as reported by the device.",
      "type": "object",
      "id": "DeviceState"
    },
    "PublicKeyCertificate": {
      "properties": {
        "format": {
          "enumDescriptions": [
            "The format has not been specified. This is an invalid default value and must not be used.",
            "An X.509v3 certificate ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`."
          ],
          "type": "string",
          "description": "The certificate format.",
          "enum": [
            "UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT",
            "X509_CERTIFICATE_PEM"
          ]
        },
        "x509Details": {
          "$ref": "X509CertificateDetails",
          "description": "[Output only] The certificate details. Used only for X.509 certificates."
        },
        "certificate": {
          "type": "string",
          "description": "The certificate data."
        }
      },
      "id": "PublicKeyCertificate",
      "description": "A public key certificate format and data.",
      "type": "object"
    },
    "Expr": {
      "id": "Expr",
      "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \u003c 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.",
      "type": "object",
      "properties": {
        "expression": {
          "type": "string",
          "description": "Textual representation of an expression in Common Expression Language syntax."
        },
        "title": {
          "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
          "type": "string"
        },
        "location": {
          "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI."
        }
      }
    },
    "BindDeviceToGatewayResponse": {
      "description": "Response for `BindDeviceToGateway`.",
      "id": "BindDeviceToGatewayResponse",
      "properties": {},
      "type": "object"
    },
    "StateNotificationConfig": {
      "id": "StateNotificationConfig",
      "description": "The configuration for notification of new states received from the device.",
      "type": "object",
      "properties": {
        "pubsubTopicName": {
          "description": "A Cloud Pub/Sub topic name. For example, `projects/myProject/topics/deviceEvents`.",
          "type": "string"
        }
      }
    },
    "GatewayConfig": {
      "type": "object",
      "properties": {
        "lastAccessedGatewayTime": {
          "type": "string",
          "description": "[Output only] The most recent time at which the device accessed the gateway specified in `last_accessed_gateway`.",
          "format": "google-datetime"
        },
        "gatewayAuthMethod": {
          "enum": [
            "GATEWAY_AUTH_METHOD_UNSPECIFIED",
            "ASSOCIATION_ONLY",
            "DEVICE_AUTH_TOKEN_ONLY",
            "ASSOCIATION_AND_DEVICE_AUTH_TOKEN"
          ],
          "type": "string",
          "enumDescriptions": [
            "No authentication/authorization method specified. No devices are allowed to access the gateway.",
            "The device is authenticated through the gateway association only. Device credentials are ignored even if provided.",
            "The device is authenticated through its own credentials. Gateway association is not checked.",
            "The device is authenticated through both device credentials and gateway association. The device must be bound to the gateway and must provide its own credentials."
          ],
          "description": "Indicates how to authorize and/or authenticate devices to access the gateway."
        },
        "gatewayType": {
          "enum": [
            "GATEWAY_TYPE_UNSPECIFIED",
            "GATEWAY",
            "NON_GATEWAY"
          ],
          "type": "string",
          "description": "Indicates whether the device is a gateway.",
          "enumDescriptions": [
            "If unspecified, the device is considered a non-gateway device.",
            "The device is a gateway.",
            "The device is not a gateway."
          ]
        },
        "lastAccessedGatewayId": {
          "type": "string",
          "description": "[Output only] The ID of the gateway the device accessed most recently."
        }
      },
      "description": "Gateway-related configuration and state.",
      "id": "GatewayConfig"
    },
    "EventNotificationConfig": {
      "description": "The configuration for forwarding telemetry events.",
      "type": "object",
      "id": "EventNotificationConfig",
      "properties": {
        "subfolderMatches": {
          "type": "string",
          "description": "If the subfolder name matches this string exactly, this configuration will be used. The string must not include the leading '/' character. If empty, all strings are matched. This field is used only for telemetry events; subfolders are not supported for state changes."
        },
        "pubsubTopicName": {
          "type": "string",
          "description": "A Cloud Pub/Sub topic name. For example, `projects/myProject/topics/deviceEvents`."
        }
      }
    },
    "ListDeviceStatesResponse": {
      "id": "ListDeviceStatesResponse",
      "properties": {
        "deviceStates": {
          "type": "array",
          "items": {
            "$ref": "DeviceState"
          },
          "description": "The last few device states. States are listed in descending order of server update time, starting from the most recent one."
        }
      },
      "type": "object",
      "description": "Response for `ListDeviceStates`."
    },
    "DeviceConfig": {
      "properties": {
        "deviceAckTime": {
          "type": "string",
          "description": "[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.",
          "format": "google-datetime"
        },
        "version": {
          "format": "int64",
          "type": "string",
          "description": "[Output only] The version of this update. The version number is assigned by the server, and is always greater than 0 after device creation. The version must be 0 on the `CreateDevice` request if a `config` is specified; the response of `CreateDevice` will always have a value of 1."
        },
        "cloudUpdateTime": {
          "description": "[Output only] The time at which this configuration version was updated in Cloud IoT Core. This timestamp is set by the server.",
          "format": "google-datetime",
          "type": "string"
        },
        "binaryData": {
          "format": "byte",
          "description": "The device configuration data.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "The device configuration. Eventually delivered to devices.",
      "id": "DeviceConfig"
    },
    "BindDeviceToGatewayRequest": {
      "description": "Request for `BindDeviceToGateway`.",
      "type": "object",
      "properties": {
        "gatewayId": {
          "type": "string",
          "description": "Required. The value of `gateway_id` can be either the device numeric ID or the user-defined device identifier."
        },
        "deviceId": {
          "description": "Required. The device to associate with the specified gateway. The value of `device_id` can be either the device numeric ID or the user-defined device identifier.",
          "type": "string"
        }
      },
      "id": "BindDeviceToGatewayRequest"
    },
    "ModifyCloudToDeviceConfigRequest": {
      "description": "Request for `ModifyCloudToDeviceConfig`.",
      "properties": {
        "versionToUpdate": {
          "format": "int64",
          "type": "string",
          "description": "The version number to update. If this value is zero, it will not check the version number of the server and will always update the current version; otherwise, this update will fail if the version number found on the server does not match this version number. This is used to support multiple simultaneous updates without losing data."
        },
        "binaryData": {
          "type": "string",
          "description": "Required. The configuration data for the device.",
          "format": "byte"
        }
      },
      "id": "ModifyCloudToDeviceConfigRequest",
      "type": "object"
    },
    "Device": {
      "type": "object",
      "id": "Device",
      "properties": {
        "logLevel": {
          "description": "**Beta Feature** The logging verbosity for device activity. If unspecified, DeviceRegistry.log_level will be used.",
          "enumDescriptions": [
            "No logging specified. If not specified, logging will be disabled.",
            "Disables logging.",
            "Error events will be logged.",
            "Informational events will be logged, such as connections and disconnections.",
            "All events will be logged."
          ],
          "enum": [
            "LOG_LEVEL_UNSPECIFIED",
            "NONE",
            "ERROR",
            "INFO",
            "DEBUG"
          ],
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "The user-defined device identifier. The device ID must be unique within a device registry."
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "config": {
          "description": "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.",
          "$ref": "DeviceConfig"
        },
        "lastConfigAckTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "[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."
        },
        "lastErrorStatus": {
          "description": "[Output only] The error message of the most recent error, such as a failure to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this field. If no errors have occurred, this field has an empty message and the status code 0 == OK. Otherwise, this field is expected to have a status code other than OK.",
          "$ref": "Status"
        },
        "state": {
          "description": "[Output only] The state most recently received from the device. If no state has been reported, this field is not present.",
          "$ref": "DeviceState"
        },
        "credentials": {
          "type": "array",
          "description": "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.",
          "items": {
            "$ref": "DeviceCredential"
          }
        },
        "numId": {
          "type": "string",
          "format": "uint64",
          "description": "[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."
        },
        "lastErrorTime": {
          "description": "[Output only] The time the most recent error occurred, such as a failure to publish to Cloud Pub/Sub. This field is the timestamp of 'last_error_status'.",
          "format": "google-datetime",
          "type": "string"
        },
        "blocked": {
          "type": "boolean",
          "description": "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."
        },
        "lastStateTime": {
          "format": "google-datetime",
          "description": "[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.",
          "type": "string"
        },
        "lastHeartbeatTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "[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."
        },
        "lastConfigSendTime": {
          "type": "string",
          "description": "[Output only] The last time a cloud-to-device config version was sent to the device.",
          "format": "google-datetime"
        },
        "metadata": {
          "description": "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.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "gatewayConfig": {
          "description": "Gateway-related configuration and state.",
          "$ref": "GatewayConfig"
        },
        "lastEventTime": {
          "format": "google-datetime",
          "description": "[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.",
          "type": "string"
        }
      },
      "description": "The device resource."
    },
    "RegistryCredential": {
      "properties": {
        "publicKeyCertificate": {
          "$ref": "PublicKeyCertificate",
          "description": "A public key certificate used to verify the device credentials."
        }
      },
      "description": "A server-stored registry credential used to validate device credentials.",
      "type": "object",
      "id": "RegistryCredential"
    },
    "UnbindDeviceFromGatewayResponse": {
      "id": "UnbindDeviceFromGatewayResponse",
      "type": "object",
      "description": "Response for `UnbindDeviceFromGateway`.",
      "properties": {}
    },
    "SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "type": "object",
      "properties": {
        "policy": {
          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.",
          "$ref": "Policy"
        }
      },
      "id": "SetIamPolicyRequest"
    },
    "Status": {
      "id": "Status",
      "properties": {
        "details": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array"
        },
        "code": {
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer"
        },
        "message": {
          "description": "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.",
          "type": "string"
        }
      },
      "description": "The `Status` type defines a logical error model that is suitable for 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).",
      "type": "object"
    },
    "MqttConfig": {
      "properties": {
        "mqttEnabledState": {
          "enum": [
            "MQTT_STATE_UNSPECIFIED",
            "MQTT_ENABLED",
            "MQTT_DISABLED"
          ],
          "description": "If enabled, allows connections using the MQTT protocol. Otherwise, MQTT connections to this registry will fail.",
          "enumDescriptions": [
            "No MQTT state specified. If not specified, MQTT will be enabled by default.",
            "Enables a MQTT connection.",
            "Disables a MQTT connection."
          ],
          "type": "string"
        }
      },
      "id": "MqttConfig",
      "type": "object",
      "description": "The configuration of MQTT for a device registry."
    },
    "TestIamPermissionsRequest": {
      "type": "object",
      "id": "TestIamPermissionsRequest",
      "description": "Request message for `TestIamPermissions` method.",
      "properties": {
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions)."
        }
      }
    },
    "TestIamPermissionsResponse": {
      "properties": {
        "permissions": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed."
        }
      },
      "type": "object",
      "id": "TestIamPermissionsResponse",
      "description": "Response message for `TestIamPermissions` method."
    },
    "ListDeviceConfigVersionsResponse": {
      "properties": {
        "deviceConfigs": {
          "items": {
            "$ref": "DeviceConfig"
          },
          "type": "array",
          "description": "The device configuration for the last few versions. Versions are listed in decreasing order, starting from the most recent one."
        }
      },
      "description": "Response for `ListDeviceConfigVersions`.",
      "type": "object",
      "id": "ListDeviceConfigVersionsResponse"
    },
    "DeviceRegistry": {
      "id": "DeviceRegistry",
      "description": "A container for a group of devices.",
      "properties": {
        "eventNotificationConfigs": {
          "items": {
            "$ref": "EventNotificationConfig"
          },
          "description": "The configuration for notification of telemetry events received from the device. All telemetry events that were successfully published by the device and acknowledged by Cloud IoT Core are guaranteed to be delivered to Cloud Pub/Sub. If multiple configurations match a message, only the first matching configuration is used. If you try to publish a device telemetry event using MQTT without specifying a Cloud Pub/Sub topic for the device's registry, the connection closes automatically. If you try to do so using an HTTP connection, an error is returned. Up to 10 configurations may be provided.",
          "type": "array"
        },
        "mqttConfig": {
          "description": "The MQTT configuration for this device registry.",
          "$ref": "MqttConfig"
        },
        "id": {
          "description": "The identifier of this device registry. For example, `myRegistry`.",
          "type": "string"
        },
        "stateNotificationConfig": {
          "$ref": "StateNotificationConfig",
          "description": "The configuration for notification of new states received from the device. State updates are guaranteed to be stored in the state history, but notifications to Cloud Pub/Sub are not guaranteed. For example, if permissions are misconfigured or the specified topic doesn't exist, no notification will be published but the state will still be stored in Cloud IoT Core."
        },
        "name": {
          "description": "The resource path name. For example, `projects/example-project/locations/us-central1/registries/my-registry`.",
          "type": "string"
        },
        "credentials": {
          "type": "array",
          "description": "The credentials used to verify the device credentials. No more than 10 credentials can be bound to a single registry at a time. The verification process occurs at the time of device creation or update. If this field is empty, no verification is performed. Otherwise, the credentials of a newly created device or added credentials of an updated device should be signed with one of these registry credentials. Note, however, that existing devices will never be affected by modifications to this list of credentials: after a device has been successfully created in a registry, it should be able to connect even if its registry credentials are revoked, deleted, or modified.",
          "items": {
            "$ref": "RegistryCredential"
          }
        },
        "logLevel": {
          "enum": [
            "LOG_LEVEL_UNSPECIFIED",
            "NONE",
            "ERROR",
            "INFO",
            "DEBUG"
          ],
          "description": "**Beta Feature** The default logging verbosity for activity from devices in this registry. The verbosity level can be overridden by Device.log_level.",
          "enumDescriptions": [
            "No logging specified. If not specified, logging will be disabled.",
            "Disables logging.",
            "Error events will be logged.",
            "Informational events will be logged, such as connections and disconnections.",
            "All events will be logged."
          ],
          "type": "string"
        },
        "httpConfig": {
          "$ref": "HttpConfig",
          "description": "The DeviceService (HTTP) configuration for this device registry."
        }
      },
      "type": "object"
    },
    "UnbindDeviceFromGatewayRequest": {
      "id": "UnbindDeviceFromGatewayRequest",
      "properties": {
        "deviceId": {
          "description": "Required. The device to disassociate from the specified gateway. The value of `device_id` can be either the device numeric ID or the user-defined device identifier.",
          "type": "string"
        },
        "gatewayId": {
          "type": "string",
          "description": "Required. The value of `gateway_id` can be either the device numeric ID or the user-defined device identifier."
        }
      },
      "type": "object",
      "description": "Request for `UnbindDeviceFromGateway`."
    },
    "GetIamPolicyRequest": {
      "properties": {
        "options": {
          "$ref": "GetPolicyOptions",
          "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`."
        }
      },
      "id": "GetIamPolicyRequest",
      "type": "object",
      "description": "Request message for `GetIamPolicy` method."
    },
    "ListDevicesResponse": {
      "id": "ListDevicesResponse",
      "type": "object",
      "description": "Response for `ListDevices`.",
      "properties": {
        "devices": {
          "description": "The devices that match the request.",
          "items": {
            "$ref": "Device"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If not empty, indicates that there may be more devices that match the request; this value should be passed in a new `ListDevicesRequest`.",
          "type": "string"
        }
      }
    },
    "ListDeviceRegistriesResponse": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "If not empty, indicates that there may be more registries that match the request; this value should be passed in a new `ListDeviceRegistriesRequest`."
        },
        "deviceRegistries": {
          "description": "The registries that matched the query.",
          "items": {
            "$ref": "DeviceRegistry"
          },
          "type": "array"
        }
      },
      "description": "Response for `ListDeviceRegistries`.",
      "type": "object",
      "id": "ListDeviceRegistriesResponse"
    },
    "SendCommandToDeviceResponse": {
      "id": "SendCommandToDeviceResponse",
      "properties": {},
      "type": "object",
      "description": "Response for `SendCommandToDevice`."
    },
    "SendCommandToDeviceRequest": {
      "properties": {
        "subfolder": {
          "type": "string",
          "description": "Optional subfolder for the command. If empty, the command will be delivered to the /devices/{device-id}/commands topic, otherwise it will be delivered to the /devices/{device-id}/commands/{subfolder} topic. Multi-level subfolders are allowed. This field must not have more than 256 characters, and must not contain any MQTT wildcards (\"+\" or \"#\") or null characters."
        },
        "binaryData": {
          "format": "byte",
          "description": "Required. The command data to send to the device.",
          "type": "string"
        }
      },
      "id": "SendCommandToDeviceRequest",
      "description": "Request for `SendCommandToDevice`.",
      "type": "object"
    }
  },
  "description": "Registers and manages IoT (Internet of Things) devices that connect to the Google Cloud Platform. ",
  "parameters": {
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "type": "string",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "type": "string",
      "location": "query"
    },
    "key": {
      "location": "query",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "type": "string"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "default": "true"
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "type": "string",
      "location": "query",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "description": "Data format for response."
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
    },
    "$.xgafv": {
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "location": "query",
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    },
    "access_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth access token."
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    }
  },
  "mtlsRootUrl": "https://cloudiot.mtls.googleapis.com/",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "resources": {
            "registries": {
              "resources": {
                "groups": {
                  "methods": {
                    "testIamPermissions": {
                      "path": "v1/{+resource}:testIamPermissions",
                      "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.",
                      "parameterOrder": [
                        "resource"
                      ],
                      "httpMethod": "POST",
                      "response": {
                        "$ref": "TestIamPermissionsResponse"
                      },
                      "request": {
                        "$ref": "TestIamPermissionsRequest"
                      },
                      "parameters": {
                        "resource": {
                          "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
                          "required": true,
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/groups/[^/]+$",
                          "type": "string"
                        }
                      },
                      "id": "cloudiot.projects.locations.registries.groups.testIamPermissions",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/groups/{groupsId}:testIamPermissions",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ]
                    },
                    "getIamPolicy": {
                      "id": "cloudiot.projects.locations.registries.groups.getIamPolicy",
                      "parameterOrder": [
                        "resource"
                      ],
                      "parameters": {
                        "resource": {
                          "type": "string",
                          "location": "path",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/groups/[^/]+$",
                          "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/groups/{groupsId}:getIamPolicy",
                      "response": {
                        "$ref": "Policy"
                      },
                      "request": {
                        "$ref": "GetIamPolicyRequest"
                      },
                      "path": "v1/{+resource}:getIamPolicy",
                      "httpMethod": "POST"
                    },
                    "setIamPolicy": {
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "request": {
                        "$ref": "SetIamPolicyRequest"
                      },
                      "response": {
                        "$ref": "Policy"
                      },
                      "id": "cloudiot.projects.locations.registries.groups.setIamPolicy",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/groups/{groupsId}:setIamPolicy",
                      "parameters": {
                        "resource": {
                          "type": "string",
                          "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
                          "required": true,
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/groups/[^/]+$"
                        }
                      },
                      "path": "v1/{+resource}:setIamPolicy",
                      "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
                      "parameterOrder": [
                        "resource"
                      ],
                      "httpMethod": "POST"
                    }
                  },
                  "resources": {
                    "devices": {
                      "methods": {
                        "list": {
                          "description": "List devices in a device registry.",
                          "path": "v1/{+parent}/devices",
                          "response": {
                            "$ref": "ListDevicesResponse"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform",
                            "https://www.googleapis.com/auth/cloudiot"
                          ],
                          "id": "cloudiot.projects.locations.registries.groups.devices.list",
                          "parameters": {
                            "deviceIds": {
                              "description": "A list of device string IDs. For example, `['device0', 'device12']`. If empty, this field is ignored. Maximum IDs: 10,000",
                              "location": "query",
                              "repeated": true,
                              "type": "string"
                            },
                            "parent": {
                              "description": "Required. The device registry path. Required. For example, `projects/my-project/locations/us-central1/registries/my-registry`.",
                              "location": "path",
                              "type": "string",
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/groups/[^/]+$"
                            },
                            "gatewayListOptions.associationsDeviceId": {
                              "location": "query",
                              "description": "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.",
                              "type": "string"
                            },
                            "pageToken": {
                              "type": "string",
                              "location": "query",
                              "description": "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": {
                              "type": "string",
                              "description": "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.",
                              "format": "google-fieldmask",
                              "location": "query"
                            },
                            "gatewayListOptions.associationsGatewayId": {
                              "description": "If set, only devices associated with the specified gateway are returned. The gateway ID can be numeric (`num_id`) or the user-defined string (`id`). For example, if `123` is specified, only devices bound to the gateway with `num_id` 123 are returned.",
                              "location": "query",
                              "type": "string"
                            },
                            "gatewayListOptions.gatewayType": {
                              "enumDescriptions": [
                                "If unspecified, the device is considered a non-gateway device.",
                                "The device is a gateway.",
                                "The device is not a gateway."
                              ],
                              "description": "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.",
                              "location": "query",
                              "type": "string",
                              "enum": [
                                "GATEWAY_TYPE_UNSPECIFIED",
                                "GATEWAY",
                                "NON_GATEWAY"
                              ]
                            },
                            "deviceNumIds": {
                              "description": "A list of device numeric IDs. If empty, this field is ignored. Maximum IDs: 10,000.",
                              "repeated": true,
                              "format": "uint64",
                              "type": "string",
                              "location": "query"
                            },
                            "pageSize": {
                              "format": "int32",
                              "type": "integer",
                              "description": "The maximum number of devices to return in the response. If this value is zero, the service will select a default size. A call may return fewer objects than requested. A non-empty `next_page_token` in the response indicates that more data is available.",
                              "location": "query"
                            }
                          },
                          "httpMethod": "GET",
                          "parameterOrder": [
                            "parent"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/groups/{groupsId}/devices"
                        }
                      }
                    }
                  }
                },
                "devices": {
                  "methods": {
                    "get": {
                      "response": {
                        "$ref": "Device"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "GET",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}",
                      "path": "v1/{+name}",
                      "description": "Gets details about a device.",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "parameters": {
                        "fieldMask": {
                          "format": "google-fieldmask",
                          "location": "query",
                          "type": "string",
                          "description": "The fields of the `Device` resource to be returned in the response. If the field mask is unset or empty, all fields are returned."
                        },
                        "name": {
                          "required": true,
                          "description": "Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.",
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$"
                        }
                      },
                      "id": "cloudiot.projects.locations.registries.devices.get"
                    },
                    "create": {
                      "response": {
                        "$ref": "Device"
                      },
                      "parameters": {
                        "parent": {
                          "type": "string",
                          "required": true,
                          "location": "path",
                          "description": "Required. The name of the device registry where this device should be created. For example, `projects/example-project/locations/us-central1/registries/my-registry`.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$"
                        }
                      },
                      "description": "Creates a device in a device registry.",
                      "parameterOrder": [
                        "parent"
                      ],
                      "path": "v1/{+parent}/devices",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices",
                      "httpMethod": "POST",
                      "id": "cloudiot.projects.locations.registries.devices.create",
                      "request": {
                        "$ref": "Device"
                      }
                    },
                    "delete": {
                      "path": "v1/{+name}",
                      "description": "Deletes a device.",
                      "id": "cloudiot.projects.locations.registries.devices.delete",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "httpMethod": "DELETE",
                      "response": {
                        "$ref": "Empty"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "type": "string",
                          "description": "Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$"
                        }
                      }
                    },
                    "sendCommandToDevice": {
                      "request": {
                        "$ref": "SendCommandToDeviceRequest"
                      },
                      "description": "Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core using the MQTT protocol, and 2) be subscribed to the group of MQTT topics specified by /devices/{device-id}/commands/#. This subscription will receive commands at the top-level topic /devices/{device-id}/commands as well as commands for subfolders, like /devices/{device-id}/commands/subfolder. Note that subscribing to specific subfolders is not supported. If the command could not be delivered to the device, this method will return an error; in particular, if the device is not subscribed, this method will return FAILED_PRECONDITION. Otherwise, this method will return OK. If the subscription is QoS 1, at least once delivery will be guaranteed; for QoS 0, no acknowledgment will be expected from the device.",
                      "path": "v1/{+name}:sendCommandToDevice",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "location": "path",
                          "description": "Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "id": "cloudiot.projects.locations.registries.devices.sendCommandToDevice",
                      "response": {
                        "$ref": "SendCommandToDeviceResponse"
                      },
                      "httpMethod": "POST",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:sendCommandToDevice"
                    },
                    "modifyCloudToDeviceConfig": {
                      "path": "v1/{+name}:modifyCloudToDeviceConfig",
                      "request": {
                        "$ref": "ModifyCloudToDeviceConfigRequest"
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}:modifyCloudToDeviceConfig",
                      "id": "cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$",
                          "description": "Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`."
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "description": "Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns the modified configuration version and its metadata.",
                      "response": {
                        "$ref": "DeviceConfig"
                      }
                    },
                    "patch": {
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}",
                      "parameters": {
                        "updateMask": {
                          "type": "string",
                          "location": "query",
                          "format": "google-fieldmask",
                          "description": "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`"
                        },
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$",
                          "description": "The resource path name. For example, `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`. When `name` is populated as a response from the service, it always ends in the device numeric ID.",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "id": "cloudiot.projects.locations.registries.devices.patch",
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "Device"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "httpMethod": "PATCH",
                      "description": "Updates a device.",
                      "request": {
                        "$ref": "Device"
                      }
                    },
                    "list": {
                      "path": "v1/{+parent}/devices",
                      "response": {
                        "$ref": "ListDevicesResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloudiot"
                      ],
                      "description": "List devices in a device registry.",
                      "httpMethod": "GET",
                      "parameters": {
                        "pageToken": {
                          "location": "query",
                          "description": "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.",
                          "type": "string"
                        },
                        "pageSize": {
                          "location": "query",
                          "description": "The maximum number of devices to return in the response. If this value is zero, the service will select a default size. A call may return fewer objects than requested. A non-empty `next_page_token` in the response indicates that more data is available.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "gatewayListOptions.gatewayType": {
                          "type": "string",
                          "location": "query",
                          "enum": [
                            "GATEWAY_TYPE_UNSPECIFIED",
                            "GATEWAY",
                            "NON_GATEWAY"
                          ],
                          "description": "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.",
                          "enumDescriptions": [
                            "If unspecified, the device is considered a non-gateway device.",
                            "The device is a gateway.",
                            "The device is not a gateway."
                          ]
                        },
                        "deviceIds": {
                          "repeated": true,
                          "location": "query",
                          "description": "A list of device string IDs. For example, `['device0', 'device12']`. If empty, this field is ignored. Maximum IDs: 10,000",
                          "type": "string"
                        },
                        "gatewayListOptions.associationsDeviceId": {
                          "location": "query",
                          "description": "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.",
                          "type": "string"
                        },
                        "deviceNumIds": {
                          "format": "uint64",
                          "description": "A list of device numeric IDs. If empty, this field is ignored. Maximum IDs: 10,000.",
                          "repeated": true,
                          "location": "query",
                          "type": "string"
                        },
                        "gatewayListOptions.associationsGatewayId": {
                          "type": "string",
                          "description": "If set, only devices associated with the specified gateway are returned. The gateway ID can be numeric (`num_id`) or the user-defined string (`id`). For example, if `123` is specified, only devices bound to the gateway with `num_id` 123 are returned.",
                          "location": "query"
                        },
                        "fieldMask": {
                          "format": "google-fieldmask",
                          "location": "query",
                          "type": "string",
                          "description": "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."
                        },
                        "parent": {
                          "description": "Required. The device registry path. Required. For example, `projects/my-project/locations/us-central1/registries/my-registry`.",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                          "location": "path",
                          "type": "string"
                        }
                      },
                      "id": "cloudiot.projects.locations.registries.devices.list",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices",
                      "parameterOrder": [
                        "parent"
                      ]
                    }
                  },
                  "resources": {
                    "configVersions": {
                      "methods": {
                        "list": {
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "required": true,
                              "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$",
                              "description": "Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.",
                              "type": "string",
                              "location": "path"
                            },
                            "numVersions": {
                              "description": "The number of versions to list. Versions are listed in decreasing order of the version number. The maximum number of versions retained is 10. If this value is zero, it will return all the versions available.",
                              "format": "int32",
                              "type": "integer",
                              "location": "query"
                            }
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/configVersions",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform",
                            "https://www.googleapis.com/auth/cloudiot"
                          ],
                          "id": "cloudiot.projects.locations.registries.devices.configVersions.list",
                          "path": "v1/{+name}/configVersions",
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "ListDeviceConfigVersionsResponse"
                          },
                          "description": "Lists the last few versions of the device configuration in descending order (i.e.: newest first)."
                        }
                      }
                    },
                    "states": {
                      "methods": {
                        "list": {
                          "parameters": {
                            "name": {
                              "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+/devices/[^/]+$",
                              "required": true,
                              "location": "path",
                              "description": "Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.",
                              "type": "string"
                            },
                            "numStates": {
                              "location": "query",
                              "format": "int32",
                              "description": "The number of states to list. States are listed in descending order of update time. The maximum number of states retained is 10. If this value is zero, it will return all the states available.",
                              "type": "integer"
                            }
                          },
                          "path": "v1/{+name}/states",
                          "response": {
                            "$ref": "ListDeviceStatesResponse"
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}/devices/{devicesId}/states",
                          "description": "Lists the last few versions of the device state in descending order (i.e.: newest first).",
                          "id": "cloudiot.projects.locations.registries.devices.states.list",
                          "httpMethod": "GET",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform",
                            "https://www.googleapis.com/auth/cloudiot"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "methods": {
                "setIamPolicy": {
                  "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:setIamPolicy",
                  "httpMethod": "POST",
                  "path": "v1/{+resource}:setIamPolicy",
                  "parameters": {
                    "resource": {
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field."
                    }
                  },
                  "id": "cloudiot.projects.locations.registries.setIamPolicy",
                  "request": {
                    "$ref": "SetIamPolicyRequest"
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "response": {
                    "$ref": "Policy"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ]
                },
                "unbindDeviceFromGateway": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1/{+parent}:unbindDeviceFromGateway",
                  "response": {
                    "$ref": "UnbindDeviceFromGatewayResponse"
                  },
                  "id": "cloudiot.projects.locations.registries.unbindDeviceFromGateway",
                  "description": "Deletes the association between the device and the gateway.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:unbindDeviceFromGateway",
                  "request": {
                    "$ref": "UnbindDeviceFromGatewayRequest"
                  },
                  "parameters": {
                    "parent": {
                      "required": true,
                      "description": "Required. The name of the registry. For example, `projects/example-project/locations/us-central1/registries/my-registry`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "type": "string"
                    }
                  },
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ]
                },
                "delete": {
                  "httpMethod": "DELETE",
                  "description": "Deletes a device registry configuration.",
                  "response": {
                    "$ref": "Empty"
                  },
                  "path": "v1/{+name}",
                  "id": "cloudiot.projects.locations.registries.delete",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the device registry. For example, `projects/example-project/locations/us-central1/registries/my-registry`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ]
                },
                "testIamPermissions": {
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "path": "v1/{+resource}:testIamPermissions",
                  "request": {
                    "$ref": "TestIamPermissionsRequest"
                  },
                  "response": {
                    "$ref": "TestIamPermissionsResponse"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:testIamPermissions",
                  "parameterOrder": [
                    "resource"
                  ],
                  "parameters": {
                    "resource": {
                      "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "id": "cloudiot.projects.locations.registries.testIamPermissions",
                  "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error."
                },
                "list": {
                  "path": "v1/{+parent}/registries",
                  "response": {
                    "$ref": "ListDeviceRegistriesResponse"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries",
                  "id": "cloudiot.projects.locations.registries.list",
                  "parameters": {
                    "pageSize": {
                      "description": "The maximum number of registries to return in the response. If this value is zero, the service will select a default size. A call may return fewer objects than requested. A non-empty `next_page_token` in the response indicates that more data is available.",
                      "type": "integer",
                      "format": "int32",
                      "location": "query"
                    },
                    "parent": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. The project and cloud region path. For example, `projects/example-project/locations/us-central1`.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "The value returned by the last `ListDeviceRegistriesResponse`; indicates that this is a continuation of a prior `ListDeviceRegistries` call and the system should return the next page of data.",
                      "location": "query"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET",
                  "description": "Lists device registries."
                },
                "getIamPolicy": {
                  "response": {
                    "$ref": "Policy"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "id": "cloudiot.projects.locations.registries.getIamPolicy",
                  "request": {
                    "$ref": "GetIamPolicyRequest"
                  },
                  "path": "v1/{+resource}:getIamPolicy",
                  "httpMethod": "POST",
                  "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
                  "parameters": {
                    "resource": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "resource"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:getIamPolicy"
                },
                "get": {
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "required": true,
                      "description": "Required. The name of the device registry. For example, `projects/example-project/locations/us-central1/registries/my-registry`.",
                      "location": "path"
                    }
                  },
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "DeviceRegistry"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Gets a device registry configuration.",
                  "id": "cloudiot.projects.locations.registries.get"
                },
                "bindDeviceToGateway": {
                  "id": "cloudiot.projects.locations.registries.bindDeviceToGateway",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "response": {
                    "$ref": "BindDeviceToGatewayResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}:bindDeviceToGateway",
                  "path": "v1/{+parent}:bindDeviceToGateway",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "type": "string",
                      "required": true,
                      "description": "Required. The name of the registry. For example, `projects/example-project/locations/us-central1/registries/my-registry`."
                    }
                  },
                  "request": {
                    "$ref": "BindDeviceToGatewayRequest"
                  },
                  "description": "Associates the device with the gateway."
                },
                "create": {
                  "httpMethod": "POST",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. The project and cloud region where this device registry must be created. For example, `projects/example-project/locations/us-central1`.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "request": {
                    "$ref": "DeviceRegistry"
                  },
                  "response": {
                    "$ref": "DeviceRegistry"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ],
                  "id": "cloudiot.projects.locations.registries.create",
                  "description": "Creates a device registry that contains devices.",
                  "path": "v1/{+parent}/registries"
                },
                "patch": {
                  "httpMethod": "PATCH",
                  "response": {
                    "$ref": "DeviceRegistry"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registries/{registriesId}",
                  "request": {
                    "$ref": "DeviceRegistry"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "updateMask": {
                      "location": "query",
                      "format": "google-fieldmask",
                      "description": "Required. Only updates the `device_registry` 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: `event_notification_config`, `http_config`, `mqtt_config`, and `state_notification_config`.",
                      "type": "string"
                    },
                    "name": {
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/registries/[^/]+$",
                      "location": "path",
                      "description": "The resource path name. For example, `projects/example-project/locations/us-central1/registries/my-registry`."
                    }
                  },
                  "description": "Updates a device registry configuration.",
                  "id": "cloudiot.projects.locations.registries.patch",
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloudiot"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "kind": "discovery#restDescription",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "name": "cloudiot",
  "servicePath": "",
  "canonicalName": "Cloud Iot",
  "basePath": "",
  "rootUrl": "https://cloudiot.googleapis.com/",
  "revision": "20201110",
  "discoveryVersion": "v1",
  "batchPath": "batch",
  "fullyEncodeReservedExpansion": true,
  "version_module": true,
  "baseUrl": "https://cloudiot.googleapis.com/",
  "documentationLink": "https://cloud.google.com/iot",
  "ownerDomain": "google.com",
  "title": "Cloud IoT API",
  "version": "v1"
}
