Cloud IoT API . projects . locations . registries

Instance Methods

devices()

Returns the devices Resource.

groups()

Returns the groups Resource.

bindDeviceToGateway(parent, body, x__xgafv=None)

Associates the device with the gateway.

create(parent, body, x__xgafv=None)

Creates a device registry that contains devices.

delete(name, x__xgafv=None)

Deletes a device registry configuration.

get(name, x__xgafv=None)

Gets a device registry configuration.

getIamPolicy(resource, body=None, x__xgafv=None)

Gets the access control policy for a resource.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

Lists device registries.

list_next(previous_request, previous_response)

Retrieves the next page of results.

patch(name, body, updateMask=None, x__xgafv=None)

Updates a device registry configuration.

setIamPolicy(resource, body, x__xgafv=None)

Sets the access control policy on the specified resource. Replaces any

testIamPermissions(resource, body, x__xgafv=None)

Returns permissions that a caller has on the specified resource.

unbindDeviceFromGateway(parent, body, x__xgafv=None)

Deletes the association between the device and the gateway.

Method Details

bindDeviceToGateway(parent, body, x__xgafv=None)
Associates the device with the gateway.

Args:
  parent: string, The name of the registry. For example,
`projects/example-project/locations/us-central1/registries/my-registry`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request for `BindDeviceToGateway`.
    "gatewayId": "A String", # The value of `gateway_id` can be either the device numeric ID or the
        # user-defined device identifier.
    "deviceId": "A String", # 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.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for `BindDeviceToGateway`.
  }
create(parent, body, x__xgafv=None)
Creates a device registry that contains devices.

Args:
  parent: string, The project and cloud region where this device registry must be created.
For example, `projects/example-project/locations/us-central1`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A container for a group of devices.
  "name": "A String", # The resource path name. For example,
      # `projects/example-project/locations/us-central1/registries/my-registry`.
  "stateNotificationConfig": { # The configuration for notification of new states received from the device. # 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.
    "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
        # `projects/myProject/topics/deviceEvents`.
  },
  "logLevel": "A String", # **Beta Feature**
      # 
      # The default logging verbosity for activity from devices in this registry.
      # The verbosity level can be overridden by Device.log_level.
  "eventNotificationConfigs": [ # 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.
    { # The configuration for forwarding telemetry events.
      "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
          # `projects/myProject/topics/deviceEvents`.
      "subfolderMatches": "A String", # 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.
    },
  ],
  "httpConfig": { # The configuration of the HTTP bridge for a device registry. # The DeviceService (HTTP) configuration for this device registry.
    "httpEnabledState": "A String", # If enabled, allows devices to use DeviceService via the HTTP protocol.
        # Otherwise, any requests to DeviceService will fail for this registry.
  },
  "mqttConfig": { # The configuration of MQTT for a device registry. # The MQTT configuration for this device registry.
    "mqttEnabledState": "A String", # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
        # connections to this registry will fail.
  },
  "credentials": [ # 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.
    { # A server-stored registry credential used to validate device credentials.
      "publicKeyCertificate": { # A public key certificate format and data. # A public key certificate used to verify the device credentials.
        "x509Details": { # Details of an X.509 certificate. For informational purposes only. # [Output only] The certificate details. Used only for X.509 certificates.
          "signatureAlgorithm": "A String", # The algorithm used to sign the certificate.
          "expiryTime": "A String", # The time the certificate becomes invalid.
          "publicKeyType": "A String", # The type of public key in the certificate.
          "startTime": "A String", # The time the certificate becomes valid.
          "subject": "A String", # The entity the certificate and public key belong to.
          "issuer": "A String", # The entity that signed the certificate.
        },
        "certificate": "A String", # The certificate data.
        "format": "A String", # The certificate format.
      },
    },
  ],
  "id": "A String", # The identifier of this device registry. For example, `myRegistry`.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A container for a group of devices.
    "name": "A String", # The resource path name. For example,
        # `projects/example-project/locations/us-central1/registries/my-registry`.
    "stateNotificationConfig": { # The configuration for notification of new states received from the device. # 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.
      "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
          # `projects/myProject/topics/deviceEvents`.
    },
    "logLevel": "A String", # **Beta Feature**
        #
        # The default logging verbosity for activity from devices in this registry.
        # The verbosity level can be overridden by Device.log_level.
    "eventNotificationConfigs": [ # 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.
      { # The configuration for forwarding telemetry events.
        "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
            # `projects/myProject/topics/deviceEvents`.
        "subfolderMatches": "A String", # 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.
      },
    ],
    "httpConfig": { # The configuration of the HTTP bridge for a device registry. # The DeviceService (HTTP) configuration for this device registry.
      "httpEnabledState": "A String", # If enabled, allows devices to use DeviceService via the HTTP protocol.
          # Otherwise, any requests to DeviceService will fail for this registry.
    },
    "mqttConfig": { # The configuration of MQTT for a device registry. # The MQTT configuration for this device registry.
      "mqttEnabledState": "A String", # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
          # connections to this registry will fail.
    },
    "credentials": [ # 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.
      { # A server-stored registry credential used to validate device credentials.
        "publicKeyCertificate": { # A public key certificate format and data. # A public key certificate used to verify the device credentials.
          "x509Details": { # Details of an X.509 certificate. For informational purposes only. # [Output only] The certificate details. Used only for X.509 certificates.
            "signatureAlgorithm": "A String", # The algorithm used to sign the certificate.
            "expiryTime": "A String", # The time the certificate becomes invalid.
            "publicKeyType": "A String", # The type of public key in the certificate.
            "startTime": "A String", # The time the certificate becomes valid.
            "subject": "A String", # The entity the certificate and public key belong to.
            "issuer": "A String", # The entity that signed the certificate.
          },
          "certificate": "A String", # The certificate data.
          "format": "A String", # The certificate format.
        },
      },
    ],
    "id": "A String", # The identifier of this device registry. For example, `myRegistry`.
  }
delete(name, x__xgafv=None)
Deletes a device registry configuration.

Args:
  name: string, The name of the device registry. For example,
`projects/example-project/locations/us-central1/registries/my-registry`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated
      # empty messages in your APIs. A typical example is to use it as the request
      # or the response type of an API method. For instance:
      #
      #     service Foo {
      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
      #     }
      #
      # The JSON representation for `Empty` is empty JSON object `{}`.
  }
get(name, x__xgafv=None)
Gets a device registry configuration.

Args:
  name: string, The name of the device registry. For example,
`projects/example-project/locations/us-central1/registries/my-registry`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A container for a group of devices.
    "name": "A String", # The resource path name. For example,
        # `projects/example-project/locations/us-central1/registries/my-registry`.
    "stateNotificationConfig": { # The configuration for notification of new states received from the device. # 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.
      "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
          # `projects/myProject/topics/deviceEvents`.
    },
    "logLevel": "A String", # **Beta Feature**
        #
        # The default logging verbosity for activity from devices in this registry.
        # The verbosity level can be overridden by Device.log_level.
    "eventNotificationConfigs": [ # 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.
      { # The configuration for forwarding telemetry events.
        "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
            # `projects/myProject/topics/deviceEvents`.
        "subfolderMatches": "A String", # 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.
      },
    ],
    "httpConfig": { # The configuration of the HTTP bridge for a device registry. # The DeviceService (HTTP) configuration for this device registry.
      "httpEnabledState": "A String", # If enabled, allows devices to use DeviceService via the HTTP protocol.
          # Otherwise, any requests to DeviceService will fail for this registry.
    },
    "mqttConfig": { # The configuration of MQTT for a device registry. # The MQTT configuration for this device registry.
      "mqttEnabledState": "A String", # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
          # connections to this registry will fail.
    },
    "credentials": [ # 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.
      { # A server-stored registry credential used to validate device credentials.
        "publicKeyCertificate": { # A public key certificate format and data. # A public key certificate used to verify the device credentials.
          "x509Details": { # Details of an X.509 certificate. For informational purposes only. # [Output only] The certificate details. Used only for X.509 certificates.
            "signatureAlgorithm": "A String", # The algorithm used to sign the certificate.
            "expiryTime": "A String", # The time the certificate becomes invalid.
            "publicKeyType": "A String", # The type of public key in the certificate.
            "startTime": "A String", # The time the certificate becomes valid.
            "subject": "A String", # The entity the certificate and public key belong to.
            "issuer": "A String", # The entity that signed the certificate.
          },
          "certificate": "A String", # The certificate data.
          "format": "A String", # The certificate format.
        },
      },
    ],
    "id": "A String", # The identifier of this device registry. For example, `myRegistry`.
  }
getIamPolicy(resource, body=None, x__xgafv=None)
Gets the access control policy for a resource.
Returns an empty policy if the resource exists and does not have a policy
set.

Args:
  resource: string, REQUIRED: The resource for which the policy is being requested.
See the operation documentation for the appropriate value for this field. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for `GetIamPolicy` method.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Defines an Identity and Access Management (IAM) policy. It is used to
      # specify access control policies for Cloud Platform resources.
      #
      #
      # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
      # `members` to a `role`, where the members can be user accounts, Google groups,
      # Google domains, and service accounts. A `role` is a named list of permissions
      # defined by IAM.
      #
      # **JSON Example**
      #
      #     {
      #       "bindings": [
      #         {
      #           "role": "roles/owner",
      #           "members": [
      #             "user:mike@example.com",
      #             "group:admins@example.com",
      #             "domain:google.com",
      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      #           ]
      #         },
      #         {
      #           "role": "roles/viewer",
      #           "members": ["user:sean@example.com"]
      #         }
      #       ]
      #     }
      #
      # **YAML Example**
      #
      #     bindings:
      #     - members:
      #       - user:mike@example.com
      #       - group:admins@example.com
      #       - domain:google.com
      #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
      #       role: roles/owner
      #     - members:
      #       - user:sean@example.com
      #       role: roles/viewer
      #
      #
      # For a description of IAM and its features, see the
      # [IAM developer's guide](https://cloud.google.com/iam/docs).
    "bindings": [ # Associates a list of `members` to a `role`.
        # `bindings` with no members will result in an error.
      { # Associates `members` with a `role`.
        "role": "A String", # Role that is assigned to `members`.
            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
        "members": [ # 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@gmail.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`.
            #
            #
            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
            #    users of that domain. For example, `google.com` or `example.com`.
            #
          "A String",
        ],
        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
            # NOTE: An unsatisfied condition will not allow user access via current
            # binding. Different bindings, including their conditions, are examined
            # independently.
            #
            #     title: "User account presence"
            #     description: "Determines whether the request has a user account"
            #     expression: "size(request.user) > 0"
          "location": "A String", # An optional string indicating the location of the expression for error
              # reporting, e.g. a file name and a position in the file.
          "expression": "A String", # Textual representation of an expression in
              # Common Expression Language syntax.
              #
              # The application context of the containing message determines which
              # well-known feature set of CEL is supported.
          "description": "A String", # An optional description of the expression. This is a longer text which
              # describes the expression, e.g. when hovered over it in a UI.
          "title": "A String", # An 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.
        },
      },
    ],
    "version": 42, # Deprecated.
    "etag": "A String", # `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.
        #
        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
        # policy is overwritten blindly.
  }
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
Lists device registries.

Args:
  parent: string, The project and cloud region path. For example,
`projects/example-project/locations/us-central1`. (required)
  pageSize: integer, 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.
  pageToken: string, 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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for `ListDeviceRegistries`.
    "nextPageToken": "A String", # If not empty, indicates that there may be more registries that match the
        # request; this value should be passed in a new
        # `ListDeviceRegistriesRequest`.
    "deviceRegistries": [ # The registries that matched the query.
      { # A container for a group of devices.
        "name": "A String", # The resource path name. For example,
            # `projects/example-project/locations/us-central1/registries/my-registry`.
        "stateNotificationConfig": { # The configuration for notification of new states received from the device. # 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.
          "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
              # `projects/myProject/topics/deviceEvents`.
        },
        "logLevel": "A String", # **Beta Feature**
            #
            # The default logging verbosity for activity from devices in this registry.
            # The verbosity level can be overridden by Device.log_level.
        "eventNotificationConfigs": [ # 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.
          { # The configuration for forwarding telemetry events.
            "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
                # `projects/myProject/topics/deviceEvents`.
            "subfolderMatches": "A String", # 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.
          },
        ],
        "httpConfig": { # The configuration of the HTTP bridge for a device registry. # The DeviceService (HTTP) configuration for this device registry.
          "httpEnabledState": "A String", # If enabled, allows devices to use DeviceService via the HTTP protocol.
              # Otherwise, any requests to DeviceService will fail for this registry.
        },
        "mqttConfig": { # The configuration of MQTT for a device registry. # The MQTT configuration for this device registry.
          "mqttEnabledState": "A String", # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
              # connections to this registry will fail.
        },
        "credentials": [ # 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.
          { # A server-stored registry credential used to validate device credentials.
            "publicKeyCertificate": { # A public key certificate format and data. # A public key certificate used to verify the device credentials.
              "x509Details": { # Details of an X.509 certificate. For informational purposes only. # [Output only] The certificate details. Used only for X.509 certificates.
                "signatureAlgorithm": "A String", # The algorithm used to sign the certificate.
                "expiryTime": "A String", # The time the certificate becomes invalid.
                "publicKeyType": "A String", # The type of public key in the certificate.
                "startTime": "A String", # The time the certificate becomes valid.
                "subject": "A String", # The entity the certificate and public key belong to.
                "issuer": "A String", # The entity that signed the certificate.
              },
              "certificate": "A String", # The certificate data.
              "format": "A String", # The certificate format.
            },
          },
        ],
        "id": "A String", # The identifier of this device registry. For example, `myRegistry`.
      },
    ],
  }
list_next(previous_request, previous_response)
Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    
patch(name, body, updateMask=None, x__xgafv=None)
Updates a device registry configuration.

Args:
  name: string, The resource path name. For example,
`projects/example-project/locations/us-central1/registries/my-registry`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A container for a group of devices.
  "name": "A String", # The resource path name. For example,
      # `projects/example-project/locations/us-central1/registries/my-registry`.
  "stateNotificationConfig": { # The configuration for notification of new states received from the device. # 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.
    "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
        # `projects/myProject/topics/deviceEvents`.
  },
  "logLevel": "A String", # **Beta Feature**
      # 
      # The default logging verbosity for activity from devices in this registry.
      # The verbosity level can be overridden by Device.log_level.
  "eventNotificationConfigs": [ # 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.
    { # The configuration for forwarding telemetry events.
      "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
          # `projects/myProject/topics/deviceEvents`.
      "subfolderMatches": "A String", # 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.
    },
  ],
  "httpConfig": { # The configuration of the HTTP bridge for a device registry. # The DeviceService (HTTP) configuration for this device registry.
    "httpEnabledState": "A String", # If enabled, allows devices to use DeviceService via the HTTP protocol.
        # Otherwise, any requests to DeviceService will fail for this registry.
  },
  "mqttConfig": { # The configuration of MQTT for a device registry. # The MQTT configuration for this device registry.
    "mqttEnabledState": "A String", # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
        # connections to this registry will fail.
  },
  "credentials": [ # 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.
    { # A server-stored registry credential used to validate device credentials.
      "publicKeyCertificate": { # A public key certificate format and data. # A public key certificate used to verify the device credentials.
        "x509Details": { # Details of an X.509 certificate. For informational purposes only. # [Output only] The certificate details. Used only for X.509 certificates.
          "signatureAlgorithm": "A String", # The algorithm used to sign the certificate.
          "expiryTime": "A String", # The time the certificate becomes invalid.
          "publicKeyType": "A String", # The type of public key in the certificate.
          "startTime": "A String", # The time the certificate becomes valid.
          "subject": "A String", # The entity the certificate and public key belong to.
          "issuer": "A String", # The entity that signed the certificate.
        },
        "certificate": "A String", # The certificate data.
        "format": "A String", # The certificate format.
      },
    },
  ],
  "id": "A String", # The identifier of this device registry. For example, `myRegistry`.
}

  updateMask: string, 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`.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A container for a group of devices.
    "name": "A String", # The resource path name. For example,
        # `projects/example-project/locations/us-central1/registries/my-registry`.
    "stateNotificationConfig": { # The configuration for notification of new states received from the device. # 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.
      "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
          # `projects/myProject/topics/deviceEvents`.
    },
    "logLevel": "A String", # **Beta Feature**
        #
        # The default logging verbosity for activity from devices in this registry.
        # The verbosity level can be overridden by Device.log_level.
    "eventNotificationConfigs": [ # 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.
      { # The configuration for forwarding telemetry events.
        "pubsubTopicName": "A String", # A Cloud Pub/Sub topic name. For example,
            # `projects/myProject/topics/deviceEvents`.
        "subfolderMatches": "A String", # 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.
      },
    ],
    "httpConfig": { # The configuration of the HTTP bridge for a device registry. # The DeviceService (HTTP) configuration for this device registry.
      "httpEnabledState": "A String", # If enabled, allows devices to use DeviceService via the HTTP protocol.
          # Otherwise, any requests to DeviceService will fail for this registry.
    },
    "mqttConfig": { # The configuration of MQTT for a device registry. # The MQTT configuration for this device registry.
      "mqttEnabledState": "A String", # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
          # connections to this registry will fail.
    },
    "credentials": [ # 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.
      { # A server-stored registry credential used to validate device credentials.
        "publicKeyCertificate": { # A public key certificate format and data. # A public key certificate used to verify the device credentials.
          "x509Details": { # Details of an X.509 certificate. For informational purposes only. # [Output only] The certificate details. Used only for X.509 certificates.
            "signatureAlgorithm": "A String", # The algorithm used to sign the certificate.
            "expiryTime": "A String", # The time the certificate becomes invalid.
            "publicKeyType": "A String", # The type of public key in the certificate.
            "startTime": "A String", # The time the certificate becomes valid.
            "subject": "A String", # The entity the certificate and public key belong to.
            "issuer": "A String", # The entity that signed the certificate.
          },
          "certificate": "A String", # The certificate data.
          "format": "A String", # The certificate format.
        },
      },
    ],
    "id": "A String", # The identifier of this device registry. For example, `myRegistry`.
  }
setIamPolicy(resource, body, x__xgafv=None)
Sets the access control policy on the specified resource. Replaces any
existing policy.

Args:
  resource: string, REQUIRED: The resource for which the policy is being specified.
See the operation documentation for the appropriate value for this field. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request message for `SetIamPolicy` method.
    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # 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.
        # specify access control policies for Cloud Platform resources.
        #
        #
        # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
        # `members` to a `role`, where the members can be user accounts, Google groups,
        # Google domains, and service accounts. A `role` is a named list of permissions
        # defined by IAM.
        #
        # **JSON Example**
        #
        #     {
        #       "bindings": [
        #         {
        #           "role": "roles/owner",
        #           "members": [
        #             "user:mike@example.com",
        #             "group:admins@example.com",
        #             "domain:google.com",
        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
        #           ]
        #         },
        #         {
        #           "role": "roles/viewer",
        #           "members": ["user:sean@example.com"]
        #         }
        #       ]
        #     }
        #
        # **YAML Example**
        #
        #     bindings:
        #     - members:
        #       - user:mike@example.com
        #       - group:admins@example.com
        #       - domain:google.com
        #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
        #       role: roles/owner
        #     - members:
        #       - user:sean@example.com
        #       role: roles/viewer
        #
        #
        # For a description of IAM and its features, see the
        # [IAM developer's guide](https://cloud.google.com/iam/docs).
      "bindings": [ # Associates a list of `members` to a `role`.
          # `bindings` with no members will result in an error.
        { # Associates `members` with a `role`.
          "role": "A String", # Role that is assigned to `members`.
              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
          "members": [ # 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@gmail.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`.
              #
              #
              # * `domain:{domain}`: The G Suite domain (primary) that represents all the
              #    users of that domain. For example, `google.com` or `example.com`.
              #
            "A String",
          ],
          "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
              # NOTE: An unsatisfied condition will not allow user access via current
              # binding. Different bindings, including their conditions, are examined
              # independently.
              #
              #     title: "User account presence"
              #     description: "Determines whether the request has a user account"
              #     expression: "size(request.user) > 0"
            "location": "A String", # An optional string indicating the location of the expression for error
                # reporting, e.g. a file name and a position in the file.
            "expression": "A String", # Textual representation of an expression in
                # Common Expression Language syntax.
                #
                # The application context of the containing message determines which
                # well-known feature set of CEL is supported.
            "description": "A String", # An optional description of the expression. This is a longer text which
                # describes the expression, e.g. when hovered over it in a UI.
            "title": "A String", # An 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.
          },
        },
      ],
      "version": 42, # Deprecated.
      "etag": "A String", # `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.
          #
          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
          # policy is overwritten blindly.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Defines an Identity and Access Management (IAM) policy. It is used to
      # specify access control policies for Cloud Platform resources.
      #
      #
      # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
      # `members` to a `role`, where the members can be user accounts, Google groups,
      # Google domains, and service accounts. A `role` is a named list of permissions
      # defined by IAM.
      #
      # **JSON Example**
      #
      #     {
      #       "bindings": [
      #         {
      #           "role": "roles/owner",
      #           "members": [
      #             "user:mike@example.com",
      #             "group:admins@example.com",
      #             "domain:google.com",
      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      #           ]
      #         },
      #         {
      #           "role": "roles/viewer",
      #           "members": ["user:sean@example.com"]
      #         }
      #       ]
      #     }
      #
      # **YAML Example**
      #
      #     bindings:
      #     - members:
      #       - user:mike@example.com
      #       - group:admins@example.com
      #       - domain:google.com
      #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
      #       role: roles/owner
      #     - members:
      #       - user:sean@example.com
      #       role: roles/viewer
      #
      #
      # For a description of IAM and its features, see the
      # [IAM developer's guide](https://cloud.google.com/iam/docs).
    "bindings": [ # Associates a list of `members` to a `role`.
        # `bindings` with no members will result in an error.
      { # Associates `members` with a `role`.
        "role": "A String", # Role that is assigned to `members`.
            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
        "members": [ # 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@gmail.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`.
            #
            #
            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
            #    users of that domain. For example, `google.com` or `example.com`.
            #
          "A String",
        ],
        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
            # NOTE: An unsatisfied condition will not allow user access via current
            # binding. Different bindings, including their conditions, are examined
            # independently.
            #
            #     title: "User account presence"
            #     description: "Determines whether the request has a user account"
            #     expression: "size(request.user) > 0"
          "location": "A String", # An optional string indicating the location of the expression for error
              # reporting, e.g. a file name and a position in the file.
          "expression": "A String", # Textual representation of an expression in
              # Common Expression Language syntax.
              #
              # The application context of the containing message determines which
              # well-known feature set of CEL is supported.
          "description": "A String", # An optional description of the expression. This is a longer text which
              # describes the expression, e.g. when hovered over it in a UI.
          "title": "A String", # An 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.
        },
      },
    ],
    "version": 42, # Deprecated.
    "etag": "A String", # `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.
        #
        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
        # policy is overwritten blindly.
  }
testIamPermissions(resource, body, x__xgafv=None)
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.

Args:
  resource: string, REQUIRED: The resource for which the policy detail is being requested.
See the operation documentation for the appropriate value for this field. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request message for `TestIamPermissions` method.
    "permissions": [ # 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).
      "A String",
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for `TestIamPermissions` method.
    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
        # allowed.
      "A String",
    ],
  }
unbindDeviceFromGateway(parent, body, x__xgafv=None)
Deletes the association between the device and the gateway.

Args:
  parent: string, The name of the registry. For example,
`projects/example-project/locations/us-central1/registries/my-registry`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request for `UnbindDeviceFromGateway`.
    "gatewayId": "A String", # The value of `gateway_id` can be either the device numeric ID or the
        # user-defined device identifier.
    "deviceId": "A String", # 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.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for `UnbindDeviceFromGateway`.
  }