[PMSH] Update API Docs
[dcaegen2.git] / docs / sections / services / pm-subscription-handler / offeredapi.rst
diff --git a/docs/sections/services/pm-subscription-handler/offeredapi.rst b/docs/sections/services/pm-subscription-handler/offeredapi.rst
new file mode 100644 (file)
index 0000000..3588036
--- /dev/null
@@ -0,0 +1,201 @@
+.. 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                                    |
++-----------+---------------------------------------------------------------------+
+
+
+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                                    |
++-----------+---------------------------------------------------------------------+
+
+
+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                                                       |
++-----------+---------------------------------------------------------------------+