public sealed class MonitoredResourceMetadata : IMessage<MonitoredResourceMetadata>, IEquatable<MonitoredResourceMetadata>, IDeepCloneable<MonitoredResourceMetadata>, IBufferMessage, IMessage
Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource]
object. [MonitoredResource][google.api.MonitoredResource] objects contain the
minimum set of information to uniquely identify a monitored resource
instance. There is some other useful auxiliary metadata. Monitoring and
Logging use an ingestion pipeline to extract metadata for cloud resources of
all types, and store the metadata in this message.
Output only. Values for predefined system metadata labels.
System labels are a kind of metadata extracted by Google, including
"machine_image", "vpc", "subnet_id",
"security_group", "name", etc.
System label values can be only strings, Boolean values, or a list of
strings. For example:
[[["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\u003eMonitoredResourceMetadata\u003c/code\u003e class provides auxiliary metadata for \u003ccode\u003eMonitoredResource\u003c/code\u003e objects, containing information to uniquely identify a monitored resource instance.\u003c/p\u003e\n"],["\u003cp\u003eThis class is used by Monitoring and Logging to store metadata extracted from cloud resources of various types.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eMonitoredResourceMetadata\u003c/code\u003e implements interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, with inheritance from \u003ccode\u003eobject\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt includes properties like \u003ccode\u003eSystemLabels\u003c/code\u003e for predefined system metadata and \u003ccode\u003eUserLabels\u003c/code\u003e for user-defined metadata labels, both of which are output-only.\u003c/p\u003e\n"],["\u003cp\u003eThe class offers methods for cloning, calculating size, merging, comparing, and converting it into string.\u003c/p\u003e\n"]]],[],null,["# Class MonitoredResourceMetadata (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceMetadata)\n- [2.15.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.15.0/Google.Api.MonitoredResourceMetadata)\n- [2.10.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.10.0/Google.Api.MonitoredResourceMetadata)\n- [2.2.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.2.0/Google.Api.MonitoredResourceMetadata) \n\n public sealed class MonitoredResourceMetadata : IMessage\u003cMonitoredResourceMetadata\u003e, IEquatable\u003cMonitoredResourceMetadata\u003e, IDeepCloneable\u003cMonitoredResourceMetadata\u003e, IBufferMessage, IMessage\n\nAuxiliary metadata for a \\[MonitoredResource\\]\\[google.api.MonitoredResource\\]\nobject. \\[MonitoredResource\\]\\[google.api.MonitoredResource\\] objects contain the\nminimum set of information to uniquely identify a monitored resource\ninstance. There is some other useful auxiliary metadata. Monitoring and\nLogging use an ingestion pipeline to extract metadata for cloud resources of\nall types, and store the metadata in this message. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e MonitoredResourceMetadata \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[MonitoredResourceMetadata](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceMetadata), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[MonitoredResourceMetadata](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceMetadata), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[MonitoredResourceMetadata](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.MonitoredResourceMetadata), [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### MonitoredResourceMetadata()\n\n public MonitoredResourceMetadata()\n\n### MonitoredResourceMetadata(MonitoredResourceMetadata)\n\n public MonitoredResourceMetadata(MonitoredResourceMetadata other)\n\nFields\n------\n\n### SystemLabelsFieldNumber\n\n public const int SystemLabelsFieldNumber = 1\n\nField number for the \"system_labels\" field.\n\n### UserLabelsFieldNumber\n\n public const int UserLabelsFieldNumber = 2\n\nField number for the \"user_labels\" field.\n\nProperties\n----------\n\n### Descriptor\n\n public static MessageDescriptor Descriptor { get; }\n\n### Parser\n\n public static MessageParser\u003cMonitoredResourceMetadata\u003e Parser { get; }\n\n### SystemLabels\n\n public Struct SystemLabels { get; set; }\n\nOutput only. Values for predefined system metadata labels.\nSystem labels are a kind of metadata extracted by Google, including\n\"machine_image\", \"vpc\", \"subnet_id\",\n\"security_group\", \"name\", etc.\nSystem label values can be only strings, Boolean values, or a list of\nstrings. For example: \n\n { \"name\": \"my-test-instance\",\n \"security_group\": [\"a\", \"b\", \"c\"],\n \"spot_instance\": false }\n\n### UserLabels\n\n public MapField\u003cstring, string\u003e UserLabels { get; }\n\nOutput only. A map of user-defined metadata labels.\n\nMethods\n-------\n\n### CalculateSize()\n\n public int CalculateSize()\n\n### Clone()\n\n public MonitoredResourceMetadata Clone()\n\n### Equals(MonitoredResourceMetadata)\n\n public bool Equals(MonitoredResourceMetadata 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(MonitoredResourceMetadata)\n\n public void MergeFrom(MonitoredResourceMetadata 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)"]]