{'author': 'Sher Zaman (sher[at]sherz[dot]dev, https://sherz.dev)',
 'description': 'A Checkmk extension that monitors the Infoblox Cloud Services Portal through its '
                'REST API, giving visibility into NIOS-X server and DDI service health from the '
                "portal's own point of view rather than from each appliance in isolation. That "
                'distinction matters, because a server can report itself online while a service '
                'running on it has failed.\n'
                '\n'
                'Each NIOS-X server becomes a piggyback host carrying its composite status, one '
                'service per deployed DNS, DHCP, DNS Forwarding Proxy, NTP or Data Connector '
                'instance, the platform and application management services, its role and state '
                'within any DHCP high availability group, its route advertisement state for each '
                'anycast configuration it belongs to, and 24 hour peak query rate, lease rate and '
                'IPAM object count.\n'
                '\n'
                'The tenant host carries a set of views over the whole account, several of them '
                'mirroring the portal dashboard: a server rollup, service availability per service '
                'type, active DNS Forwarding Proxies, and external networks with their approval '
                'state. Alongside those it monitors DHCP high availability group health with per '
                'node state and heartbeat age, anycast configurations with advertising host counts '
                'and full BGP and OSPF detail, DHCP range utilisation, IP space rollups, DNS zone '
                'and view state including DNSSEC assertions, global DNS and DHCP configuration, '
                'Threat Defense policies and threat feed inventory, and software update deferrals. '
                'Subnet and address block utilisation is available through a discovery rule.\n'
                '\n'
                'Reported values are interpreted rather than passed through. High availability '
                'node state is read against the underlying Kea state machine, so a passive node '
                'reporting hot standby is healthy while a terminated pair, which keeps answering '
                'clients as its lease databases diverge, is not. Anycast advertising hosts are '
                'counted directly rather than inferred from the reported status, because a '
                'configuration can be labelled degraded whether it has lost one advertiser or all '
                'of them.\n'
                '\n'
                'Two boundaries are worth stating. Anycast reporting reflects what the portal '
                'believes about route advertisement, not that a route reached an upstream router, '
                'so pairing it with an active DNS check against the anycast address is '
                'recommended. Credentials found in routing configuration, the BGP neighbour '
                'password and the OSPF authentication key, are removed before any data is '
                'written.\n'
                '\n'
                'Authentication uses a portal API key. The key inherits the role of the account it '
                'belongs to, so a read only account is sufficient and recommended. Endpoints are '
                'split into two tiers: health state is queried every cycle and never cached, while '
                'configuration and inventory are queried on a configurable interval and emitted as '
                'cached sections so that Checkmk reports the data age honestly instead of '
                'presenting hour old values as current.\n'
                '\n'
                'Requires a Checkmk host for each NIOS-X server, named to match its display name '
                'in the portal, with an optional prefix for sites monitoring more than one tenant. '
                'The Dynamic Configuration Daemon piggyback connector can create those hosts '
                'automatically, and the extension emits host labels for cloud provider, deployment '
                'type, virtualisation and each deployed service type so that rules can target them '
                'without manual tagging.\n'
                '\n'
                'Tested and validated against production Infoblox Cloud Services Portal tenants.',
 'download_url': 'https://github.com/sher-zaman/Checkmk',
 'files': {'cmk_addons_plugins': ['infoblox_csp/agent_based/infoblox_csp_anycast.py',
                                  'infoblox_csp/agent_based/infoblox_csp_dhcp.py',
                                  'infoblox_csp/agent_based/infoblox_csp_dns.py',
                                  'infoblox_csp/agent_based/infoblox_csp_host.py',
                                  'infoblox_csp/agent_based/infoblox_csp_security.py',
                                  'infoblox_csp/agent_based/infoblox_csp_tenant.py',
                                  'infoblox_csp/checkman/infoblox_csp_address_block',
                                  'infoblox_csp/checkman/infoblox_csp_anycast',
                                  'infoblox_csp/checkman/infoblox_csp_anycast_node',
                                  'infoblox_csp/checkman/infoblox_csp_config',
                                  'infoblox_csp/checkman/infoblox_csp_deferral',
                                  'infoblox_csp/checkman/infoblox_csp_dfp_summary',
                                  'infoblox_csp/checkman/infoblox_csp_dhcp_global',
                                  'infoblox_csp/checkman/infoblox_csp_dns_global',
                                  'infoblox_csp/checkman/infoblox_csp_dns_view',
                                  'infoblox_csp/checkman/infoblox_csp_dns_zones',
                                  'infoblox_csp/checkman/infoblox_csp_external_network',
                                  'infoblox_csp/checkman/infoblox_csp_ha_group',
                                  'infoblox_csp/checkman/infoblox_csp_ha_node',
                                  'infoblox_csp/checkman/infoblox_csp_host',
                                  'infoblox_csp/checkman/infoblox_csp_hosts_summary',
                                  'infoblox_csp/checkman/infoblox_csp_ip_space',
                                  'infoblox_csp/checkman/infoblox_csp_range',
                                  'infoblox_csp/checkman/infoblox_csp_security_policy',
                                  'infoblox_csp/checkman/infoblox_csp_service',
                                  'infoblox_csp/checkman/infoblox_csp_service_availability',
                                  'infoblox_csp/checkman/infoblox_csp_subnet',
                                  'infoblox_csp/checkman/infoblox_csp_threat_feed',
                                  'infoblox_csp/checkman/infoblox_csp_usage',
                                  'infoblox_csp/graphing/infoblox_csp.py',
                                  'infoblox_csp/libexec/agent_infoblox_csp',
                                  'infoblox_csp/rulesets/check_parameters.py',
                                  'infoblox_csp/rulesets/discovery.py',
                                  'infoblox_csp/rulesets/special_agent.py',
                                  'infoblox_csp/server_side_calls/agent_infoblox_csp.py']},
 'license': 'GPL-2.0-only',
 'name': 'infoblox_csp',
 'title': 'Infoblox Cloud Services Portal (CSP) REST API Special Agent',
 'version': '1.6.0',
 'version.min_required': '2.3.0b1',
 'version.packaged': 'cmk-mkp-tool 3.0.0',
 'version.usable_until': '2.6.0b1'}
