# Copyright 2025 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
#
#    https://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.

name: "test-environment"
description: "Test environment"
container: "google.expr"
imports:
  - name: "google.expr.proto3.test.TestAllTypes"
stdlib:
  include_macros:
    - has
    - exists
  include_functions:
    - name: "_==_"
      overloads:
        - id: equals
          args: ["string", "string"]
          return: "bool"
    - name: "_||_"
      overloads:
        - id: logical_or
          args: ["bool", "bool"]
          return: "bool"
extensions:
  - name: "lists"
    version: "latest"
  - name: "sets"
    version: "latest"
variables:
  - name: "destination.ip"
    type: "string"
  - name: "origin.ip"
    type: "string"
  - name: "spec.restricted_destinations"
    type: "list<string>"
  - name: "spec.origin"
    type: "string"
  - name: "request"
    type: "map<string, dyn>"
  - name: "resource"
    type: "map<string, dyn>"
functions:
  - name: "locationCode"
    overloads:
      - id: "locationCode_string"
        args: ["string"]
        return: "string"
validators:
  - name: cel.validator.duration
  - name: cel.validator.comprehension_nesting_limit
    config:
      limit: 2
features:
  - name: cel.feature.macro_call_tracking
    enabled: true
