/****************************************************************************** * Icinga 2 * * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software Foundation * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ type Host { %attribute string "display_name", %attribute string "hostcheck", %attribute array "hostgroups" { %attribute string "*" }, %attribute array "hostdependencies" { %attribute string "*" }, %attribute array "servicedependencies" { %attribute dictionary "*" { %require "host", %attribute string "host", %require "service", %attribute string "service" } }, %attribute dictionary "services" { %validator "ValidateServiceDictionary", %attribute dictionary "*" { %attribute array "templates" { %attribute string "*" }, %attribute string "short_name", %attribute dictionary "macros" { %attribute string "*" }, %attribute string "check_period", %attribute number "check_interval", %attribute number "retry_interval", %attribute array "servicegroups" { %attribute string "*" }, %attribute array "checkers" { %attribute string "*" }, %attribute array "hostdependencies" { %attribute string "*" }, %attribute array "servicedependencies" { %attribute dictionary "*" { %require "host", %attribute string "host", %require "service", %attribute string "service" } } } }, %attribute dictionary "notifications" { %attribute dictionary "*" { %attribute array "templates" { %attribute string "*" }, %attribute dictionary "macros" { %attribute string "*" }, %attribute array "users" { %attribute string "*" }, %attribute array "groups" { %attribute string "*" } } }, /* service attributes */ %attribute number "max_check_attempts", %attribute string "check_period", %attribute number "check_interval", %attribute number "retry_interval", %attribute number "notification_interval", %attribute dictionary "macros" { %attribute string "*" }, %attribute array "servicegroups" { %attribute string "*" }, %attribute array "checkers" { %attribute string "*" } } type HostGroup { %attribute string "display_name", %attribute string "notes_url", %attribute string "action_url" } type IcingaApplication { %attribute string "cert_path", %attribute string "ca_path", %attribute string "node", %attribute string "service", %attribute string "pid_path", %attribute string "state_path", %attribute dictionary "macros" } type Service { %require "host_name", %attribute string "host_name", %attribute string "short_name", %attribute string "display_name", %attribute dictionary "macros" { %attribute string "*" }, %attribute array "check_command" { %attribute string "*" }, %attribute string "check_command", %attribute number "max_check_attempts", %attribute string "check_period", %attribute number "check_interval", %attribute number "retry_interval", %attribute array "hostdependencies" { %attribute string "*" }, %attribute array "servicedependencies" { %attribute dictionary "*" { %require "host", %attribute string "host", %require "service", %attribute string "service" } }, %attribute array "servicegroups" { %attribute string "*" }, %attribute array "checkers" { %attribute string "*" }, %require "methods", %attribute dictionary "methods" { %require "check", %attribute string "check" }, %attribute dictionary "notifications" { %attribute dictionary "*" { %attribute array "templates" { %attribute string "*" }, %attribute dictionary "macros" { %attribute string "*" }, %attribute array "users" { %attribute string "*" }, %attribute array "groups" { %attribute string "*" } } }, %attribute number "notification_interval" } type ServiceGroup { %attribute string "display_name", %attribute string "notes_url", %attribute string "action_url" } type Notification { %require "methods", %attribute dictionary "methods" { %require "notify", %attribute string "notify" }, %require "host_name", %attribute string "host_name", %attribute string "service", %attribute dictionary "macros" { %attribute string "*" }, %attribute array "users" { %attribute string "*" }, %attribute array "groups" { %attribute string "*" }, %attribute array "notification_command" { %attribute string "*" }, %attribute string "notification_command" } type User { %attribute string "display_name", %attribute dictionary "macros" { %attribute string "*" }, %attribute array "groups" { %attribute string "*" } } type UserGroup { %attribute string "display_name", %attribute string "action_url", %attribute string "notes_url" } type TimePeriod { %require "methods", %attribute dictionary "methods" { %require "update", %attribute string "update" }, }