{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/logicmonitor/main/json-schema/logicmonitor-topology-source-schema.json", "title": "TopologySource", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/logicmonitor-topologysource-api-openapi.yml#/components/schemas/TopologySource", "type": "object", "required": [ "collectionMethod", "collectorAttribute", "name" ], "properties": { "collectorAttribute": { "description": "collector's attributes to collect topologies", "readOnly": false, "$ref": "#/$defs/ScriptCollectorAttribute" }, "collectionMethod": { "description": "The topology will be build on properties or traditional way, default 'script'", "type": "string" }, "accessGroups": { "description": "Module's access groups", "type": "array", "items": { "$ref": "#/$defs/AccessGroup" } }, "description": { "description": "The description for the LMModule", "type": "string" }, "appliesTo": { "description": "The Applies To for the LMModule", "type": "string" }, "technology": { "description": "The Technical Notes for the LMModule", "type": "string" }, "version": { "format": "int64", "description": "The TopologySource version", "readOnly": true, "type": "integer" }, "lineageId": { "description": "The lineageId the LMModule belongs to", "readOnly": true, "type": "string" }, "tags": { "description": "The Tags for the LMModule", "type": "string" }, "auditVersion": { "format": "int64", "description": "The TopologySource audit Version", "readOnly": true, "type": "integer" }, "installationMetadata": { "description": "The local module's IntegrationMetadata, readable for troubleshooting purposes", "readOnly": true, "$ref": "#/$defs/IntegrationMetadata" }, "collectInterval": { "format": "int32", "description": "The TopologySource data collect interval in seconds, default 3600", "type": "integer", "enum": [ 1800, 3600, 14400, 43200 ] }, "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" }, "name": { "description": "The TopologySource name", "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" } }, "isInUse": { "description": "Whether the LM module is currently in use", "readOnly": true, "type": "boolean" }, "group": { "description": "The group the LMModule is in", "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" } } }, "CollectorAttribute": { "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The data collector's name", "type": "string" } } }, "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" } } }, "ScriptCollectorAttribute": { "allOf": [ { "$ref": "#/$defs/CollectorAttribute" }, { "type": "object", "properties": { "groovyScript": { "description": "groovy script", "type": "string" }, "manualConnections": { "description": "manual", "type": "string" }, "scriptType": { "description": "script type: embed | file | powershell", "type": "string" }, "windowsScript": { "description": "windows script", "type": "string" }, "linuxCmdline": { "description": "linux script command line", "type": "string" }, "linuxScript": { "description": "linux script", "type": "string" }, "windowsCmdline": { "description": "windows script command line", "type": "string" }, "properties": { "description": "property based", "type": "string" } } } ], "x-discriminator-value": "script", "description": "collector's attributes to collect topologies", "type": "object" } } }