Sync documentation changes 69/115369/1
authorelinuxhenrik <henrik.b.andersson@est.tech>
Wed, 25 Nov 2020 08:54:53 +0000 (09:54 +0100)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Wed, 25 Nov 2020 08:54:58 +0000 (09:54 +0100)
Issue-ID: CCSDK-2974
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
Change-Id: Ida1e73aa851a58b5e6a75ba355552bafd14e0635

docs/media/yaml_logo.png [new file with mode: 0644]
docs/offeredapis/offeredapis.rst
docs/offeredapis/swagger/a1-adapter-api.yaml [new file with mode: 0644]
docs/offeredapis/swagger/pms-api.yaml [new file with mode: 0644]

diff --git a/docs/media/yaml_logo.png b/docs/media/yaml_logo.png
new file mode 100644 (file)
index 0000000..0492eb4
Binary files /dev/null and b/docs/media/yaml_logo.png differ
index 0efe5ce..b6b2cd6 100644 (file)
@@ -25,33 +25,6 @@ integration with other ONAP components and API resource/operation provided.
    :width: 500pt
 
 
-API Table
-*********
-
-.. |swagger-icon| image:: ../media/swagger.png
-                  :width: 40px
-
-.. csv-table::
-   :header: "API name", "|swagger-icon|"
-   :widths: 10,5
-
-   "PMS API", ":download:`link <./swagger/pms-api.json>`"
-   "A1 ADAPTER API (Internal)", ":download:`link <./swagger/a1-adapter-api.json>`"
-
-
-.. _pms_api:
-
-PMS API
-.......
-`PMS API <./pms-api.html>`_
-
-.. _a1_adapter_api:
-
-A1 ADAPTER API
-..............
-`A1 ADAPTER API (Internal) <./a1-adapter-api.html>`_
-
-
 API Version
 ***********
 
@@ -81,3 +54,35 @@ provided the following  backward compatibility rules are respected:
 
 For major modifications of the API, not backward compatible and forcing client
 implementations to be changed, the version number must be updated.
+
+
+API Table
+*********
+
+.. |swagger-icon| image:: ../media/swagger.png
+                  :width: 40px
+
+.. |yaml-icon| image:: ../media/yaml_logo.png
+                  :width: 40px
+
+
+.. csv-table::
+   :header: "API name", "|swagger-icon|", "|yaml-icon|"
+   :widths: 10,5, 5
+
+   "PMS API", ":download:`link <./swagger/pms-api.json>`", ":download:`link <./swagger/pms-api.yaml>`"
+   "A1 ADAPTER API (Internal)", ":download:`link <./swagger/a1-adapter-api.json>`", ":download:`link <./swagger/a1-adapter-api.yaml>`"
+
+
+.. _pms_api:
+
+PMS API
+.......
+`PMS API <./pms-api.html>`_
+
+.. _a1_adapter_api:
+
+A1 ADAPTER API
+..............
+`A1 ADAPTER API (Internal) <./a1-adapter-api.html>`_
+
diff --git a/docs/offeredapis/swagger/a1-adapter-api.yaml b/docs/offeredapis/swagger/a1-adapter-api.yaml
new file mode 100644 (file)
index 0000000..1db8415
--- /dev/null
@@ -0,0 +1,306 @@
+apiVersion: 1.0.0
+swagger: '2.0'
+basePath: /
+info:
+  x-audience: external-partner
+  contact:
+    name: Ericsson Software Technology
+    email: nonrtric@est.tech
+  description: >-
+    The O-RAN A1 Adapter provides an internal REST API for management of A1
+    policices, useful for test and verification. <b>Note!</b> For production,
+    the
+    https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html
+    should be used!
+  title: A1 Adapter
+  version: 1.1.0
+paths:
+  '/restconf/operations/A1-ADAPTER-API:putA1Policy':
+    post:
+      summary: Create or update a policy
+      description: >-
+        <b>Note!</b> For production, the
+        https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html
+        PUT /policy method should be used!
+      nickname: putA1Policy
+      produces: application/json
+      responses:
+        '200':
+          schema:
+            $ref: '#/models/(putA1Policy)output'
+          description: Policy created/updated
+          examples:
+            application/json:
+              'A1-ADAPTER-API:body': {}
+              'A1-ADAPTER-API:http-status': 200
+      parameters:
+        - schema:
+            $ref: '#/models/(putA1Policy)input'
+          in: body
+          name: null
+          description: null
+          required: false
+  '/operations/A1-ADAPTER-API:getA1Policy':
+    post:
+      summary: Get policy configuration/s
+      description: >-
+        <b>Note!</b> For production, the
+        https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html
+        GET /policy method should be used!
+      nickname: getA1Policy
+      produces: application/json
+      responses:
+        '200':
+          schema:
+            $ref: '#/models/(getA1Policy)output'
+          description: Policy found
+          examples:
+            application/json:
+              'A1-ADAPTER-API:body':
+                id: Policy 1
+                json:
+                  scope:
+                    ueId: 'UE1 '
+                    cellId: Cell 1
+                  qosObjectives:
+                    gfbr: 319.5
+                    mfbr: 782.75
+                    priorityLevel: 268.5
+                    pdb: 44
+                  qoeObjectives:
+                    qoeScore: 329
+                    initialBuffering: 27.75
+                    reBuffFreq: 539
+                    stallRatio: 343
+                  resources: []
+                ownerServiceName: Service 1
+                ric: ric1
+                type: STD_PolicyModelUnconstrained_0.2.0
+                lastModified: 'Wed, 01 Apr 2020 07:45:45 GMT'
+              'A1-ADAPTER-API:http-status': 200
+      parameters:
+        - schema:
+            $ref: '#/models/(getA1Policy)input'
+          in: body
+          name: null
+          description: null
+          required: false
+  '/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus':
+    post:
+      summary: Get a policy status
+      description: >-
+        <b>Note!</b> For production, the
+        https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html
+        GET /policy-status method should be used!
+      nickname: getA1PolicyStatus
+      produces: application/json
+      responses:
+        '200':
+          schema:
+            $ref: '#/models/(getA1PolicyStatus)output'
+          description: Policy status
+          examples:
+            application/json:
+              'A1-ADAPTER-API:body':
+                enforceStatus: UNDEFINED
+              'A1-ADAPTER-API:http-status': 200
+      parameters:
+        - schema:
+            $ref: '#/models/(getA1PolicyStatus)input'
+          in: body
+          name: null
+          description: null
+          required: false
+  '/restconf/operations/A1-ADAPTER-API:getA1PolicyType':
+    post:
+      summary: Get a policy type schema definition
+      description: >-
+        <b>Note!</b> For production, the
+        https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html
+        GET /policy-types method should be used!
+      nickname: getA1PolicyType
+      produces: application/json
+      responses:
+        '200':
+          schema:
+            $ref: '#/models/(getA1PolicyType)output'
+          description: Policy schema
+          examples:
+            application/json:
+              'A1-ADAPTER-API:body':
+                $schema: 'http://json-schema.org/draft-07/schema#'
+                title: Example_QoETarget_1.0.0
+                description: Example QoE Target policy type
+                type: object
+                properties:
+                  scope:
+                    type: object
+                    properties:
+                      ueId:
+                        type: string
+                      sliceId:
+                        type: string
+                      qosId:
+                        type: string
+                      cellId:
+                        type: string
+                    additionalProperties: false
+                    required:
+                      - ueId
+                      - sliceId
+                  statement:
+                    type: object
+                    properties:
+                      qoeScore:
+                        type: number
+                      initialBuffering:
+                        type: number
+                      reBuffFreq:
+                        type: number
+                      stallRatio:
+                        type: number
+                    minProperties: 1
+                    additionalProperties: false
+              'A1-ADAPTER-API:http-status': 200
+      parameters:
+        - schema:
+            $ref: '#/models/(getA1PolicyType)input'
+          in: body
+          name: null
+          description: null
+          required: false
+  '/restconf/operations/A1-ADAPTER-API:deleteA1Policy':
+    post:
+      summary: Delete a policy
+      description: >-
+        <b>Note!</b> For production, the
+        https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html
+        DELETE /policy method should be used!
+      nickname: deleteA1Policy
+      produces: application/json
+      responses:
+        '200':
+          schema:
+            $ref: '#/models/(deleteA1Policy)output'
+          description: Policy deleted
+          examples:
+            application/json:
+              'A1-ADAPTER-API:body': {}
+              'A1-ADAPTER-API:http-status': 200
+      parameters:
+        - schema:
+            $ref: '#/models/(deleteA1Policy)input'
+          in: body
+          name: null
+          description: null
+          required: false
+models:
+  (putA1Policy)input:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:near-rt-ric-url':
+        required: false
+        type: Some near-rt-ric-url
+        example: 'http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000'
+      'A1-ADAPTER-API:body':
+        required: false
+        type: Some body
+        example:
+          blocking_rate: 20
+          enforce: true
+          trigger_threshold: 10
+          window_length: 10
+    id: (putA1Policy)input
+  (putA1Policy)output:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:body':
+        required: false
+        type: Some body
+      'A1-ADAPTER-API:http-status':
+        required: false
+        type: '-2147483648'
+    id: (putA1Policy)output
+  (getA1Policy)input:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:near-rt-ric-url':
+        required: false
+        type: Some near-rt-ric-url
+        example: 'http://localhost:8081/policy?id=Policy 1'
+    id: (getA1Policy)input
+  (getA1Policy)output:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:body':
+        required: false
+        type: object
+      'A1-ADAPTER-API:http-status':
+        required: false
+        type: '-2147483648'
+    id: (getA1Policy)output
+  (getA1PolicyStatus)input:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:near-rt-ric-url':
+        required: false
+        type: Some near-rt-ric-url
+        example: 'http://ricsim_g2_1:8085/A1-P/v1/policies/5000/status'
+    id: (getA1PolicyStatus)input
+  (getA1PolicyStatus)output:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:body':
+        required: false
+        type: Some body
+      'A1-ADAPTER-API:http-status':
+        required: false
+        type: '-2147483648'
+    id: (getA1PolicyStatus)output
+  (getA1PolicyType)input:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:near-rt-ric-url':
+        required: false
+        type: Some near-rt-ric-url
+        example: 'http://nearRtRic-sim1:8085/a1-p/policytypes/11'
+    id: (getA1PolicyType)input
+  (getA1PolicyType)output:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:body':
+        required: false
+        type: Some body
+      'A1-ADAPTER-API:http-status':
+        required: false
+        type: '-2147483648'
+    id: (getA1PolicyType)output
+  (deleteA1Policy)input:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:near-rt-ric-url':
+        required: false
+        type: Some near-rt-ric-url
+        example: >-
+          http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy
+    id: (deleteA1Policy)input
+  (deleteA1Policy)output:
+    $schema: 'http://json-schema.org/draft-04/schema'
+    type: object
+    properties:
+      'A1-ADAPTER-API:body':
+        required: false
+        type: Some body
+      'A1-ADAPTER-API:http-status':
+        required: false
+        type: '-2147483648'
+    id: (deleteA1Policy)output
diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml
new file mode 100644 (file)
index 0000000..3bf13a2
--- /dev/null
@@ -0,0 +1,852 @@
+---
+openapi: 3.0.1
+info:
+  title: A1 Policy management service
+  description: 'The O-RAN Non-RT RIC PolicyAgent provides a REST API for management
+    of policices. It provides support for: -Supervision of clients (R-APPs) to eliminate
+    stray policies in case of failure -Consistency monitoring of the SMO view of policies
+    and the actual situation in the RICs -Consistency monitoring of RIC capabilities
+    (policy types) -Policy configuration. This includes: -One REST API towards all
+    RICs in the network -Query functions that can find all policies in a RIC, all
+    policies owned by a service (R-APP), all policies of a type etc. -Maps O1 resources
+    (ManagedElement) as defined in O1 to the controlling RIC of A1 policices.'
+  version: '1.0'
+servers:
+- url: https://localhost:8433/
+- url: http://localhost:8081/
+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
+paths:
+  "/policies":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Query policies
+      operationId: getPoliciesUsingGET
+      parameters:
+      - name: ric
+        in: query
+        description: The name of the Near-RT RIC to get policies for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: ric1
+      - name: service
+        in: query
+        description: The name of the service to get policies for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: controlpanel
+      - name: type
+        in: query
+        description: The name of the policy type to get policies for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: '1'
+      responses:
+        '200':
+          description: Policies
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: array
+                items:
+                  "$ref": "#/components/schemas/PolicyInfo"
+              examples:
+                OSC:
+                  "$ref": "#/components/examples/Policies-OSC"
+                STD:
+                  "$ref": "#/components/examples/Policies-STD"
+        '404':
+          description: RIC or type not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: RIC not found
+      deprecated: false
+  "/policy":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Returns a policy configuration
+      operationId: getPolicyUsingGET
+      parameters:
+      - name: id
+        in: query
+        description: The identity of the policy instance.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: e26d76e1-b43f-427e-a3c2-b7c4e05a6431
+      responses:
+        '200':
+          description: Policy found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: object
+              examples:
+                OSC:
+                  "$ref": "#/components/examples/Policy-OSC"
+                STD:
+                  "$ref": "#/components/examples/Policy-STD"
+        '404':
+          description: Policy is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'Could not find policy: e26d76e1-b43f-427e-a3c2-b7c4e05a6431'
+      deprecated: false
+    put:
+      tags:
+      - A1 Policy Management
+      summary: Put a policy
+      operationId: putPolicyUsingPUT
+      parameters:
+      - name: id
+        in: query
+        description: The identity of the policy instance.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: 73428e58-1670-4972-8498-e7e8f1003631
+      - name: ric
+        in: query
+        description: The name of the Near-RT RIC where the policy will be created.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: ric1
+      - name: service
+        in: query
+        description: The name of the service creating the policy.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: Service1
+      - name: transient
+        in: query
+        description: If the policy is transient or not (boolean defaulted to false).
+          A policy is transient if it will be forgotten when the service needs to
+          reconnect to the Near-RT RIC.
+        allowEmptyValue: false
+        schema:
+          type: boolean
+          default: false
+        example: false
+      - name: type
+        in: query
+        description: The name of the policy type. The policy type is mandatory for
+          OSC A1 version and should not be provided for STD A1 version.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: STD_PolicyModelUnconstrained_0.2.0
+      requestBody:
+        description: jsonBody
+        content:
+          application/json:
+            schema:
+              type: object
+              example:
+                scope:
+                  qosId: '3'
+                  ueId: '1'
+                statement:
+                  priorityLevel: 1
+        required: true
+      responses:
+        '200':
+          description: Policy updated
+        '201':
+          description: Policy created
+        '404':
+          description: RIC or policy type is not found
+        '423':
+          description: RIC is not operational
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: Ric is not operational, RIC name:ric1, state:UNAVAILABLE
+    delete:
+      tags:
+      - A1 Policy Management
+      summary: Delete a policy
+      operationId: deletePolicyUsingDELETE
+      parameters:
+      - name: id
+        in: query
+        description: The identity of the policy instance.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: 73428e58-1670-4972-8498-e7e8f1003631
+      responses:
+        '200':
+          description: OK
+        '204':
+          description: Policy deleted
+        '404':
+          description: Policy is not found
+        '423':
+          description: RIC is not operational
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: Ric is not operational, RIC name:ric1,state:UNAVAILABLE
+      deprecated: false
+  "/policy_ids":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Query policies, only IDs returned
+      operationId: getPolicyIdsUsingGET
+      parameters:
+      - name: ric
+        in: query
+        description: The name of the Near-RT RIC to get policies for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: ric1
+      - name: service
+        in: query
+        description: The name of the service to get policies for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: Service1
+      - name: type
+        in: query
+        description: The name of the policy type to get policies for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: '1'
+      responses:
+        '200':
+          description: Policy ids
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: array
+                items:
+                  type: string
+              examples:
+                OSC:
+                  value:
+                  - 73428e58-1670-4972-8498-e7e8f1003631
+                  - 73428e58-1670-4972-8498-e7e8f100363e
+                STD:
+                  value:
+                  - 73428e58-1670-4972-8498-e7e8f1003632
+                  - 73428e58-1670-4972-8498-e7e8f1003634
+        '404':
+          description: RIC or type not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: RIC not found
+      deprecated: false
+  "/policy_schema":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Returns one policy type schema definition. Applicable only for OSC
+        Version.
+      operationId: getPolicySchemaUsingGET
+      parameters:
+      - name: id
+        in: query
+        description: The identity of the policy type to get the definition for.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: '11'
+      responses:
+        '200':
+          description: Policy schema
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: object
+              examples:
+                OSC:
+                  value:
+                    "$schema": http://json-schema.org/draft-07/schema#
+                    description: QoS policy type
+                    title: '1'
+                    type: object
+                    properties:
+                      scope:
+                        additionalProperties: false
+                        type: object
+                        properties:
+                          qosId:
+                            type: string
+                          ueId:
+                            type: string
+                        required:
+                        - ueId
+                        - qosId
+                      statement:
+                        additionalProperties: false
+                        type: object
+                        properties:
+                          priorityLevel:
+                            type: number
+                        required:
+                        - priorityLevel
+        '404':
+          description: Type not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'org.oransc.policyagent.exceptions.ServiceException: Could
+                  not find type: 11'
+      deprecated: false
+  "/policy_schemas":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Returns policy type schema definitions
+      operationId: getPolicySchemasUsingGET
+      parameters:
+      - name: ric
+        in: query
+        description: The name of the Near-RT RIC to get the definitions for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: ric1
+      responses:
+        '200':
+          description: Policy schemas
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: array
+                items:
+                  type: object
+                  properties: {}
+              examples:
+                OSC:
+                  value:
+                  - "$schema": http://json-schema.org/draft-07/schema#
+                    description: QoS policy type
+                    title: '1'
+                    type: object
+                    properties:
+                      scope:
+                        additionalProperties: false
+                        type: object
+                        properties:
+                          qosId:
+                            type: string
+                          ueId:
+                            type: string
+                        required:
+                        - ueId
+                        - qosId
+                      statement:
+                        additionalProperties: false
+                        type: object
+                        properties:
+                          priorityLevel:
+                            type: number
+                        required:
+                        - priorityLevel
+        '404':
+          description: RIC is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'org.oransc.policyagent.exceptions.ServiceException: Could
+                  not find ric: ric1'
+      deprecated: false
+  "/policy_status":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Returns a policy status
+      operationId: getPolicyStatusUsingGET
+      parameters:
+      - name: id
+        in: query
+        description: The identity of the policy.
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: 73428e58-1670-4972-8498-e7e8f100363q
+      responses:
+        '200':
+          description: Policy status
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: object
+              examples:
+                OSC:
+                  value:
+                    instance_status: NOT IN EFFECT
+                    has_been_deleted: 'false'
+                    created_at: 07/20/2020, 17:15:39
+                STD:
+                  value:
+                    enforceStatus: UNDEFINED
+        '404':
+          description: Policy is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'Could not find policy: 73428e58-1670-4972-8498-e7e8f100363q'
+      deprecated: false
+  "/policy_types":
+    get:
+      tags:
+      - A1 Policy Management
+      summary: Query policy type names
+      operationId: getPolicyTypesUsingGET
+      parameters:
+      - name: ric
+        in: query
+        description: The name of the Near-RT RIC to get types for.
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: ric11
+      responses:
+        '200':
+          description: Policy type names
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: array
+                items:
+                  type: string
+              examples:
+                OSC:
+                  value:
+                  - '1'
+        '404':
+          description: RIC is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'org.oransc.policyagent.exceptions.ServiceException: Could
+                  not find ric: ric11'
+      deprecated: false
+  "/ric":
+    get:
+      tags:
+      - RIC Repository
+      summary: Returns the name of a RIC managing one Mananged Element
+      operationId: getRicUsingGET
+      parameters:
+      - name: managedElementId
+        in: query
+        description: The identity of the Managed Element
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: Node 1
+      responses:
+        '200':
+          description: RIC is found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: ric1
+        '404':
+          description: RIC is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: No RIC found
+      deprecated: false
+  "/rics":
+    get:
+      tags:
+      - RIC Repository
+      summary: Query Near-RT RIC information
+      operationId: getRicsUsingGET
+      parameters:
+      - name: policyType
+        in: query
+        description: The name of the policy type
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: STD_PolicyModelUnconstrained_0.2.0
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: array
+                items:
+                  "$ref": "#/components/schemas/RicInfo"
+        '404':
+          description: Policy type is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: Policy type not found
+      deprecated: false
+  "/service":
+    put:
+      tags:
+      - Service registry and supervision
+      summary: Register a service
+      operationId: putServiceUsingPUT
+      requestBody:
+        description: registrationInfo
+        content:
+          application/json:
+            schema:
+              "$ref": "#/components/schemas/ServiceRegistrationInfo"
+        required: true
+      responses:
+        '200':
+          description: Service updated
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+              example: OK
+        '201':
+          description: Service created
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: OK
+        '400':
+          description: The ServiceRegistrationInfo is not accepted
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: Missing mandatory parameter 'serviceName'
+        '404':
+          description: Not Found
+      deprecated: false
+      x-codegen-request-body-name: registrationInfo
+  "/services":
+    get:
+      tags:
+      - Service registry and supervision
+      summary: Returns service information
+      operationId: getServicesUsingGET
+      parameters:
+      - name: name
+        in: query
+        description: The name of the service
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: service1
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: array
+                example:
+                - serviceName: service1
+                  keepAliveIntervalSeconds: 1000
+                  timeSinceLastActivitySeconds: 7
+                  callbackUrl: http://localhost:8080
+                items:
+                  "$ref": "#/components/schemas/ServiceStatus"
+        '404':
+          description: Service is not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: Service not found
+      deprecated: false
+    delete:
+      tags:
+      - Service registry and supervision
+      summary: Delete a service
+      operationId: deleteServiceUsingDELETE
+      parameters:
+      - name: name
+        in: query
+        description: The name of the service
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: service1
+      responses:
+        '200':
+          description: OK
+        '204':
+          description: OK
+        '404':
+          description: Service not found
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'Could not find service: service1'
+      deprecated: false
+  "/services/keepalive":
+    put:
+      tags:
+      - Service registry and supervision
+      summary: Heartbeat from a serice
+      operationId: keepAliveServiceUsingPUT
+      parameters:
+      - name: name
+        in: query
+        description: The name of the service
+        required: true
+        allowEmptyValue: false
+        schema:
+          type: string
+        example: service1
+      responses:
+        '200':
+          description: Service supervision timer refreshed, OK
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: OK
+        '201':
+          description: Created
+        '404':
+          description: The service is not found, needs re-registration
+          content:
+            text/plain;charset=ISO-8859-1:
+              schema:
+                type: string
+                example: 'Could not find service: service1'
+      deprecated: false
+  "/status":
+    get:
+      tags:
+      - Health check
+      summary: Returns status and statistics of this service
+      operationId: getStatusUsingGET
+      responses:
+        '200':
+          description: Service is living
+          content:
+            "*/*":
+              schema:
+                type: string
+                example: alive
+        '404':
+          description: Not Found
+      deprecated: false
+components:
+  schemas:
+    PolicyInfo:
+      title: PolicyInfo
+      type: object
+      properties:
+        id:
+          type: string
+          description: identity of the policy
+        json:
+          type: object
+          properties: {}
+          description: the configuration of the policy
+        lastModified:
+          type: string
+          description: timestamp, last modification time
+        ric:
+          type: string
+          description: identity of the target Near-RT RIC
+        service:
+          type: string
+          description: the name of the service owning the policy
+        type:
+          type: string
+          description: name of the policy type
+    RicInfo:
+      title: RicInfo
+      type: object
+      properties:
+        managedElementIds:
+          type: array
+          description: O1 identities for managed entities
+          items:
+            type: string
+        policyTypes:
+          type: array
+          description: supported policy types
+          items:
+            type: string
+        ricName:
+          type: string
+          description: identity of the ric
+        state:
+          type: string
+          description: state info
+      example:
+      - ricName: ric1
+        managedElementIds:
+        - ME-1
+        - ME-2
+        policyTypes:
+        - '1'
+        state: AVAILABLE
+      - ricName: ric3
+        managedElementIds:
+        - ME-1
+        - ME-2
+        policyTypes:
+        - ''
+        state: AVAILABLE
+      - ricName: ric2
+        managedElementIds:
+        - ME-1
+        - ME-2
+        policyTypes: []
+        state: AVAILABLE
+      - ricName: ric4
+        managedElementIds:
+        - ME-1
+        - ME-2
+        policyTypes:
+        - ''
+        state: AVAILABLE
+    ServiceRegistrationInfo:
+      title: ServiceRegistrationInfo
+      required:
+      - serviceName
+      type: object
+      properties:
+        callbackUrl:
+          type: string
+          description: callback for notifying of RIC synchronization
+        keepAliveIntervalSeconds:
+          type: integer
+          description: keep alive interval for the service. This is a heartbeat supervision
+            of the service, which in regular intevals must invoke a 'keepAlive' REST
+            call. When a service does not invoke this call within the given time,
+            it is considered unavailble. An unavailable service will be automatically
+            deregistered and its policies will be deleted. Value 0 means no timeout
+            supervision.
+          format: int64
+        serviceName:
+          type: string
+          description: identity of the service
+      example:
+        callbackUrl: http://localhost:9080
+        keepAliveIntervalSeconds: 1000
+        serviceName: service1
+    ServiceStatus:
+      title: ServiceStatus
+      type: object
+      properties:
+        callbackUrl:
+          type: string
+          description: callback for notifying of RIC synchronization
+        keepAliveIntervalSeconds:
+          type: integer
+          description: policy keep alive timeout
+          format: int64
+        serviceName:
+          type: string
+          description: identity of the service
+        timeSinceLastActivitySeconds:
+          type: integer
+          description: time since last invocation by the service
+          format: int64
+  examples:
+    Policies-STD:
+      value:
+      - id: a986eb38-aac3-4897-bdf5-0333ea2bf730
+        type: ''
+        ric: ric3
+        json:
+          scope:
+            ueId: ue1
+            groupId: group1
+            sliceId: slice1
+            qosId: qos1
+            cellId: cell1
+          statement:
+            priorityLevel: 5
+        service: controlpanel
+        lastModified: '2020-07-22T12:21:48.157854Z'
+    Policies-OSC:
+      value:
+      - id: 73428e58-1670-4972-8498-e7e8f1003631
+        type: '1'
+        ric: ric1
+        json:
+          scope:
+            qosId: '36'
+            ueId: '1'
+          statement:
+            priorityLevel: 1
+        service: c
+        lastModified: '2020-07-20T17:16:18.244383Z'
+      - id: 73428e58-1670-4972-8498-e7e8f100363e
+        type: '1'
+        ric: ric1
+        json:
+          scope:
+            qosId: '34'
+            ueId: '1'
+          statement:
+            priorityLevel: 1
+        service: controlpanel
+        lastModified: '2020-07-20T17:15:39.320469Z'
+    Policy-STD:
+      value:
+        scope:
+          ueId: ue1
+          groupId: group1
+          sliceId: slice1
+          qosId: qos1
+          cellId: cell1
+        statement:
+          priorityLevel: 5
+    Policy-OSC:
+      value:
+        scope:
+          qosId: '36'
+          ueId: '1'
+        statement:
+          priorityLevel: 1
+