# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.

project:
  name: AppWithTriggerRule
  packages:
    triggerrule:
      actions:
        greeting:
          inputs:
            name: Amy
            place: Paris
          annotations:
            aaa: this is an annotation
      triggers:
        locationUpdate:
          inputs:
            name: Bernie
            place: DC
          annotations:
            bbb: this is an annotation
