Skip to main content

Connect and perform actions with the Armis cloud

Project description

Armis Python Library

armis - A library for interacting with the Armis cloud.

Test Suite

armis is a client library for talking to the Armis cloud. It provides an API using HTTP/2 by default, falling back to HTTP/1.1 when necessary. Python 3.8+ is supported.


Install armis using pip:

$ pip install armis

Now, let's get started:

>>> from armis import ArmisCloud
>>> a = ArmisCloud(
        api_secret_key="your-api-secret-key-here",
        tenant_hostname="your-tenant-hostname-here.armis.com",
        fields=["id", "ipAddress", "name", "firstSeen"]
    )
>>> a.get_devices(asq='in:devices timeFrame:"10 Seconds"')
[{"id": 15, "ipAddress": "10.1.2.3", "name": "super-pc", "firstSeen": "2019-05-15T13:00:00+00:00"}]


>>> a.get_boundaries()
{1: {'affectedSites': '', 'id': 1, 'name': 'Corporate', 'ruleAql': {'or': ['ipAddress:10.0.0.0/8']}}, 2: {'affectedSites': '', 'id': 2, 'name': 'Guest', 'ruleAql': {'or': ['lastConnectedSsid:Guest']}}}


>>> a.get_boundary(boundary_id=1)
{"data":{"affectedSites":"","id":1,"name":"Corporate","ruleAql":{"or":["ipAddress:10.0.0.0/8"]}},"success":true}


>>> a.get_collectors()
{1234: {'clusterId': 0, 'collectorNumber': 1234, 'defaultGateway': '10.0.0.1', 'httpsProxyRedacted': '', 'ipAddress': '10.0.0.2', 'lastSeen': '2019-05-15T13:00:00+00:00', 'macAddress': '00:12:34:56:78:90', 'name': 'Collector 1234', 'status': 'Offline', 'subnet': '10.0.0.0/24', 'type': 'Physical'}}


>>> a.get_collector(collector_id=1234)
{'clusterId': 0, 'collectorNumber': 1234, 'defaultGateway': '10.0.0.1', 'httpsProxyRedacted': '', 'ipAddress': '10.0.0.2', 'lastSeen': '2019-05-15T13:00:00+00:00', 'macAddress': '00:12:34:56:78:90', 'name': 'Collector 1234', 'status': 'Offline', 'subnet': '10.0.0.0/24', 'type': 'Physical'}

Features

armis gives you:

  • Easy connection to the Armis cloud using an API secret key.
  • A quick way to fetch devices from the cloud.
  • Retries in the event the cloud times out. This can happen with large queries that take more than 2 minutes. This is the default for CloudFlare, which front-ends the cloud infrastructure.
  • Mostly type annotated.
  • Nearly 100% test coverage.

Installation

Install with pip:

$ pip install armis

armis requires Python 3.8+.

Dependencies

armis relies on these excellent libraries:

  • furl - provides easy-to-use URL parsing and updating
  • httpx - The underlying transport implementation for making HTTP requests
  • msgspec - for lightning fast decoding of JSON
  • pendulum - for easy date/time management
  • tenacity - retry management when things fail, with great retry/backoff options

License

armis is distributed under the terms of the BSD-3-Clause license.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

armis-1.0.17-py3-none-any.whl (11.1 kB view hashes)

Uploaded Python 3

Supported by

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