public sealed class Expr : IMessage<Expr>, IEquatable<Expr>, IDeepCloneable<Expr>, IBufferMessage, IMessage
Represents a textual expression in the Common Expression Language (CEL)
syntax. CEL is a C-like expression language. The syntax and semantics of CEL
are documented at https://github.com/google/cel-spec.
Example (Comparison):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Example (Equality):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Example (Logic):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Example (Data Manipulation):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
The exact variables and functions that may be referenced within an expression
are determined by the service that evaluates it. See the service
documentation for additional information.
[[["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\u003eExpr\u003c/code\u003e class represents a textual expression written in the Common Expression Language (CEL) syntax, which is a C-like language used for defining expressions.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eExpr\u003c/code\u003e objects can be used to represent a variety of logical, comparative, and data manipulation expressions, as shown in the provided examples within the content.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eExpr\u003c/code\u003e class includes properties such as \u003ccode\u003eTitle\u003c/code\u003e, \u003ccode\u003eDescription\u003c/code\u003e, \u003ccode\u003eExpression\u003c/code\u003e, and \u003ccode\u003eLocation\u003c/code\u003e, allowing for detailed definition and contextualization of the expression.\u003c/p\u003e\n"],["\u003cp\u003eThe service evaluating the \u003ccode\u003eExpr\u003c/code\u003e object determines the exact variables and functions that can be used within it, so you should refer to the service documentation for more information.\u003c/p\u003e\n"],["\u003cp\u003eThe class implements multiple interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e which allow the class to be used in a wide variety of implementations.\u003c/p\u003e\n"]]],[],null,[]]