Metadata-Version: 2.4
Name: aruba-client
Version: 0.1.0
Summary: Aruba Central MSP client — typed wrappers around the network-monitoring API
Project-URL: Homepage, https://github.com/workfloworchestrator/aruba-client
Project-URL: Documentation, https://aruba-client.readthedocs.io
Project-URL: Repository, https://github.com/workfloworchestrator/aruba-client
Author-email: SURF <info@surf.nl>
License: Apache-2.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Telecommunications Industry
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Networking :: Monitoring
Requires-Python: >=3.13
Requires-Dist: httpx[http2]
Requires-Dist: pycentral==2.0a22
Requires-Dist: pydantic-settings>=2
Requires-Dist: pydantic>=2
Requires-Dist: structlog>=25.4.0
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-httpx>=0.29.0; extra == 'dev'
Requires-Dist: python-dotenv>=1.1.1; extra == 'dev'
Description-Content-Type: text/markdown

# aruba-client

Python client for the [Aruba Central](https://developer.arubanetworks.com/aruba-central) network monitoring API.

Uses **MSP token exchange** (RFC 8693) so a single set of MSP credentials can access all tenant workspaces; no per-tenant API keys needed. Returns typed pydantic models with a `CentralResponse` wrapper that keeps both the raw payload and a lazily-parsed model.

[![Tests](https://github.com/workfloworchestrator/aruba-client/actions/workflows/tests.yml/badge.svg)](https://github.com/workfloworchestrator/aruba-client/actions/workflows/tests.yml)
[![Docs](https://readthedocs.org/projects/aruba-client/badge/?version=latest)](https://aruba-client.readthedocs.io/en/latest/)

## Installation

```bash
pip install aruba-client
```

## Quick start

```bash
export ARUBA_MSP_CLIENT_ID=...
export ARUBA_MSP_CLIENT_SECRET=...
export ARUBA_MSP_WORKSPACE_ID=...
export ARUBA_GREENLAKE_OAUTH_URL=https://sso.common.cloud.hpe.com/as/token.oauth2
```

```python
from aruba_client import get_central_client, get_new_central_sites, get_new_central_aps

conn = get_central_client("My Tenant")
registry = get_new_central_sites(conn).parsed()
site = registry.find_by_name("My Site")
aps = get_new_central_aps(conn, site=site.id).parsed()
```

See the [documentation](https://aruba-client.readthedocs.io) for full API reference.
