[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.
[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.
[[["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 latest version of the \u003ccode\u003eDeviceConfig\u003c/code\u003e class in the Cloud IoT v1 API is 2.2.0, with previous versions also available for use.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eDeviceConfig\u003c/code\u003e is a class representing the device configuration, intended for delivery to devices, and it implements multiple interfaces for message handling and cloning.\u003c/p\u003e\n"],["\u003cp\u003eThis class includes properties such as \u003ccode\u003eBinaryData\u003c/code\u003e, \u003ccode\u003eCloudUpdateTime\u003c/code\u003e, \u003ccode\u003eDeviceAckTime\u003c/code\u003e, and \u003ccode\u003eVersion\u003c/code\u003e to manage and track configuration details and updates.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eDeviceConfig\u003c/code\u003e has two constructors: a default constructor and another that accepts an existing \u003ccode\u003eDeviceConfig\u003c/code\u003e instance for copying.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDeviceConfig\u003c/code\u003e class inherits members from the base \u003ccode\u003eobject\u003c/code\u003e class, and it resides within the \u003ccode\u003eGoogle.Cloud.Iot.V1\u003c/code\u003e namespace.\u003c/p\u003e\n"]]],[],null,["# Cloud IoT v1 API - Class DeviceConfig (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.DeviceConfig)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/2.1.0/Google.Cloud.Iot.V1.DeviceConfig)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/2.0.0/Google.Cloud.Iot.V1.DeviceConfig)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.2.0/Google.Cloud.Iot.V1.DeviceConfig)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.1.0/Google.Cloud.Iot.V1.DeviceConfig)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.0.0/Google.Cloud.Iot.V1.DeviceConfig) \n\n public sealed class DeviceConfig : IMessage\u003cDeviceConfig\u003e, IEquatable\u003cDeviceConfig\u003e, IDeepCloneable\u003cDeviceConfig\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Cloud IoT v1 API class DeviceConfig.\n\nThe device configuration. Eventually delivered to devices. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e DeviceConfig \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[DeviceConfig](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceConfig), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[DeviceConfig](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceConfig), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[DeviceConfig](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceConfig), [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### DeviceConfig()\n\n public DeviceConfig()\n\n### DeviceConfig(DeviceConfig)\n\n public DeviceConfig(DeviceConfig other)\n\nProperties\n----------\n\n### BinaryData\n\n public ByteString BinaryData { get; set; }\n\nThe device configuration data.\n\n### CloudUpdateTime\n\n public Timestamp CloudUpdateTime { get; set; }\n\n\\[Output only\\] The time at which this configuration version was updated in\nCloud IoT Core. This timestamp is set by the server.\n\n### DeviceAckTime\n\n public Timestamp DeviceAckTime { get; set; }\n\n\\[Output only\\] The time at which Cloud IoT Core received the\nacknowledgment from the device, indicating that the device has received\nthis configuration version. If this field is not present, the device has\nnot yet acknowledged that it received this version. Note that when\nthe config was sent to the device, many config versions may have been\navailable in Cloud IoT Core while the device was disconnected, and on\nconnection, only the latest version is sent to the device. Some\nversions may never be sent to the device, and therefore are never\nacknowledged. This timestamp is set by Cloud IoT Core.\n\n### Version\n\n public long Version { get; set; }\n\n\\[Output only\\] The version of this update. The version number is assigned by\nthe server, and is always greater than 0 after device creation. The\nversion must be 0 on the `CreateDevice` request if a `config` is\nspecified; the response of `CreateDevice` will always have a value of 1."]]