REST error codes

Added tests of error codes for the policy agent REST API,
and fixed problems found.
Updated swagger generated API spec.
Fixed so that the HttpStatus is propagated back in Dmaap responses
also for successful cases.

This commit resolves NONRTRIC-155 and NONRTRIC-156

Change-Id: I061c9b22787916c196b2ba1da552413e05d244ca
Issue-ID: NONRTRIC-155
Signed-off-by: PatrikBuhr <patrik.buhr@est.tech>
diff --git a/policy-agent/docs/api.yaml b/policy-agent/docs/api.yaml
index 1c41d42..9c7d96e 100644
--- a/policy-agent/docs/api.yaml
+++ b/policy-agent/docs/api.yaml
@@ -1,21 +1,21 @@
 swagger: '2.0'
 info:
-  description: This page lists all the rest apis for Policy server.
+  description: This page lists all the rest apis for the service.
   version: '1.0'
-  title: Policy server
+  title: A1 Policy management service
 host: 'localhost:8081'
 basePath: /
 tags:
+  - name: A1 Policy Management
+    description: Policy Controller
+  - name: Health check
+    description: Status Controller
+  - name: RIC Repository
+    description: Ric Repository Controller
+  - name: Service registry and supervision
+    description: Service Controller
   - name: operation-handler
     description: Operation Handler
-  - name: policy-controller
-    description: Policy Controller
-  - name: ric-repository-controller
-    description: Ric Repository Controller
-  - name: service-controller
-    description: Service Controller
-  - name: status-controller
-    description: Status Controller
   - name: web-mvc-links-handler
     description: Web Mvc Links Handler
 paths:
@@ -328,7 +328,7 @@
   /policies:
     get:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Query policies
       operationId: getPoliciesUsingGET
       produces:
@@ -361,12 +361,14 @@
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: RIC or type not found
+          schema:
+            type: string
       deprecated: false
   /policy:
     get:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Returns a policy configuration
       operationId: getPolicyUsingGET
       produces:
@@ -382,20 +384,16 @@
           description: Policy found
           schema:
             type: object
-        '204':
-          description: Policy is not found
-          schema:
-            type: string
         '401':
           description: Unauthorized
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: Policy is not found
       deprecated: false
     put:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Put a policy
       operationId: putPolicyUsingPUT
       consumes:
@@ -431,21 +429,33 @@
           type: string
       responses:
         '200':
-          description: Policy created or updated
+          description: Policy updated
           schema:
             type: string
         '201':
-          description: Created
+          description: Policy created
+          schema:
+            type: string
         '401':
           description: Unauthorized
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: RIC or policy type is not found
+          schema:
+            type: string
+        '405':
+          description: Change is not allowed
+          schema:
+            type: string
+        '423':
+          description: RIC is locked
+          schema:
+            type: string
       deprecated: false
     delete:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Delete a policy
       operationId: deletePolicyUsingDELETE
       produces:
@@ -469,11 +479,19 @@
           description: Unauthorized
         '403':
           description: Forbidden
+        '404':
+          description: Policy is not found
+          schema:
+            type: string
+        '423':
+          description: RIC is locked
+          schema:
+            type: string
       deprecated: false
   /policy_schema:
     get:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Returns one policy type schema definition
       operationId: getPolicySchemaUsingGET
       produces:
@@ -494,12 +512,14 @@
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: RIC is not found
+          schema:
+            type: string
       deprecated: false
   /policy_schemas:
     get:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Returns policy type schema definitions
       operationId: getPolicySchemasUsingGET
       produces:
@@ -522,12 +542,14 @@
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: RIC is not found
+          schema:
+            type: string
       deprecated: false
   /policy_status:
     get:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Returns a policy status
       operationId: getPolicyStatusUsingGET
       produces:
@@ -543,21 +565,19 @@
           description: Policy status
           schema:
             type: object
-        '204':
-          description: Policy is not found
-          schema:
-            type: string
         '401':
           description: Unauthorized
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: Policy is not found
+          schema:
+            type: string
       deprecated: false
   /policy_types:
     get:
       tags:
-        - policy-controller
+        - A1 Policy Management
       summary: Query policy type names
       operationId: getPolicyTypesUsingGET
       produces:
@@ -580,12 +600,14 @@
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: RIC is not found
+          schema:
+            type: string
       deprecated: false
   /ric:
     get:
       tags:
-        - ric-repository-controller
+        - RIC Repository
       summary: Returns the name of a RIC managing one Mananged Element
       operationId: getRicUsingGET
       produces:
@@ -613,7 +635,7 @@
   /rics:
     get:
       tags:
-        - ric-repository-controller
+        - RIC Repository
       summary: Query NearRT RIC information
       operationId: getRicsUsingGET
       produces:
@@ -636,12 +658,14 @@
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: Policy type is not found
+          schema:
+            type: string
       deprecated: false
   /service:
     put:
       tags:
-        - service-controller
+        - Service registry and supervision
       summary: Register a service
       operationId: putServiceUsingPUT
       consumes:
@@ -662,6 +686,10 @@
             type: string
         '201':
           description: Created
+        '400':
+          description: Cannot parse the ServiceRegistrationInfo
+          schema:
+            type: string
         '401':
           description: Unauthorized
         '403':
@@ -672,7 +700,7 @@
   /services:
     get:
       tags:
-        - service-controller
+        - Service registry and supervision
       summary: Returns service information
       operationId: getServicesUsingGET
       produces:
@@ -695,19 +723,21 @@
         '403':
           description: Forbidden
         '404':
-          description: Not Found
+          description: Service is not found
+          schema:
+            type: string
       deprecated: false
     delete:
       tags:
-        - service-controller
+        - Service registry and supervision
       summary: Delete a service
       operationId: deleteServiceUsingDELETE
       produces:
         - '*/*'
       parameters:
-        - name: serviceName
+        - name: name
           in: query
-          description: serviceName
+          description: name
           required: true
           type: string
       responses:
@@ -716,26 +746,32 @@
           schema:
             type: string
         '204':
-          description: No Content
+          description: OK
+          schema:
+            type: string
         '401':
           description: Unauthorized
         '403':
           description: Forbidden
+        '404':
+          description: Service not found
+          schema:
+            type: string
       deprecated: false
   /services/keepalive:
     post:
       tags:
-        - service-controller
-      summary: Keep the poilicies alive for a service
+        - Service registry and supervision
+      summary: Keep the policies alive for a service
       operationId: keepAliveServiceUsingPOST
       consumes:
         - application/json
       produces:
         - '*/*'
       parameters:
-        - name: serviceName
+        - name: name
           in: query
-          description: serviceName
+          description: name
           required: true
           type: string
       responses:
@@ -755,7 +791,7 @@
   /status:
     get:
       tags:
-        - status-controller
+        - Health check
       summary: Returns status and statistics of this service
       operationId: getStatusUsingGET
       produces:
@@ -786,9 +822,9 @@
     title: 'Map«string,Link»'
     additionalProperties:
       $ref: '#/definitions/Link'
-  Mono«ResponseEntity«Void»»:
+  Mono«ResponseEntity«object»»:
     type: object
-    title: Mono«ResponseEntity«Void»»
+    title: Mono«ResponseEntity«object»»
   Mono«ResponseEntity«string»»:
     type: object
     title: Mono«ResponseEntity«string»»
@@ -822,14 +858,14 @@
         description: O1 identities for managed entities
         items:
           type: string
-      name:
-        type: string
-        description: identity of the ric
       policyTypes:
         type: array
         description: supported policy types
         items:
           type: string
+      ricName:
+        type: string
+        description: identity of the ric
     title: RicInfo
   ServiceRegistrationInfo:
     type: object
@@ -848,6 +884,9 @@
   ServiceStatus:
     type: object
     properties:
+      callbackUrl:
+        type: string
+        description: callback for notifying of RIC recovery
       keepAliveIntervalSeconds:
         type: integer
         format: int64