1716 lines
55 KiB
YAML
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
|