| .. 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 | |
| +-----------+---------------------------------------------------------------------+ |