public sealed class Property : IMessage<Property>, IEquatable<Property>, IDeepCloneable<Property>, IBufferMessage, IMessage
Defines project properties.
API services can define properties that can be assigned to consumer projects
so that backends can perform response customization without having to make
additional calls or maintain additional storage. For example, Maps API
defines properties that controls map tile cache period, or whether to embed a
watermark in a result.
These values can be set via API producer console. Only API providers can
define and set these properties.
[[["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\u003eProperty\u003c/code\u003e class defines properties that API services can assign to consumer projects for response customization.\u003c/p\u003e\n"],["\u003cp\u003eAPI providers are the only entities that can define and set these project properties, such as controlling map tile cache period or adding watermarks.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eProperty\u003c/code\u003e class, within the \u003ccode\u003eGoogle.Api\u003c/code\u003e namespace, has constructors, fields like \u003ccode\u003eDescriptionFieldNumber\u003c/code\u003e, \u003ccode\u003eNameFieldNumber\u003c/code\u003e, \u003ccode\u003eTypeFieldNumber\u003c/code\u003e, and properties including \u003ccode\u003eDescription\u003c/code\u003e, \u003ccode\u003eName\u003c/code\u003e, \u003ccode\u003eType\u003c/code\u003e to manage the attributes of a property.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eProperty\u003c/code\u003e class also provides several methods, including \u003ccode\u003eClone\u003c/code\u003e, \u003ccode\u003eEquals\u003c/code\u003e, \u003ccode\u003eGetHashCode\u003c/code\u003e, and \u003ccode\u003eMergeFrom\u003c/code\u003e, which are used for managing and comparing property objects, as well as writing to or reading from coded streams.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the class is \u003ccode\u003e2.15.0\u003c/code\u003e, with previous versions \u003ccode\u003e2.10.0\u003c/code\u003e and \u003ccode\u003e2.2.0\u003c/code\u003e available, offering users access to different iterations of the class.\u003c/p\u003e\n"]]],[],null,["# Class Property (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.Property)\n- [2.15.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.15.0/Google.Api.Property)\n- [2.10.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.10.0/Google.Api.Property)\n- [2.2.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.2.0/Google.Api.Property) \n\n public sealed class Property : IMessage\u003cProperty\u003e, IEquatable\u003cProperty\u003e, IDeepCloneable\u003cProperty\u003e, IBufferMessage, IMessage\n\nDefines project properties.\n\nAPI services can define properties that can be assigned to consumer projects\nso that backends can perform response customization without having to make\nadditional calls or maintain additional storage. For example, Maps API\ndefines properties that controls map tile cache period, or whether to embed a\nwatermark in a result.\n\nThese values can be set via API producer console. Only API providers can\ndefine and set these properties. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Property \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Property](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.Property), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Property](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.Property), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Property](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.Property), [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### Property()\n\n public Property()\n\n### Property(Property)\n\n public Property(Property other)\n\nFields\n------\n\n### DescriptionFieldNumber\n\n public const int DescriptionFieldNumber = 3\n\nField number for the \"description\" field.\n\n### NameFieldNumber\n\n public const int NameFieldNumber = 1\n\nField number for the \"name\" field.\n\n### TypeFieldNumber\n\n public const int TypeFieldNumber = 2\n\nField number for the \"type\" field.\n\nProperties\n----------\n\n### Description\n\n public string Description { get; set; }\n\nThe description of the property\n\n### Descriptor\n\n public static MessageDescriptor Descriptor { get; }\n\n### Name\n\n public string Name { get; set; }\n\nThe name of the property (a.k.a key).\n\n### Parser\n\n public static MessageParser\u003cProperty\u003e Parser { get; }\n\n### Type\n\n public Property.Types.PropertyType Type { get; set; }\n\nThe type of this property.\n\nMethods\n-------\n\n### CalculateSize()\n\n public int CalculateSize()\n\n### Clone()\n\n public Property Clone()\n\n### Equals(Property)\n\n public bool Equals(Property 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(Property)\n\n public void MergeFrom(Property 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)"]]