public sealed class CustomAttribute : IMessage<CustomAttribute>, IEquatable<CustomAttribute>, IDeepCloneable<CustomAttribute>, IBufferMessage, IMessage
A custom attribute that is not explicitly modeled in
[Product][google.cloud.retail.v2.Product]].
The numerical values of this custom attribute. For example, [2.3, 15.4]
when the key is "lengths_cm".
At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is
returned.
Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
[numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
Otherwise, an INVALID_ARGUMENT error is returned.
The textual values of this custom attribute. For example, ["yellow",
"green"] when the key is "color".
At most 400 values are allowed. Empty values are not allowed. Each value
must be a UTF-8 encoded string with a length limit of 256 characters.
Otherwise, an INVALID_ARGUMENT error is returned.
Exactly one of [text][google.cloud.retail.v2.CustomAttribute.text] or
[numbers][google.cloud.retail.v2.CustomAttribute.numbers] should be set.
Otherwise, an INVALID_ARGUMENT error is returned.
[[["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\u003eThe \u003ccode\u003eCustomAttribute\u003c/code\u003e class in the \u003ccode\u003eGoogle.Cloud.Retail.V2\u003c/code\u003e namespace represents a custom attribute not explicitly modeled in the \u003ccode\u003eProduct\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eThis class offers two constructors: a default constructor (\u003ccode\u003eCustomAttribute()\u003c/code\u003e) and a copy constructor (\u003ccode\u003eCustomAttribute(CustomAttribute other)\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eCustomAttribute\u003c/code\u003e has two properties, \u003ccode\u003eNumbers\u003c/code\u003e and \u003ccode\u003eText\u003c/code\u003e, to store either numerical or textual values, with a maximum of 400 values allowed for each.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of \u003ccode\u003eCustomAttribute\u003c/code\u003e is \u003ccode\u003e2.12.0\u003c/code\u003e, and versions are available from \u003ccode\u003e1.0.0\u003c/code\u003e to \u003ccode\u003e2.12.0\u003c/code\u003e, with each version being a separate downloadable reference.\u003c/p\u003e\n"],["\u003cp\u003eThe class implements several interfaces, including \u003ccode\u003eIMessage<CustomAttribute>\u003c/code\u003e, \u003ccode\u003eIEquatable<CustomAttribute>\u003c/code\u003e, \u003ccode\u003eIDeepCloneable<CustomAttribute>\u003c/code\u003e, \u003ccode\u003eIBufferMessage\u003c/code\u003e, and \u003ccode\u003eIMessage\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,[]]