Bytebase Cel Service API

CelService manages CEL (Common Expression Language) parsing and formatting operations.

Operations 2

POST /v1/cel/batchDeparse BatchDeparse #
POST /v1/cel/batchParse BatchParse #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bytebase:bytebase-celservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bytebase-celservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bytebase API Reference Cel Service API
  description: API reference for Bytebase. Every endpoint is served by your own Bytebase instance.
  version: 1.0.0
security: []
tags:
- name: CelService
  description: CelService manages CEL (Common Expression Language) parsing and formatting operations.
paths:
  /v1/cel/batchDeparse:
    post:
      tags:
      - CelService
      summary: BatchDeparse
      description: 'Converts multiple CEL AST representations back into expression strings.

        Permissions required: None'
      operationId: CelService_BatchDeparse
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bytebase.v1.BatchDeparseRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.BatchDeparseResponse'
  /v1/cel/batchParse:
    post:
      tags:
      - CelService
      summary: BatchParse
      description: 'Parses multiple CEL expression strings into AST representations.

        Permissions required: None'
      operationId: CelService_BatchParse
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bytebase.v1.BatchParseRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.BatchParseResponse'
components:
  schemas:
    bytebase.v1.BatchParseResponse:
      type: object
      properties:
        expressions:
          type: array
          items:
            $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: expressions
          description: The parsed CEL expressions as AST.
      title: BatchParseResponse
      additionalProperties: false
      description: Response message for batch parsing CEL expressions.
    google.protobuf.Timestamp:
      type: string
      examples:
      - '2023-01-15T01:30:15.01Z'
      - '2024-12-25T12:00:00Z'
      format: date-time
      description: A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (`Z`); input may use an offset from UTC.
    google.api.expr.v1alpha1.Expr.CreateStruct.Entry:
      type: object
      anyOf:
      - type: object
        properties:
          fieldKey:
            type: string
            title: field_key
            description: The field key for a message creator statement.
        title: field_key
      - type: object
        properties:
          mapKey:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
            title: map_key
            description: The key expression for a map creation statement.
        title: map_key
      unevaluatedProperties: false
      not:
        allOf:
        - anyOf:
          - required:
            - fieldKey
          - required:
            - mapKey
        - not:
            oneOf:
            - required:
              - fieldKey
            - required:
              - mapKey
      properties:
        id:
          type: string
          title: id
          format: int64
          description: "Required. An id assigned to this node by the parser which is unique\n in a given expression tree. This is used to associate type\n information and other attributes to the node."
        value:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: value
          description: "Required. The value assigned to the key.\n\n If the optional_entry field is true, the expression must resolve to an\n optional-typed value. If the optional value is present, the key will be\n set; however, if the optional value is absent, the key will be unset."
        optionalEntry:
          type: boolean
          title: optional_entry
          description: Whether the key-value pair is optional.
      title: Entry
      description: Represents an entry.
    google.api.expr.v1alpha1.Expr:
      type: object
      anyOf:
      - type: object
        properties:
          callExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Call'
            title: call_expr
            description: A call expression, including calls to predefined functions and operators.
        title: call_expr
      - type: object
        properties:
          comprehensionExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Comprehension'
            title: comprehension_expr
            description: A comprehension expression.
        title: comprehension_expr
      - type: object
        properties:
          constExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Constant'
            title: const_expr
            description: A literal expression.
        title: const_expr
      - type: object
        properties:
          identExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Ident'
            title: ident_expr
            description: An identifier expression.
        title: ident_expr
      - type: object
        properties:
          listExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.CreateList'
            title: list_expr
            description: A list creation expression.
        title: list_expr
      - type: object
        properties:
          selectExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Select'
            title: select_expr
            description: A field selection expression, e.g. `request.auth`.
        title: select_expr
      - type: object
        properties:
          structExpr:
            allOf:
            - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.CreateStruct'
            title: struct_expr
            description: A map or message creation expression.
        title: struct_expr
      unevaluatedProperties: false
      not:
        allOf:
        - anyOf:
          - required:
            - callExpr
          - required:
            - comprehensionExpr
          - required:
            - constExpr
          - required:
            - identExpr
          - required:
            - listExpr
          - required:
            - selectExpr
          - required:
            - structExpr
        - not:
            oneOf:
            - required:
              - callExpr
            - required:
              - comprehensionExpr
            - required:
              - constExpr
            - required:
              - identExpr
            - required:
              - listExpr
            - required:
              - selectExpr
            - required:
              - structExpr
      properties:
        id:
          type: string
          title: id
          format: int64
          description: "Required. An id assigned to this node by the parser which is unique in a\n given expression tree. This is used to associate type information and other\n attributes to a node in the parse tree."
      title: Expr
      description: "An abstract representation of a common expression.\n\n Expressions are abstractly represented as a collection of identifiers,\n select statements, function calls, literals, and comprehensions. All\n operators with the exception of the '.' operator are modelled as function\n calls. This makes it easy to represent new operators into the existing AST.\n\n All references within expressions must resolve to a\n [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an\n expression to be valid. A reference may either be a bare identifier `name` or\n a qualified identifier `google.api.name`. References may either refer to a\n value or a function declaration.\n\n For example, the expression `google.api.name.startsWith('expr')` references\n the declaration `google.api.name` within a\n [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the\n function declaration `startsWith`."
    bytebase.v1.BatchDeparseRequest:
      type: object
      properties:
        expressions:
          type: array
          items:
            $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: expressions
          description: The CEL expression ASTs to deparse.
      title: BatchDeparseRequest
      additionalProperties: false
      description: Request message for batch deparsing CEL expressions.
    google.api.expr.v1alpha1.Expr.Comprehension:
      type: object
      properties:
        iterVar:
          type: string
          title: iter_var
          description: "The name of the first iteration variable.\n When the iter_range is a list, this variable is the list element.\n When the iter_range is a map, this variable is the map entry key."
        iterVar2:
          type: string
          title: iter_var2
          description: "The name of the second iteration variable, empty if not set.\n When the iter_range is a list, this variable is the integer index.\n When the iter_range is a map, this variable is the map entry value.\n This field is only set for comprehension v2 macros."
        iterRange:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: iter_range
          description: The range over which the comprehension iterates.
        accuVar:
          type: string
          title: accu_var
          description: The name of the variable used for accumulation of the result.
        accuInit:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: accu_init
          description: The initial value of the accumulator.
        loopCondition:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: loop_condition
          description: "An expression which can contain iter_var, iter_var2, and accu_var.\n\n Returns false when the result has been computed and may be used as\n a hint to short-circuit the remainder of the comprehension."
        loopStep:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: loop_step
          description: "An expression which can contain iter_var, iter_var2, and accu_var.\n\n Computes the next value of accu_var."
        result:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: result
          description: "An expression which can contain accu_var.\n\n Computes the result."
      title: Comprehension
      additionalProperties: false
      description: "A comprehension expression applied to a list or map.\n\n Comprehensions are not part of the core syntax, but enabled with macros.\n A macro matches a specific call signature within a parsed AST and replaces\n the call with an alternate AST block. Macro expansion happens at parse\n time.\n\n The following macros are supported within CEL:\n\n Aggregate type macros may be applied to all elements in a list or all keys\n in a map:\n\n *  `all`, `exists`, `exists_one` -  test a predicate expression against\n    the inputs and return `true` if the predicate is satisfied for all,\n    any, or only one value `list.all(x, x < 10)`.\n *  `filter` - test a predicate expression against the inputs and return\n    the subset of elements which satisfy the predicate:\n    `payments.filter(p, p > 1000)`.\n *  `map` - apply an expression to all elements in the input and return the\n    output aggregate type: `[1, 2, 3].map(i, i * i)`.\n\n The `has(m.x)` macro tests whether the property `x` is present in struct\n `m`. The semantics of this macro depend on the type of `m`. For proto2\n messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the\n macro tests whether the property is set to its default. For map and struct\n types, the macro tests whether the property `x` is defined on `m`.\n\n Comprehensions for the standard environment macros evaluation can be best\n visualized as the following pseudocode:\n\n ```\n let `accu_var` = `accu_init`\n for (let `iter_var` in `iter_range`) {\n   if (!`loop_condition`) {\n     break\n   }\n   `accu_var` = `loop_step`\n }\n return `result`\n ```\n\n Comprehensions for the optional V2 macros which support map-to-map\n translation differ slightly from the standard environment macros in that\n they expose both the key or index in addition to the value for each list\n or map entry:\n\n ```\n let `accu_var` = `accu_init`\n for (let `iter_var`, `iter_var2` in `iter_range`) {\n   if (!`loop_condition`) {\n     break\n   }\n   `accu_var` = `loop_step`\n }\n return `result`\n ```"
    bytebase.v1.BatchDeparseResponse:
      type: object
      properties:
        expressions:
          type: array
          items:
            type: string
          title: expressions
          description: The deparsed CEL expressions as strings.
      title: BatchDeparseResponse
      additionalProperties: false
      description: Response message for batch deparsing CEL expressions.
    google.protobuf.Duration:
      type: string
      format: duration
      description: A signed duration in seconds, with up to nine fractional digits and an `s` suffix (for example, `3s` or `-0.001s`).
    google.api.expr.v1alpha1.Expr.Ident:
      type: object
      properties:
        name:
          type: string
          title: name
          description: "Required. Holds a single, unqualified identifier, possibly preceded by a\n '.'.\n\n Qualified names are represented by the\n [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression."
      title: Ident
      additionalProperties: false
      description: An identifier expression. e.g. `request`.
    google.api.expr.v1alpha1.Expr.Call:
      type: object
      properties:
        target:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: target
          description: "The target of an method call-style expression. For example, `x` in\n `x.f()`."
        function:
          type: string
          title: function
          description: Required. The name of the function or method being called.
        args:
          type: array
          items:
            $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: args
          description: The arguments.
      title: Call
      additionalProperties: false
      description: "A call expression, including calls to predefined functions and operators.\n\n For example, `value == 10`, `size(map_value)`."
    google.protobuf.NullValue:
      type: string
      title: NullValue
      enum:
      - NULL_VALUE
      description: "`NullValue` is a singleton enumeration to represent the null value for the\n `Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`."
    google.api.expr.v1alpha1.Expr.CreateList:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: elements
          description: The elements part of the list.
        optionalIndices:
          type: array
          items:
            type: integer
            format: int32
          title: optional_indices
          description: "The indices within the elements list which are marked as optional\n elements.\n\n When an optional-typed value is present, the value it contains\n is included in the list. If the optional-typed value is absent, the list\n element is omitted from the CreateList result."
      title: CreateList
      additionalProperties: false
      description: "A list creation expression.\n\n Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g.\n `dyn([1, 'hello', 2.0])`"
    google.api.expr.v1alpha1.Expr.Select:
      type: object
      properties:
        operand:
          allOf:
          - $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
          title: operand
          description: "Required. The target of the selection expression.\n\n For example, in the select expression `request.auth`, the `request`\n portion of the expression is the `operand`."
        field:
          type: string
          title: field
          description: "Required. The name of the field to select.\n\n For example, in the select expression `request.auth`, the `auth` portion\n of the expression would be the `field`."
        testOnly:
          type: boolean
          title: test_only
          description: "Whether the select is to be interpreted as a field presence test.\n\n This results from the macro `has(request.auth)`."
      title: Select
      additionalProperties: false
      description: A field selection expression. e.g. `request.auth`.
    google.api.expr.v1alpha1.Constant:
      type: object
      anyOf:
      - type: object
        properties:
          boolValue:
            type: boolean
            title: bool_value
            description: boolean value.
        title: bool_value
      - type: object
        properties:
          bytesValue:
            type: string
            title: bytes_value
            format: byte
            description: bytes value.
        title: bytes_value
      - type: object
        properties:
          doubleValue:
            type: number
            title: double_value
            format: double
            description: double value.
        title: double_value
      - type: object
        properties:
          durationValue:
            allOf:
            - $ref: '#/components/schemas/google.protobuf.Duration'
            title: duration_value
            description: "protobuf.Duration value.\n\n Deprecated: duration is no longer considered a builtin cel type."
            deprecated: true
        title: duration_value
      - type: object
        properties:
          int64Value:
            type: string
            title: int64_value
            format: int64
            description: int64 value.
        title: int64_value
      - type: object
        properties:
          nullValue:
            allOf:
            - $ref: '#/components/schemas/google.protobuf.NullValue'
            title: null_value
            description: null value.
        title: null_value
      - type: object
        properties:
          stringValue:
            type: string
            title: string_value
            description: string value.
        title: string_value
      - type: object
        properties:
          timestampValue:
            allOf:
            - $ref: '#/components/schemas/google.protobuf.Timestamp'
            title: timestamp_value
            description: "protobuf.Timestamp value.\n\n Deprecated: timestamp is no longer considered a builtin cel type."
            deprecated: true
        title: timestamp_value
      - type: object
        properties:
          uint64Value:
            type: string
            title: uint64_value
            format: int64
            description: uint64 value.
        title: uint64_value
      unevaluatedProperties: false
      not:
        allOf:
        - anyOf:
          - required:
            - boolValue
          - required:
            - bytesValue
          - required:
            - doubleValue
          - required:
            - durationValue
          - required:
            - int64Value
          - required:
            - nullValue
          - required:
            - stringValue
          - required:
            - timestampValue
          - required:
            - uint64Value
        - not:
            oneOf:
            - required:
              - boolValue
            - required:
              - bytesValue
            - required:
              - doubleValue
            - required:
              - durationValue
            - required:
              - int64Value
            - required:
              - nullValue
            - required:
              - stringValue
            - required:
              - timestampValue
            - required:
              - uint64Value
      title: Constant
      description: "Represents a primitive literal.\n\n Named 'Constant' here for backwards compatibility.\n\n This is similar as the primitives supported in the well-known type\n `google.protobuf.Value`, but richer so it can represent CEL's full range of\n primitives.\n\n Lists and structs are not included as constants as these aggregate types may\n contain [Expr][google.api.expr.v1alpha1.Expr] elements which require\n evaluation and are thus not constant.\n\n Examples of literals include: `\"hello\"`, `b'bytes'`, `1u`, `4.2`, `-2`,\n `true`, `null`."
    bytebase.v1.BatchParseRequest:
      type: object
      properties:
        expressions:
          type: array
          items:
            type: string
          title: expressions
          description: The CEL expression strings to parse.
      title: BatchParseRequest
      additionalProperties: false
      description: Request message for batch parsing CEL expressions.
    google.api.expr.v1alpha1.Expr.CreateStruct:
      type: object
      properties:
        messageName:
          type: string
          title: message_name
          description: "The type name of the message to be created, empty when creating map\n literals."
        entries:
          type: array
          items:
            $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.CreateStruct.Entry'
          title: entries
          description: The entries in the creation expression.
      title: CreateStruct
      additionalProperties: false
      description: "A map or message creation expression.\n\n Maps are constructed as `{'key_name': 'value'}`. Message construction is\n similar, but prefixed with a type name and composed of field ids:\n `types.MyType{field_id: 'value'}`."
x-provenance:
  method: harvested
  publisher: Bytebase
  source: https://api.bytebase.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)