network/preseem/preseem.yaml
2026-07-19 14:42:02 -05:00

1716 lines
55 KiB
YAML

openapi: 3.0.0
info:
description: |
# Overview
**HTTP Methods**
This API supports the following HTTP methods: `DELETE`, `GET`, `PUT`
The documentation below provide details on when and how to use these methods.
**Content-Type**
For `PUT` requests, you must include `Content-Type` in the HTTP Header and it should be set to `application/json`, otherwise a 400 (`Bad Request`) is returned.
The API only supports `JSON`
**API Key Permissions**
The permissions required for this API are:
- `network-metadata-read`
- `network-metadata-write`
`network-metadata-read` is needed for `GET` HTTP request
`network-metadata-write` is needed for `DELETE` and `PUT` HTTP requests
**Encoding**
URI parameters must be URL encoded.
For example to get an account with the id of `john/doe`, `/model/v1/accounts/john/doe` will fail and return a `404` error.
The correct way will be `/model/v1/accounts/john%2Fdoe`. Notice `/` in the id is replaced with the encoded form `%2F`
**Note**
All IDs are case-sensitive, `John Doe` and `John doe` could be the IDs of two different accounts
# Authentication
All requests are secured using basic auth. Your API key is the username, the password is empty.
# Examples
The sample requests below will use the following:
- **API key** 12ce9ffa5104885bedb99a75baff2c21e6d21a25ad351f0eff65240784818d19
*Replace API Key*
The API key and the colon must be base64 encoded.
A sample HTTP Header for the API key above (*after base64 encoding*) is `Authorization: Basic MTJjZTlmZmE1MTA0ODg1YmVkYjk5YTc1YmFmZjJjMjFlNmQyMWEyNWFkMzUxZjBlZmY2NTI0MDc4NDgxOGQxOTo=`
## Get all access points
```
bash$ curl -u 12ce9ffa5104885bedb99a75baff2c21e6d21a25ad351f0eff65240784818d19: https://api.preseem.com/model/v1/access_points
{"data":[{"id": "100","name": "AP-1","tower":"Mt. Tower","ip_address":"192.168.0.1"}],"paginator":{"page":1,"page_count":1,"limit":100,"total_count":1}}
```
version: 1.0.0
title: Preseem Model API Documentation
servers:
- url: https://api.preseem.com
tags:
- name: Access Points
description: This represents an Access Point in the system, or any representation
of the two-layer topology
- name: Access Point Configs
description: This represents the config of an Access Point in the system, or any representation
of the two-layer topology. Note, the parent Access Point must exist before you can perform any operation on its config.<br><br>
SNMP configuration per AP is optional; if the SNMP credentials are not set in this API, the configuration for the network poller will be used.
- name: CPE Radios
description: This represents a CPE Radio in the system
- name: Accounts
description: This represents a customer/subscriber/account who pays for Internet
access.
- name: Packages
description: This represents a plan/tariff/service definition in the system.
- name: Services
description: A service describes an attachment to the network that receives Internet service and is owned by an Account.
- name: Routers
description: This represents a router in the system, which facilitates the routing of network traffic between different network segments or devices.
- name: OLTs
description: This represents an OLT (optical line terminal) in the system.
- name: Sites
description: A site represents a network site (such as a PoP or Tower or Headend) that contains network equipment.
paths:
/model/v1/access_points:
get:
tags:
- Access Points
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of access points to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List Access Points
description: Returns a list of all Access Points.
operationId: getAccessPoints
responses:
'200':
description: Access points returned
content:
application/json:
schema:
$ref: '#/components/schemas/AccessPointList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/access_point_scores:
get:
tags:
- Access Points
summary: List Access Point Scores
description: Returns a list of all Access Points along with their scores and severities. See the Access Point table help in the Preseem App for more details.
operationId: getAccessPointScores
responses:
'200':
description: Access point scores returned
content:
application/json:
schema:
$ref: '#/components/schemas/AccessPointScoreInfo'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/access_points/{id}:
put:
tags:
- Access Points
summary: Create Access Point
description: This creates an Access Point.
operationId: createAccessPoint
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/AccessPoint"
parameters:
- name: id
in: path
description: Unique ID of Access point to be added
required: true
schema:
type: string
responses:
'200':
description: Access point added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- Access Points
summary: Delete Access Point
description: This deletes an Access Point. Note that the Access Point config will also be deleted.
operationId: deleteAccessPoint
parameters:
- name: id
in: path
description: Unique ID of Access point to be deleted
required: true
schema:
type: string
responses:
'200':
description: Access point deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: Access Point does not exist
'500':
description: Server cannot process request
get:
tags:
- Access Points
summary: Get Access Point
description: This gets an Access Point.
operationId: getAccessPoint
parameters:
- name: id
in: path
description: Unique ID of Access point
required: true
schema:
type: string
responses:
'200':
description: Access Point returned
content:
application/json:
schema:
$ref: '#/components/schemas/AccessPoint'
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: Access Point not found
'500':
description: Server cannot process request
/model/v1/access_points/{id}/config:
put:
tags:
- Access Point Configs
summary: Create Access Point config
description: This creates an Access Point config.
operationId: createAccessPointConfig
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/AccessPointConfig"
parameters:
- name: id
in: path
description: Unique ID of the Access point
required: true
schema:
type: string
responses:
'200':
description: Access point config added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'404':
description: Access Point does not exist
'500':
description: Server cannot process request
delete:
tags:
- Access Point Configs
summary: Delete Access Point config
description: This deletes an Access Point config.
operationId: deleteAccessPointConfig
parameters:
- name: id
in: path
description: Unique ID of Access point to be deleted
required: true
schema:
type: string
responses:
'200':
description: Access point config deleted
'400':
description: Missing ID in URI ***OR*** Access Point does not exist
'401':
description: API key does not have the required permission
'404':
description: Access Point config does not exist
'500':
description: Server cannot process request
get:
tags:
- Access Point Configs
summary: Get Access Point config
description: This gets an Access Point config.
operationId: getAccessPointConfig
parameters:
- name: id
in: path
description: Unique ID of Access point
required: true
schema:
type: string
responses:
'200':
description: Access Point config returned
content:
application/json:
schema:
$ref: '#/components/schemas/AccessPointConfig'
'400':
description: Missing ID in the URI ***OR*** Access Point does not exist
'401':
description: API key does not have the required permission
'404':
description: Access Point config does not exist
'500':
description: Server cannot process request
/model/v1/cpe_radio_scores:
get:
tags:
- CPE Radios
summary: List CPE Radio Scores
description: Returns a list of all CPE Radios along with their scores and severities. See the CPE Radios table help in the Preseem App for more details.
operationId: getCPERadioScores
responses:
'200':
description: CPE Radio scores returned
content:
application/json:
schema:
$ref: '#/components/schemas/CPERadioScoreInfo'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/accounts:
get:
tags:
- Accounts
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of results to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List Accounts
description: Returns a list of all Accounts.
operationId: getAccounts
responses:
'200':
description: Accounts returned
content:
application/json:
schema:
$ref: '#/components/schemas/AccountList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/accounts/{id}:
put:
tags:
- Accounts
summary: Create Account
description: This creates an Account.
operationId: createAccount
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/Account"
parameters:
- name: id
in: path
description: Unique ID of Account to be added
required: true
schema:
type: string
responses:
'200':
description: Account added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- Accounts
summary: Delete Account
description: This deletes an Account.
operationId: deleteAccount
parameters:
- name: id
in: path
description: Unique ID of Account to be deleted
required: true
schema:
type: string
responses:
'200':
description: Account deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: Account does not exist
'500':
description: Server cannot process request
get:
tags:
- Accounts
summary: Get Account
description: This gets an Account.
operationId: getAccount
parameters:
- name: id
in: path
description: Unique ID of Account to be added
required: true
schema:
type: string
responses:
'200':
description: Account returned
content:
application/json:
schema:
$ref: "#/components/schemas/Account"
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: Account not found
'500':
description: Server cannot process request
/model/v1/packages:
get:
tags:
- Packages
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of results to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List Packages
description: Returns a list of all Packages.
operationId: getPackages
responses:
'200':
description: Packages returned
content:
application/json:
schema:
$ref: '#/components/schemas/PackageList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/packages/{id}:
put:
tags:
- Packages
summary: Create Package
description: This creates an Account.
operationId: createPackage
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/Package"
parameters:
- name: id
in: path
description: Unique ID of Package to be added
required: true
schema:
type: string
responses:
'200':
description: Package added
'400':
description: |
Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- Packages
summary: Delete Package
description: This deletes a Package.
operationId: deletePackage
parameters:
- name: id
in: path
description: Unique ID of Package to be deleted
required: true
schema:
type: string
responses:
'200':
description: Package deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: Package does not exist
'500':
description: Server cannot process request
get:
tags:
- Packages
summary: Get Package
description: This gets a Package.
operationId: getPackage
parameters:
- name: id
in: path
description: Unique ID of Package to be added
required: true
schema:
type: string
responses:
'200':
description: Package returned
content:
application/json:
schema:
$ref: "#/components/schemas/Package"
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: Package not found
'500':
description: Server cannot process request
/model/v1/services:
get:
tags:
- Services
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of results to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List Services
description: Returns a list of all Services.
operationId: getServices
responses:
'200':
description: Services returned
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/services/{id}:
put:
tags:
- Services
summary: Create Service
description: This creates a Service
operationId: createService
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/Service"
examples:
MultipleAttachments:
summary: Multiple Attachments Example
value:
id: '23'
attachments:
- cpe_mac: '00:10:0b:6e:4c:45'
network_prefixes: ['10.10.10.0/24', '192.168.100.100', '2001:cafe:456:dfe1:63:0:0:fefb', '2001:f0:3238:dfe1::/64']
- cpe_mac: '00:17:2c:6e:9b:15'
- network_prefixes: ['12.12.12.12']
up_speed: 25000
down_speed: 5000
account: "100"
package: "10"
parent_device_id: "AP1"
SingleAttachmentSerialNumber:
summary: Single Attachment - Serial Number Example
value:
id: '23'
attachments:
- cpe_serial: '20130420AB'
cpe_mac: '00:10:0b:6e:4c:48'
network_prefixes: ['10.10.10.1/24', '192.168.100.101', '2002:cafe:456:dfe1:63:0:0:fefb', '2002:f0:3238:dfe1::/64']
up_speed: 25000
down_speed: 5000
account: "100"
package: "10"
parent_device_id: "AP1"
SingleAttachmentIMSI:
summary: Single Attachment - IMSI Example
value:
id: '23'
attachments:
- cpe_imsi: '313460000000001'
cpe_mac: '00:10:0b:6e:4c:48'
network_prefixes: ['10.10.10.1/24', '192.168.100.101', '2002:cafe:456:dfe1:63:0:0:fefb', '2002:f0:3238:dfe1::/64']
up_speed: 25000
down_speed: 5000
account: "100"
package: "10"
parent_device_id: "AP1"
SingleAttachmentUsername:
summary: Single Attachment - Username Example
value:
id: '23'
attachments:
- username: 'userid@isp-name'
cpe_mac: '00:10:0b:6e:4c:48'
network_prefixes: ['10.10.10.1/24', '192.168.100.101', '2002:cafe:456:dfe1:63:0:0:fefb', '2002:f0:3238:dfe1::/64']
up_speed: 25000
down_speed: 5000
account: "100"
package: "10"
parent_device_id: "AP1"
parameters:
- name: id
in: path
description: Unique ID of Service to be added
required: true
schema:
type: string
responses:
'200':
description: Service added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json ***OR*** multiple attachments for the service that may contain any of the following cpe_serial, cpe_imsi, and username.
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- Services
summary: Delete Service
description: This deletes a Service.
operationId: deleteService
parameters:
- name: id
in: path
description: Unique ID of Service to be deleted
required: true
schema:
type: string
responses:
'200':
description: Service deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: Service does not exist
'500':
description: Server cannot process request
get:
tags:
- Services
summary: Get Service
description: This gets a Service.
operationId: getService
parameters:
- name: id
in: path
description: Unique ID of Service to be added
required: true
schema:
type: string
responses:
'200':
description: Service returned
content:
application/json:
schema:
$ref: "#/components/schemas/Service"
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: Service not found
'500':
description: Server cannot process request
/model/v1/routers:
get:
tags:
- Routers
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of routers to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List Routers
description: Returns a list of all Routers.
operationId: getRouters
responses:
'200':
description: Routers returned
content:
application/json:
schema:
$ref: '#/components/schemas/RouterList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/routers/{id}:
put:
tags:
- Routers
summary: Create Router
description: This creates an Router.
operationId: createRouter
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/Router"
parameters:
- name: id
in: path
description: Unique ID of Router to be added
required: true
schema:
type: string
responses:
'200':
description: Router added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- Routers
summary: Delete Router
description: This deletes an Router.
operationId: deleteRouter
parameters:
- name: id
in: path
description: Unique ID of Router to be deleted
required: true
schema:
type: string
responses:
'200':
description: Router deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: Router does not exist
'500':
description: Server cannot process request
get:
tags:
- Routers
summary: Get Router
description: This gets an Router.
operationId: getRouter
parameters:
- name: id
in: path
description: Unique ID of Router
required: true
schema:
type: string
responses:
'200':
description: Router returned
content:
application/json:
schema:
$ref: '#/components/schemas/Router'
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: Router not found
'500':
description: Server cannot process request
/model/v1/olts:
get:
tags:
- OLTs
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of OLTs to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List OLTs
description: Returns a list of all OLTs.
operationId: getOLTs
responses:
'200':
description: OLTs returned
content:
application/json:
schema:
$ref: '#/components/schemas/OLTList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/olts/{id}:
put:
tags:
- OLTs
summary: Create OLT
description: This creates an OLT.
operationId: createOLT
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/OLT"
parameters:
- name: id
in: path
description: Unique ID of OLT to be added
required: true
schema:
type: string
responses:
'200':
description: OLT added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- OLTs
summary: Delete OLT
description: This deletes an OLT.
operationId: deleteOLT
parameters:
- name: id
in: path
description: Unique ID of OLT to be deleted
required: true
schema:
type: string
responses:
'200':
description: OLT deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: OLT does not exist
'500':
description: Server cannot process request
get:
tags:
- OLTs
summary: Get OLT
description: This gets an OLT.
operationId: getOLT
parameters:
- name: id
in: path
description: Unique ID of OLT
required: true
schema:
type: string
responses:
'200':
description: OLT returned
content:
application/json:
schema:
$ref: '#/components/schemas/OLT'
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: OLT not found
'500':
description: Server cannot process request
/model/v1/sites:
get:
tags:
- Sites
parameters:
- in: query
name: page
schema:
type: integer
description: Page number. Default is 1. If `page` is greater than the number of pages available, `data` field in the response will be an empty array
- in: query
name: limit
schema:
type: integer
description: Specifies the maximum number of results to be returned per page. Default is 500, *mininum* is 100, *maximum* is 1000
summary: List Sites
description: Returns a list of all Sites.
operationId: getSites
responses:
'200':
description: Sites returned
content:
application/json:
schema:
$ref: '#/components/schemas/SiteList'
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
/model/v1/sites/{id}:
put:
tags:
- Sites
summary: Create Site
description: This creates a Site
operationId: createSite
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/Site"
parameters:
- name: id
in: path
description: Unique ID of Site to be added
required: true
schema:
type: string
responses:
'200':
description: Site added
'400':
description: Required json field missing in the PUT request ***OR***
ID in the URI does not match the id in json ***OR***
Bad json
'401':
description: API key does not have the required permission
'500':
description: Server cannot process request
delete:
tags:
- Sites
summary: Delete Site
description: This deletes a Site.
operationId: deleteSite
parameters:
- name: id
in: path
description: Unique ID of Site to be deleted
required: true
schema:
type: string
responses:
'200':
description: Site deleted
'400':
description: Missing ID in URI
'401':
description: API key does not have the required permission
'404':
description: Site does not exist
'500':
description: Server cannot process request
get:
tags:
- Sites
summary: Get Site
description: This gets a Site.
operationId: getSite
parameters:
- name: id
in: path
description: Unique ID of Site to be added. Note that a site cannot share the same id with an access point object as they share the same namespace
required: true
schema:
type: string
responses:
'200':
description: Site returned
content:
application/json:
schema:
$ref: "#/components/schemas/Site"
'400':
description: Missing ID in the URI
'401':
description: API key does not have the required permission
'404':
description: Site not found
'500':
description: Server cannot process request
components:
securitySchemes:
APIKeyAuth:
type: http
scheme: basic
schemas:
AccessPoint:
type: object
required:
- id
- name
- tower
- ip_address
properties:
id:
type: string
description: Unique id for access point
example: '123'
name:
type: string
description: Access point name
example: AP-1
tower:
type: string
description: Tower name
example: Mt. Tower
ip_address:
type: string
description: Management ip address for Access Point
example: 192.168.0.1
AccessPointScoreInfo:
type: object
properties:
company_uuid:
type: string
description: The company's UUID
example: 'f80dfce4-0fee-4cf4-b830-88ed5cf921a7'
element_uuid:
type: string
description: The access point's UUID
example: '6fe2ac5a-be30-4363-7790-01fcdcef4784'
connections:
type: integer
description: The number of connection to the access point
example: 10
latency:
type: integer
description: The access point's latency
example: 76
throughput_tx:
type: integer
description: The access point's TX throughput
example: 3.7
throughput_rx:
type: integer
description: The access point's RX throughput
example: 4.6
frequency:
type: integer
description: The access point's frequency
example: 5000
channel_width:
type: integer
description: The access point's channel width
example: 20
firmware:
type: string
description: The access point's firmware
example: '4.6.2'
name:
type: string
description: The name of the access point
example: 'AP-1'
system_mac_address:
type: string
description: The system MAC address of the access point
example: 00-B0-D0-63-C2-26
management_ip:
type: string
description: The management IP of the access point
example: 192.168.0.1
status:
type: string
enum: [Invalid, Online, Warning, Offline, Unknown, Error]
description: The status of the access point
example: "Online"
manufacturer_uuid:
type: string
description: The manufacturer UUID of the access point
example: '1bbfa69b-f399-4d68-9572-5772074795f7'
manufacturer_name:
type: string
description: The manufacturer name of the access point
example: 'Manufacturer Name'
model_uuid:
type: string
description: The model UUID of the access point
example: 'e31dd2f3-f30b-46b1-8f9d-ef59b923070d'
model_name:
type: string
description: The model name of the access point
example: 'Model Name'
site_uuid:
type: string
description: The site UUID of the access point
example: '14004472-9617-4fa7-a2da-915633301d27'
site_name:
type: string
description: The site name of the access point
example: 'Site Name'
system_name:
type: string
description: The system name of the access point
example: 'System Name'
model_support_level:
type: string
enum: [Invalid, None, Topology, Test, Full, Basic]
description: The model support level of the access point
example: "Full"
element_id:
type: integer
description: The ID of the access point
example: 123
model_auto_shape:
type: string
enum: [Invalid, Not Supported, Supported]
description: The access point's auto shape model
example: "Supported"
serial_number:
type: string
description: The access point's serial number
example: '123456'
source:
type: string
description: The name of the system of record that this access point was provisioned from
example: 'api'
source_id:
type: string
description: A unique identifier for this access point in the system of record
example: '2346'
slice_condition:
type: string
enum: [Invalid, Good, Caution, Warning, Drop]
description: The slice condition of the access point
example: "Good"
latency_severity:
type: string
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The severity of the access point's latency
example: "Warning"
rf_score:
type: integer
description: The access point's RF score
example: 5.6
rf_score_severity:
type: integer
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The severity of the access point's RF score
example: 3
ap_health_score:
type: integer
description: The access point's health score
example: 6.1
ap_health_score_severity:
type: string
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The access point's health score severity
example: "Critical"
airtime_remaining_tx:
type: integer
description: The access point's TX airtime remaining
example: 60
airtime_remaining_severity_tx:
type: string
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The access point's TX airtime remaining severity
example: "Excellent"
subscriber_capacity:
type: integer
description: The access point's subscriber capacity
example: 12
subscriber_capacity_severity:
type: string
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The access point's subscriber capacity severity
example: "Excellent"
rf_score_trend:
type: string
enum: [Invalid, Unknown Trend, Up Fast, Up, Stable, Down Fast, Down]
description: The access point's RF score trend
example: "Unknown Trend"
ap_health_score_trend:
type: string
enum: [Invalid, Unknown Trend, Up Fast, Up, Stable, Down Fast, Down]
description: The access point's health score trend
example: "Stable"
subscriber_capacity_trend:
type: string
enum: [Invalid, Unknown Trend, Up Fast, Up, Stable, Down Fast, Down]
description: The access point's subscriber capacity trend
example: "Up"
AccessPointConfig:
type: object
properties:
shaper_rate:
$ref: '#/components/schemas/APShaperRate'
snmp_community:
type: string
description: SNMP community for SNMPv1 or SNMPv2c
example: public
snmp3:
$ref: '#/components/schemas/SNMP3'
CPERadioScoreInfo:
type: object
properties:
company_uuid:
type: string
description: The company's UUID
example: 'f80dfce4-0fee-4cf4-b830-88ed5cf921a7'
element_uuid:
type: string
description: The CPE radio's UUID
example: '6fe2ac5a-be30-4393-7790-01fcdcef4784'
ap_uuid:
type: string
description: The associated AP's UUID
example: '5hr3bn7a-kg58-8579-2648-32dfgrey4522'
firmware:
type: string
description: The CPE radio's firmware
example: '4.6.2'
frequency:
type: integer
description: The CPE radio's frequency
example: 8000
channel_width:
type: integer
description: The CPE radio's channel width
example: 20
ap_name:
type: string
description: The CPE radio's associated AP's name
example: "ap name"
name:
type: string
description: The name of the CPE radio
example: 'CPE-1'
system_mac_address:
type: string
description: The system MAC address of the CPE radio
example: 00-B0-D0-63-C2-26
management_ip:
type: string
description: The management IP of the CPE radio
example: 192.168.0.1
status:
type: string
enum: [Invalid, Online, Warning, Offline, Unknown, Error]
description: The status of the CPE radio
example: "Online"
manufacturer_uuid:
type: string
description: The manufacturer UUID of the CPE radio
example: '1bbfa69b-f399-4d68-9572-5772074795f7'
manufacturer_name:
type: string
description: The manufacturer name of the CPE radio
example: 'Manufacturer Name'
model_uuid:
type: string
description: The model UUID of the CPE radio
example: 'e31dd2f3-f30b-46b1-8f9d-ef59b923070d'
model_name:
type: string
description: The model name of the CPE radio
example: 'Model Name'
system_name:
type: string
description: The system name of the CPE radio
example: 'System Name'
model_support_level:
type: string
enum: [Invalid, None, Topology, Test, Full, Basic]
description: The model support level of the CPE radio
example: "Topology"
element_id:
type: integer
description: The ID of the CPE radio
example: 123
ap_id:
type: integer
description: The ID of the CPE radio's associated AP
example: 546
ap_system_name:
type: string
description: The system name of the associated AP
example: "AP System Name"
ap_site_uuid:
type: string
description: The site UUID of the associated AP
example: '14004472-9617-4fa7-a2da-915633301d27'
ap_site_name:
type: string
description: The site name of the associated AP
example: 'AP Site Name'
serial_number:
type: string
description: The CPE radio's serial number
example: '123456'
slice_condition:
type: string
enum: [Invalid, Good, Caution, Warning, Drop]
description: The CPE radio's slice condition
example: "Good"
business_value_score:
type: integer
description: The CPE radio's business value score
example: 3
business_value_score_severity:
type: string
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The CPE radio's business value score severity
example: "Ok"
business_value_score_trend:
type: string
enum: [Invalid, Unknown Trend, Up Fast, Up, Stable, Down Fast, Down]
description: The trend of the CPE radio's business value score
example: "Stable"
rf_score:
type: integer
description: The CPE radio's RF score
example: 5.6
rf_score_severity:
type: string
enum: [Invalid, Unknown, Critical, Warning, Ok, Excellent]
description: The CPE radio's RF score severity
example: "Unknown"
rf_score_trend:
type: string
enum: [Invalid, Unknown Trend, Up Fast, Up, Stable, Down Fast, Down]
description: The trend of the CPE radio's RF score
example: "Up"
APShaperRate:
type: object
properties:
up_speed:
type: integer
format: int64
description: The upstream rate limit, in Kbps. A value of 0 is treated as not set. If not set, this field is omitted in the returned json. A negative speed is converted to 0
example: 5000
down_speed:
type: integer
format: int64
description: The downstream rate limit, in Kbps. A value of 0 is treated as not set. If not set, this field is omitted in the returned json. A negative speed is converted to 0
example: 5000
activate:
type: boolean
description: A value of true enforces the shaper rates
example: true
SNMP3:
type: object
required:
- security_name
- auth_key
- auth_protocol
- priv_key
- priv_protocol
properties:
security_name:
type: string
description: SNMPv3 security name / username
example: preseem
auth_key:
type: string
description: SNMPv3 authentication key
example: asdf!
auth_protocol:
type: string
enum: [MD5, SHA]
description: SNMPv3 authentication type
example: MD5
priv_key:
type: string
description: SNMPv3 privacy key
example: asdf!
priv_protocol:
type: string
enum: [AES, DES]
description: SNMPv3 privacy type
example: AES
Account:
type: object
required:
- id
- name
properties:
id:
type: string
description: Unique id for account
example: '100'
name:
type: string
description: Name of Account owner
example: Jonathon Fernando
Package:
type: object
required:
- id
- name
properties:
id:
type: string
description: Unique id for package
example: '10'
name:
type: string
description: Package name
example: Family Premium
up_speed:
type: integer
format: int64
description: The upstream rate limit, in Kbps. A value of 0 is treated as not set. If not set, this field is omitted in the returned json. A negative speed is converted to 0
example: 25000
down_speed:
type: integer
format: int64
description: The downstream rate limit, in Kbps. A value of 0 is treated as not set. If not set, this field is omitted in the returned json. A negative speed is converted to 0
example: 5000
Service:
type: object
required:
- id
- name
- account
properties:
id:
type: string
description: Unique id for service
example: '23'
attachments:
$ref: '#/components/schemas/ServiceAttachment'
up_speed:
type: integer
format: int64
description: The upstream rate limit, in Kbps. A value of 0 is treated as not set. If not set, this field is omitted in the returned json. A negative speed is converted to 0
example: 25000
down_speed:
type: integer
format: int64
description: The downstream rate limit, in Kbps. A value of 0 is treated as not set. If not set, this field is omitted in the returned json. A negative speed is converted to 0
example: 5000
account:
type: string
description: Account id for the service. This id is just a reference to an account, the account doesn't have to exist, but when it does, the service gets attached to the account
example: '100'
package:
type: string
description: Package id of the service
example: '10'
parent_device_id:
type: string
description: This is the unique id for the parent device. E.g. An access point
example: 'AP1'
Router:
type: object
required:
- id
- name
- site
- host
properties:
id:
type: string
description: Unique id for router
example: '123'
name:
type: string
description: Router name
example: Router-1
site:
type: string
description: Name of the site or tower where the router is deployed
example: Mt. Site
host:
type: string
description: Management ip address for Router
example: 192.0.2.1
OLT:
type: object
required:
- id
- name
- site
- host
properties:
id:
type: string
description: Unique ID for OLT
example: '123'
name:
type: string
description: OLT name
example: OLT-1
site:
type: string
description: Name of the site or tower where the OLT is deployed
example: Mt. Site
host:
type: string
description: Management ip address for OLT
example: 192.0.2.1
Site:
type: object
required:
- id
- name
- ip_address
properties:
id:
type: string
description: Unique id for Site. Note that a site and access point objects can't have the same ID as they share the same namespace.
example: '123'
name:
type: string
description: Site name
example: Site-1
attachment:
$ref: '#/components/schemas/SiteAttachment'
SiteAttachment:
type: object
properties:
network_prefixes:
type: array
items:
type: string
example: ['10.10.10.0/24', '192.168.100.100', '2001:cafe:456:dfe1:63:0:0:fefb', '2001:f0:3238:dfe1::/64']
ServiceAttachment:
type: array
description: Attachment must be unique across services. If two or more services are assigned the same attachment, only the last assignment will remain.
items:
type: object
properties:
cpe_mac:
type: string
description: Optional
network_prefixes:
type: array
description: Optional
items:
type: string
cpe_serial:
type: string
description: Optional. The serial number of the CPE device assigned to this service. The presence of a serial number enforces a single-attachment restriction, implying that any service with a serial number is limited to having just one attachment. This field is used to map Tarana RN devices to the service.
items:
type: string
cpe_imsi:
type: string
description: Optional. The IMSI (International Mobile Subscriber Identity) of the CPE device assigned to this service. The presence of an IMSI enforces a single-attachment restriction, implying that any service with IMSI is limited to having just one attachment.
items:
type: string
username:
type: string
description: Optional. Represents the RADIUS username associated with a service, for PPPoE based deployments. The presence of a username enforces a single-attachment restriction, implying that any service with a username is limited to having just one attachment.
items:
type: string
example:
- cpe_mac: '00:10:0b:6e:4c:45'
network_prefixes: ['10.10.10.0/24', '192.168.100.100', '2001:cafe:456:dfe1:63:0:0:fefb', '2001:f0:3238:dfe1::/64']
- cpe_mac: '00:17:2c:6e:9b:15'
- network_prefixes: ['12.12.12.12']
Paginator:
type: object
description: Page details
properties:
page:
type: integer
description: Page number for the list of results returned
example: 1
page_count:
type: integer
description: Total number of pages available
example: 1
limit:
type: integer
description: The number of results per page. The number of results on the last page can be less than `limit`
minimum: 100
maximum: 1000
example: 100
total_count:
type: integer
description: Sum of results across all pages
example: 1
AccessPointList:
type: object
properties:
data:
type: array
description: A list of access points
items:
$ref: '#/components/schemas/AccessPoint'
paginator:
$ref: '#/components/schemas/Paginator'
AccountList:
type: object
properties:
data:
type: array
description: A list of accounts
items:
$ref: '#/components/schemas/Account'
paginator:
$ref: '#/components/schemas/Paginator'
PackageList:
type: object
properties:
data:
type: array
description: A list of packages
items:
$ref: '#/components/schemas/Package'
paginator:
$ref: '#/components/schemas/Paginator'
ServiceList:
type: object
properties:
data:
type: array
description: A list of services
items:
$ref: '#/components/schemas/Service'
paginator:
$ref: '#/components/schemas/Paginator'
RouterList:
type: object
properties:
data:
type: array
description: A list of routers
items:
$ref: '#/components/schemas/Router'
paginator:
$ref: '#/components/schemas/Paginator'
OLTList:
type: object
properties:
data:
type: array
description: A list of OLTs
items:
$ref: '#/components/schemas/OLT'
paginator:
$ref: '#/components/schemas/Paginator'
SiteList:
type: object
properties:
data:
type: array
description: A list of sites
items:
$ref: '#/components/schemas/Site'
paginator:
$ref: '#/components/schemas/Paginator'
security:
- APIKeyAuth: []
externalDocs:
description: Find out more about Preseem
url: https://preseem.com