# Refer to the Notify Action in the documentation for configuration
# details and additional examples.
---
notification:
  # Alert is the system-default notification method that displays an alert
  # in the Status tab of the UI. It has no options.
  Alert: {}

  # SMTP (Simple Mail Transfer Protocol, for sending email)
  SMTP:
    profiles:
      default:
        # description - A friendly description of this profile (for menus)
        description: Default Profile
        #
        # host - Hostname or IP address of SMTP server. Default: localhost
        #host: "localhost"
        #
        # port - Port on which to make connection. The typical values are 25,
        #        465, and 587. Port 25 is usually only usable for local (LAN)
        #        servers, as some ISPs block it for SPAM control. Port 465 is
        #        usually for SSL/TLS-originated connections to the MTA, and
        #        port 587 is for STARTTLS to the MTA. If you're not sure, it's
        #        usually best to start with 587. Default is 25.
        #port: 25
        #
        # allow_invalid_cert - if true, self-signed certificates are accepted
        #                      on secure connections; otherwise, they are not
        #                      verified.
        #allow_invalid_cert: true
        #
        # sender - email address to be used in "from" field of messages. The
        #          default is "username+reactor@hostname" where username is
        #          the user under which the Reactor service is running.
        #sender: "username+reactor@hostname"
        #
        # default_recipient - email address to use when no recipients are spec-
        #                     ified in the Notify action. This can be a list of
        #                     comma-separated values.
        default_recipient: "you@example.com"
        #
        # default_subject - default subject if the notification does not provide
        #                   one.
        #default_subject: "Notification from Reactor"
        #
        # username and password - for authentication with the MTA. If not given,
        #                         no login/auth is attempted (often acceptable
        #                         for connections to local/LAN servers).
        #username: "someuser"
        #password: "somepass"
        #
        # auth_method - Future. Don't uncomment or modify the line below.
        #auth_method: "PLAIN"
        #
        # secure: if true, an SSL/TLS connection is established to the specified
        #         port. If false, STARTTLS is attempted after connecting. It is
        #         usually NOT necessary to uncomment and use this value; please
        #         not uncomment it unless advised to do so.
        #secure: false
        #
        # ignore_tls - if true, STARTTLS is not used even if the server
        #              advertises its support. This is sometimes useful for MTA
        #              connections to servers on trusted/local/LAN networks.
        #ignore_tls: false
      administrator:
        # This is a second email profile example that sends to a different default recipient.
        # All other values are inherited from the default profile above.
        description: "Reactor system administrator"
        default_recipient: "admin@example.com"

  # Prowl example
  Prowl:
    profiles:
      default:
        # description - A friendly description of this profile (for menus)
        description: Default Profile
        #
        # apikey - (required) your Prowl API key
        #apikey: "place your key here"
        #
        # application - (optional) name of application for notification; default is
        #               "Reactor@hostname" if not specified here. Max 256 chars.
        #application: "myhostname"
        #
        # default_subject - (optional) default subject to be used when the Notify
        #                   action does not provide one. Max 1024 chars.
        #default_subject: "Reactor Notification"
        #
        #default_priority - (optional) default priority to be used when the Notify
        #                   action does not specify one. -2 through 2 inclusive.
        #                   Default: 0. Emergency (2) often does not work (a Prowl
        #                   issue).
        #default_priority: 0

  # Pushover
  Pushover:
    profiles:
      default:
        # description - A friendly description of this profile (for menus)
        description: Default Profile
        #
        # user - (required) user key from Pushover. Refer to the Reactor docs for
        #        the Notify action for info on how to get your user key.
        #user: "place-it-here"
        #
        # token - (required) token from Pushover site. Again, see the Reactor docs
        #         for info. This is the default token used for this profile if a
        #         token is not specified in the notification parameters.
        #token: "token-text"
        #
        # default_device - (optional) name of the default device to receive not-
        #                  ifications. You can leave this blank, and the default
        #                  device will be whatever the Pushover API determines. If
        #                  set here, it's the default for this profile, when no
        #                  device is specified in the Notify action itself.
        #default_device: ""
        #
        # default_title - (optional) default notification title to use for this
        #                 profile. It will be used when no title is specified in
        #                 the Notify action. If no title is specified at all, the
        #                 system default title "Reactor" will be used.
        #default_title: "Reactor Notification"

  # Syslog
  Syslog:
    profiles:
      default:
        # description - A friendly description of this profile (for menus)
        description: Default Profile
        #
        # host - (required) hostname or IP address of target syslog server
        #host: localhost
        #
        # port - (optional) port number (514 default)
        #port: 514
        #
        # protocol - (optional) TCP or UDP (UDP default)
        #            *** Currently only UDP is supported ***
        #protocol: udp
        #
        # facility - (optional) Syslog facility for these messages (default: local7)
        #facility: local7
        #
        # process - (optional) process id/name to use in datagram (default: reactor)
        #process: "reactor"

  # Telegram
  Telegram:
    profiles:
      default:
        # description - A friendly description of this profile (for menus)
        description: Default Profile
        #
        # api_url - Access URL for Telegram API. Default is https://api.telegram.org
        #api_url: https://api.telegram.org
        #
        # bot_token - (required) Bot Token, from Telegram. See: https://core.telegram.org/bots
        bot_token: "bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
        #
        # default_chat_id - (required) Default chat ID to use if not specified in message. See
        #                   this link for how to get chat ID:
        #                   https://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id
        default_chat_id: "123456789"
        #
        # default_disable_notification - Default notification flag, may be either "true"
        #                                or "false". The system default is "false"
        #                                (false == notification enabled/not disabled).
        #default_disable_notification: "false"
        #
        # default_parse_mode - Default message format/parse mode. The system default is
        #                      blank, for plain text. Other options: MarkdownV2, HTML
        #                      See: https://core.telegram.org/bots/api#formatting-options
        #default_parse_mode: ""

  # CallMeBot - DEPRECATED
  # The CallMeBot notifier is now deprecated as of 16-Nov-2023. There are no
  # current plans to remove it, but it will not receive future updates. The
  # recent changes to CallMeBots APIs have created what I feel are some serious
  # security and privacy issues in their offering. These changes have also
  # reduced this interface to a thin wrapper around HTTP requests that I
  # feel actually make using CallMeBot more complex because you're trying to
  # figure out how the config relates to their example HTTP requests -- by
  # trying to make it easier to use, this notifier now makes it harder, IMO.
  # The alternative is to use *HTTP Request* actions directly in your reactions.
  CallMeBot:
    profiles:
      default:
        # description - A friendly description of this profile (for menus)
        description: Telegram Text Message (default)
        #
        # api_url - Access URL for CallMeBot API being used. You need to select the
        #           correct API URL and parameters for the client that is receiving
        #           the messages (e.g. Telegram, Whatsapp, Facebook, etc.).
        #           The URL given below is the simple Telegram Text API for sending
        #           sending text messages to a Telegram user. API URLs and param-
        #           eter requirements for other clients can be found on the
        #           CallMeBot web site.
        api_url: http://api.callmebot.com/text.php
        #
        # api_key - (if needed) API key (use for Facebook API, WhatsApp API, etc.).
        #           If the API you are using does not require it, leave it
        #           commented out or blank.
        #api_key: "place api key here"
        #
        # source - (if needed) Source field for some APIs. If yours does not require
        #          it, leave it commented out or blank.
        #source: "source-value"
        #
        # phone - (if needed) Phone field for some APIs. If yours does not require
        #         it, leave it commented out or blank.
        #phone: "phone-number"
        #
        # user - (if needed) User field for some APIs. If yours does not require
        #        it, leave it commented out or blank.
        #user: "username"
        #
        # lang - (optional) Language/voice; default "en-US-Standard-C".
        #        See CallMeBot docs for possible values.
        #lang: "en-US-Standard-C"
        #
        # rpt - (optional) Number of times to repeat message; default: 1.
        #rpt: 1

  # The Router notifier allows a single Notify action to send the message to multple
  # destinations. "Routes" are matched to the message data, and when matched, send
  # the message to the corresponding targets.
  Router:
    profiles:
      default:
        # The "routes" section is an array; each element is a "route".
        routes:
          # All messages are sent to the Syslog notifier (no "match" clause in this
          # route means matches all messages).
          -
            targets: Syslog
          # Second route: all warnings and higher go to Alert and Pushover
          -
            match:
              priority: 3
            targets:
              - Alert
              - Pushover:
                  priority: 1  # 1 = high priority for Pushover
          # Third route: messages tagged "admin" go to the "administrator" SMTP profile.
          -
            match:
              tagged: admin
            targets:
              - SMTP:
                  profile: administrator
          # Fourth route: everything that isn't tagged "admin" gets emailed to the
          # default SMTP profile.
          -
            match:
              not_tagged: admin
            targets: SMTP
