Get desktop application:
View/edit binary Protocol Buffers messages
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.
Transforms CEL source text into a parsed representation.
Request message for the Parse method.
Required. Source text in CEL syntax.
Tag for version of CEL syntax, for future use.
File or resource for source text, used in [SourceInfo][google.api.SourceInfo].
Prevent macro expansion. See "Macros" in Language Defiinition.
Response message for the Parse method.
The parsed representation, or unset if parsing failed.
Any number of issues with [StatusDetails][] as the details.
Runs static checks on a parsed CEL representation and return an annotated representation, or a set of issues.
Request message for the Check method.
Required. The parsed representation of the CEL program.
Declarations of types for external variables and functions. Required if program uses external variables or functions not in the default environment.
The protocol buffer context. See "Name Resolution" in the Language Definition.
If true, use only the declarations in [type_env][google.api.expr.conformance.v1alpha1.CheckRequest.type_env]. If false (default), add declarations for the standard definitions to the type environment. See "Standard Definitions" in the Language Definition.
Response message for the Check method.
The annotated representation, or unset if checking failed.
Any number of issues with [StatusDetails][] as the details.
Evaluates a parsed or annotation CEL representation given values of external bindings.
Request message for the Eval method.
Required. Either the parsed or annotated representation of the CEL program.
Evaluate based on the parsed representation.
Evaluate based on the checked representation.
Bindings for the external variables. The types SHOULD be compatible with the type environment in [CheckRequest][google.api.expr.conformance.v1alpha1.CheckRequest], if checked.
SHOULD be the same container as used in [CheckRequest][google.api.expr.conformance.v1alpha1.CheckRequest], if checked.
Response message for the Eval method.
The execution result, or unset if execution couldn't start.
Any number of issues with [StatusDetails][] as the details. Note that CEL execution errors are reified into [ExprValue][]. Nevertheless, we'll allow out-of-band issues to be raised, which also makes the replies more regular.
Representation of a CEL Environment, defining what features and extensions are available for conformance testing.
Used in:
Name of the environment
Description for the current environment
Sets the namespace (container) for the expression. This is used to simplify resolution. For example with container `google.rpc.context` an identifier of `google.rpc.context.AttributeContext` could be referred to simply as `AttributeContext` in the CEL expression.
List of abbreviations to be added to the CEL environment
Set of options to subset a subsettable library
List of extensions to enable in the CEL environment.
If set, adds a context declaration from a proto message. Context messages have all of their top-level fields available as variables in the type checker.
List of declarations to be configured in the CEL environment. Note: The CEL environment can be configured with either the context_variable or a set of ident_decls provided as part of declarations. Providing both will result in an error.
List of validators for validating the parsed ast.
List of feature flags to be enabled or disabled.
Disables including the declarations from the standard CEL environment. NOTE: Do not disable the standard CEL declarations unless you are aware of the implications and have discussed your use case on cel-discuss@ or with the members of the cel-governance-team@ Deprecated: Use LibrarySubset to disable standard cel declarations instead: stdlib = LibrarySubset{ disable: true }
If provided, uses the provided FileDescriptorSet to extend types available the CEL expression. All "well-known" protobuf messages (google.protobuf.*) are known to the CEL compiler, but all others must be provided for type checking.
When macro call tracking is enabled, the resulting SourceInfo in the CheckedExpr will contain a collection of expressions representing the function calls which were replaced by macros. Deprecated: Use Feature to enable macro call tracking Feature{ name: "cel.feature.macro_call_tracking", enabled: true }
ContextVariable represents a message type to be made available as a context variable to the CEL environment.
Used in:
Fully qualified type name of the context proto.
Import represents a type name that will be abbreviated by its simple name making it easier to reference simple type names from packages other than the expression container. For ex: Import{name: 'google.rpc.Status'} The above import will ensure that `google.rpc.Status` is available by the simple name `Status` within CEL expressions.
Used in:
Qualified type name which will be abbreviated
Extension represents a versioned extension library reference to enable in the CEL environment.
Used in:
Name of the extension library.
Version of the extension library.
Represents a named boolean feature flag supported by CEL. Naming convention followed by features: <domain>.feature.<feature_name> For ex: `cel.feature.cross_type_numeric_comparisons`
Used in:
Name of the feature flag.
State of the feature flab.
Warnings or errors in service execution are represented by [google.rpc.Status][google.rpc.Status] messages, with the following message in the details field.
The severity of the issue.
Position in the source, if known.
Expression ID from [Expr][], 0 if unknown.
Severities of issues.
Used in:
An unspecified severity.
Deprecation issue for statements and method that may no longer be supported or maintained.
Warnings such as: unused variables.
Errors such as: unmatched curly braces or variable redefinition.
LibrarySubset indicates a subset of the macros and functions supported by a subsettable library.
Used in:
Indicates whether the library has been disabled, typically only used for default-enabled libraries like stdlib.
Disables macros for the given library.
Specifies a set of macro function names to include in the subset.
Specifies a set of macro function names to exclude from the subset. Note: if IncludeMacros is non-empty, then ExcludeFunctions is ignored.
Specifies a set of functions to include in the subset. Note: the overloads specified in the subset need only specify their ID. Note: if IncludeFunctions is non-empty, then ExcludeFunctions is ignored.
Specifies the set of functions to exclude from the subset. Note: the overloads specified in the subset need only specify their ID.
A specific position in source.
Used in:
The source location name (e.g. file name).
The UTF-8 code unit offset.
The 1-based index of the starting line in the source text where the issue occurs, or 0 if unknown.
The 0-based index of the starting position within the line of source text where the issue occurs. Only meaningful if line is nonzero.
Represents a named validator with an optional map-based configuration object. Naming convention followed by validators: <domain>.validator.<validator_name> For ex: `cel.validator.timestamp` Note: the map-keys must directly correspond to the internal representation of the original validator, and should only use primitive scalar types as values at this time.
Used in:
Additional configurations to be included as part of the validation