/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */

template CheckCommand "icingacli" {
	command = [ PrefixDir + "/bin/icingacli" ]
}

object CheckCommand "icingacli-businessprocess" {
	import "icingacli"

	command += [ "businessprocess", "process", "check" ]

	arguments = {
		"--config" = {
			value = "$icingacli_businessprocess_config$"
			description = "Configuration file containing your business process without file extension"
		}
		"--details" = {
			set_if = "$icingacli_businessprocess_details$"
			description = "Get details for root cause analysis"
		}
		"--state-type" = {
			value = "$icingacli_businessprocess_statetype$"
			description = "Define which state type to look at. Could be either soft or hard, overrides an eventually configured default"
		}
		"--process" = {
			value = "$icingacli_businessprocess_process$"
			description = "Business process to monitor"
			skip_key = true
			required = true
			order = -1
		}
	}

	vars.icingacli_businessprocess_details = false
}

object CheckCommand "icingacli-director" {
        import "icingacli"

        command += [ "director", "health", "check" ]

        arguments = {
                "--check" = {
                        value = "$icingacli_director_check$"
                        description = "Run only a specific test suite"
                }
                "--db" = {
                        value = "$icingacli_director_db$"
                        description = "Use a specific Icinga Web DB resource"
                }
        }
}

object CheckCommand "icingacli-elasticsearch" {
        import "icingacli"

        command += [ "elasticsearch", "check" ]

        arguments = {
                "--instance" = {
                        value = "$icingacli_elasticsearch_instance$"
                        description = "Elasticsearch instance to connect to"
                }
                "--crit" = {
                        value = "$icingacli_elasticsearch_critical$"
                        description = "Critical threshold"
                }
                "--warn" = {
                        value = "$icingacli_elasticsearch_warning$"
                        description = "Warning threshold"
                }
                "--index" = {
                        value = "$icingacli_elasticsearch_index$"
                        description = "Index pattern to use when searching"
                }
                "--filter" = {
                        value = "$icingacli_elasticsearch_filter$"
                        description = "Filter for events"
                }
                "--from" = {
                        value = "$icingacli_elasticsearch_from$"
                        description = "Negative value of time to search from now"
                }
        }

}

object CheckCommand "icingacli-x509" {
        import "icingacli"

        command += [ "x509", "check", "host" ]

        arguments = {
                "--ip" = {
                        value = "$icingacli_x509_ip$"
                        description = "A hosts IP address"
                }
                "--host" = {
                        value = "$icingacli_x509_host$"
                        description = "A hosts name"
                }
                "--port" = {
                        value = "$icingacli_x509_port$"
                        description = "The port to check in particular"
                }
                "--warning" = {
                        value = "$icingacli_x509_warning$"
                        description = "Less remaining time results in state WARNING"
                }
                "--critical" = {
                        value = "$icingacli_x509_critical$"
                        description = "Less remaining time results in state CRITICAL"
                }
                "--allow-self-signed" = {
                        set_if = "$icingacli_x509_allow_self_signed$"
                        description = "Ignore if a certificate or its issuer has been self-signed"
                }
        }
}

