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"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThis webpage provides reference documentation for the \u003ccode\u003eProductName\u003c/code\u003e class within the Google Cloud Channel v1 API for .NET.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eProductName\u003c/code\u003e class is used to represent the resource name for a \u003ccode\u003eProduct\u003c/code\u003e and can be constructed, formatted, parsed, and compared.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the Google Cloud Channel v1 API documented here is 2.14.0, and there are many versions available, back to version 1.0.0, all of which have their own documentation.\u003c/p\u003e\n"],["\u003cp\u003eThe class implements \u003ccode\u003eIResourceName\u003c/code\u003e and \u003ccode\u003eIEquatable<ProductName>\u003c/code\u003e, meaning it handles resource names and can be compared for equality with other \u003ccode\u003eProductName\u003c/code\u003e objects.\u003c/p\u003e\n"],["\u003cp\u003eKey properties include \u003ccode\u003eProductId\u003c/code\u003e, which stores the ID of the product, \u003ccode\u003eIsKnownPattern\u003c/code\u003e, indicating if the instance follows a known pattern, and \u003ccode\u003eType\u003c/code\u003e, specifying the resource name type.\u003c/p\u003e\n"]]],[],null,["# Cloud Channel v1 API - Class ProductName (2.15.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.15.0 (latest)](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName)\n- [2.14.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.14.0/Google.Cloud.Channel.V1.ProductName)\n- [2.13.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.13.0/Google.Cloud.Channel.V1.ProductName)\n- [2.12.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.12.0/Google.Cloud.Channel.V1.ProductName)\n- [2.11.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.11.0/Google.Cloud.Channel.V1.ProductName)\n- [2.10.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.10.0/Google.Cloud.Channel.V1.ProductName)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.9.0/Google.Cloud.Channel.V1.ProductName)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.8.0/Google.Cloud.Channel.V1.ProductName)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.7.0/Google.Cloud.Channel.V1.ProductName)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.6.0/Google.Cloud.Channel.V1.ProductName)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.5.0/Google.Cloud.Channel.V1.ProductName)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.4.0/Google.Cloud.Channel.V1.ProductName)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.3.0/Google.Cloud.Channel.V1.ProductName)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.2.0/Google.Cloud.Channel.V1.ProductName)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.1.0/Google.Cloud.Channel.V1.ProductName)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/2.0.0/Google.Cloud.Channel.V1.ProductName)\n- [1.7.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.7.0/Google.Cloud.Channel.V1.ProductName)\n- [1.6.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.6.0/Google.Cloud.Channel.V1.ProductName)\n- [1.5.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.5.0/Google.Cloud.Channel.V1.ProductName)\n- [1.4.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.4.0/Google.Cloud.Channel.V1.ProductName)\n- [1.3.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.3.0/Google.Cloud.Channel.V1.ProductName)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.2.0/Google.Cloud.Channel.V1.ProductName)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.1.0/Google.Cloud.Channel.V1.ProductName)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Channel.V1/1.0.0/Google.Cloud.Channel.V1.ProductName) \n\n public sealed class ProductName : IResourceName, IEquatable\u003cProductName\u003e\n\nReference documentation and code samples for the Cloud Channel v1 API class ProductName.\n\nResource name for the `Product` resource. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e ProductName \n\nImplements\n----------\n\n[IResourceName](https://cloud.google.com/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.IResourceName.html), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) \n\nInherited Members\n-----------------\n\n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype)\n\nNamespace\n---------\n\n[Google.Cloud.Channel.V1](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Channel.V1.dll\n\nConstructors\n------------\n\n### ProductName(string)\n\n public ProductName(string productId)\n\nConstructs a new instance of a [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) class from the component parts of pattern\n`products/{product}`\n\nProperties\n----------\n\n### IsKnownPattern\n\n public bool IsKnownPattern { get; }\n\nWhether this instance contains a resource name with a known pattern.\n\n### ProductId\n\n public string ProductId { get; }\n\nThe `Product` ID. Will not be `null`, unless this instance contains an unparsed resource name.\n\n### Type\n\n public ProductName.ResourceNameType Type { get; }\n\nThe [ProductName.ResourceNameType](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName.ResourceNameType) of the contained resource name.\n\n### UnparsedResource\n\n public UnparsedResourceName UnparsedResource { get; }\n\nThe contained [UnparsedResourceName](https://cloud.google.com/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.UnparsedResourceName.html). Only non-`null` if this instance contains an\nunparsed resource name.\n\nMethods\n-------\n\n### Format(string)\n\n public static string Format(string productId)\n\nFormats the IDs into the string representation of this [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) with pattern\n`products/{product}`.\n\n### FormatProduct(string)\n\n public static string FormatProduct(string productId)\n\nFormats the IDs into the string representation of this [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) with pattern\n`products/{product}`.\n\n### FromProduct(string)\n\n public static ProductName FromProduct(string productId)\n\nCreates a [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) with the pattern `products/{product}`.\n\n### FromUnparsed(UnparsedResourceName)\n\n public static ProductName FromUnparsed(UnparsedResourceName unparsedResourceName)\n\nCreates a [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) 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 ProductName Parse(string productName)\n\nParses the given resource name string into a new [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) instance.\n\n**Remarks** \nTo parse successfully, the resource name must be formatted as one of the following:\n\n- `products/{product}`\n\n\u003cbr /\u003e\n\n### Parse(string, bool)\n\n public static ProductName Parse(string productName, bool allowUnparsed)\n\nParses the given resource name string into a new [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) 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- `products/{product}`\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 ProductName)\n\n public static bool TryParse(string productName, out ProductName result)\n\nTries to parse the given resource name string into a new [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) instance.\n\n**Remarks** \nTo parse successfully, the resource name must be formatted as one of the following:\n\n- `products/{product}`\n\n\u003cbr /\u003e\n\n### TryParse(string, bool, out ProductName)\n\n public static bool TryParse(string productName, bool allowUnparsed, out ProductName result)\n\nTries to parse the given resource name string into a new [ProductName](/dotnet/docs/reference/Google.Cloud.Channel.V1/latest/Google.Cloud.Channel.V1.ProductName) 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- `products/{product}`\n\nOr may be in any format if `allowUnparsed` is `true`.\n\n\u003cbr /\u003e\n\nOperators\n---------\n\n### operator ==(ProductName, ProductName)\n\n public static bool operator ==(ProductName a, ProductName b)\n\nDetermines whether two specified resource names have the same value.\n\n### operator !=(ProductName, ProductName)\n\n public static bool operator !=(ProductName a, ProductName b)\n\nDetermines whether two specified resource names have different values."]]