Configuration = {
    "enabled": ('Enabled',True),
    "license": ('License',None),
    # License of the inspection project. Two consumers:
    #   SERVER-1943: cronjob results from inspection jobs are sent there
    #                instead of the default project (dropped, not fallen back,
    #                when this is empty).
    #   SERVER-1968: the parsed pcode is reported as inspectionPcode in
    #                server_inventory so the server can map pcode -> oid for
    #                OPM agent-list filtering. Unset/invalid -> key omitted.
    # Default is "" rather than None: inspection_forwarder compares the polled
    # value against the previous one and treats a falsy value as "no target".
    "inspection.license": ('InspectionLicense', ""),
    "whatap.server.host": ('WhatapHost', ''),
    "whatap.server.port":  ('WhatapPort', 6600),
    "cypher_level":  ('CypherLevel',128),
    "EncryptLevel": 0,

    "time_sync_interval": ('TimeSyncInterval',30),

    "downcheck.listen.enabled":    ('DownCheckListenEnabled', False),
    "downcheck.enabled":    ('DownCheckEnabled', False),
    "downcheck.interval":   ('DownCheckInterval',0),
    "downcheck.timeout":    ('DownCheckTimeout',0),
    "downcheck.concurrent": ('DownCheckConcurrent',0),
    "downcheck.target":  ('DownCheckTargetStr',""),
    "downcheck.concurrent": ('DownCheckConcurrent', 0),
    "peer.port": ('PeerPort', 10120),

    "createdtime":         ('CreatedTime',0),

    "tag.agent": ('Tags',''),
    "sample_type": ('SampleType',None),

    "execution.cache.timeout": ('ExecutionScriptCacheTimeout', 60000),

    "debug": ('Debug',False),

    "log.line.limit": ('LogLineLimit', 60),
    "file.count.interval": ('FileCountInterval', 60),

    "housekeeping.enabled":('HouseKeepEnabled', True),
    "housekeeping.hour": ('HouseKeepHour', 2),
    # Minute-of-hour for the scheduled housekeeping restart (SERVER-1850).
    # Combined with housekeeping.hour, the watchdog restarts the child at or
    # after HouseKeepHour:HouseKeepMinute so many agents can be spread across a
    # window instead of all firing on the same hour boundary. Default 0 keeps the
    # legacy behavior (any minute within HouseKeepHour).
    "housekeeping.minute": ('HouseKeepMinute', 0),
	"housekeeping.cooltime": ('HouseKeepCooltime', 12),
    "healthcheck.cooltime": ('HealthCheckCoolTime', 3),
    "agentless.interval": ("AgentlessInterval", 60000),
    "agentless.timeout":("AgentlessTimeout", 10000),
    "agentless.concurrent":('AgentlessConcurrent', 5),
    "agentless.items":('AgentlessItems', []),

    "sunos.memstat.enabled":("SunosMdbEnabled", False),
    "sunos.memstat.interval": ("MemstatInterval", 30),
    "sunos.disk.quota.enabled": ("SunosDiskQuotaEnabled", False),
    "aix.diskstat.interval": ("DiskstatInterval", 5),
    # SERVER-1847: timeout (seconds) for AIX disk topology commands
    # (lspv / lsvg). The old hardcoded 1s was far too short for large SAN
    # boxes, so even normal commands timed out. Raised default and made it
    # configurable.
    "aix.disk.cmd.timeout": ("DiskCmdTimeout", 5),
    "process.fdcheck":('serverProcessFDCheck', False),
    "process.connectcheck":('serverProcessConnectCheck', False),
    "process.moncheck": ("serverProcessMonCheck", True),
    "tcpcheck_timeout": ("tcpcheck_timeout", 4),
    "process_update_interval": ("process_update_interval", 20),
    "oid": ("oid",0),
    "oname": ("oname", ''),

    "task_timeout_except": ("task_timeout_except", True),
    "task_timeout": ("task_timeout", 2),
    "task_health_check_count": ("task_health_check_count", 5),
    "task_disk": ("task_disk", True),
    "disk.io.enabled": ("DiskIOEnabled", True),
    # SERVER-1988: regex to exclude filesystems from collection. A filesystem
    # whose mount point or device id matches this pattern (re.search) is not
    # sent in either server_disk or infra_filesystem. Snapshot-style mounts
    # that always report ~100% usage can be dropped this way. Empty disables.
    # An invalid regex is logged and ignored (collection keeps running).
    "filesystem.exclude.pattern": ("FilesystemExcludePattern", ""),
    "task_osinfo": ("task_osinfo", True),
    "task_base": ("task_base", True),
    "task_net": ("task_net", True),
    "task_proc": ("task_proc", True),
    "task_config": ("task_config", True),
    "task_filesystem": ("task_filesystem", True),
    "task_tcpcheck": ("task_tcpcheck", True),
    "task_logevent": ("task_logevent", True),

    "hostinfov2.enabled":("HostInfoV2Enabled", False),
    "categoryv1.enabled":("CategoryV1Enabled", True),
    "categoryv2.enabled":("CategoryV2Enabled", False),

    "categoryv2.interval":("CategoryV2Interval", 2),
    "categoryv2.folding.interval":("CategoryV2FoldingInterval", 5),

    # infra_os_parameter category (SERVER-1794): OS parameter collection.
    # infra_os_parameter.custom holds extra parameters requested by the user,
    # comma separated, each "parameter" or "parameter:category".
    "infra_os_parameter.enabled":("InfraOsParameterEnabled", True),
    "infra_os_parameter.interval":("InfraOsParameterInterval", 3600),
    "infra_os_parameter.custom":("InfraOsParameterCustom", ""),

    "ipreg":("ipreg", False),
    "log.size":("logSize", 4), 
    "log.backup":("logBackup", 3),
    "log.path":("logPath", "/var/log"),

    "aix.errpt.enabled":("ErrptReditectEnabled", True),
    "aix.errpt.Interval":("ErrptReditectInterval", 60),
    "aix.errpt.log.path":("ErrptLogPath", "/var/log/whatap_errpt_message.log"),
    "aix.errpt.log.size":("ErrptLogSize", 4),
    "aix.errpt.log.backup":("ErrptLogFileCount", 3),

    "package.dir":("PackageDir", "/tmp/whatap-package"),

    "cronjob.enabled":("CronjobEnabled", False),
    "cronjob.path":("CronjobPath", "/usr/whatap/infra/cronjob"),
    "cronjob.conf":("CronjobConf", "cronjob.json"),
    "cronjob.timeout":("CronjobTimeout", 5),

    # syncConfig retransmission: a sync request whose setConfig response is not
    # echoed back within syncconfig.response.timeout.sec seconds is resent up to
    # syncconfig.retry.count times.
    "syncconfig.retry.count":("SyncConfigRetryCount", 5),
    "syncconfig.response.timeout.sec":("SyncConfigResponseTimeout", 10),

    # infra_process_topn: comma-separated list of up to 5 environment variable
    # names to collect per process. Opt-in (empty by default). Collected values
    # are emitted in fixed fields env1~env5 as "NAME=value" strings.
    "process.topn.envkeys":("ProcessTopNEnvKeys", ""),

    # Hang guards for the server TCP session (SERVER data-gap investigation).
    # A blocking connect()/sendall() on a half-open connection can stall the
    # thread that drives it (the counter manager), which the watchdog then reads
    # as a hang and restarts the child. These bound those calls. 0 disables a
    # guard. No recv timeout is set on purpose: the receiver thread is meant to
    # block waiting for server pushes, so a recv timeout would churn idle links.
    "net.connect.timeout.sec":("NetConnectTimeout", 10),
    "net.send.timeout.sec":("NetSendTimeout", 30),
    # Timeout for the HP-UX getsockname netstat fallback in TcpSession.__open.
    "netstat.command.timeout.sec":("NetstatCommandTimeout", 5),

    # G3: warn (throttled) when the sender's outbound queue backs up beyond this
    # size, i.e. data is piling up locally while it cannot reach the server; 0
    # disables. G4: mark the session unhealthy if no send has SUCCEEDED within
    # this many seconds - send-side stall detection, faster and more specific
    # than the receive-staleness check; 0 disables (SERVER data-gap invest.).
    "sender.backlog.warn.size":("SenderBacklogWarnSize", 1000),
    "net.send.stale.limit.sec":("NetSendStaleLimit", 0),

}
