package google.api.expr.v1alpha1

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

service CelService

cel_service.proto:33

Access a CEL implementation from another process or machine. A CEL implementation is decomposed as a parser, a static checker, and an evaluator. Every CEL implementation is expected to provide a server for this API. The API will be used for conformance testing, utilities, and execution as a service.

service ConformanceService

conformance_service.proto:38

Access a CEL implementation from another process or machine. A CEL implementation is decomposed as a parser, a static checker, and an evaluator. Every CEL implementation is expected to provide a server for this API. The API will be used for conformance testing and other utilities.

message CheckRequest

conformance_service.proto:83

Request message for the Check method.

Used as request type in: CelService.Check, ConformanceService.Check

message CheckResponse

conformance_service.proto:103

Response message for the Check method.

Used as response type in: CelService.Check, ConformanceService.Check

message CheckedExpr

checked.proto:33

A CEL expression which has been successfully type checked.

Used in: CheckResponse, EvalRequest

message Constant

syntax.proto:243

Represents a primitive literal. Named 'Constant' here for backwards compatibility. This is similar as 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.v1alpha1.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: Decl.IdentDecl, Expr, Reference

message Decl

checked.proto:212

Represents a declaration of a named value or function. A declaration is part of the contract between the expression, the agent evaluating that expression, and the caller requesting evaluation.

Used in: CheckRequest

message Decl.FunctionDecl

checked.proto:237

Function declaration specifies one or more overloads which indicate the function's parameter types and return type, and may optionally specify a function definition in terms of CEL expressions. Functions have no observable side-effects (there may be side-effects like logging which are not observable from CEL).

Used in: Decl

message Decl.FunctionDecl.Overload

checked.proto:248

An overload indicates a function's parameter types and return type, and may optionally include a function body described in terms of [Expr][google.api.expr.v1alpha1.Expr] values. Functions overloads are declared in either a function or method call-style. For methods, the `params[0]` is the expected type of the target receiver. Overloads must have non-overlapping argument types after erasure of all parameterized type variables (similar as type erasure in Java).

Used in: FunctionDecl

message Decl.IdentDecl

checked.proto:219

Identifier declaration which specifies its type and optional `Expr` value. An identifier without a value is a declaration that must be provided at evaluation time. An identifier with a value should resolve to a constant, but may be used in conjunction with other identifiers bound at evaluation time.

Used in: Decl

message EnumValue

value.proto:77

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 EvalRequest

conformance_service.proto:112

Request message for the Eval method.

Used as request type in: CelService.Eval, ConformanceService.Eval

message EvalResponse

conformance_service.proto:131

Response message for the Eval method.

Used as response type in: CelService.Eval, ConformanceService.Eval

message EvalState

eval.proto:32

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

message EvalState.Result

eval.proto:34

A single evalution result.

Used in: EvalState

message Explain

explain.proto:30

Values of intermediate expressions produced when evaluating expression. Deprecated, use `EvalState` instead.

message Explain.ExprStep

explain.proto:34

ID and value index of one step.

Used in: Explain

message Expr

syntax.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.v1alpha1.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.v1alpha1.Expr.Select] expression, and the function declaration `startsWith`.

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

message Expr.Call

syntax.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

syntax.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

syntax.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

syntax.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

syntax.proto:117

Represents an entry.

Used in: CreateStruct

message Expr.Ident

syntax.proto:58

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

Used in: Expr

message Expr.Select

syntax.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: EvalRequest, EvalResponse, EvalState

message IssueDetails

conformance_service.proto:145

Warnings or errors in service execution are represented by [google.rpc.Status][google.rpc.Status] messages, with the following message in the details field.

enum IssueDetails.Severity

conformance_service.proto:147

Severities of issues.

Used in: IssueDetails

message ListValue

value.proto:89

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 MapValue

value.proto:98

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:100

An entry in the map.

Used in: MapValue

message ParseRequest

conformance_service.proto:59

Request message for the Parse method.

Used as request type in: CelService.Parse, ConformanceService.Parse

message ParseResponse

conformance_service.proto:74

Response message for the Parse method.

Used as response type in: CelService.Parse, ConformanceService.Parse

message ParsedExpr

syntax.proto:33

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

Used in: CheckRequest, EvalRequest, ParseResponse

message Reference

checked.proto:314

Describes a resolved reference to a declaration.

Used in: CheckedExpr

message SourceInfo

syntax.proto:280

Source information collected at parse time.

Used in: CheckedExpr, ParsedExpr

message SourcePosition

syntax.proto:314

A specific position in source.

Used in: IssueDetails

message Type

checked.proto:68

Represents a CEL type.

Used in: CheckedExpr, Decl.FunctionDecl.Overload, Decl.IdentDecl, Type.AbstractType, Type.FunctionType, Type.ListType, Type.MapType

message Type.AbstractType

checked.proto:94

Application defined abstract type.

Used in: Type

message Type.FunctionType

checked.proto:85

Function type with result and arg types.

Used in: Type

message Type.ListType

checked.proto:70

List type with typed elements, e.g. `list<example.proto.MyMessage>`.

Used in: Type

message Type.MapType

checked.proto:76

Map type with parameterized key and value types, e.g. `map<string, int>`.

Used in: Type

enum Type.PrimitiveType

checked.proto:103

CEL primitive types.

Used in: Type

enum Type.WellKnownType

checked.proto:133

Well-known protobuf types treated with first-class support in CEL.

Used in: Type

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:35

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

Used in: Explain, ExprValue, ListValue, MapValue.Entry