diff options
-rw-r--r-- | docs/a1-adapter-api.rst | 530 | ||||
-rw-r--r-- | docs/conf.py | 13 | ||||
-rw-r--r-- | docs/guide/developer-guide.rst (renamed from docs/developer-guide.rst) | 0 | ||||
-rw-r--r-- | docs/index.rst | 7 | ||||
-rw-r--r-- | docs/media/swagger.png | bin | 0 -> 3590 bytes | |||
-rw-r--r-- | docs/offeredapis/offeredapis.rst | 81 | ||||
-rw-r--r-- | docs/offeredapis/swagger/pms-api.json | 1383 | ||||
-rw-r--r-- | docs/pms-api.rst | 69 | ||||
-rw-r--r-- | docs/requirements-docs.txt | 3 |
9 files changed, 1481 insertions, 605 deletions
diff --git a/docs/a1-adapter-api.rst b/docs/a1-adapter-api.rst deleted file mode 100644 index 5999d55e..00000000 --- a/docs/a1-adapter-api.rst +++ /dev/null @@ -1,530 +0,0 @@ -.. 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/conf.py b/docs/conf.py index de84a196..bb52b59d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,7 +7,18 @@ linkcheck_ignore = [ 'http://localhost', ] -extensions = ['sphinx_tabs.tabs'] +extensions = ['sphinx_tabs.tabs', 'sphinxcontrib.redoc',] + +redoc = [ + { + 'name': 'PMS API', + 'page': 'offeredapis/pms-api', + 'spec': './offeredapis/swagger/pms-api.json', + 'embed': True, + } + ] + +redoc_uri = 'https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js' intersphinx_mapping = {} diff --git a/docs/developer-guide.rst b/docs/guide/developer-guide.rst index 8a32b206..8a32b206 100644 --- a/docs/developer-guide.rst +++ b/docs/guide/developer-guide.rst diff --git a/docs/index.rst b/docs/index.rst index de676d17..65db2923 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,10 +7,9 @@ ccsdk/oran ---------- .. toctree:: - :maxdepth: 2 + :maxdepth: 1 :caption: Contents: - ./developer-guide.rst - ./pms-api.rst - ./a1-adapter-api.rst + ./offeredapis/offeredapis.rst + ./guide/developer-guide.rst ./release-notes.rst diff --git a/docs/media/swagger.png b/docs/media/swagger.png Binary files differnew file mode 100644 index 00000000..f5a9e0c0 --- /dev/null +++ b/docs/media/swagger.png diff --git a/docs/offeredapis/offeredapis.rst b/docs/offeredapis/offeredapis.rst new file mode 100644 index 00000000..2b29aa41 --- /dev/null +++ b/docs/offeredapis/offeredapis.rst @@ -0,0 +1,81 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 + International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2020 Nordix Foundation +.. _offeredapis: + + +Offered APIs +============ + +Introduction +************ + +The north bound ... + + +Global ORAN architecture +************************ + +Following illustration provides a global view about **ORAN** architecture, +integration with other ONAP components and API resource/operation provided. + +.. image:: ../images/onap_ccsdk_oran.jpg + :width: 800px + + +API Endpoint +************ + +TBD + + +API Version +*********** + +APIs are described with a state version with "v" following the API Name, +e.g.: ``TBD``. +The schema associated with a REST API must have its version number aligned +with that of the REST API. + +The version number has major, minor and revision numbers. E.g. v1.0.0 +The version number (without the revision number) is held in the URI. + +The major version number is incremented for an incompatible change. +The minor version number is incremented for a compatible change. +For minor modifications of the API, version numbering must not be updated, +provided the following backward compatibility rules are respected: + +- New elements in a data type must be optional (``minOccurs=0``) +- Changes in the cardinality of an attribute in a data type must be from + mandatory to optional or from lower to greater +- New attributes defined in an element must be optional (absence of + ``use="required"``). +- If new enumerated values are included, the former ones and its meaning must + be kept. +- If new operations are added, the existing operations must be kept +- New parameters added to existing operations must be optional and existing + parameters must be kept + +For major modifications of the API, not backward compatible and forcing client +implementations to be changed, the version number must be updated. + + +API Table +********* + +.. |swagger-icon| image:: ../media/swagger.png + :width: 40px + + +.. csv-table:: + :header: "API name", "|swagger-icon|" + :widths: 10,5 + + "PMS API", ":download:`link <./swagger/pms-api.json>`" + + +PMS API +....... +`PMS API <./pms-api.html>`_ + diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json new file mode 100644 index 00000000..f600470e --- /dev/null +++ b/docs/offeredapis/swagger/pms-api.json @@ -0,0 +1,1383 @@ +{ + "swagger": "2.0", + "basePath": "/", + "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" + } + ], + "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", + "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", + "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", + "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_1", + "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_1", + "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_1", + "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_1", + "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", + "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", + "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_1", + "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_1", + "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", + "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:41579", + "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»»" + } + } +}
\ No newline at end of file diff --git a/docs/pms-api.rst b/docs/pms-api.rst deleted file mode 100644 index e32194f4..00000000 --- a/docs/pms-api.rst +++ /dev/null @@ -1,69 +0,0 @@ -.. 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/requirements-docs.txt b/docs/requirements-docs.txt index b1ec65c8..aeda4ee2 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -13,4 +13,5 @@ sphinxcontrib-seqdiag sphinxcontrib-swaggerdoc sphinxcontrib-plantuml sphinx_bootstrap_theme -lfdocs-conf +sphinxcontrib-redoc +lfdocs-conf
\ No newline at end of file |