summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/api/expr
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/api/expr')
-rw-r--r--third_party/googleapis/google/api/expr/BUILD.bazel1
-rw-r--r--third_party/googleapis/google/api/expr/cel.yaml61
-rw-r--r--third_party/googleapis/google/api/expr/conformance/v1alpha1/BUILD.bazel178
-rw-r--r--third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto166
-rw-r--r--third_party/googleapis/google/api/expr/v1alpha1/BUILD.bazel240
-rw-r--r--third_party/googleapis/google/api/expr/v1alpha1/checked.proto343
-rw-r--r--third_party/googleapis/google/api/expr/v1alpha1/eval.proto118
-rw-r--r--third_party/googleapis/google/api/expr/v1alpha1/explain.proto53
-rw-r--r--third_party/googleapis/google/api/expr/v1alpha1/syntax.proto335
-rw-r--r--third_party/googleapis/google/api/expr/v1alpha1/value.proto115
-rw-r--r--third_party/googleapis/google/api/expr/v1beta1/BUILD.bazel91
-rw-r--r--third_party/googleapis/google/api/expr/v1beta1/decl.proto84
-rw-r--r--third_party/googleapis/google/api/expr/v1beta1/eval.proto125
-rw-r--r--third_party/googleapis/google/api/expr/v1beta1/expr.proto265
-rw-r--r--third_party/googleapis/google/api/expr/v1beta1/source.proto62
-rw-r--r--third_party/googleapis/google/api/expr/v1beta1/value.proto114
16 files changed, 0 insertions, 2351 deletions
diff --git a/third_party/googleapis/google/api/expr/BUILD.bazel b/third_party/googleapis/google/api/expr/BUILD.bazel
deleted file mode 100644
index a87c57f..0000000
--- a/third_party/googleapis/google/api/expr/BUILD.bazel
+++ /dev/null
@@ -1 +0,0 @@
-exports_files(glob(["*.yaml"]))
diff --git a/third_party/googleapis/google/api/expr/cel.yaml b/third_party/googleapis/google/api/expr/cel.yaml
deleted file mode 100644
index bbe7fbd..0000000
--- a/third_party/googleapis/google/api/expr/cel.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-type: google.api.Service
-config_version: 3
-name: cel.googleapis.com
-title: Common Expression Language
-
-apis:
-- name: google.api.expr.v1alpha1.ConformanceService
-- name: google.api.expr.v1alpha1.CelService
-
-documentation:
- summary: Defines common types for the Common Expression Language.
- overview: |-
- # Common Expression Language
-
- The Common Expression Language (CEL) implements common semantics for
- expression evaluation, enabling different applications to more easily
- interoperate.
-
- Key Applications
-
- * Security policy: organization have complex infrastructure and need
- common tooling to reason about the system as a whole * Protocols:
- expressions are a useful data type and require interoperability across
- programming languages and platforms.
-
-
-
- Guiding philosophy:
-
- 1. Keep it small & fast. * CEL evaluates in linear time, is mutation
- free, and not Turing-complete. This limitation is a feature of the language
- design, which allows the implementation to evaluate orders of magnitude
- faster than equivalently sandboxed JavaScript. 2. Make it extensible. *
- CEL is designed to be embedded in applications, and allows for extensibility
- via its context which allows for functions and data to be provided by the
- software that embeds it. 3. Developer-friendly * The language is
- approachable to developers. The initial spec was based on the experience of
- developing Firebase Rules and usability testing many prior iterations. *
- The library itself and accompanying toolings should be easy to adopt by
- teams that seek to integrate CEL into their platforms.
-
- The required components of a system that supports CEL are:
-
- * The textual representation of an expression as written by a developer.
- It is of similar syntax of expressions in C/C++/Java/JavaScript * A binary
- representation of an expression. It is an abstract syntax tree (AST). * A
- compiler library that converts the textual representation to the binary
- representation. This can be done ahead of time (in the control plane) or
- just before evaluation (in the data plane). * A context containing one or
- more typed variables, often protobuf messages. Most use-case will use
- attribute_context.proto * An evaluator library that takes the binary
- format in the context and produces a result, usually a Boolean.
-
- Example of boolean conditions and object construction:
-
- ``` c // Condition account.balance >= transaction.withdrawal ||
- (account.overdraftProtection && account.overdraftLimit >=
- transaction.withdrawal - account.balance)
-
- // Object construction common.GeoPoint{ latitude: 10.0, longitude: -5.5 }
- ```
diff --git a/third_party/googleapis/google/api/expr/conformance/v1alpha1/BUILD.bazel b/third_party/googleapis/google/api/expr/conformance/v1alpha1/BUILD.bazel
deleted file mode 100644
index 012109e..0000000
--- a/third_party/googleapis/google/api/expr/conformance/v1alpha1/BUILD.bazel
+++ /dev/null
@@ -1,178 +0,0 @@
-# This file was automatically generated by BuildFileGenerator
-
-# This is an API workspace, having public visibility by default makes perfect sense.
-package(default_visibility = ["//visibility:public"])
-
-##############################################################################
-# Common
-##############################################################################
-load("@rules_proto//proto:defs.bzl", "proto_library")
-
-proto_library(
- name = "conformance_proto",
- srcs = [
- "conformance_service.proto",
- ],
- deps = [
- "//google/api/expr/v1alpha1:checked_proto",
- "//google/api/expr/v1alpha1:eval_proto",
- "//google/api/expr/v1alpha1:syntax_proto",
- "//google/api:client_proto",
- "//google/rpc:status_proto",
- ],
-)
-
-##############################################################################
-# Java
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "java_grpc_library",
- "java_proto_library",
-)
-
-java_proto_library(
- name = "conformance_java_proto",
- deps = [":conformance_proto"],
-)
-
-java_grpc_library(
- name = "conformance_java_grpc",
- srcs = [":conformance_proto"],
- deps = [":conformance_java_proto"],
-)
-
-##############################################################################
-# Go
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "go_proto_library",
-)
-
-go_proto_library(
- name = "conformance_go_proto",
- compilers = ["@io_bazel_rules_go//proto:go_grpc"],
- importpath = "google.golang.org/genproto/googleapis/api/expr/conformance/v1alpha1",
- protos = [":conformance_proto"],
- deps = [
- "//google/api/expr/v1alpha1:expr_go_proto",
- "//google/api:annotations_go_proto",
- "//google/rpc:status_go_proto",
- ],
-)
-
-##############################################################################
-# Python
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "moved_proto_library",
- "py_grpc_library",
- "py_proto_library",
-)
-
-moved_proto_library(
- name = "conformance_moved_proto",
- srcs = [":conformance_proto"],
- deps = [
- "//google/api/expr/v1alpha1:checked_proto",
- "//google/api/expr/v1alpha1:eval_proto",
- "//google/api/expr/v1alpha1:syntax_proto",
- "//google/api:client_proto",
- "//google/rpc:status_proto",
- ],
-)
-
-py_proto_library(
- name = "conformance_py_proto",
- deps = [":conformance_moved_proto"],
-)
-
-py_grpc_library(
- name = "conformance_py_grpc",
- srcs = [":conformance_moved_proto"],
- deps = [":conformance_py_proto"],
-)
-
-##############################################################################
-# PHP
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "php_grpc_library",
- "php_proto_library",
-)
-
-php_proto_library(
- name = "conformance_php_proto",
- deps = [":conformance_proto"],
-)
-
-php_grpc_library(
- name = "conformance_php_grpc",
- srcs = [":conformance_proto"],
- deps = [":conformance_php_proto"],
-)
-
-##############################################################################
-# Ruby
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "ruby_grpc_library",
- "ruby_proto_library",
-)
-
-ruby_proto_library(
- name = "conformance_ruby_proto",
- deps = [":conformance_proto"],
-)
-
-ruby_grpc_library(
- name = "conformance_ruby_grpc",
- srcs = [":conformance_proto"],
- deps = [":conformance_ruby_proto"],
-)
-
-##############################################################################
-# C#
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "csharp_grpc_library",
- "csharp_proto_library",
-)
-
-csharp_proto_library(
- name = "conformance_csharp_proto",
- deps = [":conformance_proto"],
-)
-
-csharp_grpc_library(
- name = "conformance_csharp_grpc",
- srcs = [":conformance_proto"],
- deps = [":conformance_csharp_proto"],
-)
-
-##############################################################################
-# C++
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "cc_grpc_library",
- "cc_proto_library",
-)
-
-cc_proto_library(
- name = "conformance_cc_proto",
- deps = [":conformance_proto"],
-)
-
-cc_grpc_library(
- name = "conformance_cc_grpc",
- srcs = [":conformance_proto"],
- generate_mocks = True,
- grpc_only = True,
- deps = [":conformance_cc_proto"],
-)
diff --git a/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto b/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto
deleted file mode 100644
index 9161698..0000000
--- a/third_party/googleapis/google/api/expr/conformance/v1alpha1/conformance_service.proto
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package google.api.expr.conformance.v1alpha1;
-
-import "google/api/expr/v1alpha1/checked.proto";
-import "google/api/expr/v1alpha1/eval.proto";
-import "google/api/expr/v1alpha1/syntax.proto";
-import "google/rpc/status.proto";
-import "google/api/client.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/conformance/v1alpha1;confpb";
-option java_multiple_files = true;
-option java_outer_classname = "ConformanceServiceProto";
-option java_package = "com.google.api.expr.conformance.v1alpha1";
-
-// 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.
-service ConformanceService {
- option (google.api.default_host) = "cel.googleapis.com";
-
- // Transforms CEL source text into a parsed representation.
- rpc Parse(ParseRequest) returns (ParseResponse) {
- }
-
- // Runs static checks on a parsed CEL representation and return
- // an annotated representation, or a set of issues.
- rpc Check(CheckRequest) returns (CheckResponse) {
- }
-
- // Evaluates a parsed or annotation CEL representation given
- // values of external bindings.
- rpc Eval(EvalRequest) returns (EvalResponse) {
- }
-}
-
-// Request message for the Parse method.
-message ParseRequest {
- // Required. Source text in CEL syntax.
- string cel_source = 1;
-
- // Tag for version of CEL syntax, for future use.
- string syntax_version = 2;
-
- // File or resource for source text, used in [SourceInfo][google.api.SourceInfo].
- string source_location = 3;
-
- // Prevent macro expansion. See "Macros" in Language Defiinition.
- bool disable_macros = 4;
-}
-
-// Response message for the Parse method.
-message ParseResponse {
- // The parsed representation, or unset if parsing failed.
- google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1;
-
- // Any number of issues with [StatusDetails][] as the details.
- repeated google.rpc.Status issues = 2;
-}
-
-// Request message for the Check method.
-message CheckRequest {
- // Required. The parsed representation of the CEL program.
- google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1;
-
- // Declarations of types for external variables and functions.
- // Required if program uses external variables or functions
- // not in the default environment.
- repeated google.api.expr.v1alpha1.Decl type_env = 2;
-
- // The protocol buffer context. See "Name Resolution" in the
- // Language Definition.
- string container = 3;
-
- // 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.
- bool no_std_env = 4;
-}
-
-// Response message for the Check method.
-message CheckResponse {
- // The annotated representation, or unset if checking failed.
- google.api.expr.v1alpha1.CheckedExpr checked_expr = 1;
-
- // Any number of issues with [StatusDetails][] as the details.
- repeated google.rpc.Status issues = 2;
-}
-
-// Request message for the Eval method.
-message EvalRequest {
- // Required. Either the parsed or annotated representation of the CEL program.
- oneof expr_kind {
- // Evaluate based on the parsed representation.
- google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1;
-
- // Evaluate based on the checked representation.
- google.api.expr.v1alpha1.CheckedExpr checked_expr = 2;
- }
-
- // Bindings for the external variables. The types SHOULD be compatible
- // with the type environment in [CheckRequest][google.api.expr.conformance.v1alpha1.CheckRequest], if checked.
- map<string, google.api.expr.v1alpha1.ExprValue> bindings = 3;
-
- // SHOULD be the same container as used in [CheckRequest][google.api.expr.conformance.v1alpha1.CheckRequest], if checked.
- string container = 4;
-}
-
-// Response message for the Eval method.
-message EvalResponse {
- // The execution result, or unset if execution couldn't start.
- google.api.expr.v1alpha1.ExprValue result = 1;
-
- // 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.
- repeated google.rpc.Status issues = 2;
-}
-
-// Warnings or errors in service execution are represented by
-// [google.rpc.Status][google.rpc.Status] messages, with the following message
-// in the details field.
-message IssueDetails {
- // Severities of issues.
- enum Severity {
- // An unspecified severity.
- SEVERITY_UNSPECIFIED = 0;
-
- // Deprecation issue for statements and method that may no longer be
- // supported or maintained.
- DEPRECATION = 1;
-
- // Warnings such as: unused variables.
- WARNING = 2;
-
- // Errors such as: unmatched curly braces or variable redefinition.
- ERROR = 3;
- }
-
- // The severity of the issue.
- Severity severity = 1;
-
- // Position in the source, if known.
- google.api.expr.v1alpha1.SourcePosition position = 2;
-
- // Expression ID from [Expr][], 0 if unknown.
- int64 id = 3;
-}
diff --git a/third_party/googleapis/google/api/expr/v1alpha1/BUILD.bazel b/third_party/googleapis/google/api/expr/v1alpha1/BUILD.bazel
deleted file mode 100644
index a303701..0000000
--- a/third_party/googleapis/google/api/expr/v1alpha1/BUILD.bazel
+++ /dev/null
@@ -1,240 +0,0 @@
-# This file was automatically generated by BuildFileGenerator
-
-# This is an API workspace, having public visibility by default makes perfect sense.
-package(default_visibility = ["//visibility:public"])
-
-##############################################################################
-# Common
-##############################################################################
-load("@rules_proto//proto:defs.bzl", "proto_library")
-
-proto_library(
- name = "expr_proto",
- srcs = [
- "checked.proto",
- "eval.proto",
- "explain.proto",
- "syntax.proto",
- "value.proto",
- ],
- deps = [
- "//google/rpc:status_proto",
- "@com_google_protobuf//:any_proto",
- "@com_google_protobuf//:duration_proto",
- "@com_google_protobuf//:empty_proto",
- "@com_google_protobuf//:struct_proto",
- "@com_google_protobuf//:timestamp_proto",
- ],
-)
-
-proto_library(
- name = "checked_proto",
- srcs = ["checked.proto"],
- deps = [
- ":syntax_proto",
- "@com_google_protobuf//:empty_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-
-proto_library(
- name = "eval_proto",
- srcs = ["eval.proto"],
- deps = [
- ":value_proto",
- "//google/rpc:status_proto",
- ],
-)
-
-proto_library(
- name = "explain_proto",
- srcs = ["explain.proto"],
- deps = [
- ":value_proto",
- ],
-)
-
-proto_library(
- name = "syntax_proto",
- srcs = ["syntax.proto"],
- deps = [
- "@com_google_protobuf//:duration_proto",
- "@com_google_protobuf//:struct_proto",
- "@com_google_protobuf//:timestamp_proto",
- ],
-)
-
-proto_library(
- name = "value_proto",
- srcs = ["value.proto"],
- deps = [
- "@com_google_protobuf//:any_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-
-##############################################################################
-# Java
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "java_grpc_library",
- "java_proto_library",
-)
-
-java_proto_library(
- name = "expr_java_proto",
- deps = [":expr_proto"],
-)
-
-java_grpc_library(
- name = "expr_java_grpc",
- srcs = [":expr_proto"],
- deps = [":expr_java_proto"],
-)
-
-##############################################################################
-# Go
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "go_proto_library",
-)
-
-go_proto_library(
- name = "expr_go_proto",
- compilers = ["@io_bazel_rules_go//proto:go_grpc"],
- importpath = "google.golang.org/genproto/googleapis/api/expr/v1alpha1",
- protos = [":expr_proto"],
- deps = [
- "//google/rpc:status_go_proto",
- ],
-)
-
-##############################################################################
-# Python
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "moved_proto_library",
- "py_grpc_library",
- "py_proto_library",
-)
-
-moved_proto_library(
- name = "expr_moved_proto",
- srcs = [":expr_proto"],
- deps = [
- "//google/rpc:status_proto",
- "@com_google_protobuf//:any_proto",
- "@com_google_protobuf//:duration_proto",
- "@com_google_protobuf//:empty_proto",
- "@com_google_protobuf//:struct_proto",
- "@com_google_protobuf//:timestamp_proto",
- ],
-)
-
-py_proto_library(
- name = "expr_py_proto",
- deps = [":expr_moved_proto"],
-)
-
-py_grpc_library(
- name = "expr_py_grpc",
- srcs = [":expr_moved_proto"],
- deps = [":expr_py_proto"],
-)
-
-##############################################################################
-# PHP
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "php_grpc_library",
- "php_proto_library",
-)
-
-php_proto_library(
- name = "expr_php_proto",
- deps = [":expr_proto"],
-)
-
-php_grpc_library(
- name = "expr_php_grpc",
- srcs = [":expr_proto"],
- deps = [":expr_php_proto"],
-)
-
-##############################################################################
-# Ruby
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "ruby_grpc_library",
- "ruby_proto_library",
-)
-
-ruby_proto_library(
- name = "expr_ruby_proto",
- deps = [":expr_proto"],
-)
-
-ruby_grpc_library(
- name = "expr_ruby_grpc",
- srcs = [":expr_proto"],
- deps = [":expr_ruby_proto"],
-)
-
-##############################################################################
-# C#
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "csharp_grpc_library",
- "csharp_proto_library",
-)
-
-csharp_proto_library(
- name = "expr_csharp_proto",
- deps = [":expr_proto"],
-)
-
-csharp_grpc_library(
- name = "expr_csharp_grpc",
- srcs = [":expr_proto"],
- deps = [":expr_csharp_proto"],
-)
-
-##############################################################################
-# C++
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "cc_proto_library",
-)
-
-cc_proto_library(
- name = "checked_cc_proto",
- deps = [":checked_proto"],
-)
-
-
-cc_proto_library(
- name = "eval_cc_proto",
- deps = [":eval_proto"],
-)
-
-cc_proto_library(
- name = "explain_cc_proto",
- deps = [":explain_proto"],
-)
-
-cc_proto_library(
- name = "syntax_cc_proto",
- deps = [":syntax_proto"],
-)
-
-cc_proto_library(
- name = "value_cc_proto",
- deps = [":value_proto"],
-)
diff --git a/third_party/googleapis/google/api/expr/v1alpha1/checked.proto b/third_party/googleapis/google/api/expr/v1alpha1/checked.proto
deleted file mode 100644
index 930dc4f..0000000
--- a/third_party/googleapis/google/api/expr/v1alpha1/checked.proto
+++ /dev/null
@@ -1,343 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package google.api.expr.v1alpha1;
-
-import "google/api/expr/v1alpha1/syntax.proto";
-import "google/protobuf/empty.proto";
-import "google/protobuf/struct.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "DeclProto";
-option java_package = "com.google.api.expr.v1alpha1";
-
-// Protos for representing CEL declarations and typed checked expressions.
-
-// A CEL expression which has been successfully type checked.
-message CheckedExpr {
- // A map from expression ids to resolved references.
- //
- // The following entries are in this table:
- //
- // - An Ident or Select expression is represented here if it resolves to a
- // declaration. For instance, if `a.b.c` is represented by
- // `select(select(id(a), b), c)`, and `a.b` resolves to a declaration,
- // while `c` is a field selection, then the reference is attached to the
- // nested select expression (but not to the id or or the outer select).
- // In turn, if `a` resolves to a declaration and `b.c` are field selections,
- // the reference is attached to the ident expression.
- // - Every Call expression has an entry here, identifying the function being
- // called.
- // - Every CreateStruct expression for a message has an entry, identifying
- // the message.
- map<int64, Reference> reference_map = 2;
-
- // A map from expression ids to types.
- //
- // Every expression node which has a type different than DYN has a mapping
- // here. If an expression has type DYN, it is omitted from this map to save
- // space.
- map<int64, Type> type_map = 3;
-
- // The source info derived from input that generated the parsed `expr` and
- // any optimizations made during the type-checking pass.
- SourceInfo source_info = 5;
-
- // The expr version indicates the major / minor version number of the `expr`
- // representation.
- //
- // The most common reason for a version change will be to indicate to the CEL
- // runtimes that transformations have been performed on the expr during static
- // analysis. In some cases, this will save the runtime the work of applying
- // the same or similar transformations prior to evaluation.
- string expr_version = 6;
-
- // The checked expression. Semantically equivalent to the parsed `expr`, but
- // may have structural differences.
- Expr expr = 4;
-}
-
-// Represents a CEL type.
-message Type {
- // List type with typed elements, e.g. `list<example.proto.MyMessage>`.
- message ListType {
- // The element type.
- Type elem_type = 1;
- }
-
- // Map type with parameterized key and value types, e.g. `map<string, int>`.
- message MapType {
- // The type of the key.
- Type key_type = 1;
-
- // The type of the value.
- Type value_type = 2;
- }
-
- // Function type with result and arg types.
- message FunctionType {
- // Result type of the function.
- Type result_type = 1;
-
- // Argument types of the function.
- repeated Type arg_types = 2;
- }
-
- // Application defined abstract type.
- message AbstractType {
- // The fully qualified name of this abstract type.
- string name = 1;
-
- // Parameter types for this abstract type.
- repeated Type parameter_types = 2;
- }
-
- // CEL primitive types.
- enum PrimitiveType {
- // Unspecified type.
- PRIMITIVE_TYPE_UNSPECIFIED = 0;
-
- // Boolean type.
- BOOL = 1;
-
- // Int64 type.
- //
- // Proto-based integer values are widened to int64.
- INT64 = 2;
-
- // Uint64 type.
- //
- // Proto-based unsigned integer values are widened to uint64.
- UINT64 = 3;
-
- // Double type.
- //
- // Proto-based float values are widened to double values.
- DOUBLE = 4;
-
- // String type.
- STRING = 5;
-
- // Bytes type.
- BYTES = 6;
- }
-
- // Well-known protobuf types treated with first-class support in CEL.
- enum WellKnownType {
- // Unspecified type.
- WELL_KNOWN_TYPE_UNSPECIFIED = 0;
-
- // Well-known protobuf.Any type.
- //
- // Any types are a polymorphic message type. During type-checking they are
- // treated like `DYN` types, but at runtime they are resolved to a specific
- // message type specified at evaluation time.
- ANY = 1;
-
- // Well-known protobuf.Timestamp type, internally referenced as `timestamp`.
- TIMESTAMP = 2;
-
- // Well-known protobuf.Duration type, internally referenced as `duration`.
- DURATION = 3;
- }
-
- // The kind of type.
- oneof type_kind {
- // Dynamic type.
- google.protobuf.Empty dyn = 1;
-
- // Null value.
- google.protobuf.NullValue null = 2;
-
- // Primitive types: `true`, `1u`, `-2.0`, `'string'`, `b'bytes'`.
- PrimitiveType primitive = 3;
-
- // Wrapper of a primitive type, e.g. `google.protobuf.Int64Value`.
- PrimitiveType wrapper = 4;
-
- // Well-known protobuf type such as `google.protobuf.Timestamp`.
- WellKnownType well_known = 5;
-
- // Parameterized list with elements of `list_type`, e.g. `list<timestamp>`.
- ListType list_type = 6;
-
- // Parameterized map with typed keys and values.
- MapType map_type = 7;
-
- // Function type.
- FunctionType function = 8;
-
- // Protocol buffer message type.
- //
- // The `message_type` string specifies the qualified message type name. For
- // example, `google.plus.Profile`.
- string message_type = 9;
-
- // Type param type.
- //
- // The `type_param` string specifies the type parameter name, e.g. `list<E>`
- // would be a `list_type` whose element type was a `type_param` type
- // named `E`.
- string type_param = 10;
-
- // Type type.
- //
- // The `type` value specifies the target type. e.g. int is type with a
- // target type of `Primitive.INT`.
- Type type = 11;
-
- // Error type.
- //
- // During type-checking if an expression is an error, its type is propagated
- // as the `ERROR` type. This permits the type-checker to discover other
- // errors present in the expression.
- google.protobuf.Empty error = 12;
-
- // Abstract, application defined type.
- AbstractType abstract_type = 14;
- }
-}
-
-// 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.
-message Decl {
- // 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.
- message IdentDecl {
- // Required. The type of the identifier.
- Type type = 1;
-
- // The constant value of the identifier. If not specified, the identifier
- // must be supplied at evaluation time.
- Constant value = 2;
-
- // Documentation string for the identifier.
- string doc = 3;
- }
-
- // Function declaration specifies one or more overloads which indicate the
- // function's parameter types and return type.
- //
- // Functions have no observable side-effects (there may be side-effects like
- // logging which are not observable from CEL).
- message FunctionDecl {
- // 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).
- message Overload {
- // Required. Globally unique overload name of the function which reflects
- // the function name and argument types.
- //
- // This will be used by a [Reference][google.api.expr.v1alpha1.Reference]
- // to indicate the `overload_id` that was resolved for the function
- // `name`.
- string overload_id = 1;
-
- // List of function parameter [Type][google.api.expr.v1alpha1.Type]
- // values.
- //
- // Param types are disjoint after generic type parameters have been
- // replaced with the type `DYN`. Since the `DYN` type is compatible with
- // any other type, this means that if `A` is a type parameter, the
- // function types `int<A>` and `int<int>` are not disjoint. Likewise,
- // `map<string, string>` is not disjoint from `map<K, V>`.
- //
- // When the `result_type` of a function is a generic type param, the
- // type param name also appears as the `type` of on at least one params.
- repeated Type params = 2;
-
- // The type param names associated with the function declaration.
- //
- // For example, `function ex<K,V>(K key, map<K, V> map) : V` would yield
- // the type params of `K, V`.
- repeated string type_params = 3;
-
- // Required. The result type of the function. For example, the operator
- // `string.isEmpty()` would have `result_type` of `kind: BOOL`.
- Type result_type = 4;
-
- // Whether the function is to be used in a method call-style `x.f(...)`
- // or a function call-style `f(x, ...)`.
- //
- // For methods, the first parameter declaration, `params[0]` is the
- // expected type of the target receiver.
- bool is_instance_function = 5;
-
- // Documentation string for the overload.
- string doc = 6;
- }
-
- // Required. List of function overloads, must contain at least one overload.
- repeated Overload overloads = 1;
- }
-
- // The fully qualified name of the declaration.
- //
- // Declarations are organized in containers and this represents the full path
- // to the declaration in its container, as in `google.api.expr.Decl`.
- //
- // Declarations used as
- // [FunctionDecl.Overload][google.api.expr.v1alpha1.Decl.FunctionDecl.Overload]
- // parameters may or may not have a name depending on whether the overload is
- // function declaration or a function definition containing a result
- // [Expr][google.api.expr.v1alpha1.Expr].
- string name = 1;
-
- // Required. The declaration kind.
- oneof decl_kind {
- // Identifier declaration.
- IdentDecl ident = 2;
-
- // Function declaration.
- FunctionDecl function = 3;
- }
-}
-
-// Describes a resolved reference to a declaration.
-message Reference {
- // The fully qualified name of the declaration.
- string name = 1;
-
- // For references to functions, this is a list of `Overload.overload_id`
- // values which match according to typing rules.
- //
- // If the list has more than one element, overload resolution among the
- // presented candidates must happen at runtime because of dynamic types. The
- // type checker attempts to narrow down this list as much as possible.
- //
- // Empty if this is not a reference to a
- // [Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl].
- repeated string overload_id = 3;
-
- // For references to constants, this may contain the value of the
- // constant if known at compile time.
- Constant value = 4;
-}
diff --git a/third_party/googleapis/google/api/expr/v1alpha1/eval.proto b/third_party/googleapis/google/api/expr/v1alpha1/eval.proto
deleted file mode 100644
index e905264..0000000
--- a/third_party/googleapis/google/api/expr/v1alpha1/eval.proto
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package google.api.expr.v1alpha1;
-
-import "google/api/expr/v1alpha1/value.proto";
-import "google/rpc/status.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "EvalProto";
-option java_package = "com.google.api.expr.v1alpha1";
-
-// The state of an evaluation.
-//
-// Can represent an inital, partial, or completed state of evaluation.
-message EvalState {
- // A single evalution result.
- message Result {
- // The id of the expression this result if for.
- int64 expr = 1;
-
- // The index in `values` of the resulting value.
- int64 value = 2;
- }
-
- // The unique values referenced in this message.
- repeated ExprValue values = 1;
-
- // An ordered list of results.
- //
- // Tracks the flow of evaluation through the expression.
- // May be sparse.
- repeated Result results = 3;
-}
-
-// The value of an evaluated expression.
-message ExprValue {
- // An expression can resolve to a value, error or unknown.
- oneof kind {
- // A concrete value.
- Value value = 1;
-
- // The set of errors in the critical path of evalution.
- //
- // Only errors in the critical path are included. For example,
- // `(<error1> || true) && <error2>` will only result in `<error2>`,
- // while `<error1> || <error2>` will result in both `<error1>` and
- // `<error2>`.
- //
- // Errors cause by the presence of other errors are not included in the
- // set. For example `<error1>.foo`, `foo(<error1>)`, and `<error1> + 1` will
- // only result in `<error1>`.
- //
- // Multiple errors *might* be included when evaluation could result
- // in different errors. For example `<error1> + <error2>` and
- // `foo(<error1>, <error2>)` may result in `<error1>`, `<error2>` or both.
- // The exact subset of errors included for this case is unspecified and
- // depends on the implementation details of the evaluator.
- ErrorSet error = 2;
-
- // The set of unknowns in the critical path of evaluation.
- //
- // Unknown behaves identically to Error with regards to propagation.
- // Specifically, only unknowns in the critical path are included, unknowns
- // caused by the presence of other unknowns are not included, and multiple
- // unknowns *might* be included included when evaluation could result in
- // different unknowns. For example:
- //
- // (<unknown[1]> || true) && <unknown[2]> -> <unknown[2]>
- // <unknown[1]> || <unknown[2]> -> <unknown[1,2]>
- // <unknown[1]>.foo -> <unknown[1]>
- // foo(<unknown[1]>) -> <unknown[1]>
- // <unknown[1]> + <unknown[2]> -> <unknown[1]> or <unknown[2[>
- //
- // Unknown takes precidence over Error in cases where a `Value` can short
- // circuit the result:
- //
- // <error> || <unknown> -> <unknown>
- // <error> && <unknown> -> <unknown>
- //
- // Errors take precidence in all other cases:
- //
- // <unknown> + <error> -> <error>
- // foo(<unknown>, <error>) -> <error>
- UnknownSet unknown = 3;
- }
-}
-
-// A set of errors.
-//
-// The errors included depend on the context. See `ExprValue.error`.
-message ErrorSet {
- // The errors in the set.
- repeated google.rpc.Status errors = 1;
-}
-
-// A set of expressions for which the value is unknown.
-//
-// The unknowns included depend on the context. See `ExprValue.unknown`.
-message UnknownSet {
- // The ids of the expressions with unknown values.
- repeated int64 exprs = 1;
-}
diff --git a/third_party/googleapis/google/api/expr/v1alpha1/explain.proto b/third_party/googleapis/google/api/expr/v1alpha1/explain.proto
deleted file mode 100644
index 23d5148..0000000
--- a/third_party/googleapis/google/api/expr/v1alpha1/explain.proto
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package google.api.expr.v1alpha1;
-
-import "google/api/expr/v1alpha1/value.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "ExplainProto";
-option java_package = "com.google.api.expr.v1alpha1";
-
-// Values of intermediate expressions produced when evaluating expression.
-// Deprecated, use `EvalState` instead.
-message Explain {
- option deprecated = true;
-
- // ID and value index of one step.
- message ExprStep {
- // ID of corresponding Expr node.
- int64 id = 1;
-
- // Index of the value in the values list.
- int32 value_index = 2;
- }
-
- // All of the observed values.
- //
- // The field value_index is an index in the values list.
- // Separating values from steps is needed to remove redundant values.
- repeated Value values = 1;
-
- // List of steps.
- //
- // Repeated evaluations of the same expression generate new ExprStep
- // instances. The order of such ExprStep instances matches the order of
- // elements returned by Comprehension.iter_range.
- repeated ExprStep expr_steps = 2;
-}
diff --git a/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto b/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto
deleted file mode 100644
index c234a02..0000000
--- a/third_party/googleapis/google/api/expr/v1alpha1/syntax.proto
+++ /dev/null
@@ -1,335 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package google.api.expr.v1alpha1;
-
-import "google/protobuf/duration.proto";
-import "google/protobuf/struct.proto";
-import "google/protobuf/timestamp.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "SyntaxProto";
-option java_package = "com.google.api.expr.v1alpha1";
-
-// A representation of the abstract syntax of the Common Expression Language.
-
-// An expression together with source information as returned by the parser.
-message ParsedExpr {
- // The parsed expression.
- Expr expr = 2;
-
- // The source info derived from input that generated the parsed `expr`.
- SourceInfo source_info = 3;
-}
-
-// 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`.
-message Expr {
- // An identifier expression. e.g. `request`.
- message Ident {
- // Required. Holds a single, unqualified identifier, possibly preceded by a
- // '.'.
- //
- // Qualified names are represented by the [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression.
- string name = 1;
- }
-
- // A field selection expression. e.g. `request.auth`.
- message Select {
- // Required. The target of the selection expression.
- //
- // For example, in the select expression `request.auth`, the `request`
- // portion of the expression is the `operand`.
- Expr operand = 1;
-
- // Required. The name of the field to select.
- //
- // For example, in the select expression `request.auth`, the `auth` portion
- // of the expression would be the `field`.
- string field = 2;
-
- // Whether the select is to be interpreted as a field presence test.
- //
- // This results from the macro `has(request.auth)`.
- bool test_only = 3;
- }
-
- // A call expression, including calls to predefined functions and operators.
- //
- // For example, `value == 10`, `size(map_value)`.
- message Call {
- // The target of an method call-style expression. For example, `x` in
- // `x.f()`.
- Expr target = 1;
-
- // Required. The name of the function or method being called.
- string function = 2;
-
- // The arguments.
- repeated Expr args = 3;
- }
-
- // A list creation expression.
- //
- // Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g.
- // `dyn([1, 'hello', 2.0])`
- message CreateList {
- // The elements part of the list.
- repeated Expr elements = 1;
- }
-
- // 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'}`.
- message CreateStruct {
- // Represents an entry.
- message Entry {
- // Required. An id assigned to this node by the parser which is unique
- // in a given expression tree. This is used to associate type
- // information and other attributes to the node.
- int64 id = 1;
-
- // The `Entry` key kinds.
- oneof key_kind {
- // The field key for a message creator statement.
- string field_key = 2;
-
- // The key expression for a map creation statement.
- Expr map_key = 3;
- }
-
- // Required. The value assigned to the key.
- //
- // If the optional_entry field is true, the expression must resolve to an
- // optional-typed value. If the optional value is present, the key will be
- // set; however, if the optional value is absent, the key will be unset.
- Expr value = 4;
-
- // Whether the key-value pair is optional.
- bool optional_entry = 5;
- }
-
- // The type name of the message to be created, empty when creating map
- // literals.
- string message_name = 1;
-
- // The entries in the creation expression.
- repeated Entry entries = 2;
- }
-
- // 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`.
- message Comprehension {
- // The name of the iteration variable.
- string iter_var = 1;
-
- // The range over which var iterates.
- Expr iter_range = 2;
-
- // The name of the variable used for accumulation of the result.
- string accu_var = 3;
-
- // The initial value of the accumulator.
- Expr accu_init = 4;
-
- // An expression which can contain iter_var and accu_var.
- //
- // Returns false when the result has been computed and may be used as
- // a hint to short-circuit the remainder of the comprehension.
- Expr loop_condition = 5;
-
- // An expression which can contain iter_var and accu_var.
- //
- // Computes the next value of accu_var.
- Expr loop_step = 6;
-
- // An expression which can contain accu_var.
- //
- // Computes the result.
- Expr result = 7;
- }
-
- // Required. An id assigned to this node by the parser which is unique in a
- // given expression tree. This is used to associate type information and other
- // attributes to a node in the parse tree.
- int64 id = 2;
-
- // Required. Variants of expressions.
- oneof expr_kind {
- // A literal expression.
- Constant const_expr = 3;
-
- // An identifier expression.
- Ident ident_expr = 4;
-
- // A field selection expression, e.g. `request.auth`.
- Select select_expr = 5;
-
- // A call expression, including calls to predefined functions and operators.
- Call call_expr = 6;
-
- // A list creation expression.
- CreateList list_expr = 7;
-
- // A map or message creation expression.
- CreateStruct struct_expr = 8;
-
- // A comprehension expression.
- Comprehension comprehension_expr = 9;
- }
-}
-
-// 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`.
-message Constant {
- // Required. The valid constant kinds.
- oneof constant_kind {
- // null value.
- google.protobuf.NullValue null_value = 1;
-
- // boolean value.
- bool bool_value = 2;
-
- // int64 value.
- int64 int64_value = 3;
-
- // uint64 value.
- uint64 uint64_value = 4;
-
- // double value.
- double double_value = 5;
-
- // string value.
- string string_value = 6;
-
- // bytes value.
- bytes bytes_value = 7;
-
- // protobuf.Duration value.
- //
- // Deprecated: duration is no longer considered a builtin cel type.
- google.protobuf.Duration duration_value = 8 [deprecated = true];
-
- // protobuf.Timestamp value.
- //
- // Deprecated: timestamp is no longer considered a builtin cel type.
- google.protobuf.Timestamp timestamp_value = 9 [deprecated = true];
- }
-}
-
-// Source information collected at parse time.
-message SourceInfo {
- // The syntax version of the source, e.g. `cel1`.
- string syntax_version = 1;
-
- // The location name. All position information attached to an expression is
- // relative to this location.
- //
- // The location could be a file, UI element, or similar. For example,
- // `acme/app/AnvilPolicy.cel`.
- string location = 2;
-
- // Monotonically increasing list of code point offsets where newlines
- // `\n` appear.
- //
- // The line number of a given position is the index `i` where for a given
- // `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The
- // column may be derivd from `id_positions[id] - line_offsets[i]`.
- repeated int32 line_offsets = 3;
-
- // A map from the parse node id (e.g. `Expr.id`) to the code point offset
- // within the source.
- map<int64, int32> positions = 4;
-
- // A map from the parse node id where a macro replacement was made to the
- // call `Expr` that resulted in a macro expansion.
- //
- // For example, `has(value.field)` is a function call that is replaced by a
- // `test_only` field selection in the AST. Likewise, the call
- // `list.exists(e, e > 10)` translates to a comprehension expression. The key
- // in the map corresponds to the expression id of the expanded macro, and the
- // value is the call `Expr` that was replaced.
- map<int64, Expr> macro_calls = 5;
-}
-
-// A specific position in source.
-message SourcePosition {
- // The soucre location name (e.g. file name).
- string location = 1;
-
- // The UTF-8 code unit offset.
- int32 offset = 2;
-
- // The 1-based index of the starting line in the source text
- // where the issue occurs, or 0 if unknown.
- int32 line = 3;
-
- // The 0-based index of the starting position within the line of source text
- // where the issue occurs. Only meaningful if line is nonzero.
- int32 column = 4;
-}
diff --git a/third_party/googleapis/google/api/expr/v1alpha1/value.proto b/third_party/googleapis/google/api/expr/v1alpha1/value.proto
deleted file mode 100644
index 2f03ef6..0000000
--- a/third_party/googleapis/google/api/expr/v1alpha1/value.proto
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package google.api.expr.v1alpha1;
-
-import "google/protobuf/any.proto";
-import "google/protobuf/struct.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "ValueProto";
-option java_package = "com.google.api.expr.v1alpha1";
-
-// Contains representations for CEL runtime values.
-
-// Represents a CEL value.
-//
-// This is similar to `google.protobuf.Value`, but can represent CEL's full
-// range of values.
-message Value {
- // Required. The valid kinds of values.
- oneof kind {
- // Null value.
- google.protobuf.NullValue null_value = 1;
-
- // Boolean value.
- bool bool_value = 2;
-
- // Signed integer value.
- int64 int64_value = 3;
-
- // Unsigned integer value.
- uint64 uint64_value = 4;
-
- // Floating point value.
- double double_value = 5;
-
- // UTF-8 string value.
- string string_value = 6;
-
- // Byte string value.
- bytes bytes_value = 7;
-
- // An enum value.
- EnumValue enum_value = 9;
-
- // The proto message backing an object value.
- google.protobuf.Any object_value = 10;
-
- // Map value.
- MapValue map_value = 11;
-
- // List value.
- ListValue list_value = 12;
-
- // Type value.
- string type_value = 15;
- }
-}
-
-// An enum value.
-message EnumValue {
- // The fully qualified name of the enum type.
- string type = 1;
-
- // The value of the enum.
- int32 value = 2;
-}
-
-// A list.
-//
-// Wrapped in a message so 'not set' and empty can be differentiated, which is
-// required for use in a 'oneof'.
-message ListValue {
- // The ordered values in the list.
- repeated Value values = 1;
-}
-
-// A map.
-//
-// Wrapped in a message so 'not set' and empty can be differentiated, which is
-// required for use in a 'oneof'.
-message MapValue {
- // An entry in the map.
- message Entry {
- // The key.
- //
- // Must be unique with in the map.
- // Currently only boolean, int, uint, and string values can be keys.
- Value key = 1;
-
- // The value.
- Value value = 2;
- }
-
- // The set of map entries.
- //
- // CEL has fewer restrictions on keys, so a protobuf map represenation
- // cannot be used.
- repeated Entry entries = 1;
-}
diff --git a/third_party/googleapis/google/api/expr/v1beta1/BUILD.bazel b/third_party/googleapis/google/api/expr/v1beta1/BUILD.bazel
deleted file mode 100644
index 819e136..0000000
--- a/third_party/googleapis/google/api/expr/v1beta1/BUILD.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
-
-# This is an API workspace, having public visibility by default makes perfect sense.
-package(default_visibility = ["//visibility:public"])
-
-proto_library(
- name = "decl_proto",
- srcs = ["decl.proto"],
- deps = [
- ":expr_proto",
- ],
-)
-
-proto_library(
- name = "eval_proto",
- srcs = ["eval.proto"],
- deps = [
- ":value_proto",
- "//google/rpc:status_proto",
- ],
-)
-
-proto_library(
- name = "expr_proto",
- srcs = ["expr.proto"],
- deps = [
- ":source_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-
-proto_library(
- name = "source_proto",
- srcs = ["source.proto"],
-)
-
-proto_library(
- name = "value_proto",
- srcs = ["value.proto"],
- deps = [
- "@com_google_protobuf//:any_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-
-proto_library(
- name = "cel_proto",
- deps = [
- ":decl_proto",
- ":eval_proto",
- ":expr_proto",
- ":source_proto",
- ":value_proto",
- "//google/rpc:status_proto",
- "@com_google_protobuf//:any_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-
-##############################################################################
-# C++
-##############################################################################
-load(
- "@com_google_googleapis_imports//:imports.bzl",
- "cc_proto_library",
-)
-
-cc_proto_library(
- name = "decl_cc_proto",
- deps = [":decl_proto"],
-)
-
-cc_proto_library(
- name = "eval_cc_proto",
- deps = [":eval_proto"],
-)
-
-cc_proto_library(
- name = "expr_cc_proto",
- deps = [":expr_proto"],
-)
-
-cc_proto_library(
- name = "source_cc_proto",
- deps = [":source_proto"],
-)
-
-cc_proto_library(
- name = "value_cc_proto",
- deps = [":value_proto"],
-)
diff --git a/third_party/googleapis/google/api/expr/v1beta1/decl.proto b/third_party/googleapis/google/api/expr/v1beta1/decl.proto
deleted file mode 100644
index d3d748b..0000000
--- a/third_party/googleapis/google/api/expr/v1beta1/decl.proto
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2019 Google LLC.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-syntax = "proto3";
-
-package google.api.expr.v1beta1;
-
-import "google/api/expr/v1beta1/expr.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "DeclProto";
-option java_package = "com.google.api.expr.v1beta1";
-
-// A declaration.
-message Decl {
- // The id of the declaration.
- int32 id = 1;
-
- // The name of the declaration.
- string name = 2;
-
- // The documentation string for the declaration.
- string doc = 3;
-
- // The kind of declaration.
- oneof kind {
- // An identifier declaration.
- IdentDecl ident = 4;
-
- // A function declaration.
- FunctionDecl function = 5;
- }
-}
-
-// The declared type of a variable.
-//
-// Extends runtime type values with extra information used for type checking
-// and dispatching.
-message DeclType {
- // The expression id of the declared type, if applicable.
- int32 id = 1;
-
- // The type name, e.g. 'int', 'my.type.Type' or 'T'
- string type = 2;
-
- // An ordered list of type parameters, e.g. `<string, int>`.
- // Only applies to a subset of types, e.g. `map`, `list`.
- repeated DeclType type_params = 4;
-}
-
-// An identifier declaration.
-message IdentDecl {
- // Optional type of the identifier.
- DeclType type = 3;
-
- // Optional value of the identifier.
- Expr value = 4;
-}
-
-// A function declaration.
-message FunctionDecl {
- // The function arguments.
- repeated IdentDecl args = 1;
-
- // Optional declared return type.
- DeclType return_type = 2;
-
- // If the first argument of the function is the receiver.
- bool receiver_function = 3;
-}
diff --git a/third_party/googleapis/google/api/expr/v1beta1/eval.proto b/third_party/googleapis/google/api/expr/v1beta1/eval.proto
deleted file mode 100644
index 0c6c4d9..0000000
--- a/third_party/googleapis/google/api/expr/v1beta1/eval.proto
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright 2019 Google LLC.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-syntax = "proto3";
-
-package google.api.expr.v1beta1;
-
-import "google/api/expr/v1beta1/value.proto";
-import "google/rpc/status.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "EvalProto";
-option java_package = "com.google.api.expr.v1beta1";
-
-// The state of an evaluation.
-//
-// Can represent an initial, partial, or completed state of evaluation.
-message EvalState {
- // A single evaluation result.
- message Result {
- // The expression this result is for.
- IdRef expr = 1;
-
- // The index in `values` of the resulting value.
- int32 value = 2;
- }
-
- // The unique values referenced in this message.
- repeated ExprValue values = 1;
-
- // An ordered list of results.
- //
- // Tracks the flow of evaluation through the expression.
- // May be sparse.
- repeated Result results = 3;
-}
-
-// The value of an evaluated expression.
-message ExprValue {
- // An expression can resolve to a value, error or unknown.
- oneof kind {
- // A concrete value.
- Value value = 1;
-
- // The set of errors in the critical path of evalution.
- //
- // Only errors in the critical path are included. For example,
- // `(<error1> || true) && <error2>` will only result in `<error2>`,
- // while `<error1> || <error2>` will result in both `<error1>` and
- // `<error2>`.
- //
- // Errors cause by the presence of other errors are not included in the
- // set. For example `<error1>.foo`, `foo(<error1>)`, and `<error1> + 1` will
- // only result in `<error1>`.
- //
- // Multiple errors *might* be included when evaluation could result
- // in different errors. For example `<error1> + <error2>` and
- // `foo(<error1>, <error2>)` may result in `<error1>`, `<error2>` or both.
- // The exact subset of errors included for this case is unspecified and
- // depends on the implementation details of the evaluator.
- ErrorSet error = 2;
-
- // The set of unknowns in the critical path of evaluation.
- //
- // Unknown behaves identically to Error with regards to propagation.
- // Specifically, only unknowns in the critical path are included, unknowns
- // caused by the presence of other unknowns are not included, and multiple
- // unknowns *might* be included included when evaluation could result in
- // different unknowns. For example:
- //
- // (<unknown[1]> || true) && <unknown[2]> -> <unknown[2]>
- // <unknown[1]> || <unknown[2]> -> <unknown[1,2]>
- // <unknown[1]>.foo -> <unknown[1]>
- // foo(<unknown[1]>) -> <unknown[1]>
- // <unknown[1]> + <unknown[2]> -> <unknown[1]> or <unknown[2[>
- //
- // Unknown takes precidence over Error in cases where a `Value` can short
- // circuit the result:
- //
- // <error> || <unknown> -> <unknown>
- // <error> && <unknown> -> <unknown>
- //
- // Errors take precidence in all other cases:
- //
- // <unknown> + <error> -> <error>
- // foo(<unknown>, <error>) -> <error>
- UnknownSet unknown = 3;
- }
-}
-
-// A set of errors.
-//
-// The errors included depend on the context. See `ExprValue.error`.
-message ErrorSet {
- // The errors in the set.
- repeated google.rpc.Status errors = 1;
-}
-
-// A set of expressions for which the value is unknown.
-//
-// The unknowns included depend on the context. See `ExprValue.unknown`.
-message UnknownSet {
- // The ids of the expressions with unknown values.
- repeated IdRef exprs = 1;
-}
-
-// A reference to an expression id.
-message IdRef {
- // The expression id.
- int32 id = 1;
-}
diff --git a/third_party/googleapis/google/api/expr/v1beta1/expr.proto b/third_party/googleapis/google/api/expr/v1beta1/expr.proto
deleted file mode 100644
index 77249ba..0000000
--- a/third_party/googleapis/google/api/expr/v1beta1/expr.proto
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright 2019 Google LLC.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-syntax = "proto3";
-
-package google.api.expr.v1beta1;
-
-import "google/api/expr/v1beta1/source.proto";
-import "google/protobuf/struct.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "ExprProto";
-option java_package = "com.google.api.expr.v1beta1";
-
-// An expression together with source information as returned by the parser.
-message ParsedExpr {
- // The parsed expression.
- Expr expr = 2;
-
- // The source info derived from input that generated the parsed `expr`.
- SourceInfo source_info = 3;
-
- // The syntax version of the source, e.g. `cel1`.
- string syntax_version = 4;
-}
-
-// 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`.
-message Expr {
- // An identifier expression. e.g. `request`.
- message Ident {
- // Required. Holds a single, unqualified identifier, possibly preceded by a
- // '.'.
- //
- // Qualified names are represented by the [Expr.Select][google.api.expr.v1beta1.Expr.Select] expression.
- string name = 1;
- }
-
- // A field selection expression. e.g. `request.auth`.
- message Select {
- // Required. The target of the selection expression.
- //
- // For example, in the select expression `request.auth`, the `request`
- // portion of the expression is the `operand`.
- Expr operand = 1;
-
- // Required. The name of the field to select.
- //
- // For example, in the select expression `request.auth`, the `auth` portion
- // of the expression would be the `field`.
- string field = 2;
-
- // Whether the select is to be interpreted as a field presence test.
- //
- // This results from the macro `has(request.auth)`.
- bool test_only = 3;
- }
-
- // A call expression, including calls to predefined functions and operators.
- //
- // For example, `value == 10`, `size(map_value)`.
- message Call {
- // The target of an method call-style expression. For example, `x` in
- // `x.f()`.
- Expr target = 1;
-
- // Required. The name of the function or method being called.
- string function = 2;
-
- // The arguments.
- repeated Expr args = 3;
- }
-
- // A list creation expression.
- //
- // Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g.
- // `dyn([1, 'hello', 2.0])`
- message CreateList {
- // The elements part of the list.
- repeated Expr elements = 1;
- }
-
- // 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'}`.
- message CreateStruct {
- // Represents an entry.
- message Entry {
- // Required. An id assigned to this node by the parser which is unique
- // in a given expression tree. This is used to associate type
- // information and other attributes to the node.
- int32 id = 1;
-
- // The `Entry` key kinds.
- oneof key_kind {
- // The field key for a message creator statement.
- string field_key = 2;
-
- // The key expression for a map creation statement.
- Expr map_key = 3;
- }
-
- // Required. The value assigned to the key.
- Expr value = 4;
- }
-
- // The type name of the message to be created, empty when creating map
- // literals.
- string type = 1;
-
- // The entries in the creation expression.
- repeated Entry entries = 2;
- }
-
- // 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`.
- message Comprehension {
- // The name of the iteration variable.
- string iter_var = 1;
-
- // The range over which var iterates.
- Expr iter_range = 2;
-
- // The name of the variable used for accumulation of the result.
- string accu_var = 3;
-
- // The initial value of the accumulator.
- Expr accu_init = 4;
-
- // An expression which can contain iter_var and accu_var.
- //
- // Returns false when the result has been computed and may be used as
- // a hint to short-circuit the remainder of the comprehension.
- Expr loop_condition = 5;
-
- // An expression which can contain iter_var and accu_var.
- //
- // Computes the next value of accu_var.
- Expr loop_step = 6;
-
- // An expression which can contain accu_var.
- //
- // Computes the result.
- Expr result = 7;
- }
-
- // Required. An id assigned to this node by the parser which is unique in a
- // given expression tree. This is used to associate type information and other
- // attributes to a node in the parse tree.
- int32 id = 2;
-
- // Required. Variants of expressions.
- oneof expr_kind {
- // A literal expression.
- Literal literal_expr = 3;
-
- // An identifier expression.
- Ident ident_expr = 4;
-
- // A field selection expression, e.g. `request.auth`.
- Select select_expr = 5;
-
- // A call expression, including calls to predefined functions and operators.
- Call call_expr = 6;
-
- // A list creation expression.
- CreateList list_expr = 7;
-
- // A map or object creation expression.
- CreateStruct struct_expr = 8;
-
- // A comprehension expression.
- Comprehension comprehension_expr = 9;
- }
-}
-
-// 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`.
-message Literal {
- // Required. The valid constant kinds.
- oneof constant_kind {
- // null value.
- google.protobuf.NullValue null_value = 1;
-
- // boolean value.
- bool bool_value = 2;
-
- // int64 value.
- int64 int64_value = 3;
-
- // uint64 value.
- uint64 uint64_value = 4;
-
- // double value.
- double double_value = 5;
-
- // string value.
- string string_value = 6;
-
- // bytes value.
- bytes bytes_value = 7;
- }
-}
diff --git a/third_party/googleapis/google/api/expr/v1beta1/source.proto b/third_party/googleapis/google/api/expr/v1beta1/source.proto
deleted file mode 100644
index 78bb0a0..0000000
--- a/third_party/googleapis/google/api/expr/v1beta1/source.proto
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2019 Google LLC.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-syntax = "proto3";
-
-package google.api.expr.v1beta1;
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "SourceProto";
-option java_package = "com.google.api.expr.v1beta1";
-
-// Source information collected at parse time.
-message SourceInfo {
- // The location name. All position information attached to an expression is
- // relative to this location.
- //
- // The location could be a file, UI element, or similar. For example,
- // `acme/app/AnvilPolicy.cel`.
- string location = 2;
-
- // Monotonically increasing list of character offsets where newlines appear.
- //
- // The line number of a given position is the index `i` where for a given
- // `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The
- // column may be derivd from `id_positions[id] - line_offsets[i]`.
- repeated int32 line_offsets = 3;
-
- // A map from the parse node id (e.g. `Expr.id`) to the character offset
- // within source.
- map<int32, int32> positions = 4;
-}
-
-// A specific position in source.
-message SourcePosition {
- // The soucre location name (e.g. file name).
- string location = 1;
-
- // The character offset.
- int32 offset = 2;
-
- // The 1-based index of the starting line in the source text
- // where the issue occurs, or 0 if unknown.
- int32 line = 3;
-
- // The 0-based index of the starting position within the line of source text
- // where the issue occurs. Only meaningful if line is nonzer..
- int32 column = 4;
-}
diff --git a/third_party/googleapis/google/api/expr/v1beta1/value.proto b/third_party/googleapis/google/api/expr/v1beta1/value.proto
deleted file mode 100644
index 0978228..0000000
--- a/third_party/googleapis/google/api/expr/v1beta1/value.proto
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2019 Google LLC.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-syntax = "proto3";
-
-package google.api.expr.v1beta1;
-
-import "google/protobuf/any.proto";
-import "google/protobuf/struct.proto";
-
-option cc_enable_arenas = true;
-option go_package = "google.golang.org/genproto/googleapis/api/expr/v1beta1;expr";
-option java_multiple_files = true;
-option java_outer_classname = "ValueProto";
-option java_package = "com.google.api.expr.v1beta1";
-
-// Represents a CEL value.
-//
-// This is similar to `google.protobuf.Value`, but can represent CEL's full
-// range of values.
-message Value {
- // Required. The valid kinds of values.
- oneof kind {
- // Null value.
- google.protobuf.NullValue null_value = 1;
-
- // Boolean value.
- bool bool_value = 2;
-
- // Signed integer value.
- int64 int64_value = 3;
-
- // Unsigned integer value.
- uint64 uint64_value = 4;
-
- // Floating point value.
- double double_value = 5;
-
- // UTF-8 string value.
- string string_value = 6;
-
- // Byte string value.
- bytes bytes_value = 7;
-
- // An enum value.
- EnumValue enum_value = 9;
-
- // The proto message backing an object value.
- google.protobuf.Any object_value = 10;
-
- // Map value.
- MapValue map_value = 11;
-
- // List value.
- ListValue list_value = 12;
-
- // A Type value represented by the fully qualified name of the type.
- string type_value = 15;
- }
-}
-
-// An enum value.
-message EnumValue {
- // The fully qualified name of the enum type.
- string type = 1;
-
- // The value of the enum.
- int32 value = 2;
-}
-
-// A list.
-//
-// Wrapped in a message so 'not set' and empty can be differentiated, which is
-// required for use in a 'oneof'.
-message ListValue {
- // The ordered values in the list.
- repeated Value values = 1;
-}
-
-// A map.
-//
-// Wrapped in a message so 'not set' and empty can be differentiated, which is
-// required for use in a 'oneof'.
-message MapValue {
- // An entry in the map.
- message Entry {
- // The key.
- //
- // Must be unique with in the map.
- // Currently only boolean, int, uint, and string values can be keys.
- Value key = 1;
-
- // The value.
- Value value = 2;
- }
-
- // The set of map entries.
- //
- // CEL has fewer restrictions on keys, so a protobuf map represenation
- // cannot be used.
- repeated Entry entries = 1;
-}