summaryrefslogtreecommitdiffstats
path: root/docs/offeredapis
diff options
context:
space:
mode:
authorelinuxhenrik <henrik.b.andersson@est.tech>2020-10-01 10:52:59 +0200
committerSingal, Kapil (ks220y) <ks220y@att.com>2020-10-07 11:02:35 -0400
commit3c0cb32c558ebec18600ee5ec3c00e7fc323f099 (patch)
treed34177c4422f84219cb8fa13e0408a2c76466e5d /docs/offeredapis
parentabc005f4b2f9f80ed7fa658758da803ad6d91583 (diff)
Use redoc for api docs
Change-Id: Ia530424154226698aad6c1498c90eadf23efdea0 Issue-ID: CCSDK-2833 Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
Diffstat (limited to 'docs/offeredapis')
-rw-r--r--docs/offeredapis/offeredapis.rst81
-rw-r--r--docs/offeredapis/swagger/pms-api.json1383
2 files changed, 1464 insertions, 0 deletions
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