Skip to content

Service Management

The API provides different endpoints to allow the ISP to fully service their customer. All changes the ISP makes are immediately visible to the related FNO.

Service Creation

To create a new service, three elements are required:

  • Customer
  • Product
  • Premise

The endpoint for service creation is:

POST https://stage.provider-service.dev.aex.systems/services

file_type_swagger Create Service

Example Payload
1
2
3
4
5
{
  "customer_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "product_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "premise_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

On successful creation, HTTP response Status Code 201 is returned, with the Location header indicating the API route to accessing the new service.

Service Updates

The API provides an endpoint to allow the ISP to make limited updates to an existing service. The ISP can update the following attributes:

  • ISP reference
  • WiFi user name
  • WiFi password

PUT https://stage.provider-service.dev.aex.systems/services/:serviceId

file_type_swagger Service Update

On successful completion of the update, the response payload contains the full details about the service, including the attributes that were updated.

Service Tracking

The API allows the ISP to track any recent changes made to a service. The tracking is provided by means of a delta endpoint, services/snapshot.

NOTE To prevent the abuse of this endpoint, rate limiting is implemented so that an ISP may only make a single call within a 10-minute period.

GET https://stage.provider-service.dev.aex.systems/services/snapshot

file_type_swagger Service Tracking

Example Response
[
  {
    "service_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "customer_name": "string",
    "full_address": "string",
    "status": "string",
    "product": "string",
    "last_updated_date": "2024-12-17T09:06:42.779Z"
  }
]

The API provides a number of endpoints for different types of service search.

Get Services List

Get a paged list of services filtered by given parameters.

Request Parameters:

  • status (string, optional): The service status - see API specification for allowed values.
  • page (int, optional): The page number want to display. If a value is not provided, the default value is 1.
  • page_size (int, optional): The maximum number of records to include per page.

GET https://stage.provider-service.dev.aex.systems/services

file_type_swagger Get Services

Example Response
{
  "items": [
    {
      "id": "d6112589-8525-4bc8-e8ba-3f9953ba8748",
      "customer_id": "0aac8405-86e7-4dee-7475-12386903c727",
      "product_id": "dc7d755f-4dc6-be9a-f6f5-bf260875fd7b",
      "provider_id": "76096405-86de-4c77-dc2f-7a7c096e98cf",
      "premise_id": "2d9b6aba-4c4f-ac2a-06fa-cfaf6bbdbb5a",
      "provisioned_date": "2021-04-28T15:13:00+00:00",
      "sales_agent": "Thandeka",
      "created_at": "2021-04-16T10:55:53.623+00:00",
      "updated_at": "2023-11-02T10:28:57.39+00:00",
      "created_by_id": "e3ea31f9-8f13-e3cf-40fb-4dc8d9ed419e",
      "status": "Pending installation"
    }
  ],
  "page": 1,
  "count": 1,
  "total": 168
}

Get Service Device Status

The API provides two endpoints to retrieve the device status - one providing the cached status, and the other providing the live status.

NOTE Network status queries are run by the AEx system on a configurable interval. The information returned in these automated queries are cached and are what is returned when endpoint below is called.

Both endpoints have the same response payload.

Example Response
{
  "network": "string",
  "pop": "string",
  "serial_number": "string",
  "gpon_status": "string",
  "cpe": "string",
  "model": "string",
  "last_updated": "2024-12-17T11:39:15.630Z",
  "service": "string",
  "pop_name": "string",
  "alerts": [
    "string"
  ],
  "alarms": [
    "string"
  ],
  "populated_ports": "string",
  "olt_port": "string",
  "distance": 0,
  "rx_status": "string",
  "rx_power": 0,
  "sfp_status": "string",
  "sfp_power": 0,
  "sfp_rx_status": "string",
  "sfp_rx_power": 0,
  "tx_power": 0,
  "tx_status": "string",
  "switch": "string",
  "sfp_sync_speed": "string",
  "switch_port": "string"
}

Request Parameters:

  • service_id (string, required): The system-generated unique identifier for the service the device of interest is linked to.

To get the cached device status, the endpoint below can be used.

GET https://stage.provider-service.dev.aex.systems/services/{service_id}/device/status

file_type_swagger Get Cached Device Status

To get the live device status for a given service, the endpoint below can be used.

GET https://stage.provider-service.dev.aex.systems/services/{service_id}/device/status/live

file_type_swagger Get Live Device Status

Get RADIUS Information

To get the RADIUS status for a given service, the following endpoint can be used:

GET https://stage.provider-service.dev.aex.systems/services/{service_id}/radius/status

file_type_swagger Get Radius Status

Example Response
{
  "username": "string",
  "password": "string",
  "authentication_attempts": [
    {
      "date": "2024-12-17T12:56:51.787Z",
      "reply": "string"
    }
  ],
  "accounting": [
    {
      "session_id": "string",
      "username": "string",
      "ipaddress": "string",
      "acct_start_time": "2024-12-17T12:56:51.787Z",
      "acct_stop_time": "2024-12-17T12:56:51.787Z",
      "session_time": 0,
      "input_octets": 0,
      "output_octets": 0,
      "ipv6_input_octets": 0,
      "ipv6_output_octets": 0,
      "terminate_cause": "string",
      "update_time": "2024-12-17T12:56:51.787Z"
    }
  ]
}

The endpoint below allows us to get the usage details for a given service.

GET https://stage.provider-service.dev.aex.systems/services/{service_id}/radius/usage

file_type_swagger Get Radius Status

Example Response
[
  {
    "date": "2024-12-17",
    "bytes_downloaded": 0,
    "bytes_uploaded": 0,
    "i_pv6_bytes_downloaded": 0,
    "i_pv6_bytes_uploaded": 0,
    "total_bytes_downloaded": 0,
    "total_bytes_uploaded": 0
  }
]