[PMSH] Delete subscription API by Name
[dcaegen2/services.git] / components / pm-subscription-handler / pmsh_service / mod / api / pmsh_swagger.yml
index f27fb7a..3319b7e 100644 (file)
@@ -1,5 +1,5 @@
 # ============LICENSE_START=======================================================
-#  Copyright (C) 2020-2021 Nordix Foundation.
+#  Copyright (C) 2020-2022 Nordix Foundation.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -72,9 +72,24 @@ paths:
         400:
           description: Invalid input
 
+    get:
+      description: Get all the subscriptions from PMSH.
+      operationId: mod.api.controller.get_subscriptions
+      tags:
+        - "Subscription"
+      responses:
+        200:
+          description: OK; Array of subscriptions are returned else empty if not found
+          schema:
+            type: array
+            items:
+              $ref: "#/definitions/subscription"
+        500:
+          description: Exception occurred while querying database
+
   /subscription/{subscription_name}:
     get:
-      description: Get the Subscription from ONAP specified by Name
+      description: Get the Subscription from PMSH specified by Name
       operationId: mod.api.controller.get_subscription_by_name
       tags:
         - "Subscription"
@@ -92,7 +107,56 @@ paths:
         404:
           description: Subscription with specified name not found
         500:
-          description: Exception occurs while querying database
+          description: Exception occurred while querying database
+
+    delete:
+      description: Deletes the Subscription from PMSH specified by Name
+      operationId: mod.api.controller.delete_subscription_by_name
+      parameters:
+        - name: subscription_name
+          in: path
+          required: true
+          description: The name of the subscription to delete
+          type: string
+      responses:
+        204:
+          description: Successfully deleted the subscription and returns NO Content
+        404:
+          description: Subscription with the specified name not found
+        409:
+          description: Subscription could not be deleted as it contains measurement groups
+                       with state UNLOCKED OR state change to LOCKED was under process
+        500:
+          description: Exception occurred on the server
+
+
+  /subscription/{subscription_name}/measurementGroups/{measurement_group_name}:
+    get:
+      description: Get the  measurement group and associated network functions
+                  from PMSH by using sub name and meas group name
+      operationId: mod.api.controller.get_meas_group_with_nfs
+      tags:
+        - "measurement group"
+      parameters:
+        - name : subscription_name
+          in: path
+          required: true
+          description: Name of the subscription
+          type: string
+        - name: measurement_group_name
+          in: path
+          required: true
+          description: Name of the measurement group name
+          type: string
+      responses:
+        200:
+          description: OK; Received requested measurement group with associated NF's
+          schema:
+            $ref : "#/definitions/measGroupWithNFs"
+        404:
+          description: Measurement group with specified name not found
+        500:
+          description: Exception occurred while querying database
 
 definitions:
   subscription:
@@ -200,3 +264,60 @@ definitions:
         type: string
     required:
       - DN
+
+  measGroupWithNFs:
+    type: object
+    properties:
+      subscriptionName:
+        type: string
+      measurementGroupName:
+        type: string
+      administrativeState:
+        type: string
+        enum: [ LOCKED, UNLOCKED ]
+      fileBasedGP:
+        type: integer
+      fileLocation:
+        type: string
+      measurementTypes:
+        type: array
+        minItems: 1
+        items:
+          $ref: "#/definitions/measurementType"
+      managedObjectDNsBasic:
+        type: array
+        minItems: 1
+        items:
+          $ref: "#/definitions/managedObjectDNs"
+      network_functions:
+        type: array
+        items:
+          type: object
+          properties:
+            nfName:
+              type: string
+              description: Name of the Network Function
+            ipv4Address:
+              type: string
+              description: Address of the IPV4
+            ipv6Address:
+              type: string
+              description: Address of the IPV6
+            nfMgStatus:
+              type: string
+              description: status of network function for one meas group
+            modelInvariantId:
+              type: string
+              description: ID of the model invariant
+            modelVersionId:
+              type: string
+              description: ID of the model version
+            modelName:
+              type: string
+              description: Name of the model
+            sdncModelName:
+              type: string
+              description: Name of the sdnc model
+            sdncModelVersion:
+              type: string
+              description: Version of the sdnc model