blob: 9dfce02be80cf9ea49a5591e2b647fad8b99227b [file] [log] [blame]
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2022 Nordix Foundation
API
===
GET /healthcheck
---------------------------------------------------
Description
~~~~~~~~~~~
This is the health check endpoint. If this returns a 200, the server is alive.
Responses
~~~~~~~~~
+-----------+--------------------------+
| HTTP Code | Description |
+===========+==========================+
| **200** | Successful response |
+-----------+--------------------------+
| **503** | Service unavailable |
+-----------+--------------------------+
POST /subscription
--------------------------------------------------
Description
~~~~~~~~~~~
Create a PM Subscription
Responses
~~~~~~~~~
+-----------+--------------------------------------+
| HTTP Code | Description |
+===========+======================================+
| **201** | Successfully created PM Subscription |
+-----------+--------------------------------------+
| **400** | Invalid Input |
+-----------+--------------------------------------+
| **409** | Duplicate Data |
+-----------+--------------------------------------+
Sample Subscription Body
~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: http
{
"subscription": {
"subscriptionName": "new_sub",
"policyName": "pmsh_policy",
"nfFilter": {
"nfNames": [
"^pnf.*",
"^vnf.*"
],
"modelInvariantIDs": [
],
"modelVersionIDs": [
],
"modelNames": []
},
"measurementGroups": [{
"measurementGroup": {
"measurementGroupName": "msr_grp_name",
"fileBasedGP": 15,
"fileLocation": "\/pm\/pm.xml",
"administrativeState": "UNLOCKED",
"measurementTypes": [{
"measurementType": "counter_a"
}],
"managedObjectDNsBasic": [{
"DN": "string"
}]
}
}]
}
}
GET /subscription
--------------------------------------------------
Description
~~~~~~~~~~~
Get all the subscriptions from PMSH
Responses
~~~~~~~~~
+-----------+----------------------------------------+
| HTTP Code | Description |
+===========+========================================+
| **200** | Successfully fetched all subscriptions |
+-----------+----------------------------------------+
| **500** | Exception occured when querying DB |
+-----------+----------------------------------------+
GET /subscription/{subscription_name}
---------------------------------------------------
Description
~~~~~~~~~~~
Get the Subscription from PMSH specified by Name
Responses
~~~~~~~~~
+-----------+--------------------------------------------+
| HTTP Code | Description |
+===========+============================================+
| **200** | OK; Requested Subscription was returned |
+-----------+--------------------------------------------+
| **404** | Subscription with specified name not found |
+-----------+--------------------------------------------+
| **500** | Exception occurred while querying database |
+-----------+--------------------------------------------+
DELETE /subscription/{subscription_name}
---------------------------------------------------
Description
~~~~~~~~~~~
Deletes the Subscription from PMSH specified by Name
Responses
~~~~~~~~~
+-----------+---------------------------------------------------------------------+
| HTTP Code | Description |
+===========+=====================================================================+
| **204** | Successfully deleted the subscription and returns NO Content |
+-----------+---------------------------------------------------------------------+
| **404** | Subscription with specified name not found |
+-----------+---------------------------------------------------------------------+
| **409** | Subscription could not be deleted as it contains measurement groups |
| | with state UNLOCKED OR state change to LOCKED was under process |
+-----------+---------------------------------------------------------------------+
| **500** | Exception occurred on the server |
+-----------+---------------------------------------------------------------------+
PUT /subscription/{subscription_name}/nfFilter
----------------------------------------------
Description
~~~~~~~~~~~
Update a Subscription nf filter
Sample NF Filter Body
~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: http
{
"nfFilter": {
"nfNames": [
"^pnf.*",
"^vnf.*"
],
"modelInvariantIDs": [
],
"modelVersionIDs": [
],
"modelNames": [
]
}
}
Responses
~~~~~~~~~
+-----------+---------------------------------------------------------------------+
| HTTP Code | Description |
+===========+=====================================================================+
| **201** | Successfully updated nf filter |
+-----------+---------------------------------------------------------------------+
| **400** | Invalid input |
+-----------+---------------------------------------------------------------------+
| **409** | Conflicting data |
+-----------+---------------------------------------------------------------------+
| **500** | Exception occurred while querying database |
+-----------+---------------------------------------------------------------------+
POST /subscription/{subscription_name}/measurementGroups/{measurement_group_name}
----------------------------------------------------------------------------------
Description
~~~~~~~~~~~
Create a measurement group for a given subscription
Sample Measurement Group Body
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: http
{
"measurementGroup": {
"measurementGroupName": "msg_grp_03",
"fileBasedGP":15,
"fileLocation":"pm.xml",
"administrativeState": "UNLOCKED",
"measurementTypes": [
{
"measurementType": "counter_a"
}
],
"managedObjectDNsBasic": [
{
"DN": "string"
}
]
}
}
Responses
~~~~~~~~~
+-----------+---------------------------------------------------------------------+
| HTTP Code | Description |
+===========+=====================================================================+
| **201** | Successfully created measurement group |
+-----------+---------------------------------------------------------------------+
| **404** | Subscription with the specified name not found |
+-----------+---------------------------------------------------------------------+
| **409** | Duplicate data |
+-----------+---------------------------------------------------------------------+
| **500** | Internal server error |
+-----------+---------------------------------------------------------------------+
GET /subscription/{subscription_name}/measurementGroups/{measurement_group_name}
----------------------------------------------------------------------------------
Description
~~~~~~~~~~~
Get the measurement group and associated network functions from PMSH by using sub name and meas group name
Responses
~~~~~~~~~
+-----------+---------------------------------------------------------------------+
| HTTP Code | Description |
+===========+=====================================================================+
| **200** | OK; Received requested measurement group with associated NF's |
+-----------+---------------------------------------------------------------------+
| **404** | Measurement group with specified name not found |
+-----------+---------------------------------------------------------------------+
| **500** | Exception occurred on the server |
+-----------+---------------------------------------------------------------------+
DELETE /subscription/{subscription_name}/measurementGroups/{measurement_group_name}
------------------------------------------------------------------------------------
Description
~~~~~~~~~~~
Delete a measurement group
Responses
~~~~~~~~~
+-----------+--------------------------------------------------------------------------------------------------+
| HTTP Code | Description |
+===========+==================================================================================================+
| **204** | Successfully deleted the measurement group and returns NO Content |
+-----------+--------------------------------------------------------------------------------------------------+
| **404** | Measurement group with the specified name not found |
+-----------+--------------------------------------------------------------------------------------------------+
| **409** | Measurement group not deleted because state UNLOCKED OR state change to LOCKED was under process |
+-----------+--------------------------------------------------------------------------------------------------+
| **500** | Exception occurred on the server |
+-----------+--------------------------------------------------------------------------------------------------+
PUT /subscription/{subscription_name}/measurementGroups/{measurement_group_name}/{administrativeState}
-------------------------------------------------------------------------------------------------------
Description
~~~~~~~~~~~
Update administrative state for a measurement group
Responses
~~~~~~~~~
+-----------+---------------------------------------------------------------------+
| HTTP Code | Description |
+===========+=====================================================================+
| **201** | Successfully updated administrative state |
+-----------+---------------------------------------------------------------------+
| **409** | Duplicate data |
+-----------+---------------------------------------------------------------------+
| **500** | Invalid input |
+-----------+---------------------------------------------------------------------+