github.com/argoproj/argo-events@v1.9.1/examples/sensors/filter-with-multiple-expr-filters-in-or.yaml (about)

     1  # Event Payload
     2  #
     3  #  {
     4  #    "a": "b",
     5  #    "a-longer-name": 10,
     6  #    "nested": {
     7  #      "path": {
     8  #        "can-get": {
     9  #          "longer": false
    10  #        }
    11  #      }
    12  #    }
    13  #  }
    14  #
    15  
    16  apiVersion: argoproj.io/v1alpha1
    17  kind: Sensor
    18  metadata:
    19    name: with-multiple-expr-filters-in-or
    20  spec:
    21    dependencies:
    22      - name: test-dep
    23        eventSourceName: webhook
    24        eventName: example
    25        filters:
    26          # If event payload passes either one of the following filters, the event is considered a valid event.
    27          exprLogicalOperator: "or"
    28          exprs:
    29            - expr: a == "b" || c != 10   # FALSE
    30              # In 'fields', 'name' works as a small alias used inside 'expr' above,
    31              # while 'path' refers to a potentially-long JSON path in the payload.
    32              fields:
    33                - name: a
    34                  path: a
    35                - name: c
    36                  path: a-longer-name
    37            - expr: e == false   # true
    38              fields:
    39                - name: e
    40                  path: nested.path.can-get.longer
    41          # result: EVENT PASS
    42    triggers:
    43      - template:
    44          name: workflow
    45          k8s:
    46            operation: create
    47            source:
    48              resource:
    49                apiVersion: argoproj.io/v1alpha1
    50                kind: Workflow
    51                metadata:
    52                  generateName: workflow-
    53                spec:
    54                  entrypoint: whalesay
    55                  arguments:
    56                    parameters:
    57                      - name: message
    58                        # value will get overridden by the event payload
    59                        value: hello world
    60                  templates:
    61                    - name: whalesay
    62                      inputs:
    63                        parameters:
    64                          - name: message
    65                      container:
    66                        image: docker/whalesay:latest
    67                        command: [cowsay]
    68                        args: ["{{inputs.parameters.message}}"]
    69            parameters:
    70              - src:
    71                  dependencyName: test-dep
    72                  dataKey: name
    73                dest: spec.arguments.parameters.0.value