Skip to main content

NAble Data Extraction API library/wrapper

Project description

NAble Data Extraction API wrapper/Library

This is a Python wrapper/library for the NAble Data Extraction API. The NAble API returns data in xml format, this tool will convert those to lists and dictionaries for ease of use.

The official API documentation from NAble can be found here. I have tried to keep my naming scheme similar to theirs.

NOTE:

  • This is still in extremely early stages of development, function names may change!

Table Of Contents

I don't know how to make this yet, so it's Coming Soon

Installation

pip install NAbleAPI

Getting Started

To use the NAble API, you will need to know your region and have an API key.

  1. Import the package
  2. Get an API key. Follow these instructions to get your API key.
  3. Find your region (see below)

Regions

To find your region, check this page or view table below.

Notes:

  • Not all regions have been tested, if your region is marked 'untested' on the table below, please let me know whether it works.
  • If your dashboard URL starts with www2, assume it is just www for the region.
  • If there is another abbreviation or country code you would like added, let me know!
Dashboard URL Region Status
www.am.remote.management americas, ams Untested
wwwasia.system-monitor.com asia Untested
www.system-monitor.com australia, au, aus Untested
wwweurope1.systemmonitor.eu.com europe, eu Untested
wwwfrance.systemmonitor.eu.com france, fr Untested
wwwfrance1.systemmonitor.eu.com france1, fr1 Untested
wwwgermany1.systemmonitor.eu.com germany, de, deu Untested
wwwireland.systemmonitor.eu.com ireland, ie, irl Untested
wwwpoland1.systemmonitor.eu.com poland, pl,pol Untested
www.systemmonitor.co.uk united kingdom, uk, gb, gbr Verified
www.systemmonitor.us united states, us, usa Untested

Using the package

Create a new .py file in the root directory and import the NAble package

from NAbleAPI import NAble

Authenticate with your API key

na = NAble('[YOUR REGION]','[YOUR API KEY]')

Example

na = NAble('uk','f821213a8d3q43843dj39824')

(Not a real API key, don't try to use it)

Make your first request

Gee it sure would be helpful is there was documentation for the available commands. Unfortunately, there isn't right now.

Get all your clients

myNAbleClients = na.clients()

Storing your key

It's probably best not to store your API key in your script. Instead, you can create a .env file and use that.

  1. Create a new file called .env in the root directory
  2. Put your API key in it (do not put it in quotes, type exactly as shown below)
NABLE_KEY = f821213a8d3q43843dj39824
  1. Get the key from file
from NAbleAPI import NAble # Import the NAble package
import os # Import OS package (built into Python, I'm like 99% sure)

NABLE_KEY = os.getenv("NABLE_KEY")

na = NAble('uk',NABLE_KEY)

API Endpoints

The endpoints are grouped by category on NAble's website, so I have done the same below. I found the names on NAbles site to be a bit long, so I have shortened them a bit. The Function Name is what you will use in Python. I'm doing my best to get them all added!

Clients, SItes, and Devices

Official NAble documentation page here

Service Status Function Name Description
list_clients Working clients() List all clients
list_sites Working sites() List sites for a client
list_servers Working servers() list servers at a site
list_workstations Working workstations() list workstations at a site
list_agentless_assets Working agentlessAssets() List agentless assets at a site
list_devices_at_client Working clientDevices() List all workstations or servers for a client
list_device_monitoring_details Working deviceDetails() Get details for a single device
add_client Planned addClient() Add a client
add_site Working addSite() Add a site
get_site_installation_package() Partially Working siteInstallPackage Create/Get a site installation package (returns rawbytes right now)

Checks and results

Official NAble documentation page here

Service Status Function Name Description
list_checks Working checks() List all checks for a device
list_failing_checks Working failingChecks() List all failing checks
list_check_config Working checkConfig() Get a single checks configuration
get_formatted_check_output Working formattedCheckOutput() Get first line of check result
list_outages Working checks() List all outages for a device
list_performance_history Untested performanceHistory() Get performance history of a device
list_drive_space_history Working driveSpaceHistory() Get Device Storage History
list_exchange_storage_history Untested exchangeStorageHistory() Get Exchange Storage History
clear_check Untested clearCheck() Clear a check
add_check_note Working addNote() Add note to a check
list_templates Working templates() List all server/workstation monitoring templates

Anti-Virus Update Check Information

Official NAble documentation page here

Service Status Function Name Description
list_supported_av_products Working supportedAVs() Lists supported AVs
list_av_definitions Working AVDefinitions() Get definitions for specific AV Product
get_av_definition_release_date Working AVDefinitionsReleaseDate() Get release date of specific AV version
list_av_history Working AVHistory() List last 60s of AV status (I got 90 though...)

List Backup Check History

Official NAble documentation page here

Service Status Function Name Description
list_backup_history Untested backupHistory() Get last 60 days of backup history for device

Asset Tracking Information

Official NAble documentation page here

Service Status Function Name Description

Settings

Official NAble documentation page here

Service Status Function Name Description
list_wallchart_settings Working wallchartSettings() Get general wallchart settings
list_general_settings Working generalSettings() Get general account settings

Patch Management

Official NAble documentation page here

These may be moved to their own subclass in the future!

Service Status Function Name Description
patch_list_all Working listPatches() List all patches for a device
patch_approve Working approvePatches() Approve patch(es) for a device
patch_do_nothing Working doNothingPatches() Do nothing on patch(es) for a device
patch_ignore Working ignorePatches() Ignore patch(es) for a device
patch_reprocess Working reprocessPatches() Reprocess patch(es) for a device
patch_retry Working retryPatches() Retry patch(es) for a device

Managed Anti-Virus

Official NAble documentation page here

Service Status Function Name Description

Backup & Recovery

Official NAble documentation page here

Service Status Function Name Description

Run Task Now

Official NAble documentation page here

Service Status Function Name Description

List Active Directory Users

Official NAble documentation page here

Service Status Function Name Description

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nableapi-0.0.5.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

NAbleAPI-0.0.5-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file nableapi-0.0.5.tar.gz.

File metadata

  • Download URL: nableapi-0.0.5.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for nableapi-0.0.5.tar.gz
Algorithm Hash digest
SHA256 67f020a3d3550268bc80ff59ccfe7e8410f95158f2cd552391ee4642554f5db0
MD5 8cd33ef3c72b1799db9f3d6df8e1ac05
BLAKE2b-256 9696ea9940a44812808e9707428238f5b594922dd2760d63654ad5f5fba01213

See more details on using hashes here.

Provenance

The following attestation bundles were made for nableapi-0.0.5.tar.gz:

Publisher: python-publish.yml on ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/Python-NAbleAPI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file NAbleAPI-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: NAbleAPI-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for NAbleAPI-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 415bf128315b7af91869d568e23e35d478ee918009b749b119848f93c5ab4b6b
MD5 f3b6a80827433960e4f53379f9bc449e
BLAKE2b-256 8ed40a0ce9263c4a15f05ddcfa4b7bb731654d406b3e9f17b1af0d8c01a268d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for NAbleAPI-0.0.5-py3-none-any.whl:

Publisher: python-publish.yml on ItsJustAGitHubMichealWhosGonnaSeeIt5Ppl/Python-NAbleAPI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page