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\u003e\u003ccode\u003eExpr\u003c/code\u003e represents a textual expression using the Common Expression Language (CEL) syntax, which is similar to C in its structure.\u003c/p\u003e\n"],["\u003cp\u003eCEL expressions, as represented by \u003ccode\u003eExpr\u003c/code\u003e, can be used for various operations including comparisons, equality checks, logic operations, and data manipulation, with examples provided for each.\u003c/p\u003e\n"],["\u003cp\u003eThe specific variables and functions usable within an \u003ccode\u003eExpr\u003c/code\u003e are defined by the service that evaluates the expression, thus requiring service-specific documentation for complete information.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eExpr\u003c/code\u003e objects include properties for the expression itself, a title, description, and location for error reporting, enhancing its usability and clarity.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eExpr\u003c/code\u003e class provides methods for cloning, calculating size, merging data, checking for equality, and handling input/output streams, enabling comprehensive manipulation and interaction with the expression data.\u003c/p\u003e\n"]]],[],null,[]]