# Copyright 2024 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: "errors"
imports:
  - name: " untrimmed.Import1  "
  - name: >
      punc.Import!
  - name: "bad import"
rule:
  variables:
    - name: want
      expression: spec.labels
    - name: want
      expression: "2"
    - name: missing
      expression: variables.want.filter(l, !(lin resource.labels))
    - name: bad_data
      expression: "{1:305 2:569}"
    - name: invalid
      expression: >
        resource.labels.filter(l,
          l in variables.want && variables.want[l] != resource.labels[l])
  match:
    - condition: variables.missing.size() > 0
      output: |
        "missing one or more required labels: %s".format(variables.missing])
    - condition: variables.invalid.size() > 0
      output: |
        "invalid values provided on one or more labels: %s".format([variables.invalid])
    - condition: "1 > 0"
      output: "true"
    - condition: "1 < 0"
      output: "'false'"
