-- --------------------------------------------------------
-- pgsql.sql
-- DB definition for IDO Postgresql
--
-- Copyright (c) 2009-2015 Icinga Development Team (https://www.icinga.org)
--
-- --------------------------------------------------------

--
-- Functions
--

CREATE OR REPLACE FUNCTION from_unixtime(bigint) RETURNS timestamp with time zone AS '
         SELECT to_timestamp($1) AS result
' LANGUAGE sql;

CREATE OR REPLACE FUNCTION unix_timestamp(timestamp with time zone) RETURNS bigint AS '
        SELECT EXTRACT(EPOCH FROM $1)::bigint AS result;
' LANGUAGE sql;


-- -----------------------------------------
-- set dbversion
-- -----------------------------------------

CREATE OR REPLACE FUNCTION updatedbversion(version_i TEXT) RETURNS void AS $$
BEGIN
        IF EXISTS( SELECT * FROM icinga_dbversion WHERE name='idoutils')
        THEN
                UPDATE icinga_dbversion
                SET version=version_i, modify_time=NOW()
		WHERE name='idoutils';
        ELSE
                INSERT INTO icinga_dbversion (dbversion_id, name, version, create_time, modify_time) VALUES ('1', 'idoutils', version_i, NOW(), NOW());
        END IF;

        RETURN;
END;
$$ LANGUAGE plpgsql;
-- HINT: su - postgres; createlang plpgsql icinga;



--
-- Database: icinga
--

-- --------------------------------------------------------

--
-- Table structure for table icinga_acknowledgements
--

CREATE TABLE  icinga_acknowledgements (
  acknowledgement_id bigserial,
  instance_id bigint default 0,
  entry_time timestamp with time zone default '1970-01-01 00:00:00',
  entry_time_usec INTEGER  default 0,
  acknowledgement_type INTEGER  default 0,
  object_id bigint default 0,
  state INTEGER  default 0,
  author_name TEXT  default '',
  comment_data TEXT  default '',
  is_sticky INTEGER  default 0,
  persistent_comment INTEGER  default 0,
  notify_contacts INTEGER  default 0,
  end_time timestamp with time zone default '1970-01-01 00:00:00',
  CONSTRAINT PK_acknowledgement_id PRIMARY KEY (acknowledgement_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_commands
--

CREATE TABLE  icinga_commands (
  command_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  object_id bigint default 0,
  command_line TEXT  default '',
  CONSTRAINT PK_command_id PRIMARY KEY (command_id) ,
  CONSTRAINT UQ_commands UNIQUE (instance_id,object_id,config_type)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_commenthistory
--

CREATE TABLE  icinga_commenthistory (
  commenthistory_id bigserial,
  instance_id bigint default 0,
  entry_time timestamp with time zone default '1970-01-01 00:00:00',
  entry_time_usec INTEGER  default 0,
  comment_type INTEGER  default 0,
  entry_type INTEGER  default 0,
  object_id bigint default 0,
  comment_time timestamp with time zone default '1970-01-01 00:00:00',
  internal_comment_id bigint default 0,
  author_name TEXT  default '',
  comment_data TEXT  default '',
  is_persistent INTEGER  default 0,
  comment_source INTEGER  default 0,
  expires INTEGER  default 0,
  expiration_time timestamp with time zone default '1970-01-01 00:00:00',
  deletion_time timestamp with time zone default '1970-01-01 00:00:00',
  deletion_time_usec INTEGER  default 0,
  CONSTRAINT PK_commenthistory_id PRIMARY KEY (commenthistory_id) ,
  CONSTRAINT UQ_commenthistory UNIQUE (instance_id,object_id,comment_time,internal_comment_id)
);

-- --------------------------------------------------------

--
-- Table structure for table icinga_comments
--

CREATE TABLE  icinga_comments (
  comment_id bigserial,
  instance_id bigint default 0,
  entry_time timestamp with time zone default '1970-01-01 00:00:00',
  entry_time_usec INTEGER  default 0,
  comment_type INTEGER  default 0,
  entry_type INTEGER  default 0,
  object_id bigint default 0,
  comment_time timestamp with time zone default '1970-01-01 00:00:00',
  internal_comment_id bigint default 0,
  author_name TEXT  default '',
  comment_data TEXT  default '',
  is_persistent INTEGER  default 0,
  comment_source INTEGER  default 0,
  expires INTEGER  default 0,
  expiration_time timestamp with time zone default '1970-01-01 00:00:00',
  CONSTRAINT PK_comment_id PRIMARY KEY (comment_id) ,
  CONSTRAINT UQ_comments UNIQUE (instance_id,object_id,comment_time,internal_comment_id)
)  ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_configfiles
--

CREATE TABLE  icinga_configfiles (
  configfile_id bigserial,
  instance_id bigint default 0,
  configfile_type INTEGER  default 0,
  configfile_path TEXT  default '',
  CONSTRAINT PK_configfile_id PRIMARY KEY (configfile_id) ,
  CONSTRAINT UQ_configfiles UNIQUE (instance_id,configfile_type,configfile_path)
);

-- --------------------------------------------------------

--
-- Table structure for table icinga_configfilevariables
--

CREATE TABLE  icinga_configfilevariables (
  configfilevariable_id bigserial,
  instance_id bigint default 0,
  configfile_id bigint default 0,
  varname TEXT  default '',
  varvalue TEXT  default '',
  CONSTRAINT PK_configfilevariable_id PRIMARY KEY (configfilevariable_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_conninfo
--

CREATE TABLE  icinga_conninfo (
  conninfo_id bigserial,
  instance_id bigint default 0,
  agent_name TEXT  default '',
  agent_version TEXT  default '',
  disposition TEXT  default '',
  connect_source TEXT  default '',
  connect_type TEXT  default '',
  connect_time timestamp with time zone default '1970-01-01 00:00:00',
  disconnect_time timestamp with time zone default '1970-01-01 00:00:00',
  last_checkin_time timestamp with time zone default '1970-01-01 00:00:00',
  data_start_time timestamp with time zone default '1970-01-01 00:00:00',
  data_end_time timestamp with time zone default '1970-01-01 00:00:00',
  bytes_processed bigint  default 0,
  lines_processed bigint  default 0,
  entries_processed bigint  default 0,
  CONSTRAINT PK_conninfo_id PRIMARY KEY (conninfo_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_contactgroups
--

CREATE TABLE  icinga_contactgroups (
  contactgroup_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  contactgroup_object_id bigint default 0,
  alias TEXT  default '',
  CONSTRAINT PK_contactgroup_id PRIMARY KEY (contactgroup_id) ,
  CONSTRAINT UQ_contactgroups UNIQUE (instance_id,config_type,contactgroup_object_id)
);

-- --------------------------------------------------------

--
-- Table structure for table icinga_contactgroup_members
--

CREATE TABLE  icinga_contactgroup_members (
  contactgroup_member_id bigserial,
  instance_id bigint default 0,
  contactgroup_id bigint default 0,
  contact_object_id bigint default 0,
  CONSTRAINT PK_contactgroup_member_id PRIMARY KEY (contactgroup_member_id)
);

-- --------------------------------------------------------

--
-- Table structure for table icinga_contactnotificationmethods
--

CREATE TABLE  icinga_contactnotificationmethods (
  contactnotificationmethod_id bigserial,
  instance_id bigint default 0,
  contactnotification_id bigint default 0,
  start_time timestamp with time zone default '1970-01-01 00:00:00',
  start_time_usec INTEGER  default 0,
  end_time timestamp with time zone default '1970-01-01 00:00:00',
  end_time_usec INTEGER  default 0,
  command_object_id bigint default 0,
  command_args TEXT  default '',
  CONSTRAINT PK_contactnotificationmethod_id PRIMARY KEY (contactnotificationmethod_id) ,
  CONSTRAINT UQ_contactnotificationmethods UNIQUE (instance_id,contactnotification_id,start_time,start_time_usec)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_contactnotifications
--

CREATE TABLE  icinga_contactnotifications (
  contactnotification_id bigserial,
  instance_id bigint default 0,
  notification_id bigint default 0,
  contact_object_id bigint default 0,
  start_time timestamp with time zone default '1970-01-01 00:00:00',
  start_time_usec INTEGER  default 0,
  end_time timestamp with time zone default '1970-01-01 00:00:00',
  end_time_usec INTEGER  default 0,
  CONSTRAINT PK_contactnotification_id PRIMARY KEY (contactnotification_id) ,
  CONSTRAINT UQ_contactnotifications UNIQUE (instance_id,contact_object_id,start_time,start_time_usec)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_contacts
--

CREATE TABLE  icinga_contacts (
  contact_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  contact_object_id bigint default 0,
  alias TEXT  default '',
  email_address TEXT  default '',
  pager_address TEXT  default '',
  host_timeperiod_object_id bigint default 0,
  service_timeperiod_object_id bigint default 0,
  host_notifications_enabled INTEGER  default 0,
  service_notifications_enabled INTEGER  default 0,
  can_submit_commands INTEGER  default 0,
  notify_service_recovery INTEGER  default 0,
  notify_service_warning INTEGER  default 0,
  notify_service_unknown INTEGER  default 0,
  notify_service_critical INTEGER  default 0,
  notify_service_flapping INTEGER  default 0,
  notify_service_downtime INTEGER  default 0,
  notify_host_recovery INTEGER  default 0,
  notify_host_down INTEGER  default 0,
  notify_host_unreachable INTEGER  default 0,
  notify_host_flapping INTEGER  default 0,
  notify_host_downtime INTEGER  default 0,
  CONSTRAINT PK_contact_id PRIMARY KEY (contact_id) ,
  CONSTRAINT UQ_contacts UNIQUE (instance_id,config_type,contact_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_contactstatus
--

CREATE TABLE  icinga_contactstatus (
  contactstatus_id bigserial,
  instance_id bigint default 0,
  contact_object_id bigint default 0,
  status_update_time timestamp with time zone default '1970-01-01 00:00:00',
  host_notifications_enabled INTEGER  default 0,
  service_notifications_enabled INTEGER  default 0,
  last_host_notification timestamp with time zone default '1970-01-01 00:00:00',
  last_service_notification timestamp with time zone default '1970-01-01 00:00:00',
  modified_attributes INTEGER  default 0,
  modified_host_attributes INTEGER  default 0,
  modified_service_attributes INTEGER  default 0,
  CONSTRAINT PK_contactstatus_id PRIMARY KEY (contactstatus_id) ,
  CONSTRAINT UQ_contactstatus UNIQUE (contact_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_contact_addresses
--

CREATE TABLE  icinga_contact_addresses (
  contact_address_id bigserial,
  instance_id bigint default 0,
  contact_id bigint default 0,
  address_number INTEGER  default 0,
  address TEXT  default '',
  CONSTRAINT PK_contact_address_id PRIMARY KEY (contact_address_id) ,
  CONSTRAINT UQ_contact_addresses UNIQUE (contact_id,address_number)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_contact_notificationcommands
--

CREATE TABLE  icinga_contact_notificationcommands (
  contact_notificationcommand_id bigserial,
  instance_id bigint default 0,
  contact_id bigint default 0,
  notification_type INTEGER  default 0,
  command_object_id bigint default 0,
  command_args TEXT  default '',
  CONSTRAINT PK_contact_notificationcommand_id PRIMARY KEY (contact_notificationcommand_id) ,
  CONSTRAINT UQ_contact_notificationcommands UNIQUE (contact_id,notification_type,command_object_id,command_args)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_customvariables
--

CREATE TABLE  icinga_customvariables (
  customvariable_id bigserial,
  instance_id bigint default 0,
  object_id bigint default 0,
  config_type INTEGER  default 0,
  has_been_modified INTEGER  default 0,
  varname TEXT  default '',
  varvalue TEXT  default '',
  is_json INTEGER  default 0,
  CONSTRAINT PK_customvariable_id PRIMARY KEY (customvariable_id) ,
  CONSTRAINT UQ_customvariables UNIQUE (object_id,config_type,varname)
) ;
CREATE INDEX icinga_customvariables_i ON icinga_customvariables(varname);

-- --------------------------------------------------------

--
-- Table structure for table icinga_customvariablestatus
--

CREATE TABLE  icinga_customvariablestatus (
  customvariablestatus_id bigserial,
  instance_id bigint default 0,
  object_id bigint default 0,
  status_update_time timestamp with time zone default '1970-01-01 00:00:00',
  has_been_modified INTEGER  default 0,
  varname TEXT  default '',
  varvalue TEXT  default '',
  is_json INTEGER  default 0,
  CONSTRAINT PK_customvariablestatus_id PRIMARY KEY (customvariablestatus_id) ,
  CONSTRAINT UQ_customvariablestatus UNIQUE (object_id,varname)
) ;
CREATE INDEX icinga_customvariablestatus_i ON icinga_customvariablestatus(varname);


-- --------------------------------------------------------

--
-- Table structure for table icinga_dbversion
--

CREATE TABLE  icinga_dbversion (
  dbversion_id bigserial,
  name TEXT  default '',
  version TEXT  default '',
  create_time timestamp with time zone default '1970-01-01 00:00:00',
  modify_time timestamp with time zone default '1970-01-01 00:00:00',
  CONSTRAINT PK_dbversion_id PRIMARY KEY (dbversion_id) ,
  CONSTRAINT UQ_dbversion UNIQUE (name)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_downtimehistory
--

CREATE TABLE  icinga_downtimehistory (
  downtimehistory_id bigserial,
  instance_id bigint default 0,
  downtime_type INTEGER  default 0,
  object_id bigint default 0,
  entry_time timestamp with time zone default '1970-01-01 00:00:00',
  author_name TEXT  default '',
  comment_data TEXT  default '',
  internal_downtime_id bigint default 0,
  triggered_by_id bigint default 0,
  is_fixed INTEGER  default 0,
  duration BIGINT  default 0,
  scheduled_start_time timestamp with time zone default '1970-01-01 00:00:00',
  scheduled_end_time timestamp with time zone default '1970-01-01 00:00:00',
  was_started INTEGER  default 0,
  actual_start_time timestamp with time zone default '1970-01-01 00:00:00',
  actual_start_time_usec INTEGER  default 0,
  actual_end_time timestamp with time zone default '1970-01-01 00:00:00',
  actual_end_time_usec INTEGER  default 0,
  was_cancelled INTEGER  default 0,
  is_in_effect INTEGER  default 0,
  trigger_time timestamp with time zone default '1970-01-01 00:00:00',
  CONSTRAINT PK_downtimehistory_id PRIMARY KEY (downtimehistory_id) ,
  CONSTRAINT UQ_downtimehistory UNIQUE (instance_id,object_id,entry_time,internal_downtime_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_eventhandlers
--

CREATE TABLE  icinga_eventhandlers (
  eventhandler_id bigserial,
  instance_id bigint default 0,
  eventhandler_type INTEGER  default 0,
  object_id bigint default 0,
  state INTEGER  default 0,
  state_type INTEGER  default 0,
  start_time timestamp with time zone default '1970-01-01 00:00:00',
  start_time_usec INTEGER  default 0,
  end_time timestamp with time zone default '1970-01-01 00:00:00',
  end_time_usec INTEGER  default 0,
  command_object_id bigint default 0,
  command_args TEXT  default '',
  command_line TEXT  default '',
  timeout INTEGER  default 0,
  early_timeout INTEGER  default 0,
  execution_time double precision  default 0,
  return_code INTEGER  default 0,
  output TEXT  default '',
  long_output TEXT  default '',
  CONSTRAINT PK_eventhandler_id PRIMARY KEY (eventhandler_id) ,
  CONSTRAINT UQ_eventhandlers UNIQUE (instance_id,object_id,start_time,start_time_usec)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_externalcommands
--

CREATE TABLE  icinga_externalcommands (
  externalcommand_id bigserial,
  instance_id bigint default 0,
  entry_time timestamp with time zone default '1970-01-01 00:00:00',
  command_type INTEGER  default 0,
  command_name TEXT  default '',
  command_args TEXT  default '',
  CONSTRAINT PK_externalcommand_id PRIMARY KEY (externalcommand_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_flappinghistory
--

CREATE TABLE  icinga_flappinghistory (
  flappinghistory_id bigserial,
  instance_id bigint default 0,
  event_time timestamp with time zone default '1970-01-01 00:00:00',
  event_time_usec INTEGER  default 0,
  event_type INTEGER  default 0,
  reason_type INTEGER  default 0,
  flapping_type INTEGER  default 0,
  object_id bigint default 0,
  percent_state_change double precision  default 0,
  low_threshold double precision  default 0,
  high_threshold double precision  default 0,
  comment_time timestamp with time zone default '1970-01-01 00:00:00',
  internal_comment_id bigint default 0,
  CONSTRAINT PK_flappinghistory_id PRIMARY KEY (flappinghistory_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostchecks
--

CREATE TABLE  icinga_hostchecks (
  hostcheck_id bigserial,
  instance_id bigint default 0,
  host_object_id bigint default 0,
  check_type INTEGER  default 0,
  is_raw_check INTEGER  default 0,
  current_check_attempt INTEGER  default 0,
  max_check_attempts INTEGER  default 0,
  state INTEGER  default 0,
  state_type INTEGER  default 0,
  start_time timestamp with time zone default '1970-01-01 00:00:00',
  start_time_usec INTEGER  default 0,
  end_time timestamp with time zone default '1970-01-01 00:00:00',
  end_time_usec INTEGER  default 0,
  command_object_id bigint default 0,
  command_args TEXT  default '',
  command_line TEXT  default '',
  timeout INTEGER  default 0,
  early_timeout INTEGER  default 0,
  execution_time double precision  default 0,
  latency double precision  default 0,
  return_code INTEGER  default 0,
  output TEXT  default '',
  long_output TEXT  default '',
  perfdata TEXT  default '',
  CONSTRAINT PK_hostcheck_id PRIMARY KEY (hostcheck_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostdependencies
--

CREATE TABLE  icinga_hostdependencies (
  hostdependency_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  host_object_id bigint default 0,
  dependent_host_object_id bigint default 0,
  dependency_type INTEGER  default 0,
  inherits_parent INTEGER  default 0,
  timeperiod_object_id bigint default 0,
  fail_on_up INTEGER  default 0,
  fail_on_down INTEGER  default 0,
  fail_on_unreachable INTEGER  default 0,
  CONSTRAINT PK_hostdependency_id PRIMARY KEY (hostdependency_id)
) ;
CREATE INDEX idx_hostdependencies ON icinga_hostdependencies(instance_id,config_type,host_object_id,dependent_host_object_id,dependency_type,inherits_parent,fail_on_up,fail_on_down,fail_on_unreachable);

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostescalations
--

CREATE TABLE  icinga_hostescalations (
  hostescalation_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  host_object_id bigint default 0,
  timeperiod_object_id bigint default 0,
  first_notification INTEGER  default 0,
  last_notification INTEGER  default 0,
  notification_interval double precision  default 0,
  escalate_on_recovery INTEGER  default 0,
  escalate_on_down INTEGER  default 0,
  escalate_on_unreachable INTEGER  default 0,
  CONSTRAINT PK_hostescalation_id PRIMARY KEY (hostescalation_id) ,
  CONSTRAINT UQ_hostescalations UNIQUE (instance_id,config_type,host_object_id,timeperiod_object_id,first_notification,last_notification)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostescalation_contactgroups
--

CREATE TABLE  icinga_hostescalation_contactgroups (
  hostescalation_contactgroup_id bigserial,
  instance_id bigint default 0,
  hostescalation_id bigint default 0,
  contactgroup_object_id bigint default 0,
  CONSTRAINT PK_hostescalation_contactgroup_id PRIMARY KEY (hostescalation_contactgroup_id) ,
  CONSTRAINT UQ_hostescalation_contactgroups UNIQUE (hostescalation_id,contactgroup_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostescalation_contacts
--

CREATE TABLE  icinga_hostescalation_contacts (
  hostescalation_contact_id bigserial,
  instance_id bigint default 0,
  hostescalation_id bigint default 0,
  contact_object_id bigint default 0,
  CONSTRAINT PK_hostescalation_contact_id PRIMARY KEY (hostescalation_contact_id) ,
  CONSTRAINT UQ_hostescalation_contacts UNIQUE (instance_id,hostescalation_id,contact_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostgroups
--

CREATE TABLE  icinga_hostgroups (
  hostgroup_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  hostgroup_object_id bigint default 0,
  alias TEXT  default '',
  notes TEXT  default NULL,
  notes_url TEXT  default NULL,
  action_url TEXT  default NULL,
  CONSTRAINT PK_hostgroup_id PRIMARY KEY (hostgroup_id) ,
  CONSTRAINT UQ_hostgroups UNIQUE (instance_id,hostgroup_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hostgroup_members
--

CREATE TABLE  icinga_hostgroup_members (
  hostgroup_member_id bigserial,
  instance_id bigint default 0,
  hostgroup_id bigint default 0,
  host_object_id bigint default 0,
  CONSTRAINT PK_hostgroup_member_id PRIMARY KEY (hostgroup_member_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hosts
--

CREATE TABLE  icinga_hosts (
  host_id bigserial,
  instance_id bigint default 0,
  config_type INTEGER  default 0,
  host_object_id bigint default 0,
  alias TEXT  default '',
  display_name TEXT  default '',
  address TEXT  default '',
  address6 TEXT  default '',
  check_command_object_id bigint default 0,
  check_command_args TEXT  default '',
  eventhandler_command_object_id bigint default 0,
  eventhandler_command_args TEXT  default '',
  notification_timeperiod_object_id bigint default 0,
  check_timeperiod_object_id bigint default 0,
  failure_prediction_options TEXT  default '',
  check_interval double precision  default 0,
  retry_interval double precision  default 0,
  max_check_attempts INTEGER  default 0,
  first_notification_delay double precision  default 0,
  notification_interval double precision  default 0,
  notify_on_down INTEGER  default 0,
  notify_on_unreachable INTEGER  default 0,
  notify_on_recovery INTEGER  default 0,
  notify_on_flapping INTEGER  default 0,
  notify_on_downtime INTEGER  default 0,
  stalk_on_up INTEGER  default 0,
  stalk_on_down INTEGER  default 0,
  stalk_on_unreachable INTEGER  default 0,
  flap_detection_enabled INTEGER  default 0,
  flap_detection_on_up INTEGER  default 0,
  flap_detection_on_down INTEGER  default 0,
  flap_detection_on_unreachable INTEGER  default 0,
  low_flap_threshold double precision  default 0,
  high_flap_threshold double precision  default 0,
  process_performance_data INTEGER  default 0,
  freshness_checks_enabled INTEGER  default 0,
  freshness_threshold INTEGER  default 0,
  passive_checks_enabled INTEGER  default 0,
  event_handler_enabled INTEGER  default 0,
  active_checks_enabled INTEGER  default 0,
  retain_status_information INTEGER  default 0,
  retain_nonstatus_information INTEGER  default 0,
  notifications_enabled INTEGER  default 0,
  obsess_over_host INTEGER  default 0,
  failure_prediction_enabled INTEGER  default 0,
  notes TEXT  default '',
  notes_url TEXT  default '',
  action_url TEXT  default '',
  icon_image TEXT  default '',
  icon_image_alt TEXT  default '',
  vrml_image TEXT  default '',
  statusmap_image TEXT  default '',
  have_2d_coords INTEGER  default 0,
  x_2d INTEGER  default 0,
  y_2d INTEGER  default 0,
  have_3d_coords INTEGER  default 0,
  x_3d double precision  default 0,
  y_3d double precision  default 0,
  z_3d double precision  default 0,
  CONSTRAINT PK_host_id PRIMARY KEY (host_id) ,
  CONSTRAINT UQ_hosts UNIQUE (instance_id,config_type,host_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_hoststatus
--

CREATE TABLE  icinga_hoststatus (
  hoststatus_id bigserial,
  instance_id bigint default 0,
  host_object_id bigint default 0,
  status_update_time timestamp with time zone default '1970-01-01 00:00:00',
  output TEXT  default '',
  long_output TEXT  default '',
  perfdata TEXT  default '',
  check_source TEXT  default '',
  current_state INTEGER  default 0,
  has_been_checked INTEGER  default 0,
  should_be_scheduled INTEGER  default 0,
  current_check_attempt INTEGER  default 0,
  max_check_attempts INTEGER  default 0,
  last_check timestamp with time zone default '1970-01-01 00:00:00',
  next_check timestamp with time zone default '1970-01-01 00:00:00',
  check_type INTEGER  default 0,
  last_state_change timestamp with time zone default '1970-01-01 00:00:00',
  last_hard_state_change timestamp with time zone default '1970-01-01 00:00:00',
  last_hard_state INTEGER  default 0,
  last_time_up timestamp with time zone default '1970-01-01 00:00:00',
  last_time_down timestamp with time zone default '1970-01-01 00:00:00',
  last_time_unreachable timestamp with time zone default '1970-01-01 00:00:00',
  state_type INTEGER  default 0,
  last_notification timestamp with time zone default '1970-01-01 00:00:00',
  next_notification timestamp with time zone default '1970-01-01 00:00:00',
  no_more_notifications INTEGER  default 0,
  notifications_enabled INTEGER  default 0,
  problem_has_been_acknowledged INTEGER  default 0,
  acknowledgement_type INTEGER  default 0,
  current_notification_number INTEGER  default 0,
  passive_checks_enabled INTEGER  default 0,
  active_checks_enabled INTEGER  default 0,
  event_handler_enabled INTEGER  default 0,
  flap_detection_enabled INTEGER  default 0,
  is_flapping INTEGER  default 0,
  percent_state_change double precision  default 0,
  latency double precision  default 0,
  execution_time double precision  default 0,
  scheduled_downtime_depth INTEGER  default 0,
  failure_prediction_enabled INTEGER  default 0,
  process_performance_data INTEGER  default 0,
  obsess_over_host INTEGER  default 0,
  modified_host_attributes INTEGER  default 0,
  event_handler TEXT  default '',
  check_command TEXT  default '',
  normal_check_interval double precision  default 0,
  retry_check_interval double precision  default 0,
  check_timeperiod_object_id bigint default 0,
  is_reachable INTEGER  default 0,
  CONSTRAINT PK_hoststatus_id PRIMARY KEY (hoststatus_id) ,
  CONSTRAINT UQ_hoststatus UNIQUE (host_object_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_host_contactgroups
--

CREATE TABLE  icinga_host_contactgroups (
  host_contactgroup_id bigserial,
  instance_id bigint default 0,
  host_id bigint default 0,
  contactgroup_object_id bigint default 0,
  CONSTRAINT PK_host_contactgroup_id PRIMARY KEY (host_contactgroup_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_host_contacts
--

CREATE TABLE  icinga_host_contacts (
  host_contact_id bigserial,
  instance_id bigint default 0,
  host_id bigint default 0,
  contact_object_id bigint default 0,
  CONSTRAINT PK_host_contact_id PRIMARY KEY (host_contact_id) 
)  ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_host_parenthosts
--

CREATE TABLE  icinga_host_parenthosts (
  host_parenthost_id bigserial,
  instance_id bigint default 0,
  host_id bigint default 0,
  parent_host_object_id bigint default 0,
  CONSTRAINT PK_host_parenthost_id PRIMARY KEY (host_parenthost_id)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_instances
--

CREATE TABLE  icinga_instances (
  instance_id bigserial,
  instance_name TEXT  default '',
  instance_description TEXT  default '',
  CONSTRAINT PK_instance_id PRIMARY KEY (instance_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_logentries
--

CREATE TABLE  icinga_logentries (
  logentry_id bigserial,
  instance_id bigint default 0,
  logentry_time timestamp with time zone default '1970-01-01 00:00:00',
  entry_time timestamp with time zone default '1970-01-01 00:00:00',
  entry_time_usec INTEGER  default 0,
  logentry_type INTEGER  default 0,
  logentry_data TEXT  default '',
  realtime_data INTEGER  default 0,
  inferred_data_extracted INTEGER  default 0,
  object_id bigint default NULL,
  CONSTRAINT PK_logentry_id PRIMARY KEY (logentry_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_notifications
--

CREATE TABLE  icinga_notifications (
  notification_id bigserial,
  instance_id bigint default 0,
  notification_type INTEGER  default 0,
  notification_reason INTEGER  default 0,
  object_id bigint default 0,
  start_time timestamp with time zone default '1970-01-01 00:00:00',
  start_time_usec INTEGER  default 0,
  end_time timestamp with time zone default '1970-01-01 00:00:00',
  end_time_usec INTEGER  default 0,
  state INTEGER  default 0,
  output TEXT  default '',
  long_output TEXT  default '',
  escalated INTEGER  default 0,
  contacts_notified INTEGER  default 0,
  CONSTRAINT PK_notification_id PRIMARY KEY (notification_id) ,
  CONSTRAINT UQ_notifications UNIQUE (instance_id,object_id,start_time,start_time_usec)
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_objects
--

CREATE TABLE  icinga_objects (
  object_id bigserial,
  instance_id bigint default 0,
  objecttype_id bigint default 0,
  name1 TEXT,
  name2 TEXT,
  is_active INTEGER  default 0,
  CONSTRAINT PK_object_id PRIMARY KEY (object_id) 
--  UNIQUE (objecttype_id,name1,name2)
) ;
CREATE INDEX icinga_objects_i ON icinga_objects(objecttype_id,name1,name2);

-- --------------------------------------------------------

--
-- Table structure for table icinga_processevents
--

CREATE TABLE  icinga_processevents (
  processevent_id bigserial,
  instance_id bigint default 0,
  event_type INTEGER  default 0,
  event_time timestamp with time zone default '1970-01-01 00:00:00',
  event_time_usec INTEGER  default 0,
  process_id bigint default 0,
  program_name TEXT  default '',
  program_version TEXT  default '',
  program_date TEXT  default '',
  CONSTRAINT PK_processevent_id PRIMARY KEY (processevent_id) 
) ;

-- --------------------------------------------------------

--
-- Table structure for table icinga_programstatus
--

CREATE TABLE  icinga_programstatus (
  programstatus_id bigserial,
  instance_id bigint default 0,
  program_version TEXT  default NULL,
  status_update_time timestamp with time zone default '1970-01-01 00:00:00',
  program_start_time timestamp with time zone default '1970-01-01 00:00:00',
  program_end_time timestamp with time zone default '1970-01-01 00:00:00',
  is_currently_running INTEGER  default 0,
  endpoint_name TEXT  default '',
  process_id bigint default 0,
  daemon_mode INTEGER  default 0,
  last_command_check timestamp with time zone default '1970-01-01 00:00:00',
  last_log_rotation timestamp with time zone default '1970-01-01 00:00:00',
  notifications_enabled INTEGER  default 0,
  disable_notif_expire_time timestamp with time zone default '1970-01-01 00:00:00',
  active_service_checks_enabled INTEGER  default 0,
  passive_service_checks_enabled INTEGER  default 0,
  active_host_checks_enabled INTEGER  default 0,
  passive_host_checks_enabled INTEGER  default 0,
  event_handlers_enabled INTEGER  default 0,
  flap_detection_enabled INTEGER  default 0,
  failure_prediction_enabled INTEGER  default 0,
  process_performance_data INTEGER  default 0,
  obsess_over_hosts INTEGER  def                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            