Add A1 Adapter API documentation 40/113840/5
authorelinuxhenrik <henrik.b.andersson@est.tech>
Tue, 13 Oct 2020 14:39:13 +0000 (16:39 +0200)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Fri, 16 Oct 2020 11:41:53 +0000 (13:41 +0200)
Change-Id: Id19e858c67681b781871169ef79da5edf48c5cb2
Issue-ID: CCSDK-2833
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
a1-policy-management/api/api.yaml [deleted file]
a1-policy-management/api/api_generated.json [deleted file]
a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v1/ServiceController.java
a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/MockPolicyManagementService.java
a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
docs/conf.py
docs/guide/developer-guide.rst
docs/offeredapis/offeredapis.rst
docs/offeredapis/swagger/a1-adapter-api.json [new file with mode: 0644]
docs/offeredapis/swagger/a1-adapter-api.yaml [new file with mode: 0644]

diff --git a/a1-policy-management/api/api.yaml b/a1-policy-management/api/api.yaml
deleted file mode 100644 (file)
index ac10f4b..0000000
+++ /dev/null
@@ -1,842 +0,0 @@
-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
\ No newline at end of file
diff --git a/a1-policy-management/api/api_generated.json b/a1-policy-management/api/api_generated.json
deleted file mode 100644 (file)
index 399855f..0000000
+++ /dev/null
@@ -1,1383 +0,0 @@
-{
-    "basePath": "/",
-    "paths": {
-        "/policy_types": {"get": {
-            "summary": "Query policy type names",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getPolicyTypesUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {
-                        "type": "array",
-                        "items": {"type": "string"}
-                    },
-                    "description": "Policy type names"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Near-RT RIC is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "ric",
-                "description": "The name of the Near-RT RIC to get types for.",
-                "type": "string",
-                "required": false
-            }],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/v2/policy": {
-            "get": {
-                "summary": "Returns a policy configuration",
-                "deprecated": false,
-                "produces": ["application/json"],
-                "operationId": "getPolicyUsingGET_1",
-                "responses": {
-                    "200": {
-                        "schema": {"$ref": "#/definitions/json_object"},
-                        "description": "Policy found"
-                    },
-                    "401": {"description": "Unauthorized"},
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Policy is not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "policy_id",
-                    "description": "The identity of the policy instance.",
-                    "type": "string",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-            },
-            "delete": {
-                "summary": "Delete a policy",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "deletePolicyUsingDELETE_1",
-                "responses": {
-                    "200": {"description": "Not used"},
-                    "401": {"description": "Unauthorized"},
-                    "423": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Near-RT RIC is not operational"
-                    },
-                    "204": {"description": "Policy deleted"},
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Policy is not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "policy_id",
-                    "description": "The identity of the policy instance.",
-                    "type": "string",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-            },
-            "put": {
-                "summary": "Create or update a policy",
-                "deprecated": false,
-                "produces": ["application/json"],
-                "operationId": "putPolicyUsingPUT_1",
-                "responses": {
-                    "200": {"description": "Policy updated"},
-                    "201": {"description": "Policy created"},
-                    "401": {"description": "Unauthorized"},
-                    "423": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Near-RT RIC is not operational"
-                    },
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Near-RT RIC or policy type is not found"
-                    }
-                },
-                "parameters": [
-                    {
-                        "schema": {"type": "object"},
-                        "in": "body",
-                        "name": "jsonBody",
-                        "description": "jsonBody",
-                        "required": true
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "policy_id",
-                        "description": "The identity of the policy instance.",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "policytype_id",
-                        "description": "The identity of the policy type.",
-                        "type": "string",
-                        "required": false
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "ric_id",
-                        "description": "The identity of the Near-RT RIC where the policy will be created.",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "service_id",
-                        "description": "The identity of the service creating the policy.",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "default": false,
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "transient",
-                        "x-example": false,
-                        "description": "If the policy is transient or not (boolean defaulted to false). A policy is transient if it will not be recreated in the Near-RT RIC when it has been lost (for instance due to a restart)",
-                        "type": "boolean",
-                        "required": false
-                    }
-                ],
-                "tags": ["A1 Policy Management Version 2.0 (in progress)"],
-                "consumes": ["application/json"]
-            }
-        },
-        "/v2/status": {"get": {
-            "summary": "Returns status and statistics of this service",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "getStatusUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/status_info_v2"},
-                    "description": "Service is living"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "Not Found"}
-            },
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/policy_ids": {"get": {
-            "summary": "Query policies, only policy identities returned",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getPolicyIdsUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {
-                        "type": "array",
-                        "items": {"type": "string"}
-                    },
-                    "description": "Policy identitiess"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Near-RT RIC or type not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "ric",
-                    "description": "The name of the Near-RT RIC to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "service",
-                    "description": "The name of the service to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "type",
-                    "description": "The name of the policy type to get policies for.",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/policy_schemas": {"get": {
-            "summary": "Returns policy type schema definitions",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getPolicySchemasUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {
-                        "type": "array",
-                        "items": {"type": "object"}
-                    },
-                    "description": "Policy schemas"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Near-RT RIC is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "ric",
-                "description": "The name of the Near-RT RIC to get the definitions for.",
-                "type": "string",
-                "required": false
-            }],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/v2/policy-types": {"get": {
-            "summary": "Query policy type identities",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "getPolicyTypesUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/policy_type_id_list_v2"},
-                    "description": "Policy type IDs"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Near-RT RIC is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "ric_id",
-                "description": "The identity of the Near-RT RIC to get types for.",
-                "type": "string",
-                "required": false
-            }],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/v2/services": {
-            "get": {
-                "summary": "Returns service information",
-                "deprecated": false,
-                "produces": ["application/json"],
-                "description": "Either information about a registered service with given identity or all registered services are returned.",
-                "operationId": "getServicesUsingGET_1",
-                "responses": {
-                    "200": {
-                        "schema": {"$ref": "#/definitions/service_list_v2"},
-                        "description": "OK"
-                    },
-                    "401": {"description": "Unauthorized"},
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Service is not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "service_id",
-                    "description": "The identity of the service",
-                    "type": "string",
-                    "required": false
-                }],
-                "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-            },
-            "delete": {
-                "summary": "Unregister a service",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "deleteServiceUsingDELETE_1",
-                "responses": {
-                    "200": {"description": "Not used"},
-                    "401": {"description": "Unauthorized"},
-                    "204": {
-                        "schema": {"type": "object"},
-                        "description": "Service unregistered"
-                    },
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Service not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "service_id",
-                    "description": "The idenitity of the service",
-                    "type": "string",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-            },
-            "put": {
-                "summary": "Register a service",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "description": "Registering a service is needed to:<ul><li>Get callbacks.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.<\/li><\/ul>",
-                "operationId": "putServiceUsingPUT_1",
-                "responses": {
-                    "200": {
-                        "schema": {"type": "object"},
-                        "description": "Service updated"
-                    },
-                    "201": {
-                        "schema": {"type": "object"},
-                        "description": "Service created"
-                    },
-                    "400": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "The ServiceRegistrationInfo is not accepted"
-                    },
-                    "401": {"description": "Unauthorized"},
-                    "403": {"description": "Forbidden"},
-                    "404": {"description": "Not Found"}
-                },
-                "parameters": [{
-                    "schema": {"$ref": "#/definitions/service_registration_info_v2"},
-                    "in": "body",
-                    "name": "registrationInfo",
-                    "description": "registrationInfo",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 2.0 (in progress)"],
-                "consumes": ["application/json"]
-            }
-        },
-        "/services": {
-            "get": {
-                "summary": "Returns service information",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "getServicesUsingGET",
-                "responses": {
-                    "200": {
-                        "schema": {
-                            "type": "array",
-                            "items": {"$ref": "#/definitions/service_status_v1"}
-                        },
-                        "description": "OK"
-                    },
-                    "401": {"description": "Unauthorized"},
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"type": "string"},
-                        "description": "Service is not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "name",
-                    "description": "The name of the service",
-                    "type": "string",
-                    "required": false
-                }],
-                "tags": ["A1 Policy Management Version 1.0"]
-            },
-            "delete": {
-                "summary": "Delete a service",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "deleteServiceUsingDELETE",
-                "responses": {
-                    "200": {
-                        "schema": {"type": "string"},
-                        "description": "OK"
-                    },
-                    "401": {"description": "Unauthorized"},
-                    "204": {
-                        "schema": {"type": "string"},
-                        "description": "Service deleted"
-                    },
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"type": "string"},
-                        "description": "Service not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "name",
-                    "description": "The name of the service",
-                    "type": "string",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 1.0"]
-            }
-        },
-        "/ric": {"get": {
-            "summary": "Returns the name of a RIC managing one Mananged Element",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getRicUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {"type": "string"},
-                    "description": "Near-RT RIC is found"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Near-RT RIC is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "managedElementId",
-                "description": "The identity of the Managed Element",
-                "type": "string",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/services/keepalive": {"put": {
-            "summary": "Heartbeat from a serice",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "keepAliveServiceUsingPUT",
-            "responses": {
-                "200": {
-                    "schema": {"type": "string"},
-                    "description": "Service supervision timer refreshed, OK"
-                },
-                "201": {"description": "Created"},
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "The service is not found, needs re-registration"}
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "name",
-                "description": "The name of the service",
-                "type": "string",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 1.0"],
-            "consumes": ["application/json"]
-        }},
-        "/v2/services/keepalive": {"put": {
-            "summary": "Heartbeat indicates that the service is running",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "keepAliveServiceUsingPUT_1",
-            "responses": {
-                "200": {
-                    "schema": {"type": "object"},
-                    "description": "Service supervision timer refreshed, OK"
-                },
-                "201": {"description": "Created"},
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "The service is not found, needs re-registration"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "service_id",
-                "description": "The identity of the service",
-                "type": "string",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"],
-            "consumes": ["application/json"]
-        }},
-        "/v2/policy-schemas": {"get": {
-            "summary": "Returns policy type schema definitions",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "getPolicySchemasUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/policy_schema_list_v2"},
-                    "description": "Policy schemas"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Near-RT RIC is not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "policytype_id",
-                    "description": "The identity of the policy type to get the definition for. When this parameter is given, max one schema will be returned",
-                    "type": "string",
-                    "required": true
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "ric_id",
-                    "description": "The identity of the Near-RT RIC to get the definitions for.",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/v2/ric": {"get": {
-            "summary": "Returns info for a Near-RT RIC",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "description": "Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
-            "operationId": "getRicUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/ric_info_v2"},
-                    "description": "Near-RT RIC is found"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Near-RT RIC is not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "managed_element_id",
-                    "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "ric_id",
-                    "description": "The identity of a Near-RT RIC to get information for.",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/policy": {
-            "get": {
-                "summary": "Returns a policy configuration",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "getPolicyUsingGET",
-                "responses": {
-                    "200": {
-                        "schema": {"type": "object"},
-                        "description": "Policy found"
-                    },
-                    "401": {"description": "Unauthorized"},
-                    "403": {"description": "Forbidden"},
-                    "404": {"description": "Policy is not found"}
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "id",
-                    "description": "The identity of the policy instance.",
-                    "type": "string",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 1.0"]
-            },
-            "delete": {
-                "summary": "Delete a policy",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "deletePolicyUsingDELETE",
-                "responses": {
-                    "200": {"description": "Not used"},
-                    "401": {"description": "Unauthorized"},
-                    "423": {
-                        "schema": {"type": "string"},
-                        "description": "Near-RT RIC is not operational"
-                    },
-                    "204": {"description": "Policy deleted"},
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"type": "string"},
-                        "description": "Policy is not found"
-                    }
-                },
-                "parameters": [{
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "id",
-                    "description": "The identity of the policy instance.",
-                    "type": "string",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management Version 1.0"]
-            },
-            "put": {
-                "summary": "Put a policy",
-                "deprecated": false,
-                "produces": ["*/*"],
-                "operationId": "putPolicyUsingPUT",
-                "responses": {
-                    "200": {"description": "Policy updated"},
-                    "201": {"description": "Policy created"},
-                    "401": {"description": "Unauthorized"},
-                    "423": {
-                        "schema": {"type": "string"},
-                        "description": "Near-RT RIC is not operational"
-                    },
-                    "403": {"description": "Forbidden"},
-                    "404": {
-                        "schema": {"type": "string"},
-                        "description": "Near-RT RIC or policy type is not found"
-                    }
-                },
-                "parameters": [
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "id",
-                        "description": "The identity of the policy instance.",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "schema": {"type": "object"},
-                        "in": "body",
-                        "name": "jsonBody",
-                        "description": "jsonBody",
-                        "required": true
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "ric",
-                        "description": "The name of the Near-RT RIC where the policy will be created.",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "service",
-                        "description": "The name of the service creating the policy.",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "default": false,
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "transient",
-                        "x-example": false,
-                        "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.",
-                        "type": "boolean",
-                        "required": false
-                    },
-                    {
-                        "in": "query",
-                        "allowEmptyValue": false,
-                        "name": "type",
-                        "description": "The name of the policy type.",
-                        "type": "string",
-                        "required": false
-                    }
-                ],
-                "tags": ["A1 Policy Management Version 1.0"],
-                "consumes": ["application/json"]
-            }
-        },
-        "/status": {"get": {
-            "summary": "Returns status and statistics of this service",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getStatusUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {"type": "string"},
-                    "description": "Service is living"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "Not Found"}
-            },
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/v2/policy-ids": {"get": {
-            "summary": "Query policies, only policy identities are returned",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "description": "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
-            "operationId": "getPolicyIdsUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/policy_id_list_v2"},
-                    "description": "Policy identities"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Near-RT RIC or type not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "policytype_id",
-                    "description": "The identity of the policy type to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "ric_id",
-                    "description": "The identity of the Near-RT RIC to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "service_id",
-                    "description": "The identity of the service to get policies for.",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/policies": {"get": {
-            "summary": "Query policies",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getPoliciesUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {
-                        "type": "array",
-                        "items": {"$ref": "#/definitions/policy_info_v1"}
-                    },
-                    "description": "Policies"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Near-RT RIC or type not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "ric",
-                    "description": "The name of the Near-RT RIC to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "service",
-                    "description": "The name of the service to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "type",
-                    "description": "The name of the policy type to get policies for.",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/v2/policy-status": {"get": {
-            "summary": "Returns a policy status",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "getPolicyStatusUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/json_object"},
-                    "description": "Policy status"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Policy is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "policy_id",
-                "description": "The identity of the policy.",
-                "type": "string",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/policy_schema": {"get": {
-            "summary": "Returns one policy type schema definition",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getPolicySchemaUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {"type": "object"},
-                    "description": "Policy schema"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "The policy type is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "id",
-                "description": "The identity of the policy type to get the definition for.",
-                "type": "string",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/rics": {"get": {
-            "summary": "Query Near-RT RIC information",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getRicsUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {
-                        "type": "array",
-                        "items": {"$ref": "#/definitions/ric_info_v1"}
-                    },
-                    "description": "OK"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Policy type is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "policyType",
-                "description": "The name of the policy type",
-                "type": "string",
-                "required": false
-            }],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/service": {"put": {
-            "summary": "Register a service",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "putServiceUsingPUT",
-            "responses": {
-                "200": {
-                    "schema": {"type": "string"},
-                    "description": "Service updated"
-                },
-                "201": {
-                    "schema": {"type": "string"},
-                    "description": "Service created"
-                },
-                "400": {
-                    "schema": {"type": "string"},
-                    "description": "The ServiceRegistrationInfo is not accepted"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "Not Found"}
-            },
-            "parameters": [{
-                "schema": {"$ref": "#/definitions/service_registration_info_v1"},
-                "in": "body",
-                "name": "registrationInfo",
-                "description": "registrationInfo",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 1.0"],
-            "consumes": ["application/json"]
-        }},
-        "/v2/policies": {"get": {
-            "summary": "Query for existing A1 policies",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "description": "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
-            "operationId": "getPoliciesUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/policy_info_list_v2"},
-                    "description": "Policies"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Near-RT RIC, policy type or service not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "policytype_id",
-                    "description": "The identity of the policy type to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "ric_id",
-                    "description": "The identity of the Near-RT RIC to get policies for.",
-                    "type": "string",
-                    "required": false
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "service_id",
-                    "description": "The identity of the service to get policies for.",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }},
-        "/policy_status": {"get": {
-            "summary": "Returns a policy status",
-            "deprecated": false,
-            "produces": ["*/*"],
-            "operationId": "getPolicyStatusUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {"type": "object"},
-                    "description": "Policy status"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"type": "string"},
-                    "description": "Policy is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "id",
-                "description": "The identity of the policy.",
-                "type": "string",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management Version 1.0"]
-        }},
-        "/v2/rics": {"get": {
-            "summary": "Query Near-RT RIC information",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "description": "The call returns all Near-RT RICs that supports a given policy type identity",
-            "operationId": "getRicsUsingGET_1",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/ric_info_list_v2"},
-                    "description": "OK"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Policy type is not found"
-                }
-            },
-            "parameters": [{
-                "in": "query",
-                "allowEmptyValue": false,
-                "name": "policytype_id",
-                "description": "The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned",
-                "type": "string",
-                "required": false
-            }],
-            "tags": ["A1 Policy Management Version 2.0 (in progress)"]
-        }}
-    },
-    "host": "localhost:33209",
-    "definitions": {
-        "error_information": {
-            "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
-            "type": "object",
-            "title": "error_information",
-            "properties": {
-                "detail": {
-                    "description": " A human-readable explanation specific to this occurrence of the problem.",
-                    "type": "string",
-                    "example": "Policy type not found"
-                },
-                "status": {
-                    "format": "int32",
-                    "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
-                    "type": "integer",
-                    "example": 503
-                }
-            }
-        },
-        "void": {
-            "description": "Void/empty",
-            "type": "object",
-            "title": "void"
-        },
-        "status_info_v2": {
-            "type": "object",
-            "title": "status_info_v2",
-            "properties": {"status": {
-                "description": "status text",
-                "type": "string"
-            }}
-        },
-        "policy_info_v1": {
-            "type": "object",
-            "title": "policy_info_v1",
-            "properties": {
-                "service": {
-                    "description": "the name of the service owning the policy",
-                    "type": "string"
-                },
-                "json": {
-                    "description": "the configuration of the policy",
-                    "type": "object"
-                },
-                "id": {
-                    "description": "identity of the policy",
-                    "type": "string"
-                },
-                "lastModified": {
-                    "description": "timestamp, last modification time",
-                    "type": "string"
-                },
-                "type": {
-                    "description": "name of the policy type",
-                    "type": "string"
-                },
-                "ric": {
-                    "description": "identity of the target Near-RT RIC",
-                    "type": "string"
-                }
-            }
-        },
-        "policy_schema_list_v2": {
-            "description": "Policy type json schemas",
-            "type": "object",
-            "title": "policy_schema_list_v2",
-            "properties": {"policy_schemas": {
-                "description": "Policy type json schemas. The schema is a json object following http://json-schema.org/draft-07/schema",
-                "type": "array",
-                "items": {"type": "object"}
-            }}
-        },
-        "Mono«ResponseEntity«object»»": {
-            "type": "object",
-            "title": "Mono«ResponseEntity«object»»"
-        },
-        "ric_info_v2": {
-            "description": "Information for a Near-RT RIC",
-            "type": "object",
-            "title": "ric_info_v2",
-            "properties": {
-                "ric_id": {
-                    "description": "identity of the Near-RT RIC",
-                    "type": "string"
-                },
-                "managed_element_ids": {
-                    "description": "O1 identities for managed entities",
-                    "type": "array",
-                    "items": {"type": "string"}
-                },
-                "state": {
-                    "description": "State for the Near-RT RIC, values: \nUNAVAILABLE: The Near-RT RIC is not avialable, information may be inconsistent \nAVAILABLE: The normal state. Policies can be configured. +\nSYNCHRONIZING: The Policy Management Service is synchronizing the view of the Near-RT RIC. Policies cannot be configured. \nCONSISTENCY_CHECK: A consistency check between the Policy Management Service and the Near-RT RIC. Policies cannot be configured.",
-                    "type": "string",
-                    "enum": [
-                        "UNAVAILABLE",
-                        "AVAILABLE",
-                        "SYNCHRONIZING",
-                        "CONSISTENCY_CHECK"
-                    ]
-                },
-                "policy_type_ids": {
-                    "description": "supported policy types",
-                    "type": "array",
-                    "items": {"type": "string"}
-                }
-            }
-        },
-        "service_registration_info_v1": {
-            "type": "object",
-            "title": "service_registration_info_v1",
-            "properties": {
-                "keepAliveIntervalSeconds": {
-                    "format": "int64",
-                    "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.",
-                    "type": "integer"
-                },
-                "callbackUrl": {
-                    "description": "callback for notifying of RIC synchronization",
-                    "type": "string"
-                },
-                "serviceName": {"type": "string"}
-            }
-        },
-        "policy_info_list_v2": {
-            "description": "List of policy information",
-            "type": "object",
-            "title": "policy_info_list_v2",
-            "properties": {"policies": {
-                "description": "List of policy information",
-                "type": "array",
-                "items": {"$ref": "#/definitions/policy_info_v2"}
-            }}
-        },
-        "service_registration_info_v2": {
-            "description": "Information for one service",
-            "type": "object",
-            "title": "service_registration_info_v2",
-            "required": ["service_id"],
-            "properties": {
-                "callback_url": {
-                    "description": "callback for notifying of RIC synchronization",
-                    "type": "string"
-                },
-                "service_id": {
-                    "description": "identity of the service",
-                    "type": "string"
-                },
-                "keep_alive_interval_seconds": {
-                    "format": "int64",
-                    "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.",
-                    "type": "integer"
-                }
-            }
-        },
-        "ric_info_v1": {
-            "type": "object",
-            "title": "ric_info_v1",
-            "properties": {
-                "managedElementIds": {
-                    "description": "O1 identities for managed entities",
-                    "type": "array",
-                    "items": {"type": "string"}
-                },
-                "policyTypes": {
-                    "description": "supported policy types",
-                    "type": "array",
-                    "items": {"type": "string"}
-                },
-                "state": {
-                    "description": "state info",
-                    "type": "string"
-                },
-                "ricName": {
-                    "description": "identity of the Near-RT RIC",
-                    "type": "string"
-                }
-            }
-        },
-        "policy_type_id_list_v2": {
-            "description": "Information about policy types",
-            "type": "object",
-            "title": "policy_type_id_list_v2",
-            "properties": {"policy_type_ids": {
-                "description": "Policy type identities",
-                "type": "array",
-                "items": {"type": "string"}
-            }}
-        },
-        "service_status_v1": {
-            "type": "object",
-            "title": "service_status_v1",
-            "properties": {
-                "keepAliveIntervalSeconds": {
-                    "format": "int64",
-                    "description": "policy keep alive timeout",
-                    "type": "integer"
-                },
-                "callbackUrl": {
-                    "description": "callback for notifying of RIC synchronization",
-                    "type": "string"
-                },
-                "timeSinceLastActivitySeconds": {
-                    "format": "int64",
-                    "description": "time since last invocation by the service",
-                    "type": "integer"
-                },
-                "serviceName": {
-                    "description": "identity of the service",
-                    "type": "string"
-                }
-            }
-        },
-        "service_status_v2": {
-            "type": "object",
-            "title": "service_status_v2",
-            "properties": {
-                "callback_url": {
-                    "description": "callback for notifying of RIC synchronization",
-                    "type": "string"
-                },
-                "service_id": {
-                    "description": "identity of the service",
-                    "type": "string"
-                },
-                "keep_alive_interval_seconds": {
-                    "format": "int64",
-                    "description": "policy keep alive timeout",
-                    "type": "integer"
-                },
-                "time_since_last_activity_seconds": {
-                    "format": "int64",
-                    "description": "time since last invocation by the service",
-                    "type": "integer"
-                }
-            }
-        },
-        "ric_info_list_v2": {
-            "description": "List of Near-RT RIC information",
-            "type": "object",
-            "title": "ric_info_list_v2",
-            "properties": {"rics": {
-                "description": "List of Near-RT RIC information",
-                "type": "array",
-                "items": {"$ref": "#/definitions/ric_info_v2"}
-            }}
-        },
-        "policy_id_list_v2": {
-            "description": "A list of policy identities",
-            "type": "object",
-            "title": "policy_id_list_v2",
-            "properties": {"policy_ids": {
-                "description": "Policy identities",
-                "type": "array",
-                "items": {"type": "string"}
-            }}
-        },
-        "policy_info_v2": {
-            "description": "Information for one A1-P Policy",
-            "type": "object",
-            "title": "policy_info_v2",
-            "properties": {
-                "ric_id": {
-                    "description": "identity of the target Near-RT RIC",
-                    "type": "string"
-                },
-                "policy_id": {
-                    "description": "identity of the policy",
-                    "type": "string"
-                },
-                "service_id": {
-                    "description": "the name of the service owning the policy",
-                    "type": "string"
-                },
-                "policy_data": {
-                    "description": "the configuration of the policy",
-                    "type": "object"
-                },
-                "last_modified": {
-                    "description": "timestamp, last modification time",
-                    "type": "string"
-                },
-                "policy_type_id": {
-                    "description": "name of the policy type",
-                    "type": "string"
-                }
-            }
-        },
-        "json_object": {
-            "description": "A JSON object defining the configuration of the policy. The schema is defined by the Policy Type.",
-            "type": "object",
-            "title": "json_object"
-        },
-        "service_list_v2": {
-            "description": "List of service information",
-            "type": "object",
-            "title": "service_list_v2",
-            "properties": {"service_list": {
-                "description": "List of service information",
-                "type": "array",
-                "items": {"$ref": "#/definitions/service_status_v2"}
-            }}
-        },
-        "Mono«ResponseEntity«string»»": {
-            "type": "object",
-            "title": "Mono«ResponseEntity«string»»"
-        }
-    },
-    "swagger": "2.0",
-    "info": {
-        "x-audience": "external-partner",
-        "x-api-id": "60f9a0e7-343f-43bf-9194-d8d65688d465",
-        "contact": {
-            "name": "Ericsson Software Technology",
-            "email": "nonrtric@est.tech"
-        },
-        "description": "The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policices. \nIt provides support for:<ul><li>A1 Policy creation and modification.<\/li><li>Maintaining a view of supported Near-RT RIC policy types <\/li><li>Supervision of using services (R-APPs). When a service is unavailble, its policies are removed. <\/li> <li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs <\/li><\/ul>",
-        "title": "A1 Policy management service",
-        "version": "1.1.0"
-    },
-    "tags": [
-        {
-            "name": "A1 Policy Management Version 1.0",
-            "description": "Policy Controller"
-        },
-        {
-            "name": "A1 Policy Management Version 2.0 (in progress)",
-            "description": "Policy Controller"
-        }
-    ]
-}
\ No newline at end of file
index 8f51c68..f11fd0d 100644 (file)
@@ -146,7 +146,7 @@ public class ServiceController {
         }
     }
 
-    @ApiOperation(value = "Heartbeat from a serice")
+    @ApiOperation(value = "Heartbeat from a service")
     @ApiResponses(value = { //
             @ApiResponse(code = 200, message = "Service supervision timer refreshed, OK"),
             @ApiResponse(code = 404, message = "The service is not found, needs re-registration")})
index ab31861..92d75b5 100644 (file)
@@ -156,7 +156,7 @@ class MockPolicyManagementService {
     private void keepServerAlive() throws InterruptedException, IOException {
         waitForConfigurationToBeLoaded();
         loadInstances();
-        logger.info("Keeping server alive!");
+        logger.info("Keeping server alive! Listening on port: {}", port);
         synchronized (this) {
             this.wait();
         }
index 5e09099..5128cd5 100644 (file)
@@ -212,7 +212,7 @@ class ApplicationTest {
         ResponseEntity<String> resp = restClient("", false).getForEntity(url).block();
         assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.OK);
         String indented = (new JSONObject(resp.getBody())).toString(4);
-        try (PrintStream out = new PrintStream(new FileOutputStream("api/api_generated.json"))) {
+        try (PrintStream out = new PrintStream(new FileOutputStream("../docs/offeredapis/swagger/pms-api.json"))) {
             out.print(indented);
         }
     }
index bb52b59..29923a0 100644 (file)
@@ -15,6 +15,12 @@ redoc = [
                 'page': 'offeredapis/pms-api',
                 'spec': './offeredapis/swagger/pms-api.json',
                 'embed': True,
+            },
+            {
+                'name': 'A1 ADAPTER API',
+                'page': 'offeredapis/a1-adapter-api',
+                'spec': './offeredapis/swagger/a1-adapter-api.json',
+                'embed': True,
             }
         ]
 
index b6d4ce8..f067a3f 100644 (file)
@@ -36,6 +36,7 @@ The Policy Management Service can be accessed over the REST API. See :ref:`pms_a
 
 Dependencies
 ------------
+
 This project uses various frameworks which are managed with Maven
 dependency management tool (see *pom.xml* file at root level) :
 
@@ -59,16 +60,21 @@ that are available. The second contains logging and security configurations.
 Configuration of certs
 ----------------------
 
-The Policy Management Service uses the default keystore and truststore that are built into the container. The paths and passwords for these stores are located in a yaml file:
- oran/a1-policy-management/config/application.yaml
+The Policy Management Service uses the default keystore and truststore that are built into the container. The paths and
+passwords for these stores are located in a yaml file: ::
+
+   oran/a1-policy-management/config/application.yaml
 
-There is also Policy Management Service's own cert in the default truststore for mocking purposes and unit-testing (ApplicationTest.java).
+There is also Policy Management Service's own cert in the default truststore for mocking purposes and unit-testing
+(ApplicationTest.java).
 
-The default keystore, truststore, and application.yaml files can be overridden by mounting new files using the "volumes" field of docker-compose or docker run command.
+The default keystore, truststore, and application.yaml files can be overridden by mounting new files using the "volumes"
+field of docker-compose or docker run command.
 
-Assuming that the keystore, truststore, and application.yaml files are located in the same directory as docker-compose, the volumes field should have these entries:
+Assuming that the keystore, truststore, and application.yaml files are located in the same directory as docker-compose,
+the volumes field should have these entries: ::
 
-`volumes:`
+   `volumes:`
       `- ./new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro`
 
       `- ./new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro`
@@ -77,13 +83,13 @@ Assuming that the keystore, truststore, and application.yaml files are located i
 
 The target paths in the container should not be modified.
 
-Example docker run command for mounting new files (assuming they are located in the current directory):
+Example docker run command for mounting new files (assuming they are located in the current directory): ::
 
-`docker run -p 8081:8081 -p 8433:8433 --name=policy-agent-container --network=nonrtric-docker-net --volume "$PWD/new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks" --volume "$PWD/new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks" --volume "$PWD/new_application.yaml:/opt/app/policy-agent/config/application.yaml" o-ran-sc/nonrtric-policy-agent:2.1.0-SNAPSHOT`
+   docker run -p 8081:8081 -p 8433:8433 --name=policy-agent-container --network=nonrtric-docker-net --volume "$PWD/new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks" --volume "$PWD/new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks" --volume "$PWD/new_application.yaml:/opt/app/policy-agent/config/application.yaml" o-ran-sc/nonrtric-policy-agent:2.1.0-SNAPSHOT
 
-A1 Adapter
-++++++++++
+A1 Adapter (Internal)
++++++++++++++++++++++
 
-TBD
+The O-RAN A1 Adapter provides an internal REST CONF API for management of A1 policices, useful for test and verification.
 
-The A1 Adapter can be accessed over the REST API. See :ref:`offered_apis` for how to use the API.
+The A1 Adapter can be accessed over the REST CONF API. See :ref:`a1_adapter_api` for how to use the API.
index c3a7c95..08126c0 100644 (file)
@@ -12,7 +12,7 @@ Offered APIs
 Introduction
 ************
 
-The north bound ...
+The north bound REST API of the Policy Management Service provides convenient methods to handle policies.
 
 
 Global ORAN architecture
@@ -25,17 +25,11 @@ integration with other ONAP components and API resource/operation provided.
    :width: 500pt
 
 
-API Endpoint
-************
-
-TBD
-
-
 API Version
 ***********
 
 APIs are described with a  state version with "v" following the API Name,
-e.g.:  ``TBD``.
+e.g.:  ``v2/policy``.
 The schema associated with a REST API must have its version number aligned
 with that of the REST API.
 
@@ -77,6 +71,7 @@ API Table
    :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:
@@ -85,3 +80,9 @@ 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.json b/docs/offeredapis/swagger/a1-adapter-api.json
new file mode 100644 (file)
index 0000000..1295127
--- /dev/null
@@ -0,0 +1,378 @@
+{
+  "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 CONF 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.0
+                                },
+                                "qoeObjectives": {
+                                  "qoeScore": 329.0,
+                                  "initialBuffering": 27.75,
+                                  "reBuffFreq": 539.0,
+                                  "stallRatio": 343.0
+                                },
+                                "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"
+    }
+  }
+}
\ No newline at end of file
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