/*
 * Generic template examples.
 */


/**
 * Provides default settings for hosts. By convention
 * all hosts should import this template.
 *
 * The CheckCommand object `hostalive` is provided by
 * the plugin check command templates.
 * Check the documentation for details.
 */
template Host "generic-host" {
  max_check_attempts = 3
  check_interval = 1m
  retry_interval = 30s

  check_command = "hostalive"
}

/**
 * Provides default settings for services. By convention
 * all services should import this template.
 */
template Service "generic-service" {
  max_check_attempts = 5
  check_interval = 1m
  retry_interval = 30s
}

/**
 * Provides default settings for users. By convention
 * all users should inherit from this template.
 */

template User "generic-user" {

}

/**
 * Provides default settings for host notifications.
 * By convention all host notifications should import
 * this template.
 */
template Notification "mail-host-notification" {
  command = "mail-host-notification"

  states = [ Up, Down ]
  types = [ Problem, Acknowledgement, Recovery, Custom,
            FlappingStart, FlappingEnd,
            DowntimeStart, DowntimeEnd, DowntimeRemoved ]

  vars += {
    // notification_icingaweb2url = "https://www.example.com/icingaweb2"
    // notification_from = "Icinga 2 Host Monitoring <icinga@example.com>"
    notification_logtosyslog = false
  }

  period = "24x7"
}

/**
 * Provides default settings for service notifications.
 * By convention all service notifications should import
 * this template.
 */
template Notification "mail-service-notification" {
  command = "mail-service-notification"

  states = [ OK, Warning, Critical, Unknown ]
  types = [ Problem, Acknowledgement, Recovery, Custom,
            FlappingStart, FlappingEnd,
            DowntimeStart, DowntimeEnd, DowntimeRemoved ]

  vars += {
    // notification_icingaweb2url = "https://www.example.com/icingaweb2"
    // notification_from = "Icinga 2 Service Monitoring <icinga@example.com>"
    notification_logtosyslog = false
  }

  period = "24x7"
}

/**
 * Provides default settings for Matrix.org service notifications.
 */

template Notification "matrix-host-notification" {
    command = "matrix-host-notification"

    states = [ Up, Down ]
    types = [ Problem, Acknowledgement, Custom, FlappingStart, FlappingEnd ]
    period = "24x7"
    vars += {
        notification_icingaweb2url = "https://{{ domain }}/icingaweb2"
    }
}

template Notification "matrix-service-notification" {
    command = "matrix-service-notification"

    states = [ OK, Critical, Unknown ]
    types = [ Problem, Acknowledgement, Custom, FlappingStart, FlappingEnd ]
    period = "24x7"
    vars += {
        notification_icingaweb2url = "https://{{ domain }}/icingaweb2"
    }
}