public RepeatedField<RegistryCredential> Credentials { get; }
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.
public RepeatedField<EventNotificationConfig> EventNotificationConfigs { get; }
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.
public StateNotificationConfig StateNotificationConfig { get; set; }
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eDeviceRegistry\u003c/code\u003e class in the Google Cloud IoT v1 API serves as a container for managing groups of devices.\u003c/p\u003e\n"],["\u003cp\u003eIt offers configurations for credentials, event notifications, HTTP and MQTT settings, logging verbosity, and state change notifications.\u003c/p\u003e\n"],["\u003cp\u003eThe class implements multiple interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, and \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and is found in the \u003ccode\u003eGoogle.Cloud.Iot.V1\u003c/code\u003e namespace.\u003c/p\u003e\n"],["\u003cp\u003eDevice registries can have up to 10 credentials, and telemetry event notifications are delivered to Cloud Pub/Sub.\u003c/p\u003e\n"],["\u003cp\u003eThe current latest version of the \u003ccode\u003eDeviceRegistry\u003c/code\u003e class is 2.2.0, with previous versions also available in this documentation.\u003c/p\u003e\n"]]],[],null,["# Cloud IoT v1 API - Class DeviceRegistry (2.2.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.2.0 (latest)](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceRegistry)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/2.1.0/Google.Cloud.Iot.V1.DeviceRegistry)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/2.0.0/Google.Cloud.Iot.V1.DeviceRegistry)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.2.0/Google.Cloud.Iot.V1.DeviceRegistry)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.1.0/Google.Cloud.Iot.V1.DeviceRegistry)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.0.0/Google.Cloud.Iot.V1.DeviceRegistry) \n\n public sealed class DeviceRegistry : IMessage\u003cDeviceRegistry\u003e, IEquatable\u003cDeviceRegistry\u003e, IDeepCloneable\u003cDeviceRegistry\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Cloud IoT v1 API class DeviceRegistry.\n\nA container for a group of devices. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e DeviceRegistry \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[DeviceRegistry](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceRegistry), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[DeviceRegistry](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceRegistry), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[DeviceRegistry](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceRegistry), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Iot.V1](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Iot.V1.dll\n\nConstructors\n------------\n\n### DeviceRegistry()\n\n public DeviceRegistry()\n\n### DeviceRegistry(DeviceRegistry)\n\n public DeviceRegistry(DeviceRegistry other)\n\nProperties\n----------\n\n### Credentials\n\n public RepeatedField\u003cRegistryCredential\u003e Credentials { get; }\n\nThe credentials used to verify the device credentials. No more than 10\ncredentials can be bound to a single registry at a time. The verification\nprocess occurs at the time of device creation or update. If this field is\nempty, no verification is performed. Otherwise, the credentials of a newly\ncreated device or added credentials of an updated device should be signed\nwith one of these registry credentials.\n\nNote, however, that existing devices will never be affected by\nmodifications to this list of credentials: after a device has been\nsuccessfully created in a registry, it should be able to connect even if\nits registry credentials are revoked, deleted, or modified.\n\n### EventNotificationConfigs\n\n public RepeatedField\u003cEventNotificationConfig\u003e EventNotificationConfigs { get; }\n\nThe configuration for notification of telemetry events received from the\ndevice. All telemetry events that were successfully published by the\ndevice and acknowledged by Cloud IoT Core are guaranteed to be\ndelivered to Cloud Pub/Sub. If multiple configurations match a message,\nonly the first matching configuration is used. If you try to publish a\ndevice telemetry event using MQTT without specifying a Cloud Pub/Sub topic\nfor the device's registry, the connection closes automatically. If you try\nto do so using an HTTP connection, an error is returned. Up to 10\nconfigurations may be provided.\n\n### HttpConfig\n\n public HttpConfig HttpConfig { get; set; }\n\nThe DeviceService (HTTP) configuration for this device registry.\n\n### Id\n\n public string Id { get; set; }\n\nThe identifier of this device registry. For example, `myRegistry`.\n\n### LogLevel\n\n public LogLevel LogLevel { get; set; }\n\n**Beta Feature**\n\nThe default logging verbosity for activity from devices in this registry.\nThe verbosity level can be overridden by Device.log_level.\n\n### MqttConfig\n\n public MqttConfig MqttConfig { get; set; }\n\nThe MQTT configuration for this device registry.\n\n### Name\n\n public string Name { get; set; }\n\nThe resource path name. For example,\n`projects/example-project/locations/us-central1/registries/my-registry`.\n\n### RegistryName\n\n public RegistryName RegistryName { get; set; }\n\n[RegistryName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.RegistryName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceRegistry#Google_Cloud_Iot_V1_DeviceRegistry_Name) resource name property.\n\n### StateNotificationConfig\n\n public StateNotificationConfig StateNotificationConfig { get; set; }\n\nThe configuration for notification of new states received from the device.\nState updates are guaranteed to be stored in the state history, but\nnotifications to Cloud Pub/Sub are not guaranteed. For example, if\npermissions are misconfigured or the specified topic doesn't exist, no\nnotification will be published but the state will still be stored in Cloud\nIoT Core."]]