public sealed class MonitoredResourceDescriptor : IMessage<MonitoredResourceDescriptor>, IEquatable<MonitoredResourceDescriptor>, IDeepCloneable<MonitoredResourceDescriptor>, IBufferMessage, IMessage
An object that describes the schema of a
[MonitoredResource][google.api.MonitoredResource] object using a type name
and a set of labels. For example, the monitored resource descriptor for
Google Compute Engine VM instances has a type of
"gce_instance" and specifies the use of the labels "instance_id" and
"zone" to identify particular VM instances.
Different APIs can support different monitored resource types. APIs generally
provide a list method that returns the monitored resource descriptors used
by the API.
Optional. A concise name for the monitored resource type that might be
displayed in user interfaces. It should be a Title Cased Noun Phrase,
without any article or other determiners. For example,
"Google Cloud SQL Database".
public RepeatedField<LabelDescriptor> Labels { get; }
Required. A set of labels used to describe instances of this monitored
resource type. For example, an individual Google Cloud SQL database is
identified by values for the labels "database_id" and "zone".
Optional. The resource name of the monitored resource descriptor:
"projects/{project_id}/monitoredResourceDescriptors/{type}" where
{type} is the value of the type field in this object and
{project_id} is a project ID that provides API-specific context for
accessing the type. APIs that do not use project information can use the
resource name format "monitoredResourceDescriptors/{type}".
Required. The monitored resource type. For example, the type
"cloudsql_database" represents databases in Google Cloud SQL.
For a list of types, see Monitored resource
types
and Logging resource
types.
[[["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-08-28 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eMonitoredResourceDescriptor\u003c/code\u003e class defines the schema for \u003ccode\u003eMonitoredResource\u003c/code\u003e objects, including a type name and a set of labels to identify specific instances.\u003c/p\u003e\n"],["\u003cp\u003eThis class is implemented with several interfaces including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, allowing it to be used within the Google Protobuf system.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of \u003ccode\u003eMonitoredResourceDescriptor\u003c/code\u003e include \u003ccode\u003eType\u003c/code\u003e, \u003ccode\u003eDisplayName\u003c/code\u003e, \u003ccode\u003eDescription\u003c/code\u003e, \u003ccode\u003eLabels\u003c/code\u003e, \u003ccode\u003eLaunchStage\u003c/code\u003e, and \u003ccode\u003eName\u003c/code\u003e, providing comprehensive metadata for monitored resources.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes methods for common operations such as \u003ccode\u003eClone\u003c/code\u003e, \u003ccode\u003eEquals\u003c/code\u003e, \u003ccode\u003eGetHashCode\u003c/code\u003e, \u003ccode\u003eMergeFrom\u003c/code\u003e, and \u003ccode\u003eWriteTo\u003c/code\u003e, facilitating its use in various scenarios.\u003c/p\u003e\n"],["\u003cp\u003eDifferent APIs can support different monitored resource types, and they generally provide a \u003ccode\u003elist\u003c/code\u003e method to get the descriptors they use.\u003c/p\u003e\n"]]],[],null,["# Class MonitoredResourceDescriptor (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceDescriptor)\n- [2.15.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.15.0/Google.Api.MonitoredResourceDescriptor)\n- [2.10.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.10.0/Google.Api.MonitoredResourceDescriptor)\n- [2.2.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.2.0/Google.Api.MonitoredResourceDescriptor) \n\n public sealed class MonitoredResourceDescriptor : IMessage\u003cMonitoredResourceDescriptor\u003e, IEquatable\u003cMonitoredResourceDescriptor\u003e, IDeepCloneable\u003cMonitoredResourceDescriptor\u003e, IBufferMessage, IMessage\n\nAn object that describes the schema of a\n\\[MonitoredResource\\]\\[google.api.MonitoredResource\\] object using a type name\nand a set of labels. For example, the monitored resource descriptor for\nGoogle Compute Engine VM instances has a type of\n`\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and\n`\"zone\"` to identify particular VM instances.\n\nDifferent APIs can support different monitored resource types. APIs generally\nprovide a `list` method that returns the monitored resource descriptors used\nby the API. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e MonitoredResourceDescriptor \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[MonitoredResourceDescriptor](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceDescriptor), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[MonitoredResourceDescriptor](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceDescriptor), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[MonitoredResourceDescriptor](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceDescriptor), [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.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)\n\nNamespace\n---------\n\n[Google.Api](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api)\n\nAssembly\n--------\n\nGoogle.Api.CommonProtos.dll\n\nConstructors\n------------\n\n### MonitoredResourceDescriptor()\n\n public MonitoredResourceDescriptor()\n\n### MonitoredResourceDescriptor(MonitoredResourceDescriptor)\n\n public MonitoredResourceDescriptor(MonitoredResourceDescriptor other)\n\nFields\n------\n\n### DescriptionFieldNumber\n\n public const int DescriptionFieldNumber = 3\n\nField number for the \"description\" field.\n\n### DisplayNameFieldNumber\n\n public const int DisplayNameFieldNumber = 2\n\nField number for the \"display_name\" field.\n\n### LabelsFieldNumber\n\n public const int LabelsFieldNumber = 4\n\nField number for the \"labels\" field.\n\n### LaunchStageFieldNumber\n\n public const int LaunchStageFieldNumber = 7\n\nField number for the \"launch_stage\" field.\n\n### NameFieldNumber\n\n public const int NameFieldNumber = 5\n\nField number for the \"name\" field.\n\n### TypeFieldNumber\n\n public const int TypeFieldNumber = 1\n\nField number for the \"type\" field.\n\nProperties\n----------\n\n### Description\n\n public string Description { get; set; }\n\nOptional. A detailed description of the monitored resource type that might\nbe used in documentation.\n\n### Descriptor\n\n public static MessageDescriptor Descriptor { get; }\n\n### DisplayName\n\n public string DisplayName { get; set; }\n\nOptional. A concise name for the monitored resource type that might be\ndisplayed in user interfaces. It should be a Title Cased Noun Phrase,\nwithout any article or other determiners. For example,\n`\"Google Cloud SQL Database\"`.\n\n### Labels\n\n public RepeatedField\u003cLabelDescriptor\u003e Labels { get; }\n\nRequired. A set of labels used to describe instances of this monitored\nresource type. For example, an individual Google Cloud SQL database is\nidentified by values for the labels `\"database_id\"` and `\"zone\"`.\n\n### LaunchStage\n\n public LaunchStage LaunchStage { get; set; }\n\nOptional. The launch stage of the monitored resource definition.\n\n### Name\n\n public string Name { get; set; }\n\nOptional. The resource name of the monitored resource descriptor:\n`\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where\n{type} is the value of the `type` field in this object and\n{project_id} is a project ID that provides API-specific context for\naccessing the type. APIs that do not use project information can use the\nresource name format `\"monitoredResourceDescriptors/{type}\"`.\n\n### Parser\n\n public static MessageParser\u003cMonitoredResourceDescriptor\u003e Parser { get; }\n\n### Type\n\n public string Type { get; set; }\n\nRequired. The monitored resource type. For example, the type\n`\"cloudsql_database\"` represents databases in Google Cloud SQL.\nFor a list of types, see [Monitored resource\ntypes](https://cloud.google.com/monitoring/api/resources)\nand [Logging resource\ntypes](https://cloud.google.com/logging/docs/api/v2/resource-list).\n\nMethods\n-------\n\n### CalculateSize()\n\n public int CalculateSize()\n\n### Clone()\n\n public MonitoredResourceDescriptor Clone()\n\n### Equals(MonitoredResourceDescriptor)\n\n public bool Equals(MonitoredResourceDescriptor other)\n\n### Equals(object)\n\n public override bool Equals(object other)\n\n**Overrides** \n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object))\n\n### GetHashCode()\n\n public override int GetHashCode()\n\n**Overrides** \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)\n\n### MergeFrom(MonitoredResourceDescriptor)\n\n public void MergeFrom(MonitoredResourceDescriptor other)\n\n### MergeFrom(CodedInputStream)\n\n public void MergeFrom(CodedInputStream input)\n\n### ToString()\n\n public override string ToString()\n\n**Overrides** \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\n### WriteTo(CodedOutputStream)\n\n public void WriteTo(CodedOutputStream output)"]]