Professional Documents
Culture Documents
The information in this document applies solely to the hardware/software product (“Product”) specified herein, and only as specified herein.
This document is intended for use by Nokia' customers (“You”) only, and it may not be used except for the purposes defined in the agreement
between You and Nokia (“Agreement”) under which this document is distributed. No part of this document may be used, copied, reproduced,
modified or transmitted in any form or means without the prior written permission of Nokia. If you have not entered into an Agreement
applicable to the Product, or if that Agreement has expired or has been terminated, You may not use this document in any manner and You
are obliged to return it to Nokia and destroy or delete any copies thereof.
The document has been prepared to be used by professional and properly trained personnel, and You assume full responsibility when using
it. Nokia welcome Your comments as part of the process of continuous development and improvement of the documentation.
This document and its contents are provided as a convenience to You. Any information or statements concerning the suitability, capacity,
fitness for purpose or performance of the Product are given solely on an “as is” and “as available” basis in this document, and Nokia reserves
the right to change any such information and statements without notice. Nokia has made all reasonable efforts to ensure that the content of
this document is adequate and free of material errors and omissions, and Nokia will correct errors that You identify in this document. But,
Nokia' total liability for any errors in the document is strictly limited to the correction of such error(s). Nokia does not warrant that the use of
the software in the Product will be uninterrupted or error-free.
This document is Nokia’ proprietary and confidential information, which may not be distributed or disclosed to any third parties without the
prior written consent of Nokia.
Nokia is a registered trademark of Nokia Corporation. Other product names mentioned in this document may be trademarks of their
respective owners, and they are mentioned for identification purposes only.
Nokia is continually striving to reduce the adverse environmental effects of its products and services. We would like to encourage you
as our customers and users to join us in working towards a cleaner, safer environment. Please recycle product packaging and follow the
recommendations for power use and proper disposal of our products and their components.
If you should have questions regarding our Environmental Policy or any of the environmental services we offer, please contact us at Nokia for
any additional information.
SON Northbound Interface Guide DN09252603 1-0 Table of Contents
Contents
1 Summary of changes...................................................................................................................................... 5
3.6.2.1 Example.................................................................................................................................. 47
3.7 Configuration management for Radio Access Network..........................................................................55
3.7.1 Read neighbor list information of cells request.............................................................................. 55
3.7.1.1 Available parameters..............................................................................................................56
3.7.1.2 Example.................................................................................................................................. 57
3.7.2 Read neighbor list information of cells result................................................................................. 58
3.7.2.1 Example.................................................................................................................................. 59
3.7.3 Read configuration management data for descendant managed objects request......................... 63
3.7.3.1 Available parameters..............................................................................................................64
3.7.3.2 Example.................................................................................................................................. 64
3.7.4 Read configuration management data for descendant managed objects result.............................66
3.7.4.1 Example.................................................................................................................................. 67
3.7.5 Read distinguished names of the root level managed objects.......................................................69
3.7.5.1 Example.................................................................................................................................. 70
3.7.6 Read configuration management data for individual managed objects request............................. 70
3.7.6.1 Available parameters..............................................................................................................71
3.7.6.2 Example.................................................................................................................................. 72
3.7.7 Read configuration management data for individual managed objects result................................ 73
3.7.7.1 Example.................................................................................................................................. 73
3.7.8 Write configuration management data to managed objects request.............................................. 75
3.7.8.1 Available parameters..............................................................................................................76
3.7.8.2 Example.................................................................................................................................. 77
3.7.9 Write configuration management data to managed objects response........................................... 80
3.7.9.1 Example.................................................................................................................................. 81
3.7.10 Check status of cache for configuration management data request............................................ 84
3.7.10.1 Available parameters............................................................................................................84
3.7.10.2 Example................................................................................................................................ 85
1 Summary of changes
Updated sections:
The EdenNet SON Northbound Interface (SON NBI) is a REST API that allows external applications
to interact with EdenNet services in a common standardized way. The SON NBI exposes the EdenNet
framework capabilities outside the current EdenNet GUI. SON NBI is a versioned interface. The avail-
able capabilities improve from version to version and a particular capability always belongs to a partic-
ular SON NBI version.
• Encrypts all the traffic between the EdenNet product and the external applications. The API
allows external applications to interact with the SON Modules and is controlled by EdenNet user
permission capabilities.
• Provides access to RAN CM and PM data for external applications.
• Provides access to SON execution information (for example, logs and reports).
• Provides access to EdenNet's advanced SON capabilities.
The communication between EdenNet and external systems is encrypted using HTTPS. Before calling
any API, an external system must be first authenticated and a security token should be obtained. The
external system is authenticated via a user name and password. This user name and password must
correspond to a valid and active user account in EdenNet.
API versioning GET API Versioning Queries the supported API version at
the server.
Retrieve a list of pre-in- GET SON Module Man- Allows to retrieve a list of pre-installed
stalled SON modules agement SON modules.
Retrieve details about a GET SON Module Man- Allows to retrieve details such as sup-
specific SON module agement ported technologies, version, descrip-
tion, and configurable parameters
about the SON module.
Create a SON module in- POST SON Module Man- Allows to create the SON module in-
stance agement stances on the EdenNet server.
Retrieve execution sta- GET SON Module Man- Allows to retrieve the status of the
tus of multiple module in- agement SON module instances based on cer-
stances tain filtering criteria specified in the re-
quest payload.
Retrieve execution sta- GET SON Module Man- Allows to retrieve the status of SON
tus of multiple module in- agement module instances based on certain fil-
stances result tering criteria specified in the request
payload.
Retrieve status of a spe- GET SON Module Man- Allows to retrieve the status of a spe-
cific module instance agement cific SON module instances.
Start a SON module PUT SON Module Man- Allows to start the SON module on the
agement EdenNet server.
Stop a module instance PUT SON Module Man- Allows to stop SON module instances
agement on the EdenNet server.
Retrieve a list of cells POST Cell Selection Allows to retrieves a list of cells based
on specified criteria.
Retrieve a list of pre-de- GET Cell Selection Allows to retrieves a list of pre-defined
fined clusters clusters.
Retrieve a list of cells re- GET Cell Selection Allows to retrieves a list of cell re-
sponse sponses.
Read performance met- POST Radio Access Net- Allows to reads performance metrics,
rics for cells request work Measurement both individual and handover related,
for cells.
Read performance met- POST Radio Access Net- Allows to reads performance metrics,
rics for cells result work Measurement both individual and handover related,
for cells.
Read neighbor list infor- POST Configuration man- Allows to read neighbor list informa-
mation of cells request agement for Radio tion of the cells and to define a filter
Access Network of neighbor types and direction to be
read.
Read neighbor list infor- GET Configuration man- Allows to read neighbor list informa-
mation of cells result agement for Radio tion of the cells.
Access Network
Read configuration man- POST Configuration man- Allows to read CM data from MO that
agement data for de- agement for Radio are descendant of a given MO in the
scendant managed ob- Access Network MO hierarchy.
jects request
Read configuration man- GET Configuration man- Allows to read CM data from MO that
agement data for de- agement for Radio are descendant of a given MO in the
Access Network MO hierarchy.
Read configuration man- POST Configuration man- Allows to read CM data from any
agement data for individ- agement for Radio MOs. MOs are identified by DNs.
ual managed objects re- Access Network
quest
Write configuration man- POST Configuration man- Allows to write CM data to MO.
agement data to man- agement for Radio
aged objects request Access Network
Write configuration man- GET Configuration man- Allows to write CM data to MO.
agement data to man- agement for Radio
aged objects response Access Network
Check status of cache for POST Configuration man- Allows to check status of cache for
configuration manage- agement for Radio configuration management (CM) data.
ment data request Access Network
• All the relative endpoints described in the following sections are prefixed with:
https://<EdenNet GUI_SERVERS IP>/son-nbi/<API version>
EdenNet GUI_SERVERS IP can be IPv4 or IPv6 based on the EdenNet deployment mode.
• If the API returns a URL to the actual result, the user should not make any assumptions on how
the URL constructed nor try to use its sub-parts while implementing own business logic.
• Whenever a resource ID is mentioned (module_id, instance_id, uid, and so on) the user
should not make any assumptions about how it is constructed. It is guaranteed that it is a string
and it is unique.
• Each URL to the actual result is valid only for 12 hours or until it is used (which happens first).
• Each parameter that represents time is in UTC and follows the ISO 8601 format. For example,
2015-12-11T13:47:40Z, where Z represents the UTC time.
• For each API that requires a security token, the 401 error code is returned if the token is missing.
• For each API that requires authorization, the 403 error code is returned if the user does not have
sufficient rights to use this particular API.
{
"error_type":"<general type of an error, i.e. bad request>",
"error_details": [
"<error detail1>",
"<error detail2>",
...
]
}
• License details
• API versioning
Table 3: SON NBI license lists the license required to access SON NBI in EdenNet.
For more details about licensing, see the License management section in the EdenNet User and Ad-
ministration Guide.
Before using a particular capability, the user has to specify the version.
where <EdenNet GUI_SERVERS IP> is the IPv4 or IPv6 address of the GUI Server.
{
"version": ["v1"]
}
All further calls to SON NBI should contain the version prefix inside the URL to indicate which version
is used.
For example, to retrieve the list of installed SON Modules, make a HTTP GET call to:
Table 4: /login resource information describes the /login endpoint resource information.
Method POST
1. In the address field of your Internet browser, type the following URL:
2. Make a HTTP POST request using the username and password embedded in the following
authentication header:
Note: The user name and password that are provided with basic authentication must be
valid (not expired).
3. To use the other resources available in the SON NBI, issue the HTTP header into the request:
where <TOKEN> contains the value from the access_token field retrieved after successful
authentication.
For the /login endpoint payload and response examples, see API authentication example.
{
"access_token":"<token>",
"token_type":"bearer",
"expires_in":<expiration time in seconds>,
}
• Authentication is successful:
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"bearer",
"expires_in":3600,
}
• The request is missing a required parameter or includes an unsupported parameter value, no cre-
dentials, multiple credentials or malformed credentials:
{
"error_type":"invalid_request",
"error_details": [
"<error detail1>",
"<error detail2>"
]
}
• The user is not authorized:
{
"error_type":"invalid_client",
"error_details": [
"Invalid username or password"
]
}
The /modules endpoint allows an external system to retrieve a list of pre-installed SON module, so
that an external system can subsequently invoke them.
Method GET
For the /modules endpoint payload and response examples, see Examples.
3.3.1.1 Examples
Code 200
Description Based on the security token generated by a given pair of user name and
password, EdenNet identifies the user and returns the list of the SON mod-
ules visible to the user. The same list is shown in the EdenNet GUI.
Privileges:
Users can see only the modules where they have open loop or closed loop
privileges. The privilege is assigned on a module basis.
{
"45" : "ANR",
"18" : "CoverageCapacity",
"33" : "CrossedAntenna",
"48" : "LMSEnforcement",
"490" : "LTE_ANR_Cleanup",
"134" : "NeighborReports",
"578" : "ParamConsistChk",
"342" : "PCIReuse",
"987" : "SCReuse",
"487" : "SleepingCellResolution"
}
Code 403
Description Forbidden if the user corresponding to the security token has only SON
Monitor privilege.
The /modules/<module id> endpoint allows an external system to retrieve the version,
description, supported technologies, recurring type, and customizable parameters of a specified SON
module.
Table 8: modules/<module id> endpoint resource information describes the modules/<module id>
endpoint resource.
Method GET
For the /modules/<module id> endpoint payload and response examples, see Examples.
3.3.2.1 Examples
Code 200
{
"name": <name of the module>,
"version": <version number in string>,
"description": <Description text provided by the SON module>,
"technology": [<list of supported technology, e.g. GSM, UMTS and/or
LTE>],
{
"name": "SCReuse",
"version": "4.2.1",
"description": "This module optimizes network cell neighbor relation.
",
"technology": ["GSM", "UMTS"],
"recurring": "Yes",
"parameters": [
{ "name": "Outperform_Multiplier",
"type": "ENET_PARAM_TYPE_FLOAT_RANGE",
"description": "The amount a cell has to outperform another
before it will be replaced.",
"unit": null,
"default_value": 2.0,
"possible_values": [1.50, 1.60, 1.70, 1.80, 1.90, 2.00]
},
{
"name": "Supported_Feature",
"type": "ENET_PARAM_TYPE_STRING",
"description": "The supported feature.",
"unit": null,
"default_value": "Optimization",
"possible_values": null
},
{ "name": "SON Operation Mode",
"type": "ENET_PARAM_TYPE_STRING",
"description": "SON Operation Mode.",
"unit": null,
"default_value": "Open Loop",
"possible_values": ["Open Loop", "Closed Loop"]
}]
}
Code 403
• If the user does not have at least Open Loop privilege to this
module.
The /module-instances endpoint allows an external system to create SON module instances on
the EdenNet server.
Method POST
The payload should contain all the input parameters that the module needs before it can be run. For
the /module-instances endpoint payload and response examples, see Examples.
3.3.3.1 Examples
{
"module_id": <module id>,
"target": {
"type": <the selected target type: cell_uid, cluster_key, or cgi>,
"value": [<a list of cell uids, a cluster key, or a list of
cgi#technology>],
},
"parameters": {
<a dictionary of parameter names and their corresponding value>
},
"attachments": {
The /module-instances request example to specify a list of the cell UIDs as the target:
{
"module_id": "some_module_id",
"target": {
"type": "cell_uid",
"value": ["18", "29", "3432", "54522"]
},
"parameters": {
"Maximum number of SC retunes per sector per iteration": 50,
"Minimum SC collision score for SC retune": 30,
"HO Attempts maximum": 150,
"Cosector retune": "True",
"Allowable SC": "0:511",
"SON Operation Mode": "Open Loop"
}
}
{
"module_id": "some_module_id",
"target": {
"type": "cluster_key",
"value": "module-targets.LTECCO_123.misc-cells"
},
"parameters": {
"Maximum number of SC retunes per sector per iteration": 50,
"Minimum SC collision score for SC retune": 30,
"HO Attempts maximum": 150,
"Cosector retune": "True",
"Allowable SC": "0:511",
"SON Operation Mode": "Open Loop"
}
{
"module_id": "some_module_id",
"target": {
"type": "cgi",
"value": [
"403-231-303-97#GSM",
"719-612-401-110#LTE"
]
},
"parameters": {
"Maximum number of SC retunes per sector per iteration": 50,
"Minimum SC collision score for SC retune": 30,
"HO Attempts maximum": 150,
"Cosector retune": "True",
"Allowable SC": "0:511",
"SON Operation Mode": "Open Loop"
}
}
The /module-instances request example to create the module instance with an attachment. The
file content is encoded in base64 format:
{
"module_id": "some_other_module_id",
"target": {
"type": "cell_uid",
"value": ["18", "29", "3432", "54522"]
},
"parameters": {
"Market Level Configuration File (Optional)": "ParameterCheck_
template.xlsx",
"Maintenance Window Start Time": "1 AM",
"Report Prefix": "Parameter Consistency Check"
},
"attachments": {
"ParameterCheck_template.xlsx":
"b250ZW50IHRyYW5zZmVyIGVuY29kaW5nLg0KDQpCYXNlNjQgZW5jb2Rpbmcgc2NoZW1lcy
BhcmUgY29tbW9ubHkgdXNlZ"
}
}
The /module-instances request example to create the module instance by passing the config id of
the imported file.
"module_id": "some_other_module_id",
"target": {
"type": "cell_uid",
"value": [
"403-231-303-97#GSM",
"719-612-401-110#LTE"
]
},
"configurations": [
{
"type": "id",
"category": "lms",
"config_id": 123
}
]
}
The /module-instances request example to create the module instance by passing the name of
the imported file.
{
"module_id": "some_other_module_id",
"target": {
"type": "cell_uid",
"value": [
"403-231-303-97#GSM",
"719-612-401-110#LTE"
]
},
"configurations": [
{
"type": "name",
"category": "lms",
"config_name": "lms_all_pass.json"
}
]
}
Table 12: /module-instances response information describes the response information for different
codes.
Response example:
{
"instance_id": "some_instance_id",
"owner": "johnd",
"module": "SCReuse"
}
The /module-instances endpoint allows an external system to retrieve the status of SON module
instances based on certain filtering criteria specified in the request payload.
Method GET
For the /module-instances endpoint payload and response examples, see Examples.
Table 14: /module-instances available parameters describes the available parameters for the /
module-instances endpoint.
owner Any valid login name of an EdenNet Login name of an EdenNet user.
user.
time_range_start Time in UTC with format following the Retrieve instances which were cre-
ISO 8601 standard. ated after specific time in the past. If
not provided it will be set to 24 hours
before time_range_end. If time_
range_end is not provided it will last
for 24 hours.
time_range_end Time in UTC with format following the Retrieve instances which were creat-
ISO 8601 standard. ed before specific time in the past.
3.3.4.2 Examples
?state=active&owner=johnd&module_id=some_module_id&time_range_start=2015-
11-26T13:54:03Z&time_range_end=2015-12-11T13:47:40Z
Code 200
Description OK.
{
"resultURL": "<relative URL of where the next
set of data can be retrieved.>"
Response example:
{
"resultURL": "/module-instances/data/
53c1289727a69ae3bf1b52711d22647a"
}
Method GET
Note: This API gives a paginated response and maximum of 1000 module instances will be
returned per page based on the requested filters.
3.3.5.1 Example
Code 200
Description OK.
Note:
• The user should use the next URL provided to retrieve addi-
tional data.
• The next URL is not present if there is no next set of data to
be retrieved.
{
"data": [
{
"instance_id": <string text of the system generated
id forthe instance>,
"start_time": <UTC time following ISO 8601format,
indicating when the module instance is started>,
"launched_time": <UTC time following ISO 8601format,
indicating when the module instance executed first>,
"updated_time": <UTC time following ISO 8601 format,
indicating when the module instance state changed>,
"state": <state of the instance, e.g. active, idle,
completed, failed>,
"owner": <user name of the corresponding user>,
"module_id": <ID of the SON module>
},
...
],
"next": "<relative URL of where the next set of data can be retrieved.
>"
}
{
"data": [
{
"instance_id": "some_instance_id_1",
"start_time": "2015-12-11T13:47:40Z",
"launched_time" : "2015-12-11T13:57:40Z",
"updated_time" : "2015-12-11T14:47:40Z",
"state": "active",
"owner": "johnd",
"module_id": "some_module_id_1"
},
{
"instance_id": "some_instance_id_2",
"start_time": "2015-11-26T13:54:03Z",
"launched_time" : "2015-12-11T13:57:40Z",
"updated_time" : "2015-12-11T14:47:40Z",
"state": "completed",
"owner": "admin",
"module_id": "some_module_id_2"
],
"next": "/module-instances/data/94yc310927a69ae3bf1b52711d83211"
}
Method GET
3.3.6.1 Example
Code 200
{
"instance_id": <string text of the system generated id forthe
instance>,
"start_time": <UTC time following ISO 8601format, indicating when
the module instance is started>,
"launched_time": <UTC time following ISO 8601format, indicating when
the module instance executed first>,
"updated_time": <UTC time following ISO 8601 format, indicating when
the module instance state changed>,
"state": <state of the instance, e.g. created, active, idle,
completed, failed>,
"owner": <user name of the corresponding user>,
"module_id": <ID of the SON module>
}
{
"instance_id": "some_instance_id",
"start_time": "2015-12-11T13:47:40Z",
"launched_time" : "2015-12-11T13:57:40Z",
"updated_time" : "2015-12-11T14:47:40Z",
"state": "active",
"owner": "johnd",
"module_id": "some_module_id"
}
3.3.7 Retrieve the list of output files produced by a specific SON module instance
The /module-instances/<instance id>/output endpoint allows an external system to retrieve
the list of output files produced by a specific SON module instance based on certain filtering criteria
specified in the request payload.
Method POST
3.3.7.1 Examples
The /module-instances/<instance id>/output request payload:
{
"name_pattern" : [<list of file name patterns>],
"age": <number of hours that has been passed since the output files
were created>
"limit": Limit on number of entries to fetch .
}
Note: The name_pattern, age, and limit fields are optional. By default, 1000 entries are
returned.
{
"name_pattern" : ["resu*.xlsx", "issue*.csv"],
"age" : 0,
"limit" : 1000
}
Note:
Code 200
Note: The client must use the resultURL URL to retrieve the re-
sponse data.
{
"data": {
"<file ID 1>" : {
"name": "<File_Name>",
"creation_time": "<File
Creation Time"
},
"<file ID 2>" : {
"name": "<File_Name>",
"creation_time": "<File
Creation Time"
},
...
},
"next": "<relative URL of where the next set of
data can be retrieved>"
}
{
"data": {
"bd1ab4d0-6a01-4193-b71b-e241545f2413": {
"name": "MLB_LTE_20201125200838.xlsx",
"creation_time": "2020-11-25T18:08:40.
78103Z"
},
"16a116de-684f-4795-a078-4464eae5a2e6": {
"name": "MLB_LTE_20201125202339.xlsx",
"creation_time": "2020-11-25T18:23:42.
157619Z"
}
},
"next": "/module-instances/output/data/
4ffbb62b7ef044058a5c5776b8e11aa4"
}
Description OK.
Note:
• The file IDs are temporary, which expires after one hour.
• The client should use the next URL to retrieve additional data.
• The next URL will not be present if there is no next set of data
to be retrieved.
• The data URL is relative to the original API path (https:/
/<Eden-NET-server-IP>/son-nbi/v1/module-
instances/<instance id>/output).
Table 23: /module-instances/<instance id>/output/<output file id> response information describes the /
module-instances/<instance id>/output/<output file id> endpoint resource.
Method GET
3.3.8.1 Examples
Table 23: /module-instances/<instance id>/output/<output file id> response information describes the
response information for different codes.
The module-instances/<instance
id>/output/<output file id> re-
sponse example:
{
"error_type": "not_
found",
"error_details": [
"File for file ID
25x00xj674kbpqwt is not
found."
]
}
]
}
Method PUT
Code Description
200 Start of the instance for the selected module is successfully requested. It starts as
soon as possible but the exact time is unknown.
• The user corresponding to the security token is different from the one who cre-
ated the instance, unless the user has Super User or Administrator role.
• The user has only SON Monitor privilege.
• The user does not have at least open loop privilege to this module.
• The closed loop is chosen and the user does not have the closed loop privi-
lege to the module (SON Operation Mode parameter).
412 If the module instance is not started and the license is not installed, then the API
call sends the following response:
{
"error_type": "precondition_failed",
"error_details": [
"Module is not allowed to be created / run.
Please check iflicense forit is installed and
valid."
Code Description
]
}
Method PUT
Code Description
• The user corresponding to the security token is different than the one who
created the instance, unless the user has Super User or Administrator role.
• The user has only SON Monitor privilege.
The /cells endpoint allows an external system to retrieve a list of cells and the selected parameters
of these cells based on a set of filtering criteria specified in the request payload. The list of cells can be
used as the SON module execution target.
Table 28: /cells endpoint resource information describes the /cells endpoint resource.
Method POST
For the /cells endpoint payload and response examples, see Example.
Table 29: /cells available parameters describes the available parameters for the /cells endpoint.
tac_type:
3.4.1.2 Example
{
"lookup_filters": {
"parameters": {
"<parameter name 1>": [list and/or ranges of values],
"<parameter name 2>": [list and/or ranges of values],
...
},
"bounds": {
"top":<latitude value in decimal degree>,
"left":<longitude value in decimal degree>,
"bottom":<latitude value in decimal degree>,
"right":<longitude value in decimal degree>
}
},
"result_filters": [<list of parameters to be retrieved for each
cell>]
}
Note: All parameters are optional. If result_filters is omitted all supported parameters
are returned. For available parameters that can be used as a lookup filter and/or a return
value, see Available parameters .
{
"lookup_filters": {
"parameters": {
"lac": 17,
"pci": [315,316],
"earfcn": {"from": 2225, "to": 2350}
},
"bounds": {
"top": 41.70,
"left": -87.78,
"bottom": 41.69,
"right": -87.73
}
},
"result_filters": ["uid", "pci","earfcn","lac","latitude",
"longitude", "dn", "label"]
}
Note:
• The bounds filter parameter is for defining a bounding box on the map. The filter
parameter top and left form the latitude and longitude of the top-left corner of the
bounding box, while the filter parameter bottom and right form the latitude and
longitude of the bottom-right corner of the bounding box. All cells returned from the
queried must be within the bounding box.
• The values used for the bounds filter parameters are in decimal degree. It means that
they are decimal numbers between -90.00 and 90.00 latitude value and between -180.00
and 180.00 longitude value.
• In lookup_filters, all parameter names are joined with a logical AND operator, while
the list of values specified for each parameter name are joined with a logical OR operator.
It means that all cells returned must fulfill at least one of the values specified for each
parameter. If the API is called with the provided example payload, only cells returned
must fulfill the criteria:
– The cells are within the defined bounds (top-left: latitude: 41.70, longitude: -87.78,
bottom-right: latitude: 41.69, longitude: -87.73) AND
– the cells' PCI is either 315 or 316, AND
– the cells' earfcn is between 2225 (inclusive) and 2350 (inclusive).
• When the information of the cells are returned, only information for pci, earfcn, lac,
latitude, longitude are returned. The cell UID is returned by default.
Code 200
Description OK.
Note:
{
"resultURL": "<relative URL of where the result can
be retrieved.>"
{
{
"resultURL": "/cells/data/
53c1289727a69ae3bf1b52711d22647a"
}
Note: The format of the resultURL is the same as the API. The user
should use the resultURL URL provided to retrieve response data.
The /cells/data/<request_id> endpoint allows to retrieve a list of cells response following the
call to the Retrieve a list of cells endpoint.
Method GET
For the /cells/data/<request_id> endpoint payload and response examples, see Example.
Note: This API gives a paginated response and maximum of 1000 cells per page will be
returned with the requested attributes.
3.4.2.1 Example
Code 200
Description OK. All the cells that fulfill the filtering criteria, along with the requested cell
parameters.
{
"data": [
<dictionary of parameter name and value pairs for cell
1>,
<dictionary of parameter name and value pairs for cell
2>,
...
],
"next": "<relative URL of where the next set of data can be retrieved.
>"
{
{
"data": [
{
"uid": "19525",
"pci": 316,
"earfcn": 2350,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053,
"oss_data": [
{
"oss_name": "c2oss",
"dn": "PLMN-PLMN/MRBTS-21321/LNBTS-21321/LNCEL-2",
"label": "LCH45726A21"
},
{
"oss_name": "syooss",
"dn": "PLMN-PLMN/EXCC-1/EWCE-22582",
"label": "some_other_label"
}
]
},
{
"uid": "19526",
"pci": 315,
"earfcn": 2350,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053,
"oss_data": [
{
"oss_name": "c2oss",
"dn": "PLMN-PLMN/MRBTS-21321/LNBTS-21321/LNCEL-1",
"label": "LCH45726A11"
}
]
}
],
"next": "/cells/data/94yc310927a69ae3bf1b52711d83211"
}
Note:
The /clusters endpoint allows an external system to retrieve a set of predefined clusters so that
external system can subsequently use one of the clusters as the SON module execution target.
Table 33: /clusters endpoint resource information describes the /clusters endpoint resource
information.
Method GET
For the /clusters endpoint payload and response examples, see Example.
3.5.1.1 Example
Code 200
Description OK.
{
"<cluster key 1>": "<cluster name 1>",
{
"10": "My sub-urban cluster",
"8": "My seashore cluster",
"some-cluster-key": "My city cluster",
}
{ }
The /cells/pm endpoint allows an external system to read performance counters, both individual
and handover, related to the cells. This also includes reading performance counters derived from
Ericsson GPEH data by EdenNet, as well as KPIs derived from raw performance counters by
EdenNet.
Table 35: /cells/pm endpoint resource information describes the /cells/pm endpoint resource.
Method POST
For the /cells/pm endpoint payload and response examples, see Example.
3.6.1.1 Example
{
"cells": {
"type": <the selected type of cell grouping. cell_uid or cluster_
key>,
"value": [<a list of cell UIDs or a cluster_key>]
},
"pm": [<comma separated list of performance metrics(cell or handover
related raw counters, KPI or GPEH derived counters) identified by
names>],
"time_range": { "start": <start time(older) of the time range>,
"end": <end time(more recent) of the time range> }, // defining the
time range of the data. Time is in UTC with format following ISO 8601
standard.
"resolution": <One of the resolutions supported by EdenNet.
Supported resolutions: 1(15-minute), 2(Hourly), 3(Daily), 4(5-minute),
5(30-minute)>,
"aggregation": "<One of the aggregation type: 0(No aggregation),
1(Aggregation acrosstime for individual cells), 2(Aggregation across
cells for each timestamp)>"
}
Note:
{
"cells": {
"type": "cell_uid",
"value": ["24","4234","980"]
},
{
"cells": {
"type": "cluster_key",
"value": "23423"
},
"pm": ["pmTotNoRrcConnectReq", "Voice Dropped Call Rate",
"pmAverageRssi", "Intra_HO_Attempts"],
"time_range": { "start": "2015-11-26T13:54:03Z", "end": "2015-12-
11T13:47:40Z"},
"resolution": 1,
"aggregation": 1
}
Limitations:
• The cell UIDs have to be under one region. If the cells or a cluster are not from one region, the
request is rejected with status code 400 and a message. If the cells have no region information
available, they are filtered out from the request. Information about filtered out UIDs is returned in
the service response. If all the cells are filtered out, the status code 400 and a message with the
reasoning appears.
Note: Currently, a region contains the data only from one OSS.
• In case of aggregation over the cells (example 2), all the cells must have the same RAN version,
and the service responses are the same as non-aggregated requests, as shown below.
Code 200
Description OK.
The user should use the resultURL URL provided to retrieve result data.
The resultURL is valid only for 12 hours since requesting data due to
purging feature.
{
"resultURL": "<an URL for the client to read result of the request>",
"warnings": {
"missing_region_info": [<list of skipped uids forwhich region
information is missing>],
"missing_ran_version": [<list of skipped uids forwhich ran
version is missing>],
"invalid_uids": [<list of skipped uids which are forother reasons
invalid>]
}
}
{
"resultURL": "/cells/pm/data/3553",
"warnings": {
"missing_region_info": ["11", "137"],
"missing_ran_version": ["456"],
"invalid_uids": []
}
}
Method GET
For the /cells/pm/data/<request_id> endpoint payload and response examples, see Example.
Note: This API gives a paginated response and maximum of 5000 PM data samples per
page will be returned. Number of data samples in the given time range multiplied number of
requested KPIs should be less than 5000.
3.6.2.1 Example
• In general:
{
"status": "<One of the available status strings: completed, waiting,
timeout, error>",
"error_message": "<Detail of the error if the status is error.>",
"data": "<data object in a format depending on aggregation type -
see below>",
"next": "<relative URL of where the next set of data can be
retrieved.>"
}
Note: The error_message field is present only when there is an error retrieving the
status. The data is present only when the status is completed. The next is present
only when the status is completed and there is next page of data available.
{
"status": "waiting"
}
Note: Aggregation over time does not have multiple data points.
{
"status": "completed",
"data": {
"oldest_sample_time": "<UTC time of the oldest sample in the data
with format following ISO 8601 format>",
"newest_sample_time": "<UTC time of the newest sample in the data
with format following ISO 8601 format>",
"resolution": <One of the resolutions supported by EdenNet.
Supported resolutions: 1(15-minute), 2(Hourly), 3(Daily)>,
"number_of_samples": <number of sample in the data>,
"aggregation": <0(No aggregation) or 1(Aggregation across time
forindividual cells)>,
"result": {
"<cell UID 1>": {
"<metric name 1>": {
"type": <Type of the PM data returned, 1: single
number, 2: Probability Distribution Function, 3: Handover, 4: Detected
Set Report>,
"data": [<an ordered list of sample data with
each sample corresponding to a timestamp, starting from the oldest
timestamp>],
"missing_pegs_detail": [<an ordered list of
dictionaries formissing peg counts, starting from the oldest timestamp>]
},
"<metric name 2>": {
"type": <Type of the PM data returned, 1: single
number, 2: Probability Distribution Function, 3: Handover, 4: Detected
Set Report>,
"data": [<an ordered list of sample data with
each sample corresponding to a timestamp, starting from the oldest
timestamp>],
"missing_pegs_detail": [<an ordered list of
dictionaries formissing peg counts, starting from the oldest timestamp>]
},
...
},
{
"status": "completed",
"data": {
"oldest_sample_time": "<2015-11-26T13:00:00Z>",
"newest_sample_time": "<2015-11-26T14:00:00Z>",
"resolution": 1,
"number_of_samples": 5,
"aggregation": 0,
"result": {
"24": {
"pmTotNoRrcConnectReq": {
"type": 1,
"data": [45,234,847,100,null],
"missing_pegs_detail": [{},{},{},{},
{pmTotNoRrcConnectReq:100}]
},
"Voice Dropped Call Rate": {
"type": 1,
"data": [0.045,null,0.02,null,0.011],
"missing_pegs_detail": [{},{pmAverageRssi:100},{},{},
{}]
},
"pmAverageRssi": {
"type": 2
"data": [ [1,3,0,5], null, [1,3,0,5], [1,3,10,15], [11,
31,0,5] ],
"missing_pegs_detail": [{},{pmAverageRssi:100},{},{},
{}]
"Intra_HO_Attempts": {
"type": 2,
"data": [ {"234":100, "576":200}, {"234":100,
"376":200}, null, {"234":100, "576":200}, null],
"missing_pegs_detail": [{},{},{pmIAFAtt:100},{},
{pmIAFAtt:100}]
}
},
"4234": {
"pmTotNoRrcConnectReq": {
"type": 1,
"data": [45,234,847,null,100],
"missing_pegs_detail": [{},{},{},
{pmTotNoRrcConnectReq:100},{}]
},
"Voice Dropped Call Rate": {
"type": 1,
"data": [0.045,null,0.02,0.011,null],
"missing_pegs_detail": [{},{pmNumDrop:100},{},{},
{pmNumDrop:100}]
},
"pmAverageRssi": {
"type": 2,
"data": [ [1,3,0,5], [1,3,0,5], null, [1,3,10,15],
[11,31,0,5] ],
"missing_pegs_detail": [{},{},{pmAverageRssi:100},{},
{}]
},
"Intra_HO_Attempts": {
"type": 2,
"data": [ {"234":100, "576":200}, {"234":100,
"376":200}, {"234":100, "576":200}, null, null],
"missing_pegs_detail": [{},{},{},{pmIAFAtt:100},
{pmIAFAtt:100}]
}
},
"980": {
"pmTotNoRrcConnectReq": {
"type": 1,
"data": [45,234,847,100,null],
"missing_pegs_detail": [{},{},{},{},
{pmTotNoRrcConnectReq:100}]
},
"Voice Dropped Call Rate": {
"type": 1,
"data": [0.045,null,0.02,null,0.011],
"missing_pegs_detail": [{},{pmNumDrop:100},{},
{pmNumDrop:100, pmNumCall:100},{}]
},
"pmAverageRssi": {
"type": 2,
"data": [ [1,3,0,5], null, [1,3,0,5], [1,3,10,15],
[11,31,0,5] ],
"missing_pegs_detail": [{},{pmAverageRssi:100},{},{},
{}]
},
"Intra_HO_Attempts": {
"type": 2,
"data": [ {"234":100, "576":200}, {"234":100,
"376":200}, null, {"234":100, "576":200}, null],
"missing_pegs_detail": [{},{},{pmIAFAtt:100},{},
{pmIAFAtt:100}]
}
}
}
},
"next": "<relative URL of where the next set of data can be
retrieved.>"
}
{
"status": "completed",
"data": {
"oldest_sample_time": "<UTC time of the oldest sample in the data
with format following ISO 8601 format>",
"newest_sample_time": "<UTC time of the newest sample in the data
with format following ISO 8601 format>",
"resolution": <One of the resolutions supported by EdenNet.
Supported resolutions: 1(15-minute), 2(Hourly), 3(Daily)>,
"number_of_samples": <number of sample in the data>,
"aggregation": 2,
"result": {
"<metric name 1>": {
"type": <Type of the PM data returned, 1: single number,
2: Probability Distribution Function, 3: Handover, 4: Detected Set
Report>,
The /cells/pm/data/<request_id> response example with aggregation across cells for each
timestamp:
{
"status": "completed",
"data": {
"oldest_sample_time": "2015-11-26T13:00:00Z",
"newest_sample_time": "2015-11-26T14:00:00Z",
"resolution": 1,
"number_of_samples": 5,
"aggregation": 0,
"result": {
"pmTotNoRrcConnectReq": {
"type": 1,
"data": [135,702,2541,200,100],
"missing_pegs_detail": [{},{},{},
{pmTotNoRrcConnectReq:33},{pmTotNoRrcConnectReq:67}]
},
"Voice Dropped Call Rate": {
"type": 1,
"data": [0.045,null,0.02,0.011,0.011],
"missing_pegs_detail": [{},{pmNumDrop:100},{},
{pmNumDrop:67, pmNumCall:67},{pmNumDrop:33, pmNumCall:33}]
},
"pmAverageRssi": {
"type": 2,
"data": [ [3,9,0,15], [1,3,0,5], [2,6,0,10], [3,9,30,45],
[33,93,0,15] ],
"missing_pegs_detail": [{},{pmAverageRssi:67},
{pmAverageRssi:33},{},{}]
},
"Intra_HO_Attempts": {
"type": 2,
"data": [ { "24":{"234":100, "576":200}, "980":{"234":100,
"576":200}, "4234":{"234":100, "576":200} }, { "24":{"234":100,
"376":200}, "980":{"234":100, "376":200}, "4234":{"234":100, "376":200}
}, {"4234":{"234":100, "576":200}}, { "24":{"234":100, "576":200}, "980":
{"234":100, "576":200} }, null],
"missing_pegs_detail": [{},{},{pmIAFAtt:67},{pmIAFAtt:33},
{pmIAFAtt:100}]
}
}
},
"next": "<relative URL of where the next set of data can be
retrieved.>"
}
Note:
• Depending on the time range and the resolution specified in the request payload, the
service calculates the appropriate start time of the data samples and the number of
samples returned in the response. To make sure that all samples are within the specified
time range, the following conditions must be applied:
T3 = T2 + ( resolution x (number_of_samples-1) ).
– The condition T0 <= T2 <= T3 <= T1 must be true.
• Depending on the performance metrics requested, multiple data types can be returned:
– Single value: each sample is a number within the applicable range of the
performance metric requested. The number might or might not have decimals.
– Probability Distribution Function (PDF): each sample is a list of numbers within the
applicable range of the performance metric requested. The number may or may not
have decimals. The size of the list depends on the performance metrics requested.
– Handover: each sample is a dictionary with the cell UIDs of the handover targets as
keys and the handover metric towards a target cell as values.
– Detected Set Report (DSR): this is a data type that is specific to the 3G detected set
report. Each sample is a dictionary with scrambling codes as keys and detected set
report measurement data against a scrambling code as values.
The format is: {sc_1:val_1, sc_2:val_2, sc_3:val_3,....}.
It looks similar to the handover type, except that the keys of the dictionary are
scrambling code instead of the cell UIDs.
• The field data contains an ordered list of samples. Each sample corresponds to a
timestamp within the specified time range. The timestamp of each sample is aligned with
the resolution.
For example, if the value for data is [5, 56, 48], the oldest_sample_time is
2015-11-26T13:00:00Z and the resolution is 15-minute, the numbers 5, 56 and 48
correspond to the sample at 2015-11-26T13:00:00Z, 2015-11-26T13:15:00Z, and
2015-11-26T13:30:00Z respectively.
• If the performance metric corresponding to the particular timestamp is missing, not
available yet, or cannot be calculated, the entry corresponding to the timestamp in data
is a JSON null value or zero, depending on the KPI type. For example, the data will look
like [5, 56, null, 98,...].
• The missing_pegs_detail field allows the user to evaluate the data quality
of the samples. The value for this field is an ordered list of dictionaries, with each
dictionary corresponding to a particular timestamp in the same manner as the samples
corresponding to the timestamps in data.
For example, the dictionary for one timestamp may look like {"peg_1":50, "peg_2":25,
"peg_3":100,....}. It implies that peg_1 is missing data 50% of the time, or 1 out of
every 2 samples during the specified time range. Peg_2 is missing data 1 out of every
4 samples and peg_3 has no data at all. If the aggregation type is 0, meaning no
aggregation, any missing peg will have a value of 100 because for the given timestamp,
the peg is missing. If the aggregation type is across time, it is possible that the % missing
is between 0 and 100. If a peg count does not have missing data, it is not shown in the
dictionary. If no missing peg is shown for a particular timestamp, the dictionary for that
timestamp is empty.
• If the aggregation type specified in the request payload is 1 (aggregation across time
for individual cells), the number_of_samples is 1, and the size of the lists for data and
missing_pegs_detail are equals to 1. Otherwise, the size of the lists is the value
specified in number_of_samples.
• If the aggregation type specified in the request payload is 1 (aggregation across time
for individual cells) and the value for data is [null/zero], there is no data for the particular
performance metric of the particular cell during the specified time range.
• If the aggregation type is 2 (aggregation across cells for each timestamp), handover
and DSR type of data are aggregated by combining the dictionaries, instead of
aggregating the values in the dictionaries.
• If the aggregation type is 2 (aggregation across cells for each timestamp), the %
missing in missing_pegs_detail should be interpreted as % of cells out of the
specified UIDs that are missing data for the peg count.
Limitations:
• missing_pegs_detail node of the response, contains the missing pegs names, yet
the percentage indicator is not valid yet. The value is always 100, so it does not reflect
how much data is actually missing and should not be used.
• type of a metric has the value -1 (instead of regular 1-4 values) for raw peg counters.
The /cells/neighbors endpoint allows an external system to read neighbor list information of the
cells. The API also allows to define a filter of neighbor types and direction to be read.
Table 40: /cells/neighbors endpoint resource information describes the /cells/neighbors endpoint
resource.
Method POST
For the /cells/neighbors endpoint payload and response examples, see Example.
Table 41: /cells/neighbors available parameters describes the available parameters for the /cells/
neighbors endpoint.
source_ list of A list of cell Defines the source cells and the neighbors that should
group_value strings or UIDs or a clus- be returned.
string ter key
Limitation:
neighbor_ list of intra, inter, Types of the neighbors that should be returned:
type strings irat
• intra – Intra-Frequency, intra-technology (GSM-
>GSM, UMTS->UMTS, LTE->LTE)
• inter – Inter-Frequency, intra-technology (UMTS-
>UMTS, LTE->LTE)
• irat – Inter-technology (GSM->UMTS, GSM->LTE,
UMTS->GSM, UMTS->LTE, LTE->GSM, LTE-
>UMTS)
neighbor_pa- list of Any CM para- Defines the CM parameters that should be included in
rameters strings meter valid for the response for each neighboring cell.
cells
If not provided, all the neighbor parameters are
returned as a part of the result. The supported
parameters are the same as the one supported in the
result_filters of the /cells API. See Available
parameters for the /cells endpoint parameters.
3.7.1.2 Example
{
"source_group_type": <cell_uid or cluster_key>,
"source_group_value": [<a list of cell UIDs or a cluster_key>],
"neighbor_type": [<a list of neighbor type, acceptable values:
"intra", "inter" or "irat">],
"neighbor_direction": [<a list of neighbor direction, acceptable
values: "in" or "out">],
"neighbor_parameters": [<a list of neighbor parameters>]
}
{
"source_group_type": "cell_uid",
"source_group_value": ["24","4234","980"],
"neighbor_type": ["intra","inter"],
"neighbor_direction": ["in"],
"neighbor_parameters": ["pci","earfcn","lac","latitude","longitude"]
}
{
"source_group_type": "cluster_key",
"source_group_value": "module-targets.TestMod_admin_20170712_090534_
897",
"neighbor_type": ["irat"],
"neighbor_direction": ["out"]
}
{
"resultURL": <A relative URL forthe client
to retrieve the result>
}
{
"resultURL": "/cells/neighbors/data/3553"
}
Method GET
For the /cells/neighbors endpoint payload and response examples, see Example.
Note: This API gives a paginated response and maximum of 500 queried source cell UIDs
per page will be returned with the requested neighbor parameters.
3.7.2.1 Example
{
"status": "<One of the available status strings: completed, waiting,
timeout, error>",
"error_message": "<Detail of the error if the status is error.>",
"data": "<data object in a format described below>",
"next": "<relative URL of where the next set of data can be
retrieved.>"
}
Note:
• The error_message field is present only when there is an error retrieving the status.
• The data field is present only when the status is completed.
• The next field is present only when the status is completed and the next page of da-
ta is available.
{
"status": "waiting"
}
{
"status": "completed",
"data" {
"<uid of source cell 1>": {
"<neighbor direction: in>": {
"<neighbor type: intra>": {
"<neighbor cell UID 1>": {
"<neighbor cell parameter 1>": "<value 1>",
"<neighbor cell parameter 2>": "<value 2>",
...
},
"<neighbor cell UID 2>": {
"<neighbor cell parameter 1>": "<value 1>",
"<neighbor cell parameter 2>": "<value 2>",
...
},
...
},
"<neighbor type: inter>": {
"<neighbor cell UID 3>": {
...
},
...
},
"<neighbor type: irat>": {
...
}
},
"<neighbor direction: out>": {
"<neighbor type: intra>": {
...
},
"<neighbor type: inter>": {
...
},
"<neighbor type: irat>": {
...
}
}
},
"<uid of source cell 2>": {
...
},
...
},
"next": "<relative URL of where the next set of data can be
retrieved.>"
}
Note:
{
"status": "completed",
"data" {
"24": {
"in": {
"intra": {
"19525": {
"pci": 316,
"earfcn": 2350,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
},
"19526": {
"pci": 315,
"earfcn": 2350,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
}
},
"inter": {
"29525": {
"pci": 316,
"earfcn": 2225,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
},
"29526": {
"pci": 315,
"earfcn": 2225,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
}
}
}
},
"4234":
"in": {
"intra": {
"19525": {
"pci": 316,
"earfcn": 2350,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
},
"19526": {
"pci": 315,
"earfcn": 2350,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053 }
},
"inter": {
"29525": {
"pci": 316,
"earfcn": 2225,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
},
"29526": {
"pci": 315,
"earfcn": 2225,
"lac": null,
"latitude": 41.6957,
"longitude": -87.76053
}
}
}
},
"next": "/cells/neighbors/data/4532572"
}
Response example 2 (assuming the cluster with id 23423 contains the cells with UID, 24, 4234 and
980):
{
"status": "completed",
"data"{
"24": {
"out": {
"irat": {
"30525": {},
"30526": {}
}
}
},
"4234":
"out": {
"irat": {
"30525": {},
"30526": {}
}
}
}
"980":
"out": {
"irat": {
"30525": {},
"30526": {}
}
}
}
}
}
3.7.3 Read configuration management data for descendant managed objects request
Method POST
For the /mo/descendant/cm endpoint payload and response examples, see Example.
Table 47: /mo/descendant/cm available parameters describes the available parameters for the /mo/
descendant/cm endpoint.
Parameter
Data type Possible values Description
name
<request JSON map of Any valid descendant MO DN for which the descendant MOs
DN> type: string- MO type along with should be retrieved along with defined CM
>list of strings CM parameters or parameters. If the list of CM parameters is
null. null or empty list [ ] then all the available
CM parameters are returned.
oss_name string Valid name of the Indicates the OSS from which CM parame-
OSS connected to the ters should be retrieved. This parameter is
EdenNet instance. only required when there are more than one
OSS connected to the EdenNet instance. In
that case, parameter is required to avoid DN
clash between different OSSes.
3.7.3.2 Example
{
"<mo_dn_1>": {
"descendant MO type 1": [ "<descendant parameter a>",
"<descendant parameter b>",..],
"descendant MO type 2": null,
"descendant MO type 3": [],
},
"<mo_dn_2>": {
"descendant MO type 4": [ "<descendant parameter e>",
"<descendant parameter f>",..],
"descendant MO type 5": [ "<descendant parameter g>",
"<descendant parameter h>",..],
},
...
}
{
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711": {
"ADJS":["AdjsSIB","TargetCellDN"],
"ADJI":["AdjiSIB","TargetCellDN"]
},
"PLMN-PLMN/RNC-3": {
"WCEL": ["AdminCellState"], //WCEL is not a direct child of RNC
"ADJS":["AdjsSIB","TargetCellDN"]
}
}
}
The request payload specifies the following criteria for CM data retrieval:
If the list of parameters is empty, there is no parameter filtering. In such case, values for all parameters
of the descendant MOs of the specified MO types are retrieved.
{
"resultURL": "<relative URL of where the result
can be retrieved.>"
}
Example:
{
"resultURL": "/mo/descendant/cm/data/45325"
}
3.7.4 Read configuration management data for descendant managed objects result
Method GET
Note: This API gives a paginated response and maximum of 500 queried MO DNs will be
returned per page with the requested descendant MO attributes.
The page limit is applied on the specified MO DNs list and not on the number of descendants
of the given MO. Hence, it is advised not to give root MO DN to fetch all the descendant MO
attributes.
3.7.4.1 Example
{
"status": "<One of the available status strings: completed, waiting,
timeout, error>",
"error_message": "<Detail of the error if the status is error.>",
"data": "<data object in a format described below>",
"next": "<relative URL of where the next set of data can be retrieved.
>"
}
Description Request is accepted. When the service expects to take longer than usual to
process the request, it returns status 202 and the user should check the re-
sult later.
{
"status": "waiting"
}
If status 202 is returned, the user can poll the status of the request via the status URL provided in the
payload.
{
"status": "<One of the available status string: completed, waiting,
timeout, error>",
"error_message": "<Detail of the error if the status is error.>",
"data": "<Relative URL from which the client can retrieve the result
of the request>"
}
Description OK. The CM data for the requested descendant MOs are returned.
{
"status": "completed",
"data": {
"<mo_dn_1>":{
"<descendant_mo_dn_1>": {
"<parameter a>": "<value a>",
"<parameter b>": "<value b>",
...
},
"<descendant_mo_dn_2>": {
"<parameter c>": "<value c>",
"<parameter d>": "<value d>",
...
"<descendant_mo_dn_3>": {
"<parameter e>": "<value e>",
"<parameter f>": "<value f>",
...
},
...
},
"<mo_dn_2>":{
"<descendant_mo_dn_4>": {
"<parameter g>": "<value g>",
"<parameter h>": "<value h>",
...
},
"<descendant_mo_dn_5>": {
"<parameter i>": "<value i>",
"<parameter j>": "<value j>",
...
},
...
},
...
"next": "<relative URL of where the next set of data can be
retrieved.>"}
{
"status": "completed",
"data": {
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711": {
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJS-9": {
"AdjsSIB":"1",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111731"
},
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJS-10": {
"AdjsSIB":"2",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111721"
},
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJI-11": {
"AdjiSIB":"1",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111722"
}
},
"PLMN-PLMN/RNC-3": {
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000": {
"AdminCellState":"Locked",
},
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000/ADJS-19": {
"AdjsSIB":"1",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111731"
}
}
},
"next": "/mo/descendant/cm/data/45325/2"
}
Note:
– The DNs of requested MOs are dictionary keys at the top level.
– The DNs of the descendant MOs are dictionary keys at sub levels. If no descendants
are found for the requested DN, this dictionary will be empty.
– The requested parameter names of the descendant MOs are dictionary keys at
deepest levels.
• The next URL is not present if there is no next set of data to be retrieved.
The /mo/roots endpoint allows an external system to retrieve the distinguished names of all the root
level managed objects.
Table 52: /mo/roots endpoint resource information describes the /mo/roots endpoint resource.
Method GET
For the /mo/roots endpoint payload and response examples, see Example.
3.7.5.1 Example
{
"status": "<One of the available status
strings: completed, waiting, timeout, error>",
"data":{
"<root_dn_1>",
"<root_dn_2>",
....
]
Example:
{
"status": "completed",
"data":{
"PLMN-PLMN",
"SubNetwork=ONRM_ROOT_MO_R",
"BSC6900GSMNE=SO1BSC1"
}
3.7.6 Read configuration management data for individual managed objects request
The /mo/cm endpoint allows an external system to read Configuration Management (CM) data from
any Managed Object (MO). MOs are identified by Distinguished Names (DNs). The API also allows
defining a filter of what specific parameters of the MO to be read.
Table 54: /mo/cm endpoint resource information describes the /mo/cm endpoint resource.
Method POST
For the /mo/cm endpoint payload and response examples, see Example.
Table 55: /mo/cm available parameters describes the available parameters for the /mo/cm endpoint.
Parameter
Data type Possible values Description
name
param_filter list of strings Any CM parame- List of parameters to be retrieved for each MO.
ter valid for the If this parameter is omitted, there in no para-
specified DN. meter filtering and values for all parameters of
the MOs specified by the DNs are retrieved.
oss_name string Valid name of the Indicates the OSS from which the CM parame-
OSS connected ters should be retrieved. This parameter is on-
Parameter
Data type Possible values Description
name
to the EdenNet ly required when there is more than one OSS
instance. connected to the EdenNet instance. In that
case, parameter is required to avoid DN clash
between different OSSes.
3.7.6.2 Example
{
"dns": [ "<mo_dn_1>", "<mo_dn_2>", "<mo_dn_3>", ... ],
"param_filter": [ "<parameter a>", "<parameter b>", ... ],
"oss_name": "<some_oss_name>"
}
{
"dns": ["PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJS-10", "PLMN-PLMN/RNC-
3/WBTS-70/WCEL-7000/ADJS-11"],
"param_filter": ["AdjsSIB","HSDPAHopsIdentifier",
"NrtHopsIdentifier","RTWithHSDPAHopsIdentifier","RtHopsIdentifier",
"TargetCellDN"]
}
{
"resultURL": "<relative URL of where the
result can be retrieved.>"
}
Example:
{
"resultURL": "/mo/cm/data/3553"
}
3.7.7 Read configuration management data for individual managed objects result
Method GET
For the /mo/cm/data/<request_id> endpoint payload and response examples, see Example.
Note: This API gives a paginated response and maximum of 500 queried DNs will be
returned per page with the requested parameters.
3.7.7.1 Example
{
"status": "<One of the available status strings: completed, waiting,
timeout, error>",
"error_message": "<Detail of the error if the status is error.>",
"data": "<data object in a format described below>",
"next": "<relative URL of where the next set of data can be retrieved.
>"
}
Note:
• The error_message field is present only when there is an error in retrieving the status.
• The data field is present only when the status is completed.
• The next field is present only when the status is completed and next page of data
available.
Description Request is accepted. When the service expects to take longer than usual to
process the request, it returns status 202 and the user should check the re-
sult later.
{
"status": "waiting"
}
{
"status": "completed",
"data": {
"<mo_dn_1>":{
"<parameter a>": "<value a>",
"<parameter b>": "<value b>",
...
},
"<_mo_dn_2>": {
"<parameter a>": "<value c>",
"<parameter b>": "<value d>",
...
},
...
},
{
"status": "completed",
"data": {
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJS-10": {
"AdjsSIB":"1",
"HSDPAHopsIdentifier":"7",
"NrtHopsIdentifier":"1",
"RTWithHSDPAHopsIdentifier":"8",
"RtHopsIdentifier":"2",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111721"
},
"PLMN-PLMN/RNC-3/WBTS-70/WCEL-7000/ADJS-11": {
"AdjsSIB":"1",
"HSDPAHopsIdentifier":"7",
"NrtHopsIdentifier":"1",
"RTWithHSDPAHopsIdentifier":"8",
"RtHopsIdentifier":"2",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111721"
}
},
"next": "/mo/cm/data/45325/2"
}
Note:
– The DNs of requested MOs are dictionary keys at the top level.
– The requested parameter names of the MOs are dictionary keys at deepest levels.
• The next URL is not present if there is no next set of data to be retrieved.
The /mo/cm/write endpoint allows an external system to write configuration management (CM) data
to managed objects (MO). This includes creating MO, updating MO parameters, and deleting MOs.
Table 60: /mo/cm/write endpoint resource information describes the /mo/cm/write endpoint
resource.
Method POST
The endpoint requires one of the parameters, create, update, or delete indicating the requested
operation. For the list of the parameters, see Available parameters section.
For the /mo/cm/write endpoint payload and response examples, see Example.
Table 61: /mo/cm/write available parameters describes the available parameters for the /mo/cm/
write endpoint.
Parameter
Description Data type
name
create DNs of the MOs that should be created along with map of type: string -> map
CM parameters to be set. Request map should
contain DNs as keys and parameter maps as val-
ues.
Note:
update DNs of the MOs that should be updated along with map of type: string -> map
CM parameters to be set. Request map should
contain DNs as keys and parameter maps as val-
ues.
Parameter
Description Data type
name
Note:
3.7.8.2 Example
{
"create": { //The "create" dictionary is optional.
"<mo_dn_1>": {
"<parameter a>": "<value a>",
"<parameter b>": "<value b>",
...
},
"<mo_dn_2>": {
"<parameter c>": "<value c>",
"<parameter d>": "<value d>",
...
},
...
},
"update": { //The "update" dictionary is optional.
"<mo_dn_3>": {
"<parameter e>": "<value e>",
"<parameter f>": "<value f>",
...
},
"<mo_dn_4>": {
"<parameter g>": "<value g>",
"<parameter h>": "<value h>",
...
},
...
},
"delete": [ //The "delete" list is optional.
"<mo_dn_5>",
"<mo_dn_6>",
... ],
"oss_name": "name of the oss"
}
{
"create": {
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJS-10": {
"AdjsSIB":"For SIB and CELL DCH meas",
"HSDPAHopsIdentifier":"7","NrtHopsIdentifier":"1",
"RTWithHSDPAHopsIdentifier":"8","RtHopsIdentifier":"2",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111721"
},
"PLMN-PLMN/RNC-3/WBTS-70/WCEL-7000/ADJS-11": {
"AdjsSIB":"For SIB and CELL DCH meas",
"HSDPAHopsIdentifier":"7","NrtHopsIdentifier":"1",
"RTWithHSDPAHopsIdentifier":"8","RtHopsIdentifier":"2",
"TargetCellDN":"PLMN-PLMN/RNC-1103/WBTS-1117/WCEL-111721"
}
},
"update": {
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000": {
"AdminCellState":"Locked"
}
},
"delete": [
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000/ADJI-200"
],
"oss_name": "c2oss"
}
Description Request is accepted. The user should use the resultURL provided to retrieve
the response data.
Example:
{
"resultURL": "/mo/cm/write/data/
53c1289727a69ae3bf1b52711d22647a"
}
Payload content • None of the create, update, delete parameters are provided.
{
"oss_name": "c2oss"
}
Response payload:
{
"error_type": "invalid_request",
"error_details": [
"At least one of 'create', 'update', 'delete'
parameters is required"
]
}
• Name of the OSS provided in the request can not be recognized:
{
"update": {
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000": {
"AdminCellState":"Locked"
}
},
"oss_name": "invalid_oss_name"
}
Response payload:
{
"error_type": "invalid_request",
"error_details": [
"Provided OSS (invalid_oss_name) does not exist.
Available OSSes: c2oss, syoss, wyoss"
]
}
• OSS name is not provided and more than one OSS is connected.
{
"update": {
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000": {
"AdminCellState":"Locked"
}
}
}
Response payload:
{
"error_type": "invalid_request",
"error_details": [
"More than 1 OSS connected and 'oss_name' not
provided. Available OSSes: c2oss, syoss, wyoss"
]
}
Access is forbidden
Description Access is forbidden. This occurs if the user corresponding to the security token
has only SON Monitor privilege.
Method GET
3.7.9.1 Example
{
"status": "<One of the available status strings: completed, waiting,
timeout, error>",
"error_message": "<Detail of the error if the status is error.>",
"data": "<data object in a format described below>"
}
Note:
• The error_message field is present only when there is an error retrieving the status.
• The data is present only when the status is completed.
Description Request is accepted. When the service expects to take longer than usual to
process the request, it returns status 202 and the user should verify the result
later.
{
"status": "waiting"
Description OK. The response will show the status of the modification to each managed ob-
ject.
{
"status": "completed",
"data": {
"creates": { //Present only if there is a "create"
dictionary in the request"
"<mo_dn_1>": {
"status": "<succeeded, or failed>",
"error": "<Optional. Reasons for failure.>"
},
"<mo_dn_2>": {
"status": "<succeeded, or failed>",
"error": "<Optional. Reasons for failure.>"
},
...
},
"updates": { //Present only if there is an "update"
dictionary in the request"
"<mo_dn_3>": {
"status": "<succeeded, or failed>",
"error": "<Optional. Reasons for failure.>"
},
"<mo_dn_4>": {
"status": "<succeeded, or failed>",
"error": "<Optional. Reasons for failure.>"
},
...
},
"deletes": { //Present only if there is a "delete"
list in the request"
"<mo_dn_5>": {
"status": "<succeeded, or failed>",
"error": "<Optional. Reasons for failure.>"
},
"<mo_dn_6>": {
"status": "<succeeded, or failed>",
Note:
"some_unrecognized_dn": {
"status": "failed",
"error": "Unrecognized DN."
}
{
"status": "completed",
"data": {
"creates":
"PLMN-PLMN/RNC-3/WBTS-7/WCEL-711/ADJS-10": {
"status": "succeeded"
},
"PLMN-PLMN/RNC-3/WBTS-70/WCEL-7000/ADJS-11": {
"status": "failed",
"error": "Missing mandatory parameters."
}
},
"updates": {
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000": {
"status": "failed",
"error": "CPICH power out of range."
}
},
"deletes": {
"PLMN-PLMN/RNC-3/WBTS-700/WCEL-70000/ADJI-200": {
"status": "failed",
"error": "MO does not exist."
}
}
}
}
The /mo/cm/cache/health endpoint allows an external system to check status of cache for
configuration management (CM) data. It provides information on how recent CM data is per each
managed object type (MO type) and when the next scheduled update is planned.
Method GET
For the /mo/cm/cache/health endpoint payload and response examples, see Example.
Table 69: /mo/cm/cache/health available parameters describes the available parameters for the /mo/
cm/cache/health endpoint.
Parameter
Data type Possible values Description
name
oss_names list of strings Valid names of the Comma-separated list of OSS names for which
OSSes connected CM cache health should be retrieved. If the pa-
to the EdenNet in- rameter is omitted, then health for all OSSes
stance. connected to the EdenNet instance is retrieved.
Parameter
Data type Possible values Description
name
properties list of strings cm_cache_sched- Defines which health properties should be re-
ule, blacklist- trieved. If parameter is omitted, then all health
ing_cache, cm_ properties are retrieved.
timeout_map,
retrieval_re- Each health property is explained below:
3.7.10.2 Example
?oss_names=some_oss,another_oss&properties=cm_cache_schedule,retrieval_
request_queue
Response
Description OK.
Example response:
{
"errors": {
"unknown_oss": {
"error_code": 405,
"error": "405 Client Error: Method Not Allowed for
url: http://localhost:9600/region/unknown_oss/cache/health"
}
},
"cm_cache_health": {
"c2oss": {
"cm_timeout_map": {},
"cm_cache_schedule": {
"ADJS": {
"schedule_time": "2018-02-22T00:45:19Z",
"update_time": "2018-02-21T20:45:19Z",
"failure_time": null
},
"WCEL": {
"schedule_time": "2018-02-22T01:02:37Z",
"update_time": "2018-02-21T22:00:06Z",
"failure_time": "2018-02-22T00:02:37Z"
},
"ADJW": {
"schedule_time": "2018-02-22T00:56:09Z",
"update_time": "2018-02-21T20:56:09Z",
"failure_time": null
}
},
"blacklisting_cache": {
"LNBTS_TDD": true,
"BCF": true,
"APUCCH": true,
"APUCCH_TDD": true,
"RET": true,
"ADJI": true,
"SIB": true,
"WBTS": true,
},
"retrieval_request_queue": {
"size": 0
}
}
}
}
Table 71: General API responses describes the API responses for different codes.
Content
Code Content Description
type
{
"error_type": "invalid_
request",
"error_details": [
"Missing required
parameter \"pm\"."
]
}
Example:
{
"error_type": "invalid_
token",
"error_details": [
"Security token expired"
]
}
Content
Code Content Description
type
401 N/A The response without any payload, with the If the request is missing
following HTTP header: Authorization:
WWW-Authenticate: Bearer Bearer HTTP header
realm="EdenNet SON NBI" appears.
Content
Code Content Description
type
Note: