summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--docs/a1-adapter-api.rst530
-rw-r--r--docs/developer-guide.rst56
-rw-r--r--docs/index.rst13
-rw-r--r--docs/pms-api.rst69
-rw-r--r--docs/release-notes.rst66
-rw-r--r--tox.ini32
7 files changed, 731 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index e4d28704..fe1a055c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,8 @@ MANIFEST.MF
**/yang-gen-sal
*.interp
sli/model/src/main/java
+node_modules
+package-lock.json
## Misc Ignores (OS specific etc) ##
bin/
diff --git a/docs/a1-adapter-api.rst b/docs/a1-adapter-api.rst
new file mode 100644
index 00000000..5999d55e
--- /dev/null
+++ b/docs/a1-adapter-api.rst
@@ -0,0 +1,530 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2020 Nordix
+
+.. _a1-adapter-api:
+
+.. |nbsp| unicode:: 0xA0
+ :trim:
+
+.. |nbh| unicode:: 0x2011
+ :trim:
+
+##############
+A1 Adapter API
+##############
+
+The A1 of a Near |nbh| RT |nbsp| RIC can be used through the A1 Adapter.
+
+The A1 Adapter supports using multiple versions of A1 API southbound. By passing the full URL for each southbound
+A1 operation the problem of version-specific URL formats is avoided.
+
+Since different versions of A1 operations may use different data formats for data payloads for similar REST requests and
+responses the data formatting requirements are flexible, so version-specific encoding/decoding is handled by the service
+that requests the A1 operation.
+
+Get Policy Type
+~~~~~~~~~~~~~~~
+
+POST
+++++
+
+Gets a policy type.
+
+Definition
+""""""""""
+
+**URL path:**
+
+/restconf/operations/A1-ADAPTER-API:getA1PolicyType
+
+**Parameters:**
+
+None.
+
+**Body:** (*Required*)
+
+A JSON object. ::
+
+ {
+ "input": {
+ "near-rt-ric-url": "<url-to-near-rt-ric-to-get-type>"
+ }
+ }
+
+**Responses:**
+
+200:
+
+A JSON object where the body tag contains the JSON object of the policy type. ::
+
+ {
+ "output": {
+ "http-status": "integer",
+ "body": "{
+ <policy-type>
+ }"
+ }
+ }
+
+Examples
+""""""""
+
+Get a policy type from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. The STD 1.1.3 version does not
+support types, so this function is not available for that version.
+
+**Call**: ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11"
+ }
+ }'
+
+**Result**:
+
+200: ::
+
+ {
+ "output": {
+ "http-status": 200,
+ "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
+ }
+ }
+ }"
+ }
+ }
+
+Put Policy
+~~~~~~~~~~
+
+POST
+++++
+
+Creates or updates a policy instance.
+
+Definition
+""""""""""
+
+**URL path:**
+
+/restconf/operations/A1-ADAPTER-API:putA1Policy
+
+**Parameters:**
+
+None.
+
+**Body:** (*Required*)
+
+A JSON object where the body tag contains the JSON object of the policy. ::
+
+ {
+ "input": {
+ "near-rt-ric-url": "<url-to-near-rt-ric-to-put-policy>",
+ "body": "<policy-as-json-string>"
+ }
+ }
+
+**Responses:**
+
+200:
+
+A JSON object with the response. ::
+
+ {
+ "output": {
+ "http-status": "integer"
+ }
+ }
+
+Examples
+""""""""
+
+**Call**:
+
+Create a policy in a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:putA1Policy"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000",
+ "body": "{
+ "blocking_rate":20,
+ "enforce":true,
+ "trigger_threshold":10,
+ "window_length":10
+ }"
+ }
+ }'
+
+Create a policy in a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+ curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:putA1Policy
+ -H Content-Type:application/json -d '{
+ "input": {
+ "near-rt-ric-url": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000",
+ "body": "{
+ "scope": {
+ "ueId": "ue5000",
+ "qosId": "qos5000"
+ },
+ "qosObjective": {
+ "priorityLevel": 5000
+ }
+ }"
+ }
+ }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+ {
+ "output": {
+ "http-status": 200
+ }
+ }
+
+Get Policy
+~~~~~~~~~~
+
+POST
+++++
+
+Gets a policy instance.
+
+Definition
+""""""""""
+
+**URL path:**
+
+/restconf/operations/A1-ADAPTER-API:getA1Policy
+
+**Parameters:**
+
+None.
+
+**Body:** (*Required*)
+
+A JSON object. ::
+
+ {
+ "input": {
+ "near-rt-ric-url": "<url-to-near-rt-ric-to-get-policy>"
+ }
+ }
+
+**Responses:**
+
+200:
+ A JSON object where the body tag contains the JSON object of the policy. ::
+
+ {
+ "output": {
+ "http-status": "integer",
+ "body": "{
+ <result>
+ }"
+ }
+ }
+
+Examples
+""""""""
+
+**Call**:
+
+Get **all** policy IDs from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+ curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1Policy
+ -H Content-Type:application/json -d '{
+ "input": {
+ "near-rt-ric-url":"http://ricsim_g1_1:8085/a1-p/policytypes/11/policies"
+ }
+ }'
+
+Get **all** policy IDs from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+ curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1Policy
+ -H Content-Type:application/json -d '{
+ "input": {
+ "near-rt-ric-url":"http://ricsim_g2_1:8085/A1-P/v1/policies"
+ }
+ }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+ {
+ "output": {
+ "http-status":200,
+ "body":"[
+ \"5000\",
+ .
+ .
+ .
+ \"6000\"
+ ]"
+ }
+ }
+
+**Call**:
+
+Get **a specific** policy from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1Policy"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000"
+ }
+ }'
+
+Get **a specific** policy from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+ curl -X POST http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyType
+ -H Content-Type:application/json -d '{
+ "input": {
+ "near-rt-ric-url":"http://ricsim_g2_1:8085/A1-P/v1/policies/5000"
+ }
+ }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+ {
+ "output": {
+ "http-status": 200,
+ "body": "{
+ \"blocking_rate\": 20,
+ \"enforce\": true,
+ \"trigger_threshold\": 10,
+ \"window_length\": 10
+ }"
+ }
+ }
+
+Delete Policy
+~~~~~~~~~~~~~
+
+POST
+++++
+
+Deletes a policy instance.
+
+Definition
+""""""""""
+
+**URL path:**
+
+/restconf/operations/A1-ADAPTER-API:deleteA1Policy
+
+**Parameters:**
+
+None.
+
+**Body:** (*Required*)
+
+A JSON object. ::
+
+ {
+ "input": {
+ "near-rt-ric-url": "<url-to-near-rt-ric-to-delete-policy>"
+ }
+ }
+
+**Responses:**
+
+200:
+
+A JSON object with the response. ::
+
+ {
+ "output": {
+ "http-status": "integer"
+ }
+ }
+
+Examples
+""""""""
+
+**Call**:
+
+Delete a policy from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000"
+ }
+ }'
+
+Delete a policy from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000"
+ }
+ }'
+
+**Result**:
+
+The result is the same irrespective of which API that is used.
+
+200: ::
+
+ {
+ "output": {
+ "http-status": 202
+ }
+ }
+
+Get Policy Status
+~~~~~~~~~~~~~~~~~
+
+POST
+++++
+
+Get the status of a policy instance.
+
+Definition
+""""""""""
+
+**URL path:**
+
+/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus
+
+**Parameters:**
+
+None.
+
+**Body:** (*Required*)
+
+A JSON object. ::
+
+ {
+ "input": {
+ "near-rt-ric-url": "<url-to-near-rt-ric-to-get-policy-status>"
+ }
+ }
+
+**Responses:**
+
+200:
+
+A JSON object where the body tag contains the JSON object with the policy status according to the API version used. ::
+
+ {
+ "output": {
+ "http-status": "integer",
+ "body": "{
+ <policy-status-object>
+ }"
+ }
+ }
+
+Examples
+""""""""
+
+**Call**:
+
+Get the policy status for a specific policy from a Near |nbh| RT |nbsp| RIC that is using the OSC 2.1.0 version. ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000/status"
+ }
+ }'
+
+**Result**:
+
+200: ::
+
+ {
+ "output": {
+ "http-status": 200,
+ "body": "{
+ \"instance_status\": \"IN EFFECT\",
+ \"has_been_deleted\": \"true\",
+ \"created_at\": \"Wed, 01 Apr 2020 07:45:45 GMT\"
+ }"
+ }
+ }
+
+**Call**:
+
+Get the policy status for a specific policy from a Near |nbh| RT |nbsp| RIC that is using the STD 1.1.3 version. ::
+
+ curl -X POST "http://localhost:8282/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus"
+ -H "Content-Type: application/json" -d '{
+ "input": {
+ "near-rt-ric-url": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000/status"
+ }
+ }'
+
+**Result**:
+
+200: ::
+
+ {
+ "output": {
+ "http-status": 200,
+ "body": "{
+ \"enforceStatus\": \"UNDEFINED\"
+ }"
+ }
+ }
diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst
new file mode 100644
index 00000000..8a32b206
--- /dev/null
+++ b/docs/developer-guide.rst
@@ -0,0 +1,56 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2020 Nordix Foundation.
+
+Developer Guide
+===============
+
+This document provides a quickstart for developers of the CCSDK ORAN parts.
+
+A1 Adapter
+++++++++++
+
+TBD
+
+The A1 Adapter can be accessed over the REST API. See :ref:`a1-adapter-api` for how to use the API.
+
+
+A1 Policy Management
+++++++++++++++++++++
+
+The CCSDK Policy Management Service (PMS) 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.
+
+The Policy Management Service can be accessed over the REST API. See :ref:`pms-api` for how to use the API.
+
+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
+
+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.
+
+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:`
+ `- ./new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro`
+
+ `- ./new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro`
+
+ `- ./new_application.yaml:/opt/app/policy-agent/config/application.yaml:ro`
+
+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):
+
+`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`
diff --git a/docs/index.rst b/docs/index.rst
index a69ca5fb..de676d17 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,13 +1,16 @@
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
- Copyright 2020 Nordix Foundation.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2020 Nordix Foundation.
.. _master_index:
-.. _ccsdk/oran
-
ccsdk/oran
----------
.. toctree::
- :maxdepth: 1
-
+ :maxdepth: 2
+ :caption: Contents:
+ ./developer-guide.rst
+ ./pms-api.rst
+ ./a1-adapter-api.rst
+ ./release-notes.rst
diff --git a/docs/pms-api.rst b/docs/pms-api.rst
new file mode 100644
index 00000000..e32194f4
--- /dev/null
+++ b/docs/pms-api.rst
@@ -0,0 +1,69 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2020 Nordix Foundation.
+
+.. _pms-api:
+
+Policy Management Service API
+=============================
+
+This document provides the northboudn api for the Policy Management Service.
+
+.. raw:: html
+
+ <embed>
+
+ <!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <title>Swagger UI</title>
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700" rel="stylesheet">
+ <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui.css" >
+ <style>
+ html
+ {
+ box-sizing: border-box;
+ overflow: -moz-scrollbars-vertical;
+ overflow-y: scroll;
+ }
+ *,
+ *:before,
+ *:after
+ {
+ box-sizing: inherit;
+ }
+ body {
+ margin:0;
+ background: #fafafa;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="swagger-ui"></div>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui-bundle.js"> </script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.24.2/swagger-ui-standalone-preset.js"> </script>
+ <script>
+ window.onload = function() {
+ var spec = {"swagger": "2.0", "info": {"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>", "version": "1.1.0", "title": "A1 Policy management service", "contact": {"name": "Ericsson Software Technology", "email": "nonrtric@est.tech"}, "x-api-id": "60f9a0e7-343f-43bf-9194-d8d65688d465", "x-audience": "external-partner"}, "host": "localhost:8081", "basePath": "/", "tags": [{"name": "A1 Policy Management Version 1.0", "description": "Policy Controller"}, {"name": "A1 Policy Management Version 2.0 (in progress)", "description": "Policy Controller"}], "paths": {"/policies": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Query policies", "operationId": "getPoliciesUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "ric", "in": "query", "description": "The name of the Near-RT RIC to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "service", "in": "query", "description": "The name of the service to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "type", "in": "query", "description": "The name of the policy type to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policies", "schema": {"type": "array", "items": {"$ref": "#/definitions/policy_info_v1"}}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC or type not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/policy": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns a policy configuration", "operationId": "getPolicyUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "id", "in": "query", "description": "The identity of the policy instance.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy found", "schema": {"type": "object"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy is not found"}}, "deprecated": false}, "put": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Put a policy", "operationId": "putPolicyUsingPUT_1", "consumes": ["application/json"], "produces": ["*/*"], "parameters": [{"name": "id", "in": "query", "description": "The identity of the policy instance.", "required": true, "type": "string", "allowEmptyValue": false}, {"in": "body", "name": "jsonBody", "description": "jsonBody", "required": true, "schema": {"type": "object"}}, {"name": "ric", "in": "query", "description": "The name of the Near-RT RIC where the policy will be created.", "required": true, "type": "string", "allowEmptyValue": false}, {"name": "service", "in": "query", "description": "The name of the service creating the policy.", "required": true, "type": "string", "allowEmptyValue": false}, {"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.", "required": false, "type": "boolean", "default": false, "allowEmptyValue": false, "x-example": false}, {"name": "type", "in": "query", "description": "The name of the policy type.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy updated"}, "201": {"description": "Policy created"}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC or policy type is not found", "schema": {"type": "string"}}, "423": {"description": "Near-RT RIC is not operational", "schema": {"type": "string"}}}, "deprecated": false}, "delete": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Delete a policy", "operationId": "deletePolicyUsingDELETE_1", "produces": ["*/*"], "parameters": [{"name": "id", "in": "query", "description": "The identity of the policy instance.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Not used"}, "204": {"description": "Policy deleted"}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy is not found", "schema": {"type": "string"}}, "423": {"description": "Near-RT RIC is not operational", "schema": {"type": "string"}}}, "deprecated": false}}, "/policy_ids": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Query policies, only policy identities returned", "operationId": "getPolicyIdsUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "ric", "in": "query", "description": "The name of the Near-RT RIC to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "service", "in": "query", "description": "The name of the service to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "type", "in": "query", "description": "The name of the policy type to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy identitiess", "schema": {"type": "array", "items": {"type": "string"}}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC or type not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/policy_schema": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns one policy type schema definition", "operationId": "getPolicySchemaUsingGET", "produces": ["*/*"], "parameters": [{"name": "id", "in": "query", "description": "The identity of the policy type to get the definition for.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy schema", "schema": {"type": "object"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "The policy type is not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/policy_schemas": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns policy type schema definitions", "operationId": "getPolicySchemasUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "ric", "in": "query", "description": "The name of the Near-RT RIC to get the definitions for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy schemas", "schema": {"type": "array", "items": {"type": "object"}}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC is not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/policy_status": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns a policy status", "operationId": "getPolicyStatusUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "id", "in": "query", "description": "The identity of the policy.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy status", "schema": {"type": "object"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy is not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/policy_types": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Query policy type names", "operationId": "getPolicyTypesUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "ric", "in": "query", "description": "The name of the Near-RT RIC to get types for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy type names", "schema": {"type": "array", "items": {"type": "string"}}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC is not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/ric": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns the name of a RIC managing one Mananged Element", "operationId": "getRicUsingGET", "produces": ["*/*"], "parameters": [{"name": "managedElementId", "in": "query", "description": "The identity of the Managed Element", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Near-RT RIC is found", "schema": {"type": "string"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC is not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/rics": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Query Near-RT RIC information", "operationId": "getRicsUsingGET", "produces": ["*/*"], "parameters": [{"name": "policyType", "in": "query", "description": "The name of the policy type", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "OK", "schema": {"type": "array", "items": {"$ref": "#/definitions/ric_info_v1"}}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy type is not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/service": {"put": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Register a service", "operationId": "putServiceUsingPUT_1", "consumes": ["application/json"], "produces": ["*/*"], "parameters": [{"in": "body", "name": "registrationInfo", "description": "registrationInfo", "required": true, "schema": {"$ref": "#/definitions/service_registration_info_v1"}}], "responses": {"200": {"description": "Service updated", "schema": {"type": "string"}}, "201": {"description": "Service created", "schema": {"type": "string"}}, "400": {"description": "The ServiceRegistrationInfo is not accepted", "schema": {"type": "string"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Not Found"}}, "deprecated": false}}, "/services": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns service information", "operationId": "getServicesUsingGET_1", "produces": ["*/*"], "parameters": [{"name": "name", "in": "query", "description": "The name of the service", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "OK", "schema": {"type": "array", "items": {"$ref": "#/definitions/service_status_v1"}}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Service is not found", "schema": {"type": "string"}}}, "deprecated": false}, "delete": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Delete a service", "operationId": "deleteServiceUsingDELETE_1", "produces": ["*/*"], "parameters": [{"name": "name", "in": "query", "description": "The name of the service", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "OK", "schema": {"type": "string"}}, "204": {"description": "Service deleted", "schema": {"type": "string"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Service not found", "schema": {"type": "string"}}}, "deprecated": false}}, "/services/keepalive": {"put": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Heartbeat from a serice", "operationId": "keepAliveServiceUsingPUT_1", "consumes": ["application/json"], "produces": ["*/*"], "parameters": [{"name": "name", "in": "query", "description": "The name of the service", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Service supervision timer refreshed, OK", "schema": {"type": "string"}}, "201": {"description": "Created"}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "The service is not found, needs re-registration"}}, "deprecated": false}}, "/status": {"get": {"tags": ["A1 Policy Management Version 1.0"], "summary": "Returns status and statistics of this service", "operationId": "getStatusUsingGET", "produces": ["*/*"], "responses": {"200": {"description": "Service is living", "schema": {"type": "string"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Not Found"}}, "deprecated": false}}, "/v2/policies": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Query for existing A1 policies", "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", "produces": ["application/json"], "parameters": [{"name": "policytype_id", "in": "query", "description": "The identity of the policy type to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "ric_id", "in": "query", "description": "The identity of the Near-RT RIC to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "service_id", "in": "query", "description": "The identity of the service to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policies", "schema": {"$ref": "#/definitions/policy_info_list_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC, policy type or service not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/policy": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Returns a policy configuration", "operationId": "getPolicyUsingGET", "produces": ["application/json"], "parameters": [{"name": "policy_id", "in": "query", "description": "The identity of the policy instance.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy found", "schema": {"$ref": "#/definitions/json_object"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}, "put": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Create or update a policy", "operationId": "putPolicyUsingPUT", "consumes": ["application/json"], "produces": ["application/json"], "parameters": [{"in": "body", "name": "jsonBody", "description": "jsonBody", "required": true, "schema": {"type": "object"}}, {"name": "policy_id", "in": "query", "description": "The identity of the policy instance.", "required": true, "type": "string", "allowEmptyValue": false}, {"name": "policytype_id", "in": "query", "description": "The identity of the policy type.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "ric_id", "in": "query", "description": "The identity of the Near-RT RIC where the policy will be created.", "required": true, "type": "string", "allowEmptyValue": false}, {"name": "service_id", "in": "query", "description": "The identity of the service creating the policy.", "required": true, "type": "string", "allowEmptyValue": false}, {"name": "transient", "in": "query", "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)", "required": false, "type": "boolean", "default": false, "allowEmptyValue": false, "x-example": false}], "responses": {"200": {"description": "Policy updated"}, "201": {"description": "Policy created"}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC or policy type is not found", "schema": {"$ref": "#/definitions/error_information"}}, "423": {"description": "Near-RT RIC is not operational", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}, "delete": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Delete a policy", "operationId": "deletePolicyUsingDELETE", "produces": ["*/*"], "parameters": [{"name": "policy_id", "in": "query", "description": "The identity of the policy instance.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Not used"}, "204": {"description": "Policy deleted"}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy is not found", "schema": {"$ref": "#/definitions/error_information"}}, "423": {"description": "Near-RT RIC is not operational", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/policy-ids": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Query policies, only policy identities are returned", "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", "produces": ["application/json"], "parameters": [{"name": "policytype_id", "in": "query", "description": "The identity of the policy type to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "ric_id", "in": "query", "description": "The identity of the Near-RT RIC to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "service_id", "in": "query", "description": "The identity of the service to get policies for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy identities", "schema": {"$ref": "#/definitions/policy_id_list_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC or type not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/policy-schemas": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Returns policy type schema definitions", "operationId": "getPolicySchemasUsingGET", "produces": ["application/json"], "parameters": [{"name": "policytype_id", "in": "query", "description": "The identity of the policy type to get the definition for. When this parameter is given, max one schema will be returned", "required": true, "type": "string", "allowEmptyValue": false}, {"name": "ric_id", "in": "query", "description": "The identity of the Near-RT RIC to get the definitions for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy schemas", "schema": {"$ref": "#/definitions/policy_schema_list_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/policy-status": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Returns a policy status", "operationId": "getPolicyStatusUsingGET", "produces": ["application/json"], "parameters": [{"name": "policy_id", "in": "query", "description": "The identity of the policy.", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy status", "schema": {"$ref": "#/definitions/json_object"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/policy-types": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Query policy type identities", "operationId": "getPolicyTypesUsingGET", "produces": ["application/json"], "parameters": [{"name": "ric_id", "in": "query", "description": "The identity of the Near-RT RIC to get types for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Policy type IDs", "schema": {"$ref": "#/definitions/policy_type_id_list_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/ric": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Returns info for a Near-RT RIC", "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", "produces": ["application/json"], "parameters": [{"name": "managed_element_id", "in": "query", "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", "required": false, "type": "string", "allowEmptyValue": false}, {"name": "ric_id", "in": "query", "description": "The identity of a Near-RT RIC to get information for.", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Near-RT RIC is found", "schema": {"$ref": "#/definitions/ric_info_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Near-RT RIC is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/rics": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Query Near-RT RIC information", "description": "The call returns all Near-RT RICs that supports a given policy type identity", "operationId": "getRicsUsingGET_1", "produces": ["application/json"], "parameters": [{"name": "policytype_id", "in": "query", "description": "The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "OK", "schema": {"$ref": "#/definitions/ric_info_list_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Policy type is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/services": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Returns service information", "description": "Either information about a registered service with given identity or all registered services are returned.", "operationId": "getServicesUsingGET", "produces": ["application/json"], "parameters": [{"name": "service_id", "in": "query", "description": "The identity of the service", "required": false, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "OK", "schema": {"$ref": "#/definitions/service_list_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Service is not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}, "put": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Register a service", "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", "consumes": ["application/json"], "produces": ["*/*"], "parameters": [{"in": "body", "name": "registrationInfo", "description": "registrationInfo", "required": true, "schema": {"$ref": "#/definitions/service_registration_info_v2"}}], "responses": {"200": {"description": "Service updated", "schema": {"type": "object"}}, "201": {"description": "Service created", "schema": {"type": "object"}}, "400": {"description": "The ServiceRegistrationInfo is not accepted", "schema": {"$ref": "#/definitions/error_information"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Not Found"}}, "deprecated": false}, "delete": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Unregister a service", "operationId": "deleteServiceUsingDELETE", "produces": ["*/*"], "parameters": [{"name": "service_id", "in": "query", "description": "The idenitity of the service", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Not used"}, "204": {"description": "Service unregistered", "schema": {"type": "object"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Service not found", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/services/keepalive": {"put": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Heartbeat indicates that the service is running", "operationId": "keepAliveServiceUsingPUT", "consumes": ["application/json"], "produces": ["*/*"], "parameters": [{"name": "service_id", "in": "query", "description": "The identity of the service", "required": true, "type": "string", "allowEmptyValue": false}], "responses": {"200": {"description": "Service supervision timer refreshed, OK", "schema": {"type": "object"}}, "201": {"description": "Created"}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "The service is not found, needs re-registration", "schema": {"$ref": "#/definitions/error_information"}}}, "deprecated": false}}, "/v2/status": {"get": {"tags": ["A1 Policy Management Version 2.0 (in progress)"], "summary": "Returns status and statistics of this service", "operationId": "getStatusUsingGET_1", "produces": ["application/json"], "responses": {"200": {"description": "Service is living", "schema": {"$ref": "#/definitions/status_info_v2"}}, "401": {"description": "Unauthorized"}, "403": {"description": "Forbidden"}, "404": {"description": "Not Found"}}, "deprecated": false}}}, "definitions": {"Mono\u00abResponseEntity\u00abobject\u00bb\u00bb": {"type": "object", "title": "Mono\u00abResponseEntity\u00abobject\u00bb\u00bb"}, "Mono\u00abResponseEntity\u00abstring\u00bb\u00bb": {"type": "object", "title": "Mono\u00abResponseEntity\u00abstring\u00bb\u00bb"}, "error_information": {"type": "object", "properties": {"detail": {"type": "string", "example": "Policy type not found", "description": " A human-readable explanation specific to this occurrence of the problem."}, "status": {"type": "integer", "format": "int32", "example": 503, "description": "The HTTP status code generated by the origin server for this occurrence of the problem. "}}, "title": "error_information", "description": "Problem as defined in https://tools.ietf.org/html/rfc7807"}, "json_object": {"type": "object", "title": "json_object", "description": "A JSON object defining the configuration of the policy. The schema is defined by the Policy Type."}, "policy_id_list_v2": {"type": "object", "properties": {"policy_ids": {"type": "array", "description": "Policy identities", "items": {"type": "string"}}}, "title": "policy_id_list_v2", "description": "A list of policy identities"}, "policy_info_list_v2": {"type": "object", "properties": {"policies": {"type": "array", "description": "List of policy information", "items": {"$ref": "#/definitions/policy_info_v2"}}}, "title": "policy_info_list_v2", "description": "List of policy information"}, "policy_info_v1": {"type": "object", "properties": {"id": {"type": "string", "description": "identity of the policy"}, "json": {"type": "object", "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"}}, "title": "policy_info_v1"}, "policy_info_v2": {"type": "object", "properties": {"last_modified": {"type": "string", "description": "timestamp, last modification time"}, "policy_data": {"type": "object", "description": "the configuration of the policy"}, "policy_id": {"type": "string", "description": "identity of the policy"}, "policy_type_id": {"type": "string", "description": "name of the policy type"}, "ric_id": {"type": "string", "description": "identity of the target Near-RT RIC"}, "service_id": {"type": "string", "description": "the name of the service owning the policy"}}, "title": "policy_info_v2", "description": "Information for one A1-P Policy"}, "policy_schema_list_v2": {"type": "object", "properties": {"policy_schemas": {"type": "array", "description": "Policy type json schemas. The schema is a json object following http://json-schema.org/draft-07/schema", "items": {"type": "object"}}}, "title": "policy_schema_list_v2", "description": "Policy type json schemas"}, "policy_type_id_list_v2": {"type": "object", "properties": {"policy_type_ids": {"type": "array", "description": "Policy type identities", "items": {"type": "string"}}}, "title": "policy_type_id_list_v2", "description": "Information about policy types"}, "ric_info_list_v2": {"type": "object", "properties": {"rics": {"type": "array", "description": "List of Near-RT RIC information", "items": {"$ref": "#/definitions/ric_info_v2"}}}, "title": "ric_info_list_v2", "description": "List of Near-RT RIC information"}, "ric_info_v1": {"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 Near-RT RIC"}, "state": {"type": "string", "description": "state info"}}, "title": "ric_info_v1"}, "ric_info_v2": {"type": "object", "properties": {"managed_element_ids": {"type": "array", "description": "O1 identities for managed entities", "items": {"type": "string"}}, "policy_type_ids": {"type": "array", "description": "supported policy types", "items": {"type": "string"}}, "ric_id": {"type": "string", "description": "identity of the Near-RT RIC"}, "state": {"type": "string", "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.", "enum": ["UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK"]}}, "title": "ric_info_v2", "description": "Information for a Near-RT RIC"}, "service_list_v2": {"type": "object", "properties": {"service_list": {"type": "array", "description": "List of service information", "items": {"$ref": "#/definitions/service_status_v2"}}}, "title": "service_list_v2", "description": "List of service information"}, "service_registration_info_v1": {"type": "object", "properties": {"callbackUrl": {"type": "string", "description": "callback for notifying of RIC synchronization"}, "keepAliveIntervalSeconds": {"type": "integer", "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."}, "serviceName": {"type": "string"}}, "title": "service_registration_info_v1"}, "service_registration_info_v2": {"type": "object", "required": ["service_id"], "properties": {"callback_url": {"type": "string", "description": "callback for notifying of RIC synchronization"}, "keep_alive_interval_seconds": {"type": "integer", "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."}, "service_id": {"type": "string", "description": "identity of the service"}}, "title": "service_registration_info_v2", "description": "Information for one service"}, "service_status_v1": {"type": "object", "properties": {"callbackUrl": {"type": "string", "description": "callback for notifying of RIC synchronization"}, "keepAliveIntervalSeconds": {"type": "integer", "format": "int64", "description": "policy keep alive timeout"}, "serviceName": {"type": "string", "description": "identity of the service"}, "timeSinceLastActivitySeconds": {"type": "integer", "format": "int64", "description": "time since last invocation by the service"}}, "title": "service_status_v1"}, "service_status_v2": {"type": "object", "properties": {"callback_url": {"type": "string", "description": "callback for notifying of RIC synchronization"}, "keep_alive_interval_seconds": {"type": "integer", "format": "int64", "description": "policy keep alive timeout"}, "service_id": {"type": "string", "description": "identity of the service"}, "time_since_last_activity_seconds": {"type": "integer", "format": "int64", "description": "time since last invocation by the service"}}, "title": "service_status_v2"}, "status_info_v2": {"type": "object", "properties": {"status": {"type": "string", "description": "status text"}}, "title": "status_info_v2"}, "void": {"type": "object", "title": "void", "description": "Void/empty"}}};
+ // Build a system
+ const ui = SwaggerUIBundle({
+ spec: spec,
+ dom_id: '#swagger-ui',
+ deepLinking: true,
+ presets: [
+ SwaggerUIBundle.presets.apis,
+ SwaggerUIStandalonePreset
+ ],
+ plugins: [
+ SwaggerUIBundle.plugins.DownloadUrl
+ ],
+ layout: "StandaloneLayout"
+ })
+ window.ui = ui
+ }
+ </script>
+ </body>
+ </html>
+
+ </embed>
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
new file mode 100644
index 00000000..c46e7ad6
--- /dev/null
+++ b/docs/release-notes.rst
@@ -0,0 +1,66 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2020 Nordix Foundation.
+
+=============
+Release-Notes
+=============
+
+
+This document provides the release notes for the release of the different parts of the ORAN project.
+
+.. contents::
+ :depth: 3
+ :local:
+
+
+Version history Policy Management Service
+=========================================
+
++------------+----------+------------+----------------+
+| **Date** | **Ver.** | **Author** | **Comment** |
+| | | | |
++------------+----------+------------+----------------+
+| 2020-09-10 | 1.0.0 | Dan Timony | First version |
+| | | | Guilin Release |
++------------+----------+------------+----------------+
+
+
+Summary
+-------
+First version.
+
+
+Version history A1 Adapter
+==========================
+
++------------+----------+------------+----------------+
+| **Date** | **Ver.** | **Author** | **Comment** |
+| | | | |
++------------+----------+------------+----------------+
+| 2019-09-10 | 1.0.0 | Dan Timony | First version |
+| | | | Guilin Release |
++------------+----------+------------+----------------+
+
+
+Release Data
+============
+
+Guilin
+------
++-----------------------------+-----------------------------------------------------+
+| **Project** | CCSDK ORAN |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Repo/commit-ID** | ccsdk-oran/ec3829493c0b71c5e5908a430edd1e493504178e |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Release designation** | Guilin |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Release date** | 2020-09-10 |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Purpose of the delivery** | Introducing ORAN |
+| | |
++-----------------------------+-----------------------------------------------------+
diff --git a/tox.ini b/tox.ini
deleted file mode 100644
index 32de8a6c..00000000
--- a/tox.ini
+++ /dev/null
@@ -1,32 +0,0 @@
-[tox]
-minversion = 2.0
-envlist = docs,
-skipsdist = true
-
-[testenv:docs]
-basepython = python3
-deps =
- sphinx
- sphinx-rtd-theme
- sphinxcontrib-httpdomain
- sphinxcontrib.blockdiag
- sphinxcontrib.needs
- sphinxcontrib.plantuml
- sphinxcontrib.nwdiag
- sphinxcontrib.seqdiag
- sphinxcontrib.swaggerdoc
- recommonmark
- lfdocs-conf
-commands =
- sphinx-build -b html -n -d {envtmpdir}/docs/doctrees ./docs/ {toxinidir}/docs/_build/html
- echo "Generated docs available in {toxinidir}/docs/_build/html"
-whitelist_externals =
- echo
- git
- sh
-
-[testenv:docs-linkcheck]
-basepython = python3
-commands = echo "Link Checking not enforced"
-#commands = sphinx-build -b linkcheck -d {envtmpdir}/docs/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
-whitelist_externals = echo