A1 2.0.0:
[ric-plt/a1.git] / a1 / openapi.yaml
index 9dbe02b..f35a742 100644 (file)
@@ -16,7 +16,7 @@
 # ==================================================================================
 openapi: 3.0.0
 info:
-  version: 1.0.0
+  version: 2.0.0
   title: RIC A1
 paths:
   '/a1-p/healthcheck':
@@ -32,7 +32,7 @@ paths:
             A1 is healthy.
             Anything other than a 200 should be considered a1 as failing
 
-  '/a1-p/policytypes/':
+  '/a1-p/policytypes':
     get:
       description: "Get a list of all registered policy type ids"
       tags:
@@ -204,9 +204,9 @@ paths:
         - A1 Mediator
       operationId: a1.controller.delete_policy_instance
       responses:
-        '204':
+        '202':
           description: >
-            policy instance successfully deleted
+            policy instance deletion initiated
         '404':
           description: >
             there is no policy instance with this policy_instance_id
@@ -234,9 +234,9 @@ paths:
               trigger_threshold: 10
 
       responses:
-        '201':
+        '202':
           description: >
-            Policy instance created
+            Policy instance creation initiated
         '400':
           description: >
             Bad PUT body for this policy instance
@@ -261,33 +261,37 @@ paths:
     get:
       description: >
         Retrieve the policy instance status across all handlers of the policy
-
+        If this endpoint returns successfully (200), it is either IN EFFECT or NOT IN EFFECT.
+        IN EFFECT is returned if at least one policy handler in the RIC is implementing the policy
+        NOT IN EFFECT is returned otherwise
+        If a policy instance is successfully deleted, this endpoint will return a 404 (not a 200)
       tags:
         - A1 Mediator
       operationId: a1.controller.get_policy_instance_status
       responses:
         '200':
           description: >
-            The policy instance status.
-            Returns a vector of statuses, where each contains a handler_id (opaque id of a RIC component that implements this policy) and the policy status as returned by that handler
+            successfully retrieved the status
           content:
             application/json:
               schema:
-                type: array
-                items:
-                  type: object
-                  properties:
-                    handler_id:
-                      type: string
-                    status:
-                      type: string
-              example:
-                [{"handler_id": "1234-5678", "status" : "OK"}, {"handler_id": "abc-def", "status" : "NOT IMPLEMENTED"}]
+                type: object
+                properties:
+                  instance_status:
+                    type: string
+                    enum:
+                     - IN EFFECT
+                     - NOT IN EFFECT
+                  has_been_deleted:
+                    type: boolean
+                  created_at:
+                    type: string
+                    format: date-time
+
         '404':
           description: >
             there is no policy instance with this policy_instance_id or there is no policy type with this policy_type_id
 
-
 components:
   schemas:
     policy_type_schema:
@@ -317,72 +321,11 @@ components:
       description: >
         represents a policy type identifier. Currently this is restricted to an integer range.
       type: integer
-      minimum: 20000
-      maximum: 21023
+      minimum: 1
+      maximum: 2147483647
 
     policy_instance_id:
       description: >
         represents a policy instance identifier. UUIDs are advisable but can be any string
       type: string
       example: "3d2157af-6a8f-4a7c-810f-38c2f824bf12"
-
-    downstream_message_schema:
-      type: object
-      required:
-        - operation
-        - policy_type_id
-        - policy_instance_id
-        - payload
-      additionalProperties: false
-      properties:
-        operation:
-          description: the operation being performed
-          type: string
-          enum:
-            - CREATE
-            - DELETE
-            - UPDATE
-            - READ
-        policy_type_id:
-          "$ref": "#/components/schemas/policy_type_id"
-        policy_instance_id:
-          "$ref": "#/components/schemas/policy_instance_id"
-        payload:
-          description: payload for this operation
-          type: object
-      example:
-        operation: CREATE
-        policy_type_id: 12345678
-        policy_instance_id: 3d2157af-6a8f-4a7c-810f-38c2f824bf12
-        payload:
-          enforce: true
-          window_length: 10
-          blocking_rate: 20
-          trigger_threshold: 10
-
-    downstream_notification_schema:
-      type: object
-      required:
-        - policy_type_id
-        - policy_instance_id
-        - handler_id
-        - status
-      additionalProperties: false
-      properties:
-        policy_type_id:
-          "$ref": "#/components/schemas/policy_type_id"
-        policy_instance_id:
-          "$ref": "#/components/schemas/policy_instance_id"
-        handler_id:
-          description: >
-            id of the policy handler
-          type: string
-        status:
-          description: >
-            the status of this policy instance in this handler
-          type: string
-      example:
-        policy_type_id: 12345678
-        policy_instance_id: 3d2157af-6a8f-4a7c-810f-38c2f824bf12
-        handler_id: 1234-5678
-        status: OK