{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/logicmonitor/main/json-schema/logicmonitor-config-source-schema.json", "title": "ConfigSource", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/logicmonitor-configsources-api-openapi.yml#/components/schemas/ConfigSource", "type": "object", "properties": { "accessGroups": { "description": "Module's access groups", "type": "array", "items": { "$ref": "#/$defs/AccessGroup" } }, "displayName": { "description": "The ConfigSource display name", "type": "string" }, "description": { "description": "The description for the LMModule", "type": "string" }, "appliesTo": { "description": "The Applies To for the LMModule", "type": "string" }, "lineageId": { "description": "The lineageId the LMModule belongs to", "readOnly": true, "type": "string" }, "collectMethod": { "description": "The method to collect data", "type": "string" }, "originRegistryId": { "description": "The Registry ID of the Exchange Integration this module is based from, including this field will set this as the module's import base and mark the ID's version as audited", "type": "string" }, "checksum": { "description": "The metadata checksum for the LMModule content", "readOnly": true, "type": "string" }, "id": { "format": "int32", "description": "The ID of the LMModule", "readOnly": true, "type": "integer" }, "accessGroupIds": { "uniqueItems": true, "description": "The Access Groups Id's", "type": "array", "items": { "format": "int32", "description": "The Access Groups Id's", "type": "integer" } }, "group": { "description": "The group the LMModule is in", "type": "string" }, "collectorAttribute": { "description": "Collector attribute", "readOnly": false, "$ref": "#/$defs/CollectorAttribute" }, "autoDiscoveryConfig": { "description": "Auto discovery configuration", "readOnly": false, "$ref": "#/$defs/AutoDiscoveryConfiguration" }, "adParameters": { "$ref": "#/$defs/DataSource" }, "configChecks": { "description": "The List of ConfigChecks", "type": "array", "items": { "$ref": "#/$defs/ConfigCheck" } }, "enableAutoDiscovery": { "description": "Enable active discovery if ConfigSource has multiple instances. true|false", "type": "boolean" }, "technology": { "description": "The Technical Notes for the LMModule", "type": "string" }, "version": { "format": "int64", "description": "The ConfigSource version", "type": "integer" }, "tags": { "description": "The Tags for the LMModule", "type": "string" }, "auditVersion": { "format": "int64", "description": "The ConfigSource audit version", "type": "integer" }, "hasMultiInstances": { "description": "Whether the ConfigSource has multiple instances. true|false", "type": "boolean" }, "installationMetadata": { "description": "The local module's IntegrationMetadata, readable for troubleshooting purposes", "readOnly": true, "$ref": "#/$defs/IntegrationMetadata" }, "collectInterval": { "format": "int32", "description": "The ConfigSource data collect interval", "type": "integer" }, "name": { "description": "The config source name", "type": "string" }, "timestampFormat": { "description": "Timestamp format. ex. yyyy-MM-dd hh:mm:ss", "type": "string" }, "isInUse": { "description": "Whether the LM module is currently in use", "readOnly": true, "type": "boolean" }, "fileFormat": { "description": "Configuration file format. The values can be arbitrary|unix|java-properties|JSON|XML", "type": "string" } }, "$defs": { "AccessGroup": { "description": "Module's access groups", "type": "object", "required": [ "name" ], "properties": { "createdBy": { "description": "User who created access group", "readOnly": true, "type": "string" }, "name": { "description": "The name of the access group", "type": "string" }, "tenantId": { "description": "Tenancy details", "type": "string" }, "description": { "description": "Description about access group", "type": "string" }, "id": { "format": "int32", "description": "The id of the access group", "readOnly": true, "type": "integer" }, "updatedOn": { "format": "int64", "description": "Time when access group updated", "readOnly": true, "type": "integer" }, "createdOn": { "format": "int64", "description": "Time when access group created", "readOnly": true, "type": "integer" } } }, "AutoDiscoveryConfiguration": { "description": "Auto discovery configuration", "type": "object", "required": [ "method" ], "properties": { "persistentInstance": { "description": "Persist discovered instance", "type": "boolean" }, "scheduleInterval": { "format": "int32", "description": "Auto discovery schedule interval in minutes. 0 means host or data source changed. The values can be 0|15|60|1440", "type": "integer" }, "deleteInactiveInstance": { "description": "Delete inactive instance", "type": "boolean" }, "method": { "$ref": "#/$defs/AutoDiscoveryMethod" }, "instanceAutoGroupMethod": { "description": "Auto group method. The values can be none|netscaler|netscalerservicegroup|regex|esx|ilp", "type": "string" }, "instanceAutoGroupMethodParams": { "description": "Auto group method's parameters", "type": "string" }, "filters": { "type": "array", "items": { "$ref": "#/$defs/AutoDiscoveryFilter" } }, "disableInstance": { "description": "Disable discovered instance", "type": "boolean" }, "showDeletedInstanceDays": { "format": "int32", "description": "show deleted instance days", "type": "integer" } } }, "AutoDiscoveryFilter": { "type": "object", "required": [ "attribute", "operation" ], "properties": { "comment": { "description": "The filter comment", "type": "string" }, "attribute": { "description": "Attribute to filter", "type": "string" }, "operation": { "description": "The filter's operation. The values can be : Equal|NotEqual|GreaterThan|GreaterEqual|LessThan|LessEqual|Contain|NotContain|NotExist|RegexMatch|RegexNotMatch", "type": "string" }, "value": { "description": "The operation value", "type": "string" } } }, "AutoDiscoveryMethod": { "description": "Method used to do auto discovery instance", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The auto discovery method name. \nThe values can be ad_cim|ad_cloudwatch|ad_collector|ad_dummy|ad_ec2|ad_esx|ad_http|ad_ipmi|ad_jdbc|ad_jmx|ad_netapp|ad_pdh|ad_port|ad_script|ad_snmp|ad_wmi|ad_xen|ad_azurerediscache|ad_awsserviceregion|ad_awsec2reservedinstance|ad_awsecsservice|ad_awsec2scheduledevents|ad_azureserviceregion|ad_azuresubscription|ad_azurebackupjob|ad_azuresdk|ad_azurewebjob|ad_awsbillingreport|ad_awselasticache|ad_awsredshift|ad_azurebilling|ad_awslbtargetgroups|ad_gcpappengine|ad_gcpbilling|ad_awsvpntunnel|ad_gcpvpntunnel|ad_awsglobalwebacl|ad_gcplbbackendservice|ad_gcppubsubsubscription|ad_gcppubsubsnapshot|ad_gcpcloudrouternatgateway|ad_azurereplicationjob|ad_azureexpressroutecircuitpeering|ad_awsapigatewaystage|ad_azureautomationaccountcertificate|ad_azurevngconnection|ad_azurewebappinstance|ad_azureappserviceenvironmentmultirolepool|ad_openmetrics|ad_awsmediaconnectoutput|ad_awsmediaconnectsource|ad_awswebaclwafv2|ad_saaso365sharepointsite|ad_awscognitoidentityproviders|ad_saaszoomplanusage|ad_saasstatus|ad_azuresynapse|ad_saasairbrake|ad_syntheticsselenium|ad_azurevirtualdesktopsessionhosts|ad_saaso365subscribedsku|ad_azuredimension|ad_azurecostmanagementdimensions|ad_saaso365servicehealth|ad_saaso365mailbox|ad_azurenetappvolumes|ad_azureloganalyticsworkspaces|ad_saaszoomstatus|ad_saassalesforcelicense|ad_saaszoomroom|ad_saaswebexlicenseusage|ad_azureloganalyticsreplicationjob|ad_paasjsonpath|ad_awsrabbitmqqueue|ad_awssagemakerendpointvariant|ad_awsroute53resolveripaddress|ad_saasopenaiusagecost|ad_saasopenaiusagecompletion|ad_saasopenaiusageimage|ad_awsamprulegroups|ad_awsampanomalydetectors", "type": "string" } } }, "CollectorAttribute": { "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The data collector's name", "type": "string" } } }, "ConfigCheck": { "description": "The List of ConfigChecks", "type": "object", "properties": { "ackClearAlert": { "description": "Clear alert after ACKED or not", "type": "boolean" }, "originId": { "description": "Portable id for origin tracking", "type": "string" }, "name": { "description": "The ConfigCheck name", "type": "string" }, "alertLevel": { "format": "int32", "description": "The triggered alert level if config check failure.\nThe values can be 1|2|3|4\nwhere, 1: no alert, 2: warn alert, 3: error alert, 4: critical alert", "type": "integer" }, "description": { "description": "The ConfigCheck description", "type": "string" }, "configSourceId": { "format": "int32", "description": "The ConfigSource id", "type": "integer" }, "id": { "format": "int32", "description": "The ConfigCheck id", "type": "integer" }, "type": { "description": "The ConfigCheck type. The values can be fetch|ignore|missing|value|groovy", "type": "string" }, "alertEffectiveIval": { "format": "int32", "description": "Alert effective interval", "type": "integer" }, "script": { "description": "The ConfigCheck script", "readOnly": false, "$ref": "#/$defs/JSONObject" }, "alertTransitionInterval": { "format": "int32", "description": "The count that the alert must exist for these many poll cycles before it will be triggered", "type": "integer" } } }, "DataPoint": { "description": "The data point list", "type": "object", "required": [ "name" ], "properties": { "alertForNoData": { "format": "int32", "description": "The triggered alert level if we cannot collect data for this datapoint. The values can be 0-4 (0:unused alert, 1:alert ok, 2:warn alert, 2:error alert, 4:critical alert)", "type": "integer" }, "postProcessorMethod": { "description": "The post processor method for the data value. Currently support complex expression and groovy.", "type": "string" }, "postProcessorParam": { "description": "The post processor parameter, e.g. dataPoint1*2", "type": "string" }, "maxDigits": { "format": "int32", "description": "The max digits of the data value", "type": "integer" }, "rawDataFieldName": { "description": "The name of the raw data field name used to fetch value, e.g. avgrtt, output", "type": "string" }, "description": { "description": "The datapoint description", "type": "string" }, "alertClearTransitionInterval": { "format": "int32", "description": "The count that the alert must exist for this many poll cycles before the alert will be cleared", "type": "integer" }, "userParam3": { "description": "The third user parameter will be used to fetch the datapoint value. ", "type": "string" }, "userParam2": { "description": "The second user parameter will be used to fetch the datapoint value. e.g. jmx attribute name", "type": "string" }, "type": { "format": "int32", "description": "The data metric type. The values can be 0-7 (0:unknown, 1:counter, 2:gauge, 3:derive, 5:status, 6:compute, 7:counter32, 8:counter64)", "type": "integer" }, "dataSourceId": { "format": "int32", "description": "The datasource id", "readOnly": true, "type": "integer" }, "minValue": { "description": "The minimum value of the datapoint value range", "type": "string" }, "alertBody": { "description": "The customized alert message body define. Empty string mean we will use the define in default template", "type": "string" }, "originId": { "description": "Portable id for origin tracking", "type": "string" }, "userParam1": { "description": "The first user parameter will be used to fetch the datapoint value. e.g. snmp oid", "type": "string" }, "alertSubject": { "description": "The customized alert message subject define. Empty string mean we will use the define in default template", "type": "string" }, "id": { "format": "int32", "description": "The datapoint id", "readOnly": true, "type": "integer" }, "alertTransitionInterval": { "format": "int32", "description": "The count that the alert must exist for this many poll cycles before it will be triggered", "type": "integer" }, "enableAnomalyAlertSuppression": { "description": "Expression of anomaly detection setting, split by comma\n0 means off, 1 means on, -1 means invalid\n1,0,1 = warn : ON error: OFF critical: ON\nEmpty value on this parameter means : 0,0,0", "type": "string" }, "maxValue": { "description": "The max value of the datapoint value range", "type": "string" }, "dataType": { "format": "int32", "description": "The data value type. The values can be 1-8 (1:boolean, 2:byte, 3:short, 4:int, 5:long, 6:float, 7:double, 8:ulong)", "type": "integer" }, "criticalAdAdvSetting": { "description": "Enable anomaly detection advance setting for CRITICAL severity", "type": "string" }, "alertExprNote": { "description": "alert expression note", "type": "string" }, "adAdvSettingEnabled": { "description": "The AD advance setting enable flag", "type": "boolean" }, "errorAdAdvSetting": { "description": "Enable anomaly detection advance setting for ERROR severity", "type": "string" }, "warnAdAdvSetting": { "description": "Enable anomaly detection advance setting for WARN severity", "type": "string" }, "name": { "description": "The datapoint name", "type": "string" }, "statusDisplayNames": { "description": "The status display name list", "type": "array", "items": { "$ref": "#/$defs/StatusDisplayName" } }, "alertExpr": { "description": "The alert threshold define for the datapoint. e.g. '> 60 80 90' mean it will: \ntrigger warn alert if value > 60\ntrigger error alert if value > 80\ntrigger critical alert if value > 90", "type": "string" } } }, "DataSource": { "type": "object", "required": [ "collectInterval", "collectMethod", "collectorAttribute", "name" ], "properties": { "eriDiscoveryConfig": { "description": "Enable ERI Discovery or not", "readOnly": false, "$ref": "#/$defs/ScriptERIDiscoveryAttributeV3" }, "accessGroups": { "description": "Module's access groups", "type": "array", "items": { "$ref": "#/$defs/AccessGroup" } }, "displayName": { "description": "The data source display name", "type": "string" }, "description": { "description": "The description for the LMModule", "type": "string" }, "appliesTo": { "description": "The Applies To for the LMModule", "type": "string" }, "lineageId": { "description": "The lineageId the LMModule belongs to", "readOnly": true, "type": "string" }, "collectMethod": { "description": "The method to collect data. The values can be snmp|ping|exs|webpage|wmi|cim|datadump|dns|ipmi|jdbb|script|udp|tcp|xen", "type": "string" }, "originRegistryId": { "description": "The Registry ID of the Exchange Integration this module is based from, including this field will set this as the module's import base and mark the ID's version as audited", "type": "string" }, "checksum": { "description": "The metadata checksum for the LMModule content", "readOnly": true, "type": "string" }, "dataPoints": { "description": "The data point list", "type": "array", "items": { "$ref": "#/$defs/DataPoint" } }, "id": { "format": "int32", "description": "The ID of the LMModule", "readOnly": true, "type": "integer" }, "accessGroupIds": { "uniqueItems": true, "description": "The Access Groups Id's", "type": "array", "items": { "format": "int32", "description": "The Access Groups Id's", "type": "integer" } }, "group": { "description": "The group the LMModule is in", "type": "string" }, "collectorAttribute": { "description": "Data collector's attributes to collector data. e.g. a ping data source has a ping collector attribute. \n PingCollectorAttributeV1 has two fields. the ip to ping, the data size send to ping", "readOnly": false, "$ref": "#/$defs/CollectorAttribute" }, "autoDiscoveryConfig": { "description": "Auto discovery configuration", "readOnly": false, "$ref": "#/$defs/AutoDiscoveryConfiguration" }, "adParameters": { "$ref": "#/$defs/DataSource" }, "payloadVersion": { "format": "int32", "description": "The DataSource payload version for custom metrics", "readOnly": true, "type": "integer" }, "useWildValueAsUUID": { "description": "Use wild-value as unique identifier in case of multi instance datasource: true|false", "readOnly": true, "type": "boolean" }, "enableAutoDiscovery": { "description": "Enable Auto Discovery or not when this data source has multi instance: false|true", "type": "boolean" }, "technology": { "description": "The Technical Notes for the LMModule", "type": "string" }, "version": { "format": "int64", "description": "The data source version", "readOnly": true, "type": "integer" }, "tags": { "description": "The Tags for the LMModule", "type": "string" }, "auditVersion": { "format": "int64", "description": "The data source audit version", "readOnly": true, "type": "integer" }, "hasMultiInstances": { "description": "If the DataSource has multi instance: true|false", "readOnly": true, "type": "boolean" }, "installationMetadata": { "description": "The local module's IntegrationMetadata, readable for troubleshooting purposes", "readOnly": true, "$ref": "#/$defs/IntegrationMetadata" }, "eriDiscoveryInterval": { "format": "int32", "description": "The DataSource data collect interval", "type": "integer" }, "enableEriDiscovery": { "description": "Enable ERI Discovery or not: false|true", "type": "boolean" }, "collectInterval": { "format": "int32", "description": "The DataSource data collect interval", "type": "integer" }, "name": { "description": "The data source name", "type": "string" }, "isInUse": { "description": "Whether the LM module is currently in use", "readOnly": true, "type": "boolean" } } }, "IntegrationMetadata": { "description": "The local module's IntegrationMetadata, readable for troubleshooting purposes", "readOnly": true, "type": "object", "properties": { "targetLastPublishedId": { "description": "Specifies the target last published Id", "readOnly": true, "type": "string" }, "targetLastPublishedChecksum": { "description": "The metadata checksum for the target last published LMModule content", "readOnly": true, "type": "string" }, "targetLastPublishedVersion": { "description": "Specifies the target last published version", "readOnly": true, "type": "string" }, "originChecksum": { "description": "The metadata checksum for the LMModule content", "readOnly": true, "type": "string" }, "originAuthorNamespace": { "description": "Specifies the origin Author companies namespace", "readOnly": true, "type": "string" }, "originLocator": { "description": "Specifies the origin version locator", "readOnly": true, "type": "string" }, "isChangedFromOrigin": { "description": "Specifies if the Applies To function is changed from origin or not", "readOnly": true, "type": "boolean" }, "auditedRegistryId": { "description": "Specifies the audited registry Id", "readOnly": true, "type": "string" }, "targetLineageId": { "description": "Specifies the target lineage Id", "readOnly": true, "type": "string" }, "logicModuleType": { "description": "The values can be DataSources | EventSources | PropertySources | ConfigSources | LogSources | TopologySources | Jobmonitors | AppliesTo Functions | SNMP SysOID Maps\nThe type of LogicModule", "readOnly": true, "type": "string", "enum": [ "DATASOURCE", "EVENTSOURCE", "CONFIGSOURCE", "PROPERTYSOURCE", "DIAGNOSTICSOURCE", "REMEDIATIONSOURCE", "TOPOLOGYSOURCE", "JOBMONITOR", "APPLIESTO_FUNCTION", "SNMP_SYSOID_MAP", "LOGSOURCE" ] }, "isChangedFromTargetLastPublished": { "description": "Specifies if the Applies To function is changed from target last published or not", "readOnly": true, "type": "boolean" }, "originLineageId": { "description": "The origin lineage Id of the LMmodule", "readOnly": true, "type": "string" }, "originAuthorCompanyUUID": { "description": "Specifies the origin Author companies unique Id", "readOnly": true, "type": "string" }, "localModuleId": { "format": "int32", "description": "The LocalModule Id", "readOnly": true, "type": "integer" }, "originRegistryId": { "description": "The Registry ID of the Exchange Integration this module is based from", "readOnly": true, "type": "string" }, "originVersion": { "description": "Specifies the origin version", "readOnly": true, "type": "string" }, "auditedVersion": { "description": "Specifies the audited registry version", "readOnly": true, "type": "string" }, "originName": { "description": "Specifies the origin module name", "readOnly": true, "type": "string" } } }, "JSONObject": { "description": "The alert external ticket urls", "readOnly": true, "type": "object", "properties": { "empty": { "type": "boolean" } } }, "ScriptERIDiscoveryAttributeV3": { "description": "Enable ERI Discovery or not", "type": "object", "required": [ "name" ], "properties": { "winScript": { "description": "The Windows script", "type": "string" }, "groovyScript": { "description": "The Groovy script", "type": "string" }, "name": { "description": "ERI detection name", "type": "string" }, "type": { "description": "The script type", "type": "string" }, "linuxCmdline": { "description": "The Linux script command line", "type": "string" }, "linuxScript": { "description": "The Linux script file", "type": "string" }, "winCmdline": { "description": "The Windows script command line", "type": "string" } } }, "StatusDisplayName": { "description": "The status display name list", "type": "object", "required": [ "metricValue", "operator", "statusDisplayName" ], "properties": { "statusDisplayName": { "description": "The status display name for the metric value", "type": "string" }, "metricValue": { "description": "The metric value that the alert must be greater than, less than, or equal to for this status display to be considered", "type": "string" }, "id": { "format": "int32", "description": "The datapoint id", "readOnly": true, "type": "integer" }, "datapointId": { "format": "int32", "description": "The datappoint id", "readOnly": true, "type": "integer" }, "operator": { "description": "The operator to use for the status display", "type": "string" } } } } }