{"id":23478364,"url":"https://github.com/opennms/opennms-integration-api","last_synced_at":"2025-04-14T21:29:40.600Z","repository":{"id":39988691,"uuid":"151473963","full_name":"OpenNMS/opennms-integration-api","owner":"OpenNMS","description":"A stable Java API for interfacing with and extending OpenNMS","archived":false,"fork":false,"pushed_at":"2024-12-18T07:02:14.000Z","size":2229,"stargazers_count":14,"open_issues_count":6,"forks_count":5,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-12-18T08:18:42.659Z","etag":null,"topics":["api","java","monitoring","oia","opennms"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenNMS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-03T20:09:12.000Z","updated_at":"2024-10-09T19:11:22.000Z","dependencies_parsed_at":"2023-10-11T16:05:26.164Z","dependency_job_id":"d76b6939-b224-4f9b-89e4-8818faf19224","html_url":"https://github.com/OpenNMS/opennms-integration-api","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenNMS%2Fopennms-integration-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenNMS%2Fopennms-integration-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenNMS%2Fopennms-integration-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenNMS%2Fopennms-integration-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenNMS","download_url":"https://codeload.github.com/OpenNMS/opennms-integration-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231143157,"owners_count":18334356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","java","monitoring","oia","opennms"],"created_at":"2024-12-24T19:19:03.554Z","updated_at":"2024-12-24T19:19:08.091Z","avatar_url":"https://github.com/OpenNMS.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenNMS Plugin API [![CircleCI](https://circleci.com/gh/OpenNMS/opennms-integration-api.svg?style=svg)](https://circleci.com/gh/OpenNMS/opennms-integration-api)\n\nThis project aims to make it easier to write plugins and extensions to OpenNMS by introducing a stable interface against which these can be written.\nVersions of OpenNMS and Meridian will then implement at least one major version of the API.\n\n## Features\n\nUsers for the API can currently take advantage of the following features and interfaces.\nSee the interfaces defined in the `api` module for a complete list.\n\n### Extend\n\n * Event configuration\n * Syslog configuration (message to event mappings)\n * SNMP data collection configuration\n * Resource type definitions (data collection)\n * Graph definitions (data collection)\n * Thresholding configuration\n * Poller  configuration\n\n### Consume\n\n * Runtime information\n   * Version - major,minor,patch,snapshot\n   * Container type - OpenNMS vs Minion vs Sentinel\n * Alarm lifecycle callbacks\n * DAOs\n   * Node\n   * SNMP Interface\n   * Topology (edges)\n * Coordination API\n * Events\n\n### Expose\n\n * Health checks\n   * Provide custom health checks to verify the sanity of your plugin\n * Alarm persister extensions\n   * Mangle alarms before they are persisted\n * Service monitors\n * Service collectors\n * Provisiond detectors\n * Ticketers\n * [Time Series Storage](api/src/main/java/org/opennms/integration/api/v1/timeseries/README.md)\n * Graph API extensions (i.e. custom topology)\n\n## Building a new plugin\n\nWe provide a Maven archetype to help bootstrap plugin creation.\nTo create a new plugin project use:\n```\nmvn archetype:generate -B -DarchetypeGroupId=org.opennms.integration.api -DarchetypeArtifactId=example-kar-plugin -DarchetypeVersion=2.0.0-SNAPSHOT -DgroupId=com.company -DartifactId=myplugin -Dversion=0.1.0-SNAPSHOT -Dpackage=com.company.myplugin -DpluginId=myplugin -DpluginName=\"My Plugin\"\n```\n\nThis will create a plugin called \"My Plugin\" with a version of 0.1.0-SNAPSHOT, using the 2.0.0-SNAPSHOT version of the OPA archetype.\n\n## Versioning\n\nGiven that the API is fairly new, we expect that we will need to make changes and improvements over the next few releases of OpenNMS Horizon.\nIn order to make sure that your plugins or extensions do not break within minor and patch releases:\n\n * Do not implement, or extend interfaces marked with the `@Consumable` annotation as we reserve the right to add new method signatures to these.\n * Do not implement, or extend interfaces marked with the `@Model` annotation as we reserve the right to add new method signatures to these.\n   * Use the provided builders for these interfaces in the `common` module instead.\n\nOnce stabilized, we are aiming to follow [Semantic Versioning](https://semver.org/).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennms%2Fopennms-integration-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopennms%2Fopennms-integration-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennms%2Fopennms-integration-api/lists"}