Python SDK for the RUCKUS One (R1) network management platform
Project description
R1 Python SDK
A Python SDK for the RUCKUS One (R1) network management platform API.
Alpha — This SDK covers ~12% of the R1 API (181 operations across 1,491 in 203 tag groups). 18 modules cover venues, APs, switches, WiFi networks, VLAN pools, DPSK, identities, identity groups, L3 ACL policies, CLI templates, switch profiles, RADIUS server profiles, certificate templates, MAC registration pools, policy sets, RADIUS attribute groups, external identities, and policy templates. See API Coverage for details.
Installation
pip install neuralconfig-r1-sdk
Or install from source:
git clone https://github.com/neuralconfig/r1-sdk.git
cd r1-sdk
pip install -e ".[dev]"
Quick Start
Create a config.ini:
[credentials]
client_id = YOUR_CLIENT_ID
client_secret = YOUR_CLIENT_SECRET
tenant_id = YOUR_TENANT_ID
region = na
from r1_sdk import R1Client
client = R1Client.from_config()
# List venues
venues = client.venues.list()
for venue in venues.get('data', []):
print(f"{venue['name']} ({venue['id']})")
# List APs
aps = client.aps.list({"pageSize": 100, "page": 0})
# List WiFi networks
networks = client.wifi_networks.list({"pageSize": 100, "page": 0})
Alternative: Environment Variables
export R1_CLIENT_ID=your_id
export R1_CLIENT_SECRET=your_secret
export R1_TENANT_ID=your_tenant
export R1_REGION=na # na, eu, asia
client = R1Client.from_env()
Documentation
- Common Patterns — authentication, pagination, error handling, query format
- Per-module API reference in
docs/modules/(linked from table below)
API Modules
| Module | Access via | Key Methods |
|---|---|---|
| Venues | client.venues |
list(), list_all(), get(), create(), update(), delete(), get_aps(), get_switches(), get_wlans(), get_clients() |
| APs | client.aps |
list(), list_all(), get(), update(), reboot(), add_to_venue(), remove_from_venue(), add_to_group(), get_clients(), get_radio_settings(), update_radio_settings(), get_statistics(), get_support_logs(), get_venue_ap_management_vlan(), update_venue_ap_management_vlan(), get_ap_management_vlan(), update_ap_management_vlan() |
| Switches | client.switches |
list(), list_all(), get(), update(), reboot(), add_to_venue(), remove_from_venue(), get_ports(), configure_port(), get_vlans(), configure_vlan(), create_vlan(), delete_vlan(), get_statistics() |
| WiFi Networks | client.wifi_networks |
list(), list_all(), get(), create(), update(), delete(), list_venue_wlans(), deploy_to_venue(), undeploy_from_venue(), get_venue_wlan_settings(), update_venue_wlan_settings(), get_radius_proxy_settings(), associate_dpsk_service() |
| VLAN Pools | client.vlan_pools |
list_pools(), get_vlan_pool(), create_vlan_pool(), update_vlan_pool(), delete_vlan_pool(), list_profiles(), get_vlan_pool_profile(), create_vlan_pool_profile(), update_vlan_pool_profile(), delete_vlan_pool_profile() |
| DPSK | client.dpsk |
list_services(), get_service(), create_service(), update_service(), delete_service(), list_passphrases(), get_passphrase(), create_passphrases(), update_passphrase(), delete_passphrases(), batch_update_passphrases(), list_devices(), add_devices(), update_devices(), remove_devices(), import_passphrases_csv(), export_passphrases_csv() |
| Identities | client.identities |
list(), list_all(), query(), get(), create(), update(), delete(), get_devices(), add_device(), remove_device(), import_csv(), export_csv() |
| Identity Groups | client.identity_groups |
list(), list_all(), query(), get(), create(), update(), delete(), associate_dpsk_pool(), associate_policy_set() |
| L3 ACL Policies | client.l3_acl_policies |
list(), get(), create(), update(), delete(), create_rule() |
| CLI Templates | client.cli_templates |
list(), list_all(), query(), get(), create(), update(), delete(), bulk_delete(), get_examples(), associate_with_venue(), disassociate_from_venue(), get_variables(), add_variable(), update_variable(), delete_variable(), get_venue_switches(), add_venue_switches(), remove_venue_switches() |
| Switch Profiles | client.switch_profiles |
list(), list_all(), query(), get(), create(), update(), delete(), bulk_delete(), associate_with_venue(), disassociate_from_venue(), get_venue_profiles(), ACL CRUD, VLAN CRUD, trusted port CRUD, CLI variable methods, switch mapping methods |
| RADIUS Server Profiles | client.radius_server_profiles |
list(), query(), get(), get_for_wifi_network() |
| Certificate Templates | client.certificate_templates |
query(), get(), get_for_wifi_network() |
| MAC Registration Pools | client.mac_registration_pools |
query(), list_all(), get(), create(), update(), delete(), query_registrations(), list_all_registrations(), create_registration(), update_registration(), delete_registration(), delete_registrations(), import_csv(), associate_policy_set(), remove_policy_set() |
| Policy Sets | client.policy_sets |
query(), list_all(), get(), create(), update(), delete(), list_policies(), add_policy(), remove_policy(), get_assignments() |
| RADIUS Attribute Groups | client.radius_attribute_groups |
query(), list_all(), get(), create(), update(), delete(), list_attributes(), list_vendors() |
| External Identities | client.external_identities |
query(), list_all() |
| Policy Templates | client.policy_templates |
query_templates(), list_all_templates(), get_template(), list_template_attributes(), query_policies(), list_all_policies(), get_policy(), create_policy(), update_policy(), delete_policy() |
API Coverage
The R1 API has 1,491 operations across 203 tag groups. The SDK covers 181 operations (~12%) with full or partial coverage of 36 tag groups:
| Tag Group | Spec Ops | SDK Ops | Coverage | SDK Module |
|---|---|---|---|---|
| CLI Templates | 10 | 10 | 100% | CLITemplates |
| Switch Profiles | 10 | 10 | 100% | SwitchProfiles |
| DPSK Passphrases | 14 | 12 | 86% | DPSK |
| Identity Groups | 11 | 9 | 82% | IdentityGroups |
| MAC Registration | 18 | 15 | 83% | MacRegistrationPools |
| Identities | 15 | 11 | 73% | Identities |
| Venues | 7 | 5 | 71% | Venues |
| VLAN Pools | 17 | 10 | 59% | VLANPools |
| Radius Attribute Group | 14 | 8 | 57% | RadiusAttributeGroups |
| Policy Templates | 19 | 10 | 53% | PolicyTemplates |
| L3 ACL Policies | 10 | 5 | 50% | L3AclPolicies |
| WiFi Networks | 24 | 12 | 50% | WiFiNetworks |
| DPSK Services | 11 | 5 | 45% | DPSK |
| RADIUS Profile | 12 | 4 | 33% | RadiusServerProfiles |
| Adaptive Policy Management | 32 | 10 | 31% | PolicySets, PolicyTemplates |
| Switches | 20 | 6 | 30% | Switches |
| Switch VLANs | 19 | 5 | 26% | Switches |
| External Auth Service | 9 | 2 | 22% | ExternalIdentities |
| Certificate Template | 21 | 3 | 14% | CertificateTemplates |
| APs | 106 | 15 | 14% | APs |
| 183 other groups | 1,099 | 0 | 0% | — |
Error Handling
from r1_sdk import R1Client
from r1_sdk.exceptions import (
R1Error, # Base exception
AuthenticationError, # 401
ResourceNotFoundError, # 404
ValidationError, # 400
RateLimitError, # 429
ServerError, # 5xx
APIError, # Other HTTP errors
)
try:
client.venues.get("nonexistent-id")
except ResourceNotFoundError:
print("Venue not found")
except APIError as e:
print(f"API error {e.status_code}: {e.message}")
The client automatically retries once on 401 (token refresh).
Development
git clone https://github.com/neuralconfig/r1-sdk.git
cd r1-sdk
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
# Run unit tests
.venv/bin/pytest tests/unit/ -v
# Run with coverage
.venv/bin/pytest tests/unit/ --cov=r1_sdk --cov-report=term-missing
License
MIT — see 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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neuralconfig_r1_sdk-0.5.1.tar.gz.
File metadata
- Download URL: neuralconfig_r1_sdk-0.5.1.tar.gz
- Upload date:
- Size: 37.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf5a9692ff0ed8a83e772dc3287dd793a845f040b6894d39aac903747d6ca78e
|
|
| MD5 |
4bce857b5eb170b1f595c672ead48c8e
|
|
| BLAKE2b-256 |
ce301785b6a8f75969f224311708b5bba821f1326d9c8727de375fbc1b3a2757
|
File details
Details for the file neuralconfig_r1_sdk-0.5.1-py3-none-any.whl.
File metadata
- Download URL: neuralconfig_r1_sdk-0.5.1-py3-none-any.whl
- Upload date:
- Size: 52.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f709608fb3f22ea95172ea0c0ca2d874f0639995511534e8c718db88364ed19f
|
|
| MD5 |
bc64af19cb8d6853abd9849e49ea7f2d
|
|
| BLAKE2b-256 |
8e276850c87f47579b48737eb58218092a302daf6de0062f441bb455841a9fa9
|