diff options
Diffstat (limited to 'third_party/googleapis/google/api/expr')
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; -}  | 
