{"openapi":"3.1.0","info":{"title":"Signal Telecom Suite — OSS APIs","description":"Operations Support Systems: NETCONF, RADIUS, CPE, Device Management","version":"0.1.0"},"paths":{"/api/v1/radius/profiles":{"post":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Create Radius Profile","operationId":"create_radius_profile_api_v1_radius_profiles_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusProfileCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"List Radius Profiles","description":"List all RADIUS profiles for this tenant.","operationId":"list_radius_profiles_api_v1_radius_profiles_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Radius Profiles Api V1 Radius Profiles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/radius/profiles/{profile_id}":{"get":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Get Radius Profile","description":"Get a single RADIUS profile.","operationId":"get_radius_profile_api_v1_radius_profiles__profile_id__get","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"integer","title":"Profile Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Update Radius Profile","description":"Update a RADIUS profile (speed, NAS IP, password).","operationId":"update_radius_profile_api_v1_radius_profiles__profile_id__patch","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"integer","title":"Profile Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Delete Radius Profile","description":"Delete a RADIUS profile.","operationId":"delete_radius_profile_api_v1_radius_profiles__profile_id__delete","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"integer","title":"Profile Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/radius/profiles/{profile_id}/suspend":{"post":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Suspend Radius Profile","description":"Suspend a RADIUS profile (disables auth).","operationId":"suspend_radius_profile_api_v1_radius_profiles__profile_id__suspend_post","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"integer","title":"Profile Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Suspend Radius Profile Api V1 Radius Profiles  Profile Id  Suspend Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/radius/profiles/{profile_id}/reactivate":{"post":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Reactivate Radius Profile","description":"Reactivate a suspended RADIUS profile.","operationId":"reactivate_radius_profile_api_v1_radius_profiles__profile_id__reactivate_post","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"integer","title":"Profile Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reactivate Radius Profile Api V1 Radius Profiles  Profile Id  Reactivate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/radius/authorize":{"post":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Radius Authorize","description":"FreeRADIUS REST authorize callback.\n\nTries a regular RadiusProfile lookup first. If the username doesn't match\na profile, falls through to SIG-PASS — letting hotspot vouchers\nauthenticate against the same /authorize endpoint without any NAS\nreconfiguration. The two systems share a flat username namespace; pass\ncodes use a recognizable prefix (e.g. `TRAC-...`) to keep them separate\nfrom subscriber usernames by convention.","operationId":"radius_authorize_api_v1_radius_authorize_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusAuthRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusAuthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/radius/accounting":{"post":{"tags":["SIG-RAD — AAA / RADIUS"],"summary":"Radius Accounting","description":"FreeRADIUS REST accounting callback.\n\nRecords session telemetry into `radius_accounting`. If the username\nmatches an issued prepaid pass, also burns down the pass's budget by\nthe delta since the last report.","operationId":"radius_accounting_api_v1_radius_accounting_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusAcctRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Radius Accounting Api V1 Radius Accounting Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cpe/provision":{"post":{"tags":["SIG-CPE — CPE Management"],"summary":"Provision Cpe","description":"Provision a registered CPE device by hostname (auto-dispatches by vendor).","operationId":"provision_cpe_api_v1_cpe_provision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CPEProvisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Provision Cpe Api V1 Cpe Provision Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cpe/provision/direct":{"post":{"tags":["SIG-CPE — CPE Management"],"summary":"Provision Cpe Direct","description":"Provision by vendor + IP directly (no registry lookup — legacy/quick test).","operationId":"provision_cpe_direct_api_v1_cpe_provision_direct_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CPEProvisionByVendorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Provision Cpe Direct Api V1 Cpe Provision Direct Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cpe/status/{device}":{"get":{"tags":["SIG-CPE — CPE Management"],"summary":"Cpe Status","description":"Get CPE status by hostname (auto-dispatches by vendor).","operationId":"cpe_status_api_v1_cpe_status__device__get","parameters":[{"name":"device","in":"path","required":true,"schema":{"type":"string","title":"Device"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CPEStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cpe/vendors":{"get":{"tags":["SIG-CPE — CPE Management"],"summary":"List Supported Vendors","description":"List all vendor IDs with CPE provisioning adapters.","operationId":"list_supported_vendors_api_v1_cpe_vendors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response List Supported Vendors Api V1 Cpe Vendors Get"}}}}}}},"/api/v1/cpe/catalog/vendors":{"get":{"tags":["SIG-CPE — CPE Management"],"summary":"List Vendor Catalog","description":"Full vendor catalog with connection defaults and models.","operationId":"list_vendor_catalog_api_v1_cpe_catalog_vendors_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Vendor Catalog Api V1 Cpe Catalog Vendors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/devices":{"post":{"tags":["SIG-NET — Network Config"],"summary":"Register Device","description":"Register a network device with its credentials.","operationId":"register_device_api_v1_netconf_devices_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRegister"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["SIG-NET — Network Config"],"summary":"List Devices","operationId":"list_devices_api_v1_netconf_devices_get","parameters":[{"name":"vendor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceResponse"},"title":"Response List Devices Api V1 Netconf Devices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/devices/{hostname}":{"get":{"tags":["SIG-NET — Network Config"],"summary":"Get Device","operationId":"get_device_api_v1_netconf_devices__hostname__get","parameters":[{"name":"hostname","in":"path","required":true,"schema":{"type":"string","title":"Hostname"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/devices/{device_id}":{"patch":{"tags":["SIG-NET — Network Config"],"summary":"Update Device","description":"Update a registered network device.","operationId":"update_device_api_v1_netconf_devices__device_id__patch","parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["SIG-NET — Network Config"],"summary":"Delete Device","description":"Delete a registered network device.","operationId":"delete_device_api_v1_netconf_devices__device_id__delete","parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/adapters":{"get":{"tags":["SIG-NET — Network Config"],"summary":"List Netconf Adapters","description":"List supported NETCONF and REST-only vendors.","operationId":"list_netconf_adapters_api_v1_netconf_adapters_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Response List Netconf Adapters Api V1 Netconf Adapters Get"}}}}}}},"/api/v1/netconf/monitor/all":{"get":{"tags":["SIG-NET — Network Config"],"summary":"Monitor All Devices","description":"Get status of all registered devices — used by P5 NOC dashboard.","operationId":"monitor_all_devices_api_v1_netconf_monitor_all_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Monitor All Devices Api V1 Netconf Monitor All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/config/{device}":{"get":{"tags":["SIG-NET — Network Config"],"summary":"Get Running Config","description":"Fetch running configuration from a registered device.","operationId":"get_running_config_api_v1_netconf_config__device__get","parameters":[{"name":"device","in":"path","required":true,"schema":{"type":"string","title":"Device"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Get Running Config Api V1 Netconf Config  Device  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/interfaces/configure":{"post":{"tags":["SIG-NET — Network Config"],"summary":"Configure Interface","description":"Push interface config to a registered device (auto-dispatches by vendor).","operationId":"configure_interface_api_v1_netconf_interfaces_configure_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterfaceConfigRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"}]},"title":"Response Configure Interface Api V1 Netconf Interfaces Configure Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/bgp/neighbors":{"post":{"tags":["SIG-NET — Network Config"],"summary":"Add Bgp Neighbor","description":"Add BGP neighbor to a registered device (auto-dispatches by vendor).","operationId":"add_bgp_neighbor_api_v1_netconf_bgp_neighbors_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BGPNeighborRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"}]},"title":"Response Add Bgp Neighbor Api V1 Netconf Bgp Neighbors Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/netconf/interfaces/stats":{"post":{"tags":["SIG-NET — Network Config"],"summary":"Get Interface Stats","description":"Get interface statistics from a registered device (auto-dispatches by vendor).","operationId":"get_interface_stats_api_v1_netconf_interfaces_stats_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-tenant-id","in":"header","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterfaceStatsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterfaceStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BGPNeighborRequest":{"properties":{"device":{"type":"string","title":"Device","description":"Hostname or mgmt IP of registered device"},"neighbor_ip":{"type":"string","title":"Neighbor Ip","examples":["10.0.0.2"]},"peer_as":{"type":"integer","title":"Peer As"},"local_as":{"type":"integer","title":"Local As"},"description":{"type":"string","title":"Description"}},"type":"object","required":["device","neighbor_ip","peer_as","local_as","description"],"title":"BGPNeighborRequest"},"CPEProvisionByVendorRequest":{"properties":{"vendor":{"type":"string","title":"Vendor"},"device_ip":{"type":"string","title":"Device Ip"},"customer_id":{"type":"string","title":"Customer Id"},"speed_down_kbps":{"type":"integer","title":"Speed Down Kbps"},"speed_up_kbps":{"type":"integer","title":"Speed Up Kbps"},"vlan_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vlan Id"}},"type":"object","required":["vendor","device_ip","customer_id","speed_down_kbps","speed_up_kbps"],"title":"CPEProvisionByVendorRequest","description":"Legacy — provision by vendor + IP (no registry lookup)."},"CPEProvisionRequest":{"properties":{"device":{"type":"string","title":"Device","description":"Hostname or mgmt IP of registered device"},"customer_id":{"type":"string","title":"Customer Id"},"speed_down_kbps":{"type":"integer","title":"Speed Down Kbps"},"speed_up_kbps":{"type":"integer","title":"Speed Up Kbps"},"vlan_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vlan Id"}},"type":"object","required":["device","customer_id","speed_down_kbps","speed_up_kbps"],"title":"CPEProvisionRequest"},"CPEStatusResponse":{"properties":{"device":{"type":"string","title":"Device"},"vendor":{"type":"string","title":"Vendor"},"mgmt_ip":{"type":"string","title":"Mgmt Ip"},"status":{"type":"string","title":"Status"},"details":{"additionalProperties":true,"type":"object","title":"Details"}},"type":"object","required":["device","vendor","mgmt_ip","status","details"],"title":"CPEStatusResponse"},"DeviceRegister":{"properties":{"hostname":{"type":"string","title":"Hostname","examples":["jnpr-kgl-core-01"]},"mgmt_ip":{"type":"string","title":"Mgmt Ip","examples":["10.0.0.1"]},"vendor":{"$ref":"#/components/schemas/Vendor"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","examples":["vMX","MX204","SRX345"]},"site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site","examples":["Kigali-DC1"]},"country":{"type":"string","title":"Country","default":"RW"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"port":{"type":"integer","title":"Port","default":830},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["hostname","mgmt_ip","vendor","username","password"],"title":"DeviceRegister"},"DeviceResponse":{"properties":{"id":{"type":"integer","title":"Id"},"hostname":{"type":"string","title":"Hostname"},"mgmt_ip":{"type":"string","title":"Mgmt Ip"},"vendor":{"$ref":"#/components/schemas/Vendor"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site"},"country":{"type":"string","title":"Country"},"port":{"type":"integer","title":"Port"},"status":{"$ref":"#/components/schemas/DeviceStatus"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_contacted":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Contacted"}},"type":"object","required":["id","hostname","mgmt_ip","vendor","model","site","country","port","status","notes","created_at","last_contacted"],"title":"DeviceResponse"},"DeviceStatus":{"type":"string","enum":["active","maintenance","decommissioned"],"title":"DeviceStatus"},"DeviceUpdate":{"properties":{"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"mgmt_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mgmt Ip"},"vendor":{"anyOf":[{"$ref":"#/components/schemas/Vendor"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"port":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Port"},"status":{"anyOf":[{"$ref":"#/components/schemas/DeviceStatus"},{"type":"null"}]},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"DeviceUpdate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InterfaceConfigRequest":{"properties":{"device":{"type":"string","title":"Device","description":"Hostname or mgmt IP of registered device"},"interface":{"type":"string","title":"Interface","examples":["ge-0/0/0"]},"description":{"type":"string","title":"Description"},"vlan_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vlan Id"},"speed_down_kbps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speed Down Kbps"},"speed_up_kbps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speed Up Kbps"}},"type":"object","required":["device","interface","description"],"title":"InterfaceConfigRequest"},"InterfaceStatsRequest":{"properties":{"device":{"type":"string","title":"Device","description":"Hostname or mgmt IP of registered device"},"interface":{"type":"string","title":"Interface"}},"type":"object","required":["device","interface"],"title":"InterfaceStatsRequest"},"InterfaceStatsResponse":{"properties":{"interface":{"type":"string","title":"Interface"},"admin_status":{"type":"string","title":"Admin Status"},"oper_status":{"type":"string","title":"Oper Status"},"input_bytes":{"type":"integer","title":"Input Bytes"},"output_bytes":{"type":"integer","title":"Output Bytes"},"input_packets":{"type":"integer","title":"Input Packets","default":0},"output_packets":{"type":"integer","title":"Output Packets","default":0},"description":{"type":"string","title":"Description","default":""}},"type":"object","required":["interface","admin_status","oper_status","input_bytes","output_bytes"],"title":"InterfaceStatsResponse"},"RadiusAcctRequest":{"properties":{"username":{"type":"string","title":"Username"},"session_id":{"type":"string","title":"Session Id"},"nas_ip":{"type":"string","title":"Nas Ip"},"acct_status_type":{"type":"string","title":"Acct Status Type"},"bytes_in":{"type":"integer","title":"Bytes In","default":0},"bytes_out":{"type":"integer","title":"Bytes Out","default":0},"session_time":{"type":"integer","title":"Session Time","default":0}},"type":"object","required":["username","session_id","nas_ip","acct_status_type"],"title":"RadiusAcctRequest","description":"Incoming accounting request from FreeRADIUS rest module."},"RadiusAuthRequest":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"nas_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nas Ip"}},"type":"object","required":["username","password"],"title":"RadiusAuthRequest","description":"Incoming auth request from FreeRADIUS rest module."},"RadiusAuthResponse":{"properties":{"control":{"additionalProperties":{"type":"string"},"type":"object","title":"Control","default":{}},"reply":{"additionalProperties":{"type":"string"},"type":"object","title":"Reply","default":{}}},"type":"object","title":"RadiusAuthResponse"},"RadiusProfileCreate":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"nas_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nas Ip"},"speed_down_kbps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speed Down Kbps"},"speed_up_kbps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speed Up Kbps"}},"type":"object","required":["customer_id","username","password"],"title":"RadiusProfileCreate"},"RadiusProfileResponse":{"properties":{"id":{"type":"integer","title":"Id"},"customer_id":{"type":"string","title":"Customer Id"},"username":{"type":"string","title":"Username"},"nas_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nas Ip"},"speed_down_kbps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speed Down Kbps"},"speed_up_kbps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speed Up Kbps"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","customer_id","username","nas_ip","speed_down_kbps","speed_up_kbps","status","created_at"],"title":"RadiusProfileResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Vendor":{"type":"string","enum":["juniper","cisco","nokia","huawei","arista","zte","cambium","mikrotik","ubiquiti","grandstream","tplink","dlink","radwin","baicells","mimosa","ceragon","fiberhome","calix","adtran","airspan","ipaccess","telrad","saf","dzs","commscope","altalabs","tejas","hfcl","cdot","vvdn","lekha","stl"],"title":"Vendor"}}},"servers":[{"url":"/docs/oss"}]}