Constructs a new instance of a DeviceName class from the component parts of pattern
projects/{project}/locations/{location}/registries/{registry}/devices/{device}
Formats the IDs into the string representation of this DeviceName with pattern
projects/{project}/locations/{location}/registries/{registry}/devices/{device}.
Formats the IDs into the string representation of this DeviceName with pattern
projects/{project}/locations/{location}/registries/{registry}/devices/{device}.
If true will successfully store an unparseable resource name into the UnparsedResource
property; otherwise will throw an ArgumentException if an unparseable resource name is
specified.
If true will successfully store an unparseable resource name into the UnparsedResource
property; otherwise will throw an ArgumentException if an unparseable resource name is
specified.
[[["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\u003eDeviceName\u003c/code\u003e class in the Google Cloud IoT v1 API represents the resource name for a device, following the pattern \u003ccode\u003eprojects/{project}/locations/{location}/registries/{registry}/devices/{device}\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThis class provides methods to construct, format, parse, and validate device resource names, ensuring they conform to the expected structure, and can be created with project, location, registry, and device IDs.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDeviceName\u003c/code\u003e class includes properties to access the individual components of the resource name, such as \u003ccode\u003eProjectId\u003c/code\u003e, \u003ccode\u003eLocationId\u003c/code\u003e, \u003ccode\u003eRegistryId\u003c/code\u003e, and \u003ccode\u003eDeviceId\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt implements \u003ccode\u003eIResourceName\u003c/code\u003e and \u003ccode\u003eIEquatable<DeviceName>\u003c/code\u003e interfaces, and includes functionality for handling both parsed and unparsed resource names, allowing flexibility in resource name management.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the documentation is for version 2.2.0, with previous versions such as 2.1.0, 2.0.0, 1.2.0, 1.1.0, and 1.0.0 also accessible.\u003c/p\u003e\n"]]],[],null,["# Cloud IoT v1 API - Class DeviceName (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.DeviceName)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/2.1.0/Google.Cloud.Iot.V1.DeviceName)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/2.0.0/Google.Cloud.Iot.V1.DeviceName)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.2.0/Google.Cloud.Iot.V1.DeviceName)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.1.0/Google.Cloud.Iot.V1.DeviceName)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Iot.V1/1.0.0/Google.Cloud.Iot.V1.DeviceName) \n\n public sealed class DeviceName : IResourceName, IEquatable\u003cDeviceName\u003e\n\nReference documentation and code samples for the Cloud IoT v1 API class DeviceName.\n\nResource name for the `Device` resource. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e DeviceName \n\nImplements\n----------\n\n[IResourceName](https://github.com/googleapis/gax-dotnet/blob/6f2d3e64dd92f0f7a4f02a7db56cf6ed409615f2/Google.Api.Gax/IResourceName.cs), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) \n\nInherited Members\n-----------------\n\n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype)\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### DeviceName(string, string, string, string)\n\n public DeviceName(string projectId, string locationId, string registryId, string deviceId)\n\nConstructs a new instance of a [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) class from the component parts of pattern\n`projects/{project}/locations/{location}/registries/{registry}/devices/{device}`\n\nProperties\n----------\n\n### DeviceId\n\n public string DeviceId { get; }\n\nThe `Device` ID. Will not be `null`, unless this instance contains an unparsed resource name.\n\n### IsKnownPattern\n\n public bool IsKnownPattern { get; }\n\nWhether this instance contains a resource name with a known pattern.\n\n### LocationId\n\n public string LocationId { get; }\n\nThe `Location` ID. Will not be `null`, unless this instance contains an unparsed resource name.\n\n### ProjectId\n\n public string ProjectId { get; }\n\nThe `Project` ID. Will not be `null`, unless this instance contains an unparsed resource name.\n\n### RegistryId\n\n public string RegistryId { get; }\n\nThe `Registry` ID. Will not be `null`, unless this instance contains an unparsed resource name.\n\n### Type\n\n public DeviceName.ResourceNameType Type { get; }\n\nThe [DeviceName.ResourceNameType](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName.ResourceNameType) of the contained resource name.\n\n### UnparsedResource\n\n public UnparsedResourceName UnparsedResource { get; }\n\nThe contained [UnparsedResourceName](https://github.com/googleapis/gax-dotnet/blob/6f2d3e64dd92f0f7a4f02a7db56cf6ed409615f2/Google.Api.Gax/UnparsedResourceName.cs). Only non-`null` if this instance contains an\nunparsed resource name.\n\nMethods\n-------\n\n### Format(string, string, string, string)\n\n public static string Format(string projectId, string locationId, string registryId, string deviceId)\n\nFormats the IDs into the string representation of this [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) with pattern\n`projects/{project}/locations/{location}/registries/{registry}/devices/{device}`.\n\n### FormatProjectLocationRegistryDevice(string, string, string, string)\n\n public static string FormatProjectLocationRegistryDevice(string projectId, string locationId, string registryId, string deviceId)\n\nFormats the IDs into the string representation of this [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) with pattern\n`projects/{project}/locations/{location}/registries/{registry}/devices/{device}`.\n\n### FromProjectLocationRegistryDevice(string, string, string, string)\n\n public static DeviceName FromProjectLocationRegistryDevice(string projectId, string locationId, string registryId, string deviceId)\n\nCreates a [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) with the pattern\n`projects/{project}/locations/{location}/registries/{registry}/devices/{device}`.\n\n### FromUnparsed(UnparsedResourceName)\n\n public static DeviceName FromUnparsed(UnparsedResourceName unparsedResourceName)\n\nCreates a [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) containing an unparsed resource name.\n\n### GetHashCode()\n\n public override int GetHashCode()\n\nReturns a hash code for this resource name.\n\n**Overrides** \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)\n\n### Parse(string)\n\n public static DeviceName Parse(string deviceName)\n\nParses the given resource name string into a new [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) instance.\n\n**Remarks** \nTo parse successfully, the resource name must be formatted as one of the following:\n\n- `projects/{project}/locations/{location}/registries/{registry}/devices/{device}`\n\n\u003cbr /\u003e\n\n### Parse(string, bool)\n\n public static DeviceName Parse(string deviceName, bool allowUnparsed)\n\nParses the given resource name string into a new [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) instance; optionally allowing an\nunparseable resource name.\n\n**Remarks** \nTo parse successfully, the resource name must be formatted as one of the following:\n\n- `projects/{project}/locations/{location}/registries/{registry}/devices/{device}`\n\nOr may be in any format if `allowUnparsed` is `true`.\n\n\u003cbr /\u003e\n\n### ToString()\n\n public override string ToString()\n\nThe string representation of the resource name.\n\n**Overrides** \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\n### TryParse(string, out DeviceName)\n\n public static bool TryParse(string deviceName, out DeviceName result)\n\nTries to parse the given resource name string into a new [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) instance.\n\n**Remarks** \nTo parse successfully, the resource name must be formatted as one of the following:\n\n- `projects/{project}/locations/{location}/registries/{registry}/devices/{device}`\n\n\u003cbr /\u003e\n\n### TryParse(string, bool, out DeviceName)\n\n public static bool TryParse(string deviceName, bool allowUnparsed, out DeviceName result)\n\nTries to parse the given resource name string into a new [DeviceName](/dotnet/docs/reference/Google.Cloud.Iot.V1/latest/Google.Cloud.Iot.V1.DeviceName) instance; optionally\nallowing an unparseable resource name.\n\n**Remarks** \nTo parse successfully, the resource name must be formatted as one of the following:\n\n- `projects/{project}/locations/{location}/registries/{registry}/devices/{device}`\n\nOr may be in any format if `allowUnparsed` is `true`.\n\n\u003cbr /\u003e\n\nOperators\n---------\n\n### operator ==(DeviceName, DeviceName)\n\n public static bool operator ==(DeviceName a, DeviceName b)\n\n### operator !=(DeviceName, DeviceName)\n\n public static bool operator !=(DeviceName a, DeviceName b)"]]