package google.api.expr.v1beta1

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message Decl

decl.proto:29

A declaration.

message DeclType

decl.proto:53

The declared type of a variable. Extends runtime type values with extra information used for type checking and dispatching.

Used in: FunctionDecl, IdentDecl

message EnumValue

value.proto:75

An enum value.

Used in: Value

message ErrorSet

eval.proto:108

A set of errors. The errors included depend on the context. See `ExprValue.error`.

Used in: ExprValue

message EvalState

eval.proto:32

The state of an evaluation. Can represent an initial, partial, or completed state of evaluation.

message EvalState.Result

eval.proto:34

A single evaluation result.

Used in: EvalState

message Expr

expr.proto:56

An abstract representation of a common expression. Expressions are abstractly represented as a collection of identifiers, select statements, function calls, literals, and comprehensions. All operators with the exception of the '.' operator are modelled as function calls. This makes it easy to represent new operators into the existing AST. All references within expressions must resolve to a [Decl][google.api.expr.v1beta1.Decl] provided at type-check for an expression to be valid. A reference may either be a bare identifier `name` or a qualified identifier `google.api.name`. References may either refer to a value or a function declaration. For example, the expression `google.api.name.startsWith('expr')` references the declaration `google.api.name` within a [Expr.Select][google.api.expr.v1beta1.Expr.Select] expression, and the function declaration `startsWith`.

Used in: Expr.Call, Expr.Comprehension, Expr.CreateList, Expr.CreateStruct.Entry, Expr.Select, IdentDecl, ParsedExpr

message Expr.Call

expr.proto:89

A call expression, including calls to predefined functions and operators. For example, `value == 10`, `size(map_value)`.

Used in: Expr

message Expr.Comprehension

expr.proto:170

A comprehension expression applied to a list or map. Comprehensions are not part of the core syntax, but enabled with macros. A macro matches a specific call signature within a parsed AST and replaces the call with an alternate AST block. Macro expansion happens at parse time. The following macros are supported within CEL: Aggregate type macros may be applied to all elements in a list or all keys in a map: * `all`, `exists`, `exists_one` - test a predicate expression against the inputs and return `true` if the predicate is satisfied for all, any, or only one value `list.all(x, x < 10)`. * `filter` - test a predicate expression against the inputs and return the subset of elements which satisfy the predicate: `payments.filter(p, p > 1000)`. * `map` - apply an expression to all elements in the input and return the output aggregate type: `[1, 2, 3].map(i, i * i)`. The `has(m.x)` macro tests whether the property `x` is present in struct `m`. The semantics of this macro depend on the type of `m`. For proto2 messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the macro tests whether the property is set to its default. For map and struct types, the macro tests whether the property `x` is defined on `m`.

Used in: Expr

message Expr.CreateList

expr.proto:105

A list creation expression. Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g. `dyn([1, 'hello', 2.0])`

Used in: Expr

message Expr.CreateStruct

expr.proto:115

A map or message creation expression. Maps are constructed as `{'key_name': 'value'}`. Message construction is similar, but prefixed with a type name and composed of field ids: `types.MyType{field_id: 'value'}`.

Used in: Expr

message Expr.CreateStruct.Entry

expr.proto:117

Represents an entry.

Used in: CreateStruct

message Expr.Ident

expr.proto:58

An identifier expression. e.g. `request`.

Used in: Expr

message Expr.Select

expr.proto:67

A field selection expression. e.g. `request.auth`.

Used in: Expr

message ExprValue

eval.proto:53

The value of an evaluated expression.

Used in: EvalState

message FunctionDecl

decl.proto:75

A function declaration.

Used in: Decl

message IdRef

eval.proto:122

A reference to an expression id.

Used in: EvalState.Result, UnknownSet

message IdentDecl

decl.proto:66

An identifier declaration.

Used in: Decl, FunctionDecl

message ListValue

value.proto:87

A list. Wrapped in a message so 'not set' and empty can be differentiated, which is required for use in a 'oneof'.

Used in: Value

message Literal

expr.proto:241

Represents a primitive literal. This is similar to the primitives supported in the well-known type `google.protobuf.Value`, but richer so it can represent CEL's full range of primitives. Lists and structs are not included as constants as these aggregate types may contain [Expr][google.api.expr.v1beta1.Expr] elements which require evaluation and are thus not constant. Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`, `true`, `null`.

Used in: Expr

message MapValue

value.proto:96

A map. Wrapped in a message so 'not set' and empty can be differentiated, which is required for use in a 'oneof'.

Used in: Value

message MapValue.Entry

value.proto:98

An entry in the map.

Used in: MapValue

message ParsedExpr

expr.proto:30

An expression together with source information as returned by the parser.

message SourceInfo

source.proto:27

Source information collected at parse time.

Used in: ParsedExpr

message SourcePosition

source.proto:48

A specific position in source.

message UnknownSet

eval.proto:116

A set of expressions for which the value is unknown. The unknowns included depend on the context. See `ExprValue.unknown`.

Used in: ExprValue

message Value

value.proto:33

Represents a CEL value. This is similar to `google.protobuf.Value`, but can represent CEL's full range of values.

Used in: ExprValue, ListValue, MapValue.Entry