Update OpenAPI & documentation 16/140116/6
authorlapentafd <francesco.lapenta@est.tech>
Thu, 30 Jan 2025 16:16:41 +0000 (16:16 +0000)
committerlapentafd <francesco.lapenta@est.tech>
Wed, 5 Feb 2025 11:28:37 +0000 (11:28 +0000)
- Dependecies update
- Added a warning for policyId during policy creation

Issue-ID: CCSDK-4076
Change-Id: I28333ef8956a9102fd46d270bb631c1f9ea24b8d
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
19 files changed:
a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom/index.html
a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html
a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json [new file with mode: 0644]
a1-policy-management/api/offeredapis/swagger/pms-api-v3.json
a1-policy-management/api/offeredapis/swagger/pms-api-v3.yaml
a1-policy-management/api/offeredapis/swagger/pms-api.json
a1-policy-management/api/offeredapis/swagger/pms-api.yaml
a1-policy-management/pom.xml
docs/media/ORAN-A1PolicyFunction-Architecture-Istanbul.png [new file with mode: 0644]
docs/offeredapis/offeredapis.rst
docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
docs/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom/index.html
docs/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html
docs/offeredapis/swagger/custom/a1pms-api-custom-v3.json [new file with mode: 0644]
docs/offeredapis/swagger/pms-api-v3.json
docs/offeredapis/swagger/pms-api-v3.yaml
docs/offeredapis/swagger/pms-api.json
docs/offeredapis/swagger/pms-api.yaml

index 9580d53..c59e622 100644 (file)
@@ -2,7 +2,7 @@
 <html>
 <head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-  <title>A1 Policy Management Service</title>
+  <title>ONAP CCSDK A1 Policy Management Service</title>
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <meta charset="UTF-8" />
@@ -1240,7 +1240,7 @@ ul.nav-tabs {
       <div id="content">
         <div id="project">
           <div class="pull-left">
-            <h1>A1 Policy Management Service</h1>
+            <h1>ONAP CCSDK A1 Policy Management Service</h1>
           </div>
           <div class="clearfix"></div>
         </div>
@@ -1250,7 +1250,7 @@ ul.nav-tabs {
               <div class="app-desc">Version: 1.3.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>
+                <h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>
 
             </div>
           </div>
@@ -1385,10 +1385,10 @@ String *policyId = policyId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-deletePolicy-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -1831,10 +1831,10 @@ String *policyId = policyId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicy-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -2284,10 +2284,10 @@ String *typeName = typeName_example; // Select policies of types with the given
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyIds-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var opts = {
   'policytypeId': policytypeId_example, // {String} Select policies of a given policy type identity.
   'ricId': ricId_example, // {String} Select policies of a given Near-RT RIC identity.
@@ -2819,10 +2819,10 @@ String *typeName = typeName_example; // Select policies of a given type name (ty
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyInstances-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var opts = {
   'policytypeId': policytypeId_example, // {String} Select policies with a given type identity.
   'ricId': ricId_example, // {String} Select policies for a given Near-RT RIC identity.
@@ -3345,10 +3345,10 @@ String *policyId = policyId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyStatus-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -3782,10 +3782,10 @@ String *policytypeId = policytypeId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policytypeId = policytypeId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -4229,10 +4229,10 @@ String *compatibleWithVersion = compatibleWithVersion_example; // Select types t
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypes-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var opts = {
   'ricId': ricId_example, // {String} Select types for the given Near-RT RIC identity.
   'typeName': typeName_example, // {String} Select types with the given type name (type identity has the format <typename_version>)
@@ -4722,10 +4722,10 @@ PolicyInfo *policyInfo = ; //
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-putPolicy-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyInfo = ; // {PolicyInfo} 
 
 var callback = function(error, data, response) {
@@ -5269,10 +5269,10 @@ PolicyAuthorization *policyAuthorization = ; //
                             </div>
 
                             <div class="tab-pane" id="examples-AuthorizationAPI-performAccessControl-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.AuthorizationAPIApi()
+var api = new OnapCcsdkA1PolicyManagementService.AuthorizationAPIApi()
 var policyAuthorization = ; // {PolicyAuthorization} 
 
 var callback = function(error, data, response) {
@@ -5735,10 +5735,10 @@ ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
                             </div>
 
                             <div class="tab-pane" id="examples-Configuration-getConfiguration-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ConfigurationApi()
+var api = new OnapCcsdkA1PolicyManagementService.ConfigurationApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -6135,10 +6135,10 @@ Object *body = Object; //
                             </div>
 
                             <div class="tab-pane" id="examples-Configuration-putConfiguration-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ConfigurationApi()
+var api = new OnapCcsdkA1PolicyManagementService.ConfigurationApi()
 var body = Object; // {Object} 
 
 var callback = function(error, data, response) {
@@ -6599,10 +6599,10 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
                             </div>
 
                             <div class="tab-pane" id="examples-HealthCheck-getStatus-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.HealthCheckApi()
+var api = new OnapCcsdkA1PolicyManagementService.HealthCheckApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -6929,10 +6929,10 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
                             </div>
 
                             <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.HealthCheckApi()
+var api = new OnapCcsdkA1PolicyManagementService.HealthCheckApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -7267,10 +7267,10 @@ String *ricId = ricId_example; // The identity of a Near-RT RIC to get informati
                             </div>
 
                             <div class="tab-pane" id="examples-NearRTRICRepository-getRic-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.NearRTRICRepositoryApi()
+var api = new OnapCcsdkA1PolicyManagementService.NearRTRICRepositoryApi()
 var opts = {
   'managedElementId': managedElementId_example, // {String} The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.
   'ricId': ricId_example // {String} The identity of a Near-RT RIC to get information for.
@@ -7735,10 +7735,10 @@ String *policytypeId = policytypeId_example; // The identity of a policy type. I
                             </div>
 
                             <div class="tab-pane" id="examples-NearRTRICRepository-getRics-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.NearRTRICRepositoryApi()
+var api = new OnapCcsdkA1PolicyManagementService.NearRTRICRepositoryApi()
 var opts = {
   'policytypeId': policytypeId_example // {String} The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
 };
@@ -8179,10 +8179,10 @@ String *serviceId = serviceId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-deleteService-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -8612,10 +8612,10 @@ String *serviceId = serviceId_example; // The identity of the service (optional)
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-getServices-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var opts = {
   'serviceId': serviceId_example // {String} The identity of the service
 };
@@ -9054,10 +9054,10 @@ String *serviceId = serviceId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-keepAliveService-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -9491,10 +9491,10 @@ ServiceRegistrationInfo *serviceRegistrationInfo = ; //
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-putService-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var serviceRegistrationInfo = ; // {ServiceRegistrationInfo} 
 
 var callback = function(error, data, response) {
@@ -9916,7 +9916,7 @@ $(document).ready(function() {
                   <div class="app-desc">Information URL: <a href="https://www.onap.org/">https://www.onap.org/</a></div>
                   <div class="app-desc">Contact Info: <a href="discuss-list@onap.com">discuss-list@onap.com</a></div>
               </p>
-                <div class="license-info">Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.</div>
+                <div class="license-info">Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved. Licensed under the Apache 2 License.</div>
                 <div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
             </div>
           </div>
index 2defcfb..db7407b 100644 (file)
@@ -941,18 +941,18 @@ ul.nav-tabs {
   "properties" : {\r
     "nearRtRicId" : {\r
       "type" : "string",\r
-      "description" : "identity of the target Near-RT RIC",\r
+      "description" : "Identity of the target Near-RT RIC",\r
       "example" : "Near-RT-Ric-ID"\r
     },\r
     "transient" : {\r
       "type" : "boolean",\r
-      "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
+      "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
       "nullable" : false,\r
       "default" : false\r
     },\r
     "policyId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Policy",\r
+      "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",\r
       "example" : "POLICY-ID"\r
     },\r
     "serviceId" : {\r
@@ -965,7 +965,7 @@ ul.nav-tabs {
     },\r
     "policyTypeId" : {\r
       "type" : "string",\r
-      "description" : "identity of the policy type",\r
+      "description" : "Identity of the policy type",\r
       "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)"\r
     }\r
   },\r
@@ -1096,7 +1096,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Near-RT RIC"\r
+      "description" : "Identity of the Near-RT RIC"\r
     },\r
     "managedElementIds" : {\r
       "type" : "array",\r
@@ -1141,7 +1141,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of a Near-RT RIC"\r
+      "description" : "Identity of a Near-RT RIC"\r
     },\r
     "eventType" : {\r
       "type" : "string",\r
@@ -1161,7 +1161,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1180,7 +1180,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1279,7 +1279,7 @@ ul.nav-tabs {
               <div class="app-desc">Version: 1.0.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
+                <h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
 
             </div>
           </div>
@@ -11049,7 +11049,7 @@ $(document).ready(function() {
                   <div class="app-desc">Information URL: <a href="https://www.onap.org/">https://www.onap.org/</a></div>
                   <div class="app-desc">Contact Info: <a href="discuss-list@onap.com">discuss-list@onap.com</a></div>
               </p>
-                <div class="license-info">Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.</div>
+                <div class="license-info">Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.</div>
                 <div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
             </div>
           </div>
index 0e7aaa7..9528041 100644 (file)
@@ -941,18 +941,18 @@ ul.nav-tabs {
   "properties" : {\r
     "nearRtRicId" : {\r
       "type" : "string",\r
-      "description" : "identity of the target Near-RT RIC",\r
+      "description" : "Identity of the target Near-RT RIC",\r
       "example" : "Near-RT-Ric-ID"\r
     },\r
     "transient" : {\r
       "type" : "boolean",\r
-      "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
+      "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
       "nullable" : false,\r
       "default" : false\r
     },\r
     "policyId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Policy",\r
+      "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",\r
       "example" : "POLICY-ID"\r
     },\r
     "serviceId" : {\r
@@ -965,7 +965,7 @@ ul.nav-tabs {
     },\r
     "policyTypeId" : {\r
       "type" : "string",\r
-      "description" : "identity of the policy type",\r
+      "description" : "Identity of the policy type",\r
       "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)"\r
     }\r
   },\r
@@ -1096,7 +1096,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Near-RT RIC"\r
+      "description" : "Identity of the Near-RT RIC"\r
     },\r
     "managedElementIds" : {\r
       "type" : "array",\r
@@ -1141,7 +1141,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of a Near-RT RIC"\r
+      "description" : "Identity of a Near-RT RIC"\r
     },\r
     "eventType" : {\r
       "type" : "string",\r
@@ -1161,7 +1161,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1180,7 +1180,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1310,7 +1310,7 @@ ul.nav-tabs {
               <div class="app-desc">Version: 1.0.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
+                <h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
 
             </div>
           </div>
@@ -15344,7 +15344,7 @@ $(document).ready(function() {
                   <div class="app-desc">Information URL: <a href="https://www.onap.org/">https://www.onap.org/</a></div>
                   <div class="app-desc">Contact Info: <a href="discuss-list@onap.com">discuss-list@onap.com</a></div>
               </p>
-                <div class="license-info">Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.</div>
+                <div class="license-info">Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.</div>
                 <div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
             </div>
           </div>
diff --git a/a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json b/a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json
new file mode 100644 (file)
index 0000000..0fc875f
--- /dev/null
@@ -0,0 +1,2454 @@
+{
+  "openapi" : "3.0.3",
+  "info" : {
+    "contact" : {
+      "email" : "discuss-list@onap.com",
+      "url" : "https://www.onap.org/"
+    },
+    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
+    "license" : {
+      "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
+      "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+    },
+    "title" : "A1 policy management API",
+    "version" : "1.0.0",
+    "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+    "x-audience" : "external-public"
+  },
+  "servers" : [ {
+    "url" : "{apiRoot}/a1-policy-management/v1",
+    "variables" : {
+      "apiRoot" : {
+        "default" : "https://example.com",
+        "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance (r) R1-AP specifiactions for A1 Policy Management"
+      }
+    }
+  } ],
+  "tags" : [ {
+    "description" : "**(Newer Version)** API used to create polices, Policy Instances and get  them as individual using an ID or get all policies/Instances.",
+    "name" : "A1 Policy Management"
+  }, {
+    "description" : "API used to get the NearRT-RIC for the managed element.",
+    "name" : "NearRT-RIC Repository"
+  }, {
+    "description" : "API used to keep the service Alive with in the timeout period",
+    "name" : "Service Registry and Supervision"
+  }, {
+    "description" : "API used to get the health status and statistics of this service",
+    "name" : "Health Check"
+  }, {
+    "description" : "API used to create or fetch the application configuration.",
+    "name" : "Configuration"
+  } ],
+  "paths" : {
+    "/status" : {
+      "get" : {
+        "description" : "Returns status and statistics of this service",
+        "operationId" : "getStatus",
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "status_info" : {
+                    "$ref" : "#/components/examples/StatusInfo"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/StatusInfo"
+                }
+              }
+            },
+            "description" : "OK- Service is living Ok"
+          }
+        },
+        "tags" : [ "Health Check" ]
+      }
+    },
+    "/rics/ric" : {
+      "get" : {
+        "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+        "operationId" : "getRic",
+        "parameters" : [ {
+          "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "managedElementId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "The identity of a Near-RT RIC to get information for.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "ricId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "ric_info" : {
+                    "$ref" : "#/components/examples/RicInfo"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/RicInfo"
+                }
+              }
+            },
+            "description" : "OK - Near-RT RIC is found OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Returns info for one Near-RT RIC",
+        "tags" : [ "NearRT-RIC Repository" ]
+      }
+    },
+    "/rics" : {
+      "get" : {
+        "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+        "operationId" : "getRics",
+        "parameters" : [ {
+          "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+          "explode" : true,
+          "in" : "query",
+          "name" : "policyTypeId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "ric_info_list" : {
+                    "$ref" : "#/components/examples/RicInfoList"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/RicInfoList"
+                }
+              }
+            },
+            "description" : "OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Query Near-RT RIC information",
+        "tags" : [ "NearRT-RIC Repository" ]
+      }
+    },
+    "/policy-types" : {
+      "get" : {
+        "description" : "Query policy type identities",
+        "operationId" : "getPolicyTypes",
+        "parameters" : [ {
+          "description" : "Select types for the given Near-RT RIC identity.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "nearRtRicId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+          "explode" : true,
+          "in" : "query",
+          "name" : "typeName",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "compatibleWithVersion",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "PolicyTypeInformation" : {
+                    "$ref" : "#/components/examples/PolicyTypeInformation"
+                  }
+                },
+                "schema" : {
+                  "items" : {
+                    "$ref" : "#/components/schemas/PolicyTypeInformation"
+                  },
+                  "type" : "array"
+                }
+              }
+            },
+            "description" : "OK - Policy Type IDs found Ok"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policy-types/{policyTypeId}" : {
+      "get" : {
+        "description" : "Returns a policy type definition",
+        "operationId" : "getPolicyTypeDefinition",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyTypeId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "PolicyTypeObject" : {
+                    "$ref" : "#/components/examples/PolicyTypeObject"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyTypeObject"
+                }
+              }
+            },
+            "description" : "OK - schema of the given policy type"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policies/{policyId}" : {
+      "delete" : {
+        "description" : "Deleting the policy using policyId.",
+        "operationId" : "deletePolicy",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "204" : {
+            "description" : "The A1 policy was deleted"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "405" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Method Not Allowed"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "423" : {
+            "content" : {
+              "application/problem+json" : {
+                "example" : {
+                  "status" : 423,
+                  "title" : "Locked",
+                  "detail" : "State is Locked in the  provided request."
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ErrorInformation"
+                }
+              }
+            },
+            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "summary" : "Delete a policy",
+        "tags" : [ "A1 Policy Management" ]
+      },
+      "get" : {
+        "description" : "Returns a policy",
+        "operationId" : "getPolicy",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "policyObject" : {
+                    "$ref" : "#/components/examples/PolicyObject"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyObject"
+                }
+              }
+            },
+            "description" : "OK - Policy found"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      },
+      "put" : {
+        "description" : "update a policy",
+        "operationId" : "putPolicy",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "examples" : {
+                "policyObject" : {
+                  "$ref" : "#/components/examples/PolicyObject"
+                }
+              },
+              "schema" : {
+                "$ref" : "#/components/schemas/PolicyObject"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyObject"
+                }
+              }
+            },
+            "description" : "OK - Policy updated"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "411" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Length Required"
+          },
+          "413" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Payload Too Large"
+          },
+          "415" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unsupported Media Type"
+          },
+          "423" : {
+            "content" : {
+              "application/problem+json" : {
+                "example" : {
+                  "status" : 423,
+                  "title" : "Locked",
+                  "detail" : "State is Locked in the  provided request."
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ErrorInformation"
+                }
+              }
+            },
+            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policies/{policyId}/status" : {
+      "get" : {
+        "description" : "Query a policy status",
+        "operationId" : "getPolicyStatus",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyStatusObject"
+                }
+              }
+            },
+            "description" : "OK"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policies" : {
+      "get" : {
+        "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" : "getAllPolicies",
+        "parameters" : [ {
+          "description" : "Select policies of a given policy type identity.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "policyTypeId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select policies of a given Near-RT RIC identity.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "nearRtRicId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select policies owned by a given service.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "serviceId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+          "explode" : true,
+          "in" : "query",
+          "name" : "typeName",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "items" : {
+                    "$ref" : "#/components/schemas/PolicyInformation"
+                  },
+                  "type" : "array"
+                }
+              }
+            },
+            "description" : "OK - Policy identities"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "summary" : "Query policy identities",
+        "tags" : [ "A1 Policy Management" ]
+      },
+      "post" : {
+        "description" : "To create A1 policies",
+        "operationId" : "createPolicy",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/PolicyObjectInformation"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "201" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyObjectInformation"
+                }
+              }
+            },
+            "description" : "Success case 201 created",
+            "headers" : {
+              "Location" : {
+                "description" : "Contains the URI of the newly created resource",
+                "explode" : false,
+                "required" : true,
+                "schema" : {
+                  "type" : "string"
+                },
+                "style" : "simple"
+              }
+            }
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "405" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Method Not Allowed"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "409" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Conflict"
+          },
+          "413" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Payload Too Large"
+          },
+          "415" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unsupported Media Type"
+          },
+          "423" : {
+            "content" : {
+              "application/problem+json" : {
+                "example" : {
+                  "status" : 423,
+                  "title" : "Locked",
+                  "detail" : "State is Locked in the  provided request."
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ErrorInformation"
+                }
+              }
+            },
+            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/configuration" : {
+      "get" : {
+        "description" : "Returns the contents of the application configuration",
+        "operationId" : "getConfiguration",
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "type" : "string"
+                }
+              }
+            },
+            "description" : "OK - Application configuration received"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "tags" : [ "Configuration" ]
+      },
+      "put" : {
+        "description" : "Replace the current configuration file with the given configuration",
+        "operationId" : "putConfiguration",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "type" : "object"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            },
+            "description" : "OK - Configuration updated"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          }
+        },
+        "tags" : [ "Configuration" ]
+      }
+    },
+    "/services/{serviceId}/keepalive" : {
+      "put" : {
+        "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+        "operationId" : "keepAliveService",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "serviceId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "type" : "string"
+              }
+            }
+          },
+          "required" : false
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "OK - Service supervision timer refreshed, OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Heartbeat indicates that the service is running",
+        "tags" : [ "Service Registry and Supervision" ]
+      }
+    },
+    "/services" : {
+      "get" : {
+        "description" : "Either information about a registered service with given identity or all registered services are returned.",
+        "operationId" : "getServices",
+        "parameters" : [ {
+          "description" : "The identity of the service",
+          "explode" : true,
+          "in" : "query",
+          "name" : "serviceId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "service_status_list" : {
+                    "$ref" : "#/components/examples/ServiceStatusList"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ServiceStatusList"
+                }
+              }
+            },
+            "description" : "OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Returns service information",
+        "tags" : [ "Service Registry and Supervision" ]
+      },
+      "put" : {
+        "callbacks" : {
+          "RICStatus" : {
+            "{$request.body#/callback_url}" : {
+              "post" : {
+                "description" : "The URL to this call is registered at Service registration. <br>Callouts to indicate status changes relevant for Services. Note that these calls are called by A1-PMS and they are not provided.",
+                "operationId" : "serviceCallback",
+                "requestBody" : {
+                  "content" : {
+                    "application/json" : {
+                      "schema" : {
+                        "$ref" : "#/components/schemas/ServiceCallbackInfo"
+                      }
+                    }
+                  },
+                  "required" : true
+                },
+                "responses" : {
+                  "200" : {
+                    "content" : {
+                      "application/json" : {
+                        "schema" : {
+                          "$ref" : "#/components/schemas/void"
+                        }
+                      }
+                    },
+                    "description" : "OK"
+                  },
+                  "404" : {
+                    "content" : {
+                      "application/problem+json" : {
+                        "schema" : {
+                          "$ref" : "#/components/schemas/ProblemDetails"
+                        }
+                      }
+                    },
+                    "description" : "Not Found"
+                  }
+                },
+                "summary" : "Callback for Near-RT RIC status."
+              }
+            }
+          }
+        },
+        "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+        "operationId" : "putService",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/ServiceRegistrationInfo"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "OK - Service updated"
+          },
+          "201" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "Created - Service created"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          }
+        },
+        "summary" : "Register a service",
+        "tags" : [ "Service Registry and Supervision" ]
+      }
+    },
+    "/services/{serviceId}" : {
+      "delete" : {
+        "description" : "Unregister a service",
+        "operationId" : "deleteService",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "serviceId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "204" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "No Content - Service unregistered"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "tags" : [ "Service Registry and Supervision" ]
+      }
+    }
+  },
+  "components" : {
+    "examples" : {
+      "ServiceStatusList" : {
+        "description" : "List of service information",
+        "value" : {
+          "serviceList" : [ {
+            "callbackUrl" : "callbackUrl",
+            "serviceId" : "serviceId",
+            "keepAliveIntervalSeconds" : 0,
+            "timeSinceLastActivitySeconds" : 6
+          }, {
+            "callbackUrl" : "callbackUrl",
+            "serviceId" : "serviceId",
+            "keepAliveIntervalSeconds" : 0,
+            "timeSinceLastActivitySeconds" : 6
+          } ]
+        }
+      },
+      "PolicyStatusInfo" : {
+        "description" : "Status for one A1-P Policy",
+        "value" : {
+          "lastModified" : "last_modified",
+          "status" : {
+            "value" : {
+              "status" : "status"
+            }
+          }
+        }
+      },
+      "StatusInfo" : {
+        "value" : {
+          "status" : "status"
+        }
+      },
+      "RicInfo" : {
+        "value" : {
+          "ricId" : "ricId",
+          "managedElementIds" : [ "managedElementId", "managedElementId" ],
+          "state" : "UNAVAILABLE",
+          "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+        }
+      },
+      "RicInfoList" : {
+        "value" : {
+          "rics" : [ {
+            "ricId" : "ricId",
+            "managedElementIds" : [ "managedElementId", "managedElementId" ],
+            "state" : "UNAVAILABLE",
+            "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+          }, {
+            "ricId" : "ricId",
+            "managedElementIds" : [ "managedElementId", "managedElementId" ],
+            "state" : "UNAVAILABLE",
+            "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+          } ]
+        }
+      },
+      "PolicyObject" : {
+        "value" : {
+          "scope" : {
+            "ueId" : {
+              "guRanUeId" : {
+                "globalGnbId" : {
+                  "plmnId" : {
+                    "mcc" : "123",
+                    "mnc" : "45"
+                  },
+                  "gnbId" : {
+                    "gnbIdLength" : 24,
+                    "gnbIdValue" : 12345678
+                  }
+                },
+                "RanUeId" : "a31c510b20e64a74"
+              }
+            },
+            "groupId" : {
+              "spId" : 123
+            },
+            "qosId" : {
+              "5qI" : 1
+            },
+            "cellId" : {
+              "plmnId" : {
+                "mcc" : "123",
+                "mnc" : "45"
+              },
+              "cId" : {
+                "ncI" : 123
+              }
+            }
+          },
+          "qosObjectives" : {
+            "gfbr" : 100,
+            "mfbr" : 200,
+            "priorityLevel" : 3,
+            "pdb" : 50
+          }
+        }
+      },
+      "PolicyTypeInformation" : {
+        "value" : [ {
+          "policyTypeId" : "STD_QOS2_0.1.0",
+          "nearRtRicId" : "ricsim_g3_2"
+        }, {
+          "policyTypeId" : "STD_QOS_0_2_0",
+          "nearRtRicId" : "ricsim_g3_2"
+        }, {
+          "policyTypeId" : "STD_QOS2_0.1.0",
+          "nearRtRicId" : "ricsim_g3_1"
+        }, {
+          "policyTypeId" : "STD_QOS_0_2_0",
+          "nearRtRicId" : "ricsim_g3_1"
+        } ]
+      },
+      "PolicyTypeObject" : {
+        "value" : {
+          "policySchema" : {
+            "$schema" : "http://json-schema.org/draft-07/schema#",
+            "title" : "STD_QOS_0_2_0",
+            "description" : "STD QOS2 policy type",
+            "type" : "object",
+            "properties" : {
+              "scope" : {
+                "type" : "object",
+                "properties" : {
+                  "ueId" : {
+                    "type" : "string"
+                  },
+                  "qosId" : {
+                    "type" : "string"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "ueId", "qosId" ]
+              },
+              "qosObjectives" : {
+                "type" : "object",
+                "properties" : {
+                  "priorityLevel" : {
+                    "type" : "number"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "priorityLevel" ]
+              }
+            }
+          }
+        }
+      }
+    },
+    "responses" : {
+      "400" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Bad Request"
+      },
+      "401" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Unauthorized"
+      },
+      "403" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Forbidden"
+      },
+      "404" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Not Found"
+      },
+      "405" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Method Not Allowed"
+      },
+      "406" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Not Acceptable"
+      },
+      "409" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Conflict"
+      },
+      "411" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Length Required"
+      },
+      "413" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Payload Too Large"
+      },
+      "415" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Unsupported Media Type"
+      },
+      "429" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Too Many Request"
+      },
+      "500" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Internal Server Error"
+      },
+      "502" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Bad Gateway"
+      },
+      "503" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Service Unavailable"
+      },
+      "Locked" : {
+        "content" : {
+          "application/problem+json" : {
+            "example" : {
+              "status" : 423,
+              "title" : "Locked",
+              "detail" : "State is Locked in the  provided request."
+            },
+            "schema" : {
+              "$ref" : "#/components/schemas/ErrorInformation"
+            }
+          }
+        },
+        "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+      }
+    },
+    "schemas" : {
+      "PolicyTypeInformation" : {
+        "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+        "example" : {
+          "policyTypeId" : "STD_QOS2_0.1.0",
+          "nearRtRicId" : "ricsim_g3_2"
+        },
+        "properties" : {
+          "policyTypeId" : {
+            "description" : "Identity of the policy type",
+            "type" : "string"
+          },
+          "nearRtRicId" : {
+            "$ref" : "#/components/schemas/NearRtRicId"
+          }
+        },
+        "required" : [ "nearRtRicId", "policyTypeId" ],
+        "type" : "object"
+      },
+      "PolicyObjectInformation" : {
+        "description" : "Information related to the creation of the policy",
+        "properties" : {
+          "nearRtRicId" : {
+            "description" : "Identity of the target Near-RT RIC",
+            "example" : "Near-RT-Ric-ID",
+            "type" : "string"
+          },
+          "transient" : {
+            "default" : false,
+            "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+            "nullable" : false,
+            "type" : "boolean"
+          },
+          "policyId" : {
+            "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",
+            "example" : "POLICY-ID",
+            "type" : "string"
+          },
+          "serviceId" : {
+            "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
+            "example" : "rApp ID",
+            "type" : "string"
+          },
+          "policyObject" : {
+            "$ref" : "#/components/schemas/PolicyObject"
+          },
+          "policyTypeId" : {
+            "description" : "Identity of the policy type",
+            "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
+            "type" : "string"
+          }
+        },
+        "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
+        "type" : "object"
+      },
+      "ErrorInformation" : {
+        "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
+        "properties" : {
+          "detail" : {
+            "description" : " A human-readable explanation specific to this occurrence of the problem.",
+            "example" : "Policy type not found",
+            "type" : "string"
+          },
+          "title" : {
+            "description" : "A specific error name",
+            "example" : "Not Found",
+            "type" : "string"
+          },
+          "status" : {
+            "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+            "example" : 404,
+            "format" : "int32",
+            "type" : "integer"
+          }
+        },
+        "type" : "object"
+      },
+      "PolicyObject" : {
+        "description" : "Policy Object is a JSON representation of an A1 policy",
+        "type" : "object"
+      },
+      "PolicyTypeObject" : {
+        "description" : "policy type object as defined in A1TD",
+        "example" : {
+          "policySchema" : {
+            "$schema" : "http://json-schema.org/draft-07/schema#",
+            "title" : "STD_QOS_0_2_0",
+            "description" : "STD QOS policy type",
+            "type" : "object",
+            "properties" : {
+              "scope" : {
+                "type" : "object",
+                "properties" : {
+                  "ueId" : {
+                    "type" : "string"
+                  },
+                  "qosId" : {
+                    "type" : "string"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "ueId", "qosId" ]
+              },
+              "qosObjectives" : {
+                "type" : "object",
+                "properties" : {
+                  "priorityLevel" : {
+                    "type" : "number"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "priorityLevel" ]
+              }
+            }
+          },
+          "statusSchema" : {
+            "$schema" : "http://json-schema.org/draft-07/schema#",
+            "title" : "STD_QOS_0.2.0",
+            "description" : "STD QOS policy type status",
+            "type" : "object",
+            "properties" : {
+              "enforceStatus" : {
+                "type" : "string"
+              },
+              "enforceReason" : {
+                "type" : "string"
+              },
+              "additionalProperties" : false,
+              "required" : [ "enforceStatus" ]
+            }
+          }
+        },
+        "properties" : {
+          "policySchema" : {
+            "$ref" : "#/components/schemas/PolicySchema"
+          },
+          "statusSchema" : {
+            "$ref" : "#/components/schemas/StatusSchema"
+          }
+        },
+        "required" : [ "policySchema" ],
+        "type" : "object"
+      },
+      "PolicySchema" : {
+        "description" : "The schemas are policy type specific",
+        "type" : "object"
+      },
+      "StatusSchema" : {
+        "description" : "The optional schema for policy status",
+        "type" : "object"
+      },
+      "PolicyStatusObject" : {
+        "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a policy status shall be valid according to the schema of its specific policy type.",
+        "type" : "object"
+      },
+      "void" : {
+        "description" : "Void/empty",
+        "type" : "object"
+      },
+      "StatusInfo" : {
+        "properties" : {
+          "status" : {
+            "description" : "status text",
+            "type" : "string"
+          }
+        },
+        "type" : "object"
+      },
+      "AuthorizationResult" : {
+        "description" : "Result of authorization",
+        "example" : {
+          "result" : true
+        },
+        "properties" : {
+          "result" : {
+            "description" : "If true, the access is granted",
+            "type" : "boolean"
+          }
+        },
+        "required" : [ "result" ],
+        "type" : "object"
+      },
+      "RicInfo" : {
+        "description" : "Information for a Near-RT RIC",
+        "properties" : {
+          "ricId" : {
+            "description" : "Identity of the Near-RT RIC",
+            "type" : "string"
+          },
+          "managedElementIds" : {
+            "description" : "O1 identities for managed entities",
+            "items" : {
+              "description" : "O1 identities for managed entities",
+              "type" : "string"
+            },
+            "type" : "array"
+          },
+          "state" : {
+            "description" : "Represents the states for a Near-RT RIC",
+            "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
+            "type" : "string"
+          },
+          "policyTypeIds" : {
+            "description" : "supported policy types",
+            "items" : {
+              "description" : "supported policy types",
+              "type" : "string"
+            },
+            "type" : "array"
+          }
+        },
+        "type" : "object"
+      },
+      "ServiceRegistrationInfo" : {
+        "description" : "Information for one service",
+        "properties" : {
+          "callbackUrl" : {
+            "description" : "callback for notifying of Near-RT RIC state changes",
+            "type" : "string"
+          },
+          "serviceId" : {
+            "description" : "Identity of the service",
+            "type" : "string"
+          },
+          "keepAliveIntervalSeconds" : {
+            "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+            "format" : "int64",
+            "type" : "integer"
+          }
+        },
+        "required" : [ "serviceId" ],
+        "type" : "object"
+      },
+      "PolicyStatusInfo" : {
+        "description" : "Status for one A1-P Policy",
+        "properties" : {
+          "lastModified" : {
+            "description" : "timestamp, last modification time",
+            "type" : "string"
+          },
+          "status" : {
+            "description" : "the Policy status",
+            "type" : "object"
+          }
+        },
+        "type" : "object"
+      },
+      "ServiceStatus" : {
+        "properties" : {
+          "callbackUrl" : {
+            "description" : "callback for notifying of RIC synchronization",
+            "type" : "string"
+          },
+          "serviceId" : {
+            "description" : "Identity of the service",
+            "type" : "string"
+          },
+          "keepAliveIntervalSeconds" : {
+            "description" : "policy keep alive timeout",
+            "format" : "int64",
+            "type" : "integer"
+          },
+          "timeSinceLastActivitySeconds" : {
+            "description" : "time since last invocation by the service",
+            "format" : "int64",
+            "type" : "integer"
+          }
+        },
+        "type" : "object"
+      },
+      "RicInfoList" : {
+        "description" : "List of Near-RT RIC information",
+        "properties" : {
+          "rics" : {
+            "description" : "List of Near-RT RIC information",
+            "items" : {
+              "$ref" : "#/components/schemas/RicInfo"
+            },
+            "type" : "array"
+          }
+        },
+        "type" : "object"
+      },
+      "input" : {
+        "description" : "input",
+        "properties" : {
+          "accessType" : {
+            "description" : "Access type",
+            "enum" : [ "READ", "WRITE", "DELETE" ],
+            "type" : "string"
+          },
+          "authToken" : {
+            "description" : "Authorization token",
+            "type" : "string"
+          },
+          "policyTypeId" : {
+            "description" : "Policy type identifier",
+            "type" : "string"
+          }
+        },
+        "required" : [ "accessType", "authToken", "policyTypeId" ],
+        "type" : "object"
+      },
+      "PolicyAuthorization" : {
+        "description" : "Authorization request for A1 policy requests",
+        "properties" : {
+          "input" : {
+            "$ref" : "#/components/schemas/input"
+          }
+        },
+        "required" : [ "input" ],
+        "type" : "object"
+      },
+      "NearRtRicId" : {
+        "description" : "Identity of the policy",
+        "type" : "string"
+      },
+      "PolicyInformation" : {
+        "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC",
+        "properties" : {
+          "policyId" : {
+            "description" : "Identity of the policy",
+            "type" : "string"
+          },
+          "nearRtRicId" : {
+            "$ref" : "#/components/schemas/NearRtRicId"
+          }
+        },
+        "required" : [ "nearRtRicId", "policyId" ],
+        "type" : "object"
+      },
+      "ServiceStatusList" : {
+        "properties" : {
+          "serviceList" : {
+            "description" : "List of service information",
+            "items" : {
+              "$ref" : "#/components/schemas/ServiceStatus"
+            },
+            "type" : "array"
+          }
+        },
+        "type" : "object"
+      },
+      "ServiceCallbackInfo" : {
+        "description" : "Information transferred as in Service callbacks (callback_url)",
+        "properties" : {
+          "ricId" : {
+            "description" : "Identity of a Near-RT RIC",
+            "type" : "string"
+          },
+          "eventType" : {
+            "description" : "values:\nAVAILABLE: the  Near-RT RIC has become available for A1 Policy management",
+            "enum" : [ "AVAILABLE" ],
+            "type" : "string"
+          }
+        },
+        "required" : [ "eventType", "ricId" ],
+        "type" : "object"
+      },
+      "Link" : {
+        "properties" : {
+          "templated" : {
+            "type" : "boolean"
+          },
+          "href" : {
+            "type" : "string"
+          }
+        },
+        "type" : "object"
+      },
+      "ProblemDetails" : {
+        "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
+        "properties" : {
+          "type" : {
+            "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type",
+            "type" : "string"
+          },
+          "title" : {
+            "description" : "human-readable summary of the problem type",
+            "type" : "string"
+          },
+          "status" : {
+            "description" : "the HTTP status code",
+            "type" : "number"
+          },
+          "detail" : {
+            "description" : "human-readable explanation ",
+            "type" : "string"
+          },
+          "instance" : {
+            "description" : "URI reference that identifies the specific occurrence of the problem",
+            "type" : "string"
+          }
+        },
+        "type" : "object"
+      }
+    }
+  }
+}
\ No newline at end of file
index d8d3041..0fc875f 100644 (file)
@@ -5,9 +5,9 @@
       "email" : "discuss-list@onap.com",
       "url" : "https://www.onap.org/"
     },
-    "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
+    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
     "license" : {
-      "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
+      "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
       "url" : "http://www.apache.org/licenses/LICENSE-2.0"
     },
     "title" : "A1 policy management API",
     "variables" : {
       "apiRoot" : {
         "default" : "https://example.com",
-        "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed"
+        "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance (r) R1-AP specifiactions for A1 Policy Management"
       }
     }
   } ],
   "tags" : [ {
-    "description" : "API used to create polices, Policy Instances and get  them as individual using an ID or get all policies/Instances.",
+    "description" : "**(Newer Version)** API used to create polices, Policy Instances and get  them as individual using an ID or get all policies/Instances.",
     "name" : "A1 Policy Management"
   }, {
     "description" : "API used to get the NearRT-RIC for the managed element.",
@@ -36,8 +36,6 @@
   }, {
     "description" : "API used to get the health status and statistics of this service",
     "name" : "Health Check"
-  }, {
-    "name" : "Service callbacks"
   }, {
     "description" : "API used to create or fetch the application configuration.",
     "name" : "Configuration"
           "RICStatus" : {
             "{$request.body#/callback_url}" : {
               "post" : {
-                "description" : "The URL to this call is registered at Service registration.",
+                "description" : "The URL to this call is registered at Service registration. <br>Callouts to indicate status changes relevant for Services. Note that these calls are called by A1-PMS and they are not provided.",
                 "operationId" : "serviceCallback",
                 "requestBody" : {
                   "content" : {
                     "description" : "Not Found"
                   }
                 },
-                "summary" : "Callback for Near-RT RIC status",
-                "tags" : [ "Service callbacks" ]
+                "summary" : "Callback for Near-RT RIC status."
               }
             }
           }
         "description" : "Information related to the creation of the policy",
         "properties" : {
           "nearRtRicId" : {
-            "description" : "identity of the target Near-RT RIC",
+            "description" : "Identity of the target Near-RT RIC",
             "example" : "Near-RT-Ric-ID",
             "type" : "string"
           },
           "transient" : {
             "default" : false,
-            "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+            "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
             "nullable" : false,
             "type" : "boolean"
           },
           "policyId" : {
-            "description" : "identity of the Policy",
+            "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",
             "example" : "POLICY-ID",
             "type" : "string"
           },
             "$ref" : "#/components/schemas/PolicyObject"
           },
           "policyTypeId" : {
-            "description" : "identity of the policy type",
+            "description" : "Identity of the policy type",
             "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
             "type" : "string"
           }
         "description" : "Information for a Near-RT RIC",
         "properties" : {
           "ricId" : {
-            "description" : "identity of the Near-RT RIC",
+            "description" : "Identity of the Near-RT RIC",
             "type" : "string"
           },
           "managedElementIds" : {
             "type" : "string"
           },
           "serviceId" : {
-            "description" : "identity of the service",
+            "description" : "Identity of the service",
             "type" : "string"
           },
           "keepAliveIntervalSeconds" : {
             "type" : "string"
           },
           "serviceId" : {
-            "description" : "identity of the service",
+            "description" : "Identity of the service",
             "type" : "string"
           },
           "keepAliveIntervalSeconds" : {
         "description" : "Information transferred as in Service callbacks (callback_url)",
         "properties" : {
           "ricId" : {
-            "description" : "identity of a Near-RT RIC",
+            "description" : "Identity of a Near-RT RIC",
             "type" : "string"
           },
           "eventType" : {
index 8bcfdf4..e21f679 100644 (file)
@@ -1,5 +1,5 @@
 #  ============LICENSE_START=======================================================
-#  Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+#  Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. All rights reserved.
 #  ================================================================================
 #  Licensed under the Apache License, Version 2.0 (the "License");
 #  you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ info:
   version: 1.0.0
   x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8
   x-audience: external-public
-  description: "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service\
+  description: "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service\
         \ provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the\
         \ service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring\
         \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining\
@@ -47,7 +47,7 @@ info:
         \ for access control of A1 Policy access. If configured, an external authorization\
         \ provider is requested to grant access to the A1 Policy type.</p>"
   license:
-    name: Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.
+    name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.
     url: http://www.apache.org/licenses/LICENSE-2.0
   contact:
     url: https://www.onap.org/
@@ -57,17 +57,17 @@ servers:
     variables:
       apiRoot:
         default: 'https://example.com'
-        description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed'
+        description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed.
+         Note: This URL path format aligns with the O-RAN Alliance (r) R1-AP specifiactions for A1 Policy Management'
 tags:
   - name: A1 Policy Management
-    description: "API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances."
+    description: "**(Newer Version)** API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances."
   - name: NearRT-RIC Repository
     description: "API used to get the NearRT-RIC for the managed element."
   - name: Service Registry and Supervision
     description: "API used to keep the service Alive with in the timeout period"
   - name: Health Check
     description: "API used to get the health status and statistics of this service"
-  - name: Service callbacks
   - name: Configuration
     description: "API used to create or fetch the application configuration."
 paths:
@@ -761,7 +761,7 @@ paths:
         RICStatus:
           "{$request.body#/callback_url}":
             post:
-              description: The URL to this call is registered at Service registration.
+              description: 'The URL to this call is registered at Service registration. <br>Callouts to indicate status changes relevant for Services. Note that these calls are called by A1-PMS and they are not provided.'
               operationId: serviceCallback
               requestBody:
                 content:
@@ -778,9 +778,7 @@ paths:
                   description: OK
                 "404":
                   $ref: '#/components/responses/404'
-              summary: Callback for Near-RT RIC status
-              tags:
-                - Service callbacks
+              summary: "Callback for Near-RT RIC status."
   /services/{serviceId}:
     delete:
       operationId: deleteService
@@ -953,19 +951,19 @@ components:
       type: object
       properties:
         nearRtRicId:
-          description: identity of the target Near-RT RIC
+          description: Identity of the target Near-RT RIC
           type: string
           example:
             'Near-RT-Ric-ID'
         transient:
           default: false
-          description: "if true, the policy is deleted at RIC restart. If false, its\
+          description: "If true, the policy is deleted at RIC restart. If false, its\
                 \ value is maintained by this service until explicitly deleted. Default\
                 \ false."
           nullable: false
           type: boolean
         policyId:
-          description: identity of the Policy
+          description: The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.
           type: string
           example:
             'POLICY-ID'
@@ -979,7 +977,7 @@ components:
         policyObject:
           $ref: '#/components/schemas/PolicyObject'
         policyTypeId:
-          description: identity of the policy type
+          description: Identity of the policy type
           type: string
           example: 'ORAN_QOS_1.0.0(typeName_SemVersion)'
       required:
@@ -1090,7 +1088,7 @@ components:
       description: Information for a Near-RT RIC
       properties:
         ricId:
-          description: identity of the Near-RT RIC
+          description: Identity of the Near-RT RIC
           type: string
         managedElementIds:
           description: O1 identities for managed entities
@@ -1120,7 +1118,7 @@ components:
           description: callback for notifying of Near-RT RIC state changes
           type: string
         serviceId:
-          description: identity of the service
+          description: Identity of the service
           type: string
         keepAliveIntervalSeconds:
           description: "keep alive interval for the service. This is used to enable\
@@ -1151,7 +1149,7 @@ components:
           description: callback for notifying of RIC synchronization
           type: string
         serviceId:
-          description: identity of the service
+          description: Identity of the service
           type: string
         keepAliveIntervalSeconds:
           description: policy keep alive timeout
@@ -1230,7 +1228,7 @@ components:
       description: Information transferred as in Service callbacks (callback_url)
       properties:
         ricId:
-          description: identity of a Near-RT RIC
+          description: Identity of a Near-RT RIC
           type: string
         eventType:
           description: "values:\nAVAILABLE: the  Near-RT RIC has become available\
index deb5743..036e7fe 100644 (file)
@@ -5,12 +5,12 @@
       "email" : "discuss-list@onap.com",
       "url" : "https://www.onap.org/"
     },
-    "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>",
+    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>",
     "license" : {
-      "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+      "name" : "Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved. Licensed under the Apache 2 License.",
       "url" : "http://www.apache.org/licenses/LICENSE-2.0"
     },
-    "title" : "A1 Policy Management Service",
+    "title" : "ONAP CCSDK A1 Policy Management Service",
     "version" : "1.3.0",
     "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
     "x-audience" : "external-public"
@@ -19,8 +19,8 @@
     "url" : "/"
   } ],
   "tags" : [ {
-    "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
-    "name" : "A1 Policy Management"
+    "description" : "Older API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+    "name" : "A1 Policy Management (Older version)"
   }, {
     "description" : "API used to get the NearRT-RIC for the managed element.",
     "name" : "NearRT-RIC Repository"
     "description" : "API used to get the health status and statistics of this service",
     "name" : "Health Check"
   }, {
+    "description" : "Callouts to indicate status schanges relevant for Services. <br> Note that these calls are called by A1-PMS, not provided.",
     "name" : "Service callbacks"
   }, {
-    "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided.",
+    "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by A1-PMS, it is not provided.",
     "name" : "Authorization API"
   }, {
     "description" : "API used to create or fetch the application configuration.",
index c0b50d4..421201e 100644 (file)
@@ -1,6 +1,4 @@
-#  ============LICENSE_START=======================================================
-#  Copyright (C) 2020-2023 Nordix Foundation
-#  Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved.
+#  Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved.
 #  Modifications Copyright (C) 2021 Pantheon.tech
 #  Modifications Copyright (C) 2021 Bell Canada
 #  ================================================================================
@@ -23,7 +21,7 @@ openapi: 3.0.3
 info:
   x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8
   x-audience: external-public
-  description: "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service\
+  description: "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service\
     \ provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the\
     \ service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring\
     \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining\
@@ -50,9 +48,10 @@ info:
     \ Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring\
     \ web application.</p>"
   license:
-    name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.
+    name: Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. 
+      All rights reserved. Licensed under the Apache 2 License.
     url: http://www.apache.org/licenses/LICENSE-2.0
-  title: A1 Policy Management Service
+  title: ONAP CCSDK A1 Policy Management Service
   version: 1.3.0
   contact:
     url: https://www.onap.org/
@@ -60,9 +59,9 @@ info:
 servers:
   - url: /
 tags:
-  - name: A1 Policy Management
-    description: "API used to create polices, Policy Instances and get them as individual
-    using an ID or get all policies/Instances."
+  - name: A1 Policy Management (Older version)
+    description: "Older API used to create polices, Policy Instances and get them as individual
+     using an ID or get all policies/Instances."
   - name: NearRT-RIC Repository
     description: "API used to get the NearRT-RIC for the managed element."
   - name: Service Registry and Supervision
@@ -70,10 +69,12 @@ tags:
   - name: Health Check
     description: "API used to get the health status and statistics of this service"
   - name: Service callbacks
+    description: "Callouts to indicate status schanges relevant for Services.
+     <br> Note that these calls are called by A1-PMS, not provided."
   - name: Authorization API
     description: "API used for authorization of information A1 policy access (this is
      provided by an authorization producer such as OPA). <br> Note that this API is called
-     by PMS, it is not provided."
+     by A1-PMS, it is not provided."
   - name: Configuration
     description: "API used to create or fetch the application configuration."
   - name: Actuator
index 59d2eba..d5e4067 100644 (file)
@@ -4,7 +4,7 @@
   ~ ONAP : ccsdk oran
   ~ ================================================================================
   ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
-  ~ Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+  ~ Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved.
   ~ ================================================================================
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
             <dependency>
                 <groupId>io.opentelemetry</groupId>
                 <artifactId>opentelemetry-bom</artifactId>
-                <version>1.41.0</version>
+                <version>1.46.0</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
             <dependency>
                 <groupId>io.opentelemetry.instrumentation</groupId>
                 <artifactId>opentelemetry-instrumentation-bom-alpha</artifactId>
-                <version>2.7.0-alpha</version>
+                <version>2.12.0-alpha</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
                     </execution>
                     <execution>
                         <id>generate-openapi-json-custom-a1pms</id>
+                        <!-- Create a version of OpenAPI file with a subset of the APIs present-->
                         <phase>prepare-package</phase>
                         <goals>
                             <goal>generate</goal>
                         <configuration>
                             <inputSpec>${project.basedir}/api/offeredapis/swagger/pms-api-v3.yaml</inputSpec>
                             <generatorName>openapi</generatorName>
-                            <apisToGenerate>A1PolicyManagement</apisToGenerate>
-                            <output>${project.basedir}/api/offeredapis/swagger</output>
+                            <apisToGenerate>A1PolicyManagement</apisToGenerate> <!-- Select which apis to include. Current pms-api-v3 only has one API -->
+                            <output>${project.basedir}/api/offeredapis/swagger/custom</output>
                             <configOptions>
-                                <outputFileName>a1pms-api-v3.json</outputFileName>
+                                <outputFileName>a1pms-api-custom-v3.json</outputFileName>
                             </configOptions>
                         </configuration>
                     </execution>
                                     provides a REST API for managing O-RAN A1 Policies.</appDescription>
                                 <appName>ONAP CCSDK A1 Policy Management Service</appName>
                                 <infoUrl>https://lf-onap.atlassian.net/wiki/spaces/DW/pages/16444961/O-RAN+A1+Policies+in+ONAP</infoUrl>
-                                <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation. Licensed
-                                    under the Apache License, and Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.</licenseInfo>
+                                <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation and Copyright (C) 2024-2025 OpenInfra Foundation Europe.
+                                    All rights reserved. Licensed under the Apache 2 License, </licenseInfo>
                                 <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
                             </configOptions>
                         </configuration>
                             <skipOperationExample>false</skipOperationExample>
                             <strictSpec>false</strictSpec>
                             <configOptions>
-                                <appDescription>The O-RAN Non-RT RIC Policy Management Service
+                                <appDescription>The ONAP CCSDK A1 Policy Management Service
                                     provides a REST API for managing O-RAN A1 Policies.</appDescription>
                                 <appName>ONAP CCSDK A1 Policy Management Service</appName>
                                 <infoUrl>https://lf-onap.atlassian.net/wiki/spaces/DW/pages/16444961/O-RAN+A1+Policies+in+ONAP</infoUrl>
-                                <licenseInfo>Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.</licenseInfo>
+                                <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation and Copyright (C) 2024-2025 OpenInfra Foundation Europe.
+                                    All rights reserved.</licenseInfo>
                                 <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
                             </configOptions>
                         </configuration>
                     </execution>
                     <execution>
                         <id>generate-openapi-html-custom-a1pms</id>
+                        <!-- Create a version of OpenAPI documentation with a subset of the APIs present-->
                         <phase>prepare-package</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
                         <configuration>
-                            <inputSpec>${project.basedir}/api/offeredapis/swagger/a1pms-api-v3.json</inputSpec>
+                            <inputSpec>${project.basedir}/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json</inputSpec>
                             <generatorName>html2</generatorName>
                             <output>${project.basedir}/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom</output>
                             <skipOperationExample>false</skipOperationExample>
                             <strictSpec>false</strictSpec>
-                            <apisToGenerate>A1PolicyManagement</apisToGenerate>
+                            <apisToGenerate>A1PolicyManagement</apisToGenerate> <!-- Select which apis to include. Current a1pms-api-custom-v3 only has one API -->
                             <configOptions>
-                                <appDescription>The O-RAN Non-RT RIC Policy Management Service
+                                <appDescription>The ONAP CCSDK A1 Policy Management Service
                                     provides a REST API for managing O-RAN A1 Policies.</appDescription>
                                 <appName>ONAP CCSDK A1 Policy Management Service</appName>
                                 <infoUrl>https://lf-onap.atlassian.net/wiki/spaces/DW/pages/16444961/O-RAN+A1+Policies+in+ONAP</infoUrl>
-                                <licenseInfo>Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.</licenseInfo>
+                                <licenseInfo>Copyright (C) 2020-2023 Nordix Foundation and Copyright (C) 2024-2025 OpenInfra Foundation Europe.
+                                    All rights reserved.</licenseInfo>
                                 <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
                             </configOptions>
                         </configuration>
                                         <include>swagger/pms-api.yaml</include>
                                         <include>swagger/pms-api-v3.json</include>
                                         <include>swagger/pms-api-v3.yaml</include>
-                                        <include>swagger/a1pms-api-v3.json</include>
+                                        <include>swagger/custom/a1pms-api-custom-v3.json</include>
                                         <include>openapitoolgen/offeredapis/pms-api/index.html</include>
                                         <include>openapitoolgen/offeredapis/pms-api/v3/index.html</include>
                                         <include>openapitoolgen/offeredapis/pms-api/v3/custom/index.html</include>
diff --git a/docs/media/ORAN-A1PolicyFunction-Architecture-Istanbul.png b/docs/media/ORAN-A1PolicyFunction-Architecture-Istanbul.png
new file mode 100644 (file)
index 0000000..dc78a7b
Binary files /dev/null and b/docs/media/ORAN-A1PolicyFunction-Architecture-Istanbul.png differ
index f510bb7..579b4aa 100644 (file)
@@ -47,9 +47,8 @@ API Table
    :header: "API name", "|swagger-icon|", "|yaml-icon|"
    :widths: 10,5, 5
 
-   "A1 Policy Management Service API (NBI)", ":download:`link <./swagger/pms-api.json>`", ":download:`link <./swagger/pms-api.yaml>`"
-   "A1 PolicyManagementService, ServiceRegistry, Configuration, and NearRT-RIC Repository API V3 (NBI)", ":download:`link <./swagger/pms-api-v3.json>`", ":download:`link <./swagger/pms-api-v3.yaml>`"
-   "A1 Policy Management Service API V3 (NBI)", ":download:`link <./swagger/a1pms-api-v3.json>`"
+   "Older A1PolicyManagementService, ServiceRegistry, Configuration, NearRT-RIC Repository, Health Check APIs, and Admin/Actuator APIs (NBI)", ":download:`link <./swagger/pms-api.json>`", ":download:`link <./swagger/pms-api.yaml>`"
+   "New 'V3' A1PolicyManagementService, ServiceRegistry, Configuration, NearRT-RIC Repository, and Health Check APIs (NBI)", ":download:`link <./swagger/pms-api-v3.json>`", ":download:`link <./swagger/pms-api-v3.yaml>`"
    "A1 ADAPTER API (Internal)", ":download:`link <./swagger/a1-adapter-api.json>`", ":download:`link <./swagger/a1-adapter-api.yaml>`"
 
 .. _pms_api:
@@ -57,8 +56,9 @@ API Table
 A1 Policy Management Service API
 ................................
 
-The A1 Policy Management Service API is described in more detail in `A1 Policy Management Service API (html) <./pms-api.html>`_
-A1 PolicyManagementService, ServiceRegistry, Configuration, and NearRT-RIC Repository API version 3 is described in more detail at `A1 Policy Management Service API V3 (html) <./pms-api-v3.html>`_
+The new "V3" A1 PolicyManagementService, ServiceRegistry, Configuration, NearRT-RIC Repository, and Health Check APIs (NBI) are described in more detail in `A1 Policy Management Service API (html) <./pms-api.html>`_
+
+The older A1PolicyManagementService, ServiceRegistry, Configuration, NearRT-RIC Repository, Health Check APIs, and Admin/Actuator APIs are described in more detail at `A1 Policy Management Service API "V3" (html) <./pms-api-v3.html>`_
 
 .. _a1_adapter_api:
 
index 9580d53..c59e622 100644 (file)
@@ -2,7 +2,7 @@
 <html>
 <head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-  <title>A1 Policy Management Service</title>
+  <title>ONAP CCSDK A1 Policy Management Service</title>
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <meta charset="UTF-8" />
@@ -1240,7 +1240,7 @@ ul.nav-tabs {
       <div id="content">
         <div id="project">
           <div class="pull-left">
-            <h1>A1 Policy Management Service</h1>
+            <h1>ONAP CCSDK A1 Policy Management Service</h1>
           </div>
           <div class="clearfix"></div>
         </div>
@@ -1250,7 +1250,7 @@ ul.nav-tabs {
               <div class="app-desc">Version: 1.3.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>
+                <h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>
 
             </div>
           </div>
@@ -1385,10 +1385,10 @@ String *policyId = policyId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-deletePolicy-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -1831,10 +1831,10 @@ String *policyId = policyId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicy-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -2284,10 +2284,10 @@ String *typeName = typeName_example; // Select policies of types with the given
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyIds-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var opts = {
   'policytypeId': policytypeId_example, // {String} Select policies of a given policy type identity.
   'ricId': ricId_example, // {String} Select policies of a given Near-RT RIC identity.
@@ -2819,10 +2819,10 @@ String *typeName = typeName_example; // Select policies of a given type name (ty
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyInstances-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var opts = {
   'policytypeId': policytypeId_example, // {String} Select policies with a given type identity.
   'ricId': ricId_example, // {String} Select policies for a given Near-RT RIC identity.
@@ -3345,10 +3345,10 @@ String *policyId = policyId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyStatus-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -3782,10 +3782,10 @@ String *policytypeId = policytypeId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policytypeId = policytypeId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -4229,10 +4229,10 @@ String *compatibleWithVersion = compatibleWithVersion_example; // Select types t
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypes-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var opts = {
   'ricId': ricId_example, // {String} Select types for the given Near-RT RIC identity.
   'typeName': typeName_example, // {String} Select types with the given type name (type identity has the format <typename_version>)
@@ -4722,10 +4722,10 @@ PolicyInfo *policyInfo = ; //
                             </div>
 
                             <div class="tab-pane" id="examples-A1PolicyManagement-putPolicy-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OnapCcsdkA1PolicyManagementService.A1PolicyManagementApi()
 var policyInfo = ; // {PolicyInfo} 
 
 var callback = function(error, data, response) {
@@ -5269,10 +5269,10 @@ PolicyAuthorization *policyAuthorization = ; //
                             </div>
 
                             <div class="tab-pane" id="examples-AuthorizationAPI-performAccessControl-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.AuthorizationAPIApi()
+var api = new OnapCcsdkA1PolicyManagementService.AuthorizationAPIApi()
 var policyAuthorization = ; // {PolicyAuthorization} 
 
 var callback = function(error, data, response) {
@@ -5735,10 +5735,10 @@ ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
                             </div>
 
                             <div class="tab-pane" id="examples-Configuration-getConfiguration-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ConfigurationApi()
+var api = new OnapCcsdkA1PolicyManagementService.ConfigurationApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -6135,10 +6135,10 @@ Object *body = Object; //
                             </div>
 
                             <div class="tab-pane" id="examples-Configuration-putConfiguration-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ConfigurationApi()
+var api = new OnapCcsdkA1PolicyManagementService.ConfigurationApi()
 var body = Object; // {Object} 
 
 var callback = function(error, data, response) {
@@ -6599,10 +6599,10 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
                             </div>
 
                             <div class="tab-pane" id="examples-HealthCheck-getStatus-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.HealthCheckApi()
+var api = new OnapCcsdkA1PolicyManagementService.HealthCheckApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -6929,10 +6929,10 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
                             </div>
 
                             <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.HealthCheckApi()
+var api = new OnapCcsdkA1PolicyManagementService.HealthCheckApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -7267,10 +7267,10 @@ String *ricId = ricId_example; // The identity of a Near-RT RIC to get informati
                             </div>
 
                             <div class="tab-pane" id="examples-NearRTRICRepository-getRic-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.NearRTRICRepositoryApi()
+var api = new OnapCcsdkA1PolicyManagementService.NearRTRICRepositoryApi()
 var opts = {
   'managedElementId': managedElementId_example, // {String} The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.
   'ricId': ricId_example // {String} The identity of a Near-RT RIC to get information for.
@@ -7735,10 +7735,10 @@ String *policytypeId = policytypeId_example; // The identity of a policy type. I
                             </div>
 
                             <div class="tab-pane" id="examples-NearRTRICRepository-getRics-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.NearRTRICRepositoryApi()
+var api = new OnapCcsdkA1PolicyManagementService.NearRTRICRepositoryApi()
 var opts = {
   'policytypeId': policytypeId_example // {String} The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
 };
@@ -8179,10 +8179,10 @@ String *serviceId = serviceId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-deleteService-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -8612,10 +8612,10 @@ String *serviceId = serviceId_example; // The identity of the service (optional)
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-getServices-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var opts = {
   'serviceId': serviceId_example // {String} The identity of the service
 };
@@ -9054,10 +9054,10 @@ String *serviceId = serviceId_example; //  (default to null)
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-keepAliveService-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -9491,10 +9491,10 @@ ServiceRegistrationInfo *serviceRegistrationInfo = ; //
                             </div>
 
                             <div class="tab-pane" id="examples-ServiceRegistryAndSupervision-putService-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
+                              <pre class="prettyprint"><code class="language-js">var OnapCcsdkA1PolicyManagementService = require('onap_ccsdk_a1_policy_management_service');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
+var api = new OnapCcsdkA1PolicyManagementService.ServiceRegistryAndSupervisionApi()
 var serviceRegistrationInfo = ; // {ServiceRegistrationInfo} 
 
 var callback = function(error, data, response) {
@@ -9916,7 +9916,7 @@ $(document).ready(function() {
                   <div class="app-desc">Information URL: <a href="https://www.onap.org/">https://www.onap.org/</a></div>
                   <div class="app-desc">Contact Info: <a href="discuss-list@onap.com">discuss-list@onap.com</a></div>
               </p>
-                <div class="license-info">Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.</div>
+                <div class="license-info">Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved. Licensed under the Apache 2 License.</div>
                 <div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
             </div>
           </div>
index 2defcfb..db7407b 100644 (file)
@@ -941,18 +941,18 @@ ul.nav-tabs {
   "properties" : {\r
     "nearRtRicId" : {\r
       "type" : "string",\r
-      "description" : "identity of the target Near-RT RIC",\r
+      "description" : "Identity of the target Near-RT RIC",\r
       "example" : "Near-RT-Ric-ID"\r
     },\r
     "transient" : {\r
       "type" : "boolean",\r
-      "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
+      "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
       "nullable" : false,\r
       "default" : false\r
     },\r
     "policyId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Policy",\r
+      "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",\r
       "example" : "POLICY-ID"\r
     },\r
     "serviceId" : {\r
@@ -965,7 +965,7 @@ ul.nav-tabs {
     },\r
     "policyTypeId" : {\r
       "type" : "string",\r
-      "description" : "identity of the policy type",\r
+      "description" : "Identity of the policy type",\r
       "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)"\r
     }\r
   },\r
@@ -1096,7 +1096,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Near-RT RIC"\r
+      "description" : "Identity of the Near-RT RIC"\r
     },\r
     "managedElementIds" : {\r
       "type" : "array",\r
@@ -1141,7 +1141,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of a Near-RT RIC"\r
+      "description" : "Identity of a Near-RT RIC"\r
     },\r
     "eventType" : {\r
       "type" : "string",\r
@@ -1161,7 +1161,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1180,7 +1180,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1279,7 +1279,7 @@ ul.nav-tabs {
               <div class="app-desc">Version: 1.0.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
+                <h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
 
             </div>
           </div>
@@ -11049,7 +11049,7 @@ $(document).ready(function() {
                   <div class="app-desc">Information URL: <a href="https://www.onap.org/">https://www.onap.org/</a></div>
                   <div class="app-desc">Contact Info: <a href="discuss-list@onap.com">discuss-list@onap.com</a></div>
               </p>
-                <div class="license-info">Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.</div>
+                <div class="license-info">Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.</div>
                 <div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
             </div>
           </div>
index 0e7aaa7..9528041 100644 (file)
@@ -941,18 +941,18 @@ ul.nav-tabs {
   "properties" : {\r
     "nearRtRicId" : {\r
       "type" : "string",\r
-      "description" : "identity of the target Near-RT RIC",\r
+      "description" : "Identity of the target Near-RT RIC",\r
       "example" : "Near-RT-Ric-ID"\r
     },\r
     "transient" : {\r
       "type" : "boolean",\r
-      "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
+      "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",\r
       "nullable" : false,\r
       "default" : false\r
     },\r
     "policyId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Policy",\r
+      "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",\r
       "example" : "POLICY-ID"\r
     },\r
     "serviceId" : {\r
@@ -965,7 +965,7 @@ ul.nav-tabs {
     },\r
     "policyTypeId" : {\r
       "type" : "string",\r
-      "description" : "identity of the policy type",\r
+      "description" : "Identity of the policy type",\r
       "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)"\r
     }\r
   },\r
@@ -1096,7 +1096,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of the Near-RT RIC"\r
+      "description" : "Identity of the Near-RT RIC"\r
     },\r
     "managedElementIds" : {\r
       "type" : "array",\r
@@ -1141,7 +1141,7 @@ ul.nav-tabs {
   "properties" : {\r
     "ricId" : {\r
       "type" : "string",\r
-      "description" : "identity of a Near-RT RIC"\r
+      "description" : "Identity of a Near-RT RIC"\r
     },\r
     "eventType" : {\r
       "type" : "string",\r
@@ -1161,7 +1161,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1180,7 +1180,7 @@ ul.nav-tabs {
     },\r
     "serviceId" : {\r
       "type" : "string",\r
-      "description" : "identity of the service"\r
+      "description" : "Identity of the service"\r
     },\r
     "keepAliveIntervalSeconds" : {\r
       "type" : "integer",\r
@@ -1310,7 +1310,7 @@ ul.nav-tabs {
               <div class="app-desc">Version: 1.0.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
+                <h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>
 
             </div>
           </div>
@@ -15344,7 +15344,7 @@ $(document).ready(function() {
                   <div class="app-desc">Information URL: <a href="https://www.onap.org/">https://www.onap.org/</a></div>
                   <div class="app-desc">Contact Info: <a href="discuss-list@onap.com">discuss-list@onap.com</a></div>
               </p>
-                <div class="license-info">Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.</div>
+                <div class="license-info">Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.</div>
                 <div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
             </div>
           </div>
diff --git a/docs/offeredapis/swagger/custom/a1pms-api-custom-v3.json b/docs/offeredapis/swagger/custom/a1pms-api-custom-v3.json
new file mode 100644 (file)
index 0000000..0fc875f
--- /dev/null
@@ -0,0 +1,2454 @@
+{
+  "openapi" : "3.0.3",
+  "info" : {
+    "contact" : {
+      "email" : "discuss-list@onap.com",
+      "url" : "https://www.onap.org/"
+    },
+    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
+    "license" : {
+      "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
+      "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+    },
+    "title" : "A1 policy management API",
+    "version" : "1.0.0",
+    "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+    "x-audience" : "external-public"
+  },
+  "servers" : [ {
+    "url" : "{apiRoot}/a1-policy-management/v1",
+    "variables" : {
+      "apiRoot" : {
+        "default" : "https://example.com",
+        "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance (r) R1-AP specifiactions for A1 Policy Management"
+      }
+    }
+  } ],
+  "tags" : [ {
+    "description" : "**(Newer Version)** API used to create polices, Policy Instances and get  them as individual using an ID or get all policies/Instances.",
+    "name" : "A1 Policy Management"
+  }, {
+    "description" : "API used to get the NearRT-RIC for the managed element.",
+    "name" : "NearRT-RIC Repository"
+  }, {
+    "description" : "API used to keep the service Alive with in the timeout period",
+    "name" : "Service Registry and Supervision"
+  }, {
+    "description" : "API used to get the health status and statistics of this service",
+    "name" : "Health Check"
+  }, {
+    "description" : "API used to create or fetch the application configuration.",
+    "name" : "Configuration"
+  } ],
+  "paths" : {
+    "/status" : {
+      "get" : {
+        "description" : "Returns status and statistics of this service",
+        "operationId" : "getStatus",
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "status_info" : {
+                    "$ref" : "#/components/examples/StatusInfo"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/StatusInfo"
+                }
+              }
+            },
+            "description" : "OK- Service is living Ok"
+          }
+        },
+        "tags" : [ "Health Check" ]
+      }
+    },
+    "/rics/ric" : {
+      "get" : {
+        "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+        "operationId" : "getRic",
+        "parameters" : [ {
+          "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "managedElementId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "The identity of a Near-RT RIC to get information for.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "ricId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "ric_info" : {
+                    "$ref" : "#/components/examples/RicInfo"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/RicInfo"
+                }
+              }
+            },
+            "description" : "OK - Near-RT RIC is found OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Returns info for one Near-RT RIC",
+        "tags" : [ "NearRT-RIC Repository" ]
+      }
+    },
+    "/rics" : {
+      "get" : {
+        "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+        "operationId" : "getRics",
+        "parameters" : [ {
+          "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+          "explode" : true,
+          "in" : "query",
+          "name" : "policyTypeId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "ric_info_list" : {
+                    "$ref" : "#/components/examples/RicInfoList"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/RicInfoList"
+                }
+              }
+            },
+            "description" : "OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Query Near-RT RIC information",
+        "tags" : [ "NearRT-RIC Repository" ]
+      }
+    },
+    "/policy-types" : {
+      "get" : {
+        "description" : "Query policy type identities",
+        "operationId" : "getPolicyTypes",
+        "parameters" : [ {
+          "description" : "Select types for the given Near-RT RIC identity.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "nearRtRicId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+          "explode" : true,
+          "in" : "query",
+          "name" : "typeName",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "compatibleWithVersion",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "PolicyTypeInformation" : {
+                    "$ref" : "#/components/examples/PolicyTypeInformation"
+                  }
+                },
+                "schema" : {
+                  "items" : {
+                    "$ref" : "#/components/schemas/PolicyTypeInformation"
+                  },
+                  "type" : "array"
+                }
+              }
+            },
+            "description" : "OK - Policy Type IDs found Ok"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policy-types/{policyTypeId}" : {
+      "get" : {
+        "description" : "Returns a policy type definition",
+        "operationId" : "getPolicyTypeDefinition",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyTypeId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "PolicyTypeObject" : {
+                    "$ref" : "#/components/examples/PolicyTypeObject"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyTypeObject"
+                }
+              }
+            },
+            "description" : "OK - schema of the given policy type"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policies/{policyId}" : {
+      "delete" : {
+        "description" : "Deleting the policy using policyId.",
+        "operationId" : "deletePolicy",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "204" : {
+            "description" : "The A1 policy was deleted"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "405" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Method Not Allowed"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "423" : {
+            "content" : {
+              "application/problem+json" : {
+                "example" : {
+                  "status" : 423,
+                  "title" : "Locked",
+                  "detail" : "State is Locked in the  provided request."
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ErrorInformation"
+                }
+              }
+            },
+            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "summary" : "Delete a policy",
+        "tags" : [ "A1 Policy Management" ]
+      },
+      "get" : {
+        "description" : "Returns a policy",
+        "operationId" : "getPolicy",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "policyObject" : {
+                    "$ref" : "#/components/examples/PolicyObject"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyObject"
+                }
+              }
+            },
+            "description" : "OK - Policy found"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      },
+      "put" : {
+        "description" : "update a policy",
+        "operationId" : "putPolicy",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "examples" : {
+                "policyObject" : {
+                  "$ref" : "#/components/examples/PolicyObject"
+                }
+              },
+              "schema" : {
+                "$ref" : "#/components/schemas/PolicyObject"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyObject"
+                }
+              }
+            },
+            "description" : "OK - Policy updated"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "411" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Length Required"
+          },
+          "413" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Payload Too Large"
+          },
+          "415" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unsupported Media Type"
+          },
+          "423" : {
+            "content" : {
+              "application/problem+json" : {
+                "example" : {
+                  "status" : 423,
+                  "title" : "Locked",
+                  "detail" : "State is Locked in the  provided request."
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ErrorInformation"
+                }
+              }
+            },
+            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policies/{policyId}/status" : {
+      "get" : {
+        "description" : "Query a policy status",
+        "operationId" : "getPolicyStatus",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "policyId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyStatusObject"
+                }
+              }
+            },
+            "description" : "OK"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/policies" : {
+      "get" : {
+        "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" : "getAllPolicies",
+        "parameters" : [ {
+          "description" : "Select policies of a given policy type identity.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "policyTypeId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select policies of a given Near-RT RIC identity.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "nearRtRicId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select policies owned by a given service.",
+          "explode" : true,
+          "in" : "query",
+          "name" : "serviceId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+          "explode" : true,
+          "in" : "query",
+          "name" : "typeName",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "items" : {
+                    "$ref" : "#/components/schemas/PolicyInformation"
+                  },
+                  "type" : "array"
+                }
+              }
+            },
+            "description" : "OK - Policy identities"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "summary" : "Query policy identities",
+        "tags" : [ "A1 Policy Management" ]
+      },
+      "post" : {
+        "description" : "To create A1 policies",
+        "operationId" : "createPolicy",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/PolicyObjectInformation"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "201" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/PolicyObjectInformation"
+                }
+              }
+            },
+            "description" : "Success case 201 created",
+            "headers" : {
+              "Location" : {
+                "description" : "Contains the URI of the newly created resource",
+                "explode" : false,
+                "required" : true,
+                "schema" : {
+                  "type" : "string"
+                },
+                "style" : "simple"
+              }
+            }
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          },
+          "401" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unauthorized"
+          },
+          "403" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Forbidden"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          },
+          "405" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Method Not Allowed"
+          },
+          "406" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Acceptable"
+          },
+          "409" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Conflict"
+          },
+          "413" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Payload Too Large"
+          },
+          "415" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Unsupported Media Type"
+          },
+          "423" : {
+            "content" : {
+              "application/problem+json" : {
+                "example" : {
+                  "status" : 423,
+                  "title" : "Locked",
+                  "detail" : "State is Locked in the  provided request."
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ErrorInformation"
+                }
+              }
+            },
+            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+          },
+          "429" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Too Many Request"
+          },
+          "500" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Internal Server Error"
+          },
+          "502" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Gateway"
+          },
+          "503" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Service Unavailable"
+          }
+        },
+        "tags" : [ "A1 Policy Management" ]
+      }
+    },
+    "/configuration" : {
+      "get" : {
+        "description" : "Returns the contents of the application configuration",
+        "operationId" : "getConfiguration",
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "type" : "string"
+                }
+              }
+            },
+            "description" : "OK - Application configuration received"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "tags" : [ "Configuration" ]
+      },
+      "put" : {
+        "description" : "Replace the current configuration file with the given configuration",
+        "operationId" : "putConfiguration",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "type" : "object"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            },
+            "description" : "OK - Configuration updated"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          }
+        },
+        "tags" : [ "Configuration" ]
+      }
+    },
+    "/services/{serviceId}/keepalive" : {
+      "put" : {
+        "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+        "operationId" : "keepAliveService",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "serviceId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "type" : "string"
+              }
+            }
+          },
+          "required" : false
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "OK - Service supervision timer refreshed, OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Heartbeat indicates that the service is running",
+        "tags" : [ "Service Registry and Supervision" ]
+      }
+    },
+    "/services" : {
+      "get" : {
+        "description" : "Either information about a registered service with given identity or all registered services are returned.",
+        "operationId" : "getServices",
+        "parameters" : [ {
+          "description" : "The identity of the service",
+          "explode" : true,
+          "in" : "query",
+          "name" : "serviceId",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "form"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "200" : {
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "service_status_list" : {
+                    "$ref" : "#/components/examples/ServiceStatusList"
+                  }
+                },
+                "schema" : {
+                  "$ref" : "#/components/schemas/ServiceStatusList"
+                }
+              }
+            },
+            "description" : "OK"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "summary" : "Returns service information",
+        "tags" : [ "Service Registry and Supervision" ]
+      },
+      "put" : {
+        "callbacks" : {
+          "RICStatus" : {
+            "{$request.body#/callback_url}" : {
+              "post" : {
+                "description" : "The URL to this call is registered at Service registration. <br>Callouts to indicate status changes relevant for Services. Note that these calls are called by A1-PMS and they are not provided.",
+                "operationId" : "serviceCallback",
+                "requestBody" : {
+                  "content" : {
+                    "application/json" : {
+                      "schema" : {
+                        "$ref" : "#/components/schemas/ServiceCallbackInfo"
+                      }
+                    }
+                  },
+                  "required" : true
+                },
+                "responses" : {
+                  "200" : {
+                    "content" : {
+                      "application/json" : {
+                        "schema" : {
+                          "$ref" : "#/components/schemas/void"
+                        }
+                      }
+                    },
+                    "description" : "OK"
+                  },
+                  "404" : {
+                    "content" : {
+                      "application/problem+json" : {
+                        "schema" : {
+                          "$ref" : "#/components/schemas/ProblemDetails"
+                        }
+                      }
+                    },
+                    "description" : "Not Found"
+                  }
+                },
+                "summary" : "Callback for Near-RT RIC status."
+              }
+            }
+          }
+        },
+        "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+        "operationId" : "putService",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/ServiceRegistrationInfo"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "OK - Service updated"
+          },
+          "201" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "Created - Service created"
+          },
+          "400" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Bad Request"
+          }
+        },
+        "summary" : "Register a service",
+        "tags" : [ "Service Registry and Supervision" ]
+      }
+    },
+    "/services/{serviceId}" : {
+      "delete" : {
+        "description" : "Unregister a service",
+        "operationId" : "deleteService",
+        "parameters" : [ {
+          "explode" : false,
+          "in" : "path",
+          "name" : "serviceId",
+          "required" : true,
+          "schema" : {
+            "type" : "string"
+          },
+          "style" : "simple"
+        }, {
+          "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+          "explode" : false,
+          "in" : "header",
+          "name" : "Accept",
+          "required" : false,
+          "schema" : {
+            "example" : "application/json",
+            "type" : "string"
+          },
+          "style" : "simple"
+        } ],
+        "responses" : {
+          "204" : {
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            },
+            "description" : "No Content - Service unregistered"
+          },
+          "404" : {
+            "content" : {
+              "application/problem+json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ProblemDetails"
+                }
+              }
+            },
+            "description" : "Not Found"
+          }
+        },
+        "tags" : [ "Service Registry and Supervision" ]
+      }
+    }
+  },
+  "components" : {
+    "examples" : {
+      "ServiceStatusList" : {
+        "description" : "List of service information",
+        "value" : {
+          "serviceList" : [ {
+            "callbackUrl" : "callbackUrl",
+            "serviceId" : "serviceId",
+            "keepAliveIntervalSeconds" : 0,
+            "timeSinceLastActivitySeconds" : 6
+          }, {
+            "callbackUrl" : "callbackUrl",
+            "serviceId" : "serviceId",
+            "keepAliveIntervalSeconds" : 0,
+            "timeSinceLastActivitySeconds" : 6
+          } ]
+        }
+      },
+      "PolicyStatusInfo" : {
+        "description" : "Status for one A1-P Policy",
+        "value" : {
+          "lastModified" : "last_modified",
+          "status" : {
+            "value" : {
+              "status" : "status"
+            }
+          }
+        }
+      },
+      "StatusInfo" : {
+        "value" : {
+          "status" : "status"
+        }
+      },
+      "RicInfo" : {
+        "value" : {
+          "ricId" : "ricId",
+          "managedElementIds" : [ "managedElementId", "managedElementId" ],
+          "state" : "UNAVAILABLE",
+          "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+        }
+      },
+      "RicInfoList" : {
+        "value" : {
+          "rics" : [ {
+            "ricId" : "ricId",
+            "managedElementIds" : [ "managedElementId", "managedElementId" ],
+            "state" : "UNAVAILABLE",
+            "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+          }, {
+            "ricId" : "ricId",
+            "managedElementIds" : [ "managedElementId", "managedElementId" ],
+            "state" : "UNAVAILABLE",
+            "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+          } ]
+        }
+      },
+      "PolicyObject" : {
+        "value" : {
+          "scope" : {
+            "ueId" : {
+              "guRanUeId" : {
+                "globalGnbId" : {
+                  "plmnId" : {
+                    "mcc" : "123",
+                    "mnc" : "45"
+                  },
+                  "gnbId" : {
+                    "gnbIdLength" : 24,
+                    "gnbIdValue" : 12345678
+                  }
+                },
+                "RanUeId" : "a31c510b20e64a74"
+              }
+            },
+            "groupId" : {
+              "spId" : 123
+            },
+            "qosId" : {
+              "5qI" : 1
+            },
+            "cellId" : {
+              "plmnId" : {
+                "mcc" : "123",
+                "mnc" : "45"
+              },
+              "cId" : {
+                "ncI" : 123
+              }
+            }
+          },
+          "qosObjectives" : {
+            "gfbr" : 100,
+            "mfbr" : 200,
+            "priorityLevel" : 3,
+            "pdb" : 50
+          }
+        }
+      },
+      "PolicyTypeInformation" : {
+        "value" : [ {
+          "policyTypeId" : "STD_QOS2_0.1.0",
+          "nearRtRicId" : "ricsim_g3_2"
+        }, {
+          "policyTypeId" : "STD_QOS_0_2_0",
+          "nearRtRicId" : "ricsim_g3_2"
+        }, {
+          "policyTypeId" : "STD_QOS2_0.1.0",
+          "nearRtRicId" : "ricsim_g3_1"
+        }, {
+          "policyTypeId" : "STD_QOS_0_2_0",
+          "nearRtRicId" : "ricsim_g3_1"
+        } ]
+      },
+      "PolicyTypeObject" : {
+        "value" : {
+          "policySchema" : {
+            "$schema" : "http://json-schema.org/draft-07/schema#",
+            "title" : "STD_QOS_0_2_0",
+            "description" : "STD QOS2 policy type",
+            "type" : "object",
+            "properties" : {
+              "scope" : {
+                "type" : "object",
+                "properties" : {
+                  "ueId" : {
+                    "type" : "string"
+                  },
+                  "qosId" : {
+                    "type" : "string"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "ueId", "qosId" ]
+              },
+              "qosObjectives" : {
+                "type" : "object",
+                "properties" : {
+                  "priorityLevel" : {
+                    "type" : "number"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "priorityLevel" ]
+              }
+            }
+          }
+        }
+      }
+    },
+    "responses" : {
+      "400" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Bad Request"
+      },
+      "401" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Unauthorized"
+      },
+      "403" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Forbidden"
+      },
+      "404" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Not Found"
+      },
+      "405" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Method Not Allowed"
+      },
+      "406" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Not Acceptable"
+      },
+      "409" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Conflict"
+      },
+      "411" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Length Required"
+      },
+      "413" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Payload Too Large"
+      },
+      "415" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Unsupported Media Type"
+      },
+      "429" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Too Many Request"
+      },
+      "500" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Internal Server Error"
+      },
+      "502" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Bad Gateway"
+      },
+      "503" : {
+        "content" : {
+          "application/problem+json" : {
+            "schema" : {
+              "$ref" : "#/components/schemas/ProblemDetails"
+            }
+          }
+        },
+        "description" : "Service Unavailable"
+      },
+      "Locked" : {
+        "content" : {
+          "application/problem+json" : {
+            "example" : {
+              "status" : 423,
+              "title" : "Locked",
+              "detail" : "State is Locked in the  provided request."
+            },
+            "schema" : {
+              "$ref" : "#/components/schemas/ErrorInformation"
+            }
+          }
+        },
+        "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+      }
+    },
+    "schemas" : {
+      "PolicyTypeInformation" : {
+        "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+        "example" : {
+          "policyTypeId" : "STD_QOS2_0.1.0",
+          "nearRtRicId" : "ricsim_g3_2"
+        },
+        "properties" : {
+          "policyTypeId" : {
+            "description" : "Identity of the policy type",
+            "type" : "string"
+          },
+          "nearRtRicId" : {
+            "$ref" : "#/components/schemas/NearRtRicId"
+          }
+        },
+        "required" : [ "nearRtRicId", "policyTypeId" ],
+        "type" : "object"
+      },
+      "PolicyObjectInformation" : {
+        "description" : "Information related to the creation of the policy",
+        "properties" : {
+          "nearRtRicId" : {
+            "description" : "Identity of the target Near-RT RIC",
+            "example" : "Near-RT-Ric-ID",
+            "type" : "string"
+          },
+          "transient" : {
+            "default" : false,
+            "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+            "nullable" : false,
+            "type" : "boolean"
+          },
+          "policyId" : {
+            "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",
+            "example" : "POLICY-ID",
+            "type" : "string"
+          },
+          "serviceId" : {
+            "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
+            "example" : "rApp ID",
+            "type" : "string"
+          },
+          "policyObject" : {
+            "$ref" : "#/components/schemas/PolicyObject"
+          },
+          "policyTypeId" : {
+            "description" : "Identity of the policy type",
+            "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
+            "type" : "string"
+          }
+        },
+        "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
+        "type" : "object"
+      },
+      "ErrorInformation" : {
+        "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
+        "properties" : {
+          "detail" : {
+            "description" : " A human-readable explanation specific to this occurrence of the problem.",
+            "example" : "Policy type not found",
+            "type" : "string"
+          },
+          "title" : {
+            "description" : "A specific error name",
+            "example" : "Not Found",
+            "type" : "string"
+          },
+          "status" : {
+            "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+            "example" : 404,
+            "format" : "int32",
+            "type" : "integer"
+          }
+        },
+        "type" : "object"
+      },
+      "PolicyObject" : {
+        "description" : "Policy Object is a JSON representation of an A1 policy",
+        "type" : "object"
+      },
+      "PolicyTypeObject" : {
+        "description" : "policy type object as defined in A1TD",
+        "example" : {
+          "policySchema" : {
+            "$schema" : "http://json-schema.org/draft-07/schema#",
+            "title" : "STD_QOS_0_2_0",
+            "description" : "STD QOS policy type",
+            "type" : "object",
+            "properties" : {
+              "scope" : {
+                "type" : "object",
+                "properties" : {
+                  "ueId" : {
+                    "type" : "string"
+                  },
+                  "qosId" : {
+                    "type" : "string"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "ueId", "qosId" ]
+              },
+              "qosObjectives" : {
+                "type" : "object",
+                "properties" : {
+                  "priorityLevel" : {
+                    "type" : "number"
+                  }
+                },
+                "additionalProperties" : false,
+                "required" : [ "priorityLevel" ]
+              }
+            }
+          },
+          "statusSchema" : {
+            "$schema" : "http://json-schema.org/draft-07/schema#",
+            "title" : "STD_QOS_0.2.0",
+            "description" : "STD QOS policy type status",
+            "type" : "object",
+            "properties" : {
+              "enforceStatus" : {
+                "type" : "string"
+              },
+              "enforceReason" : {
+                "type" : "string"
+              },
+              "additionalProperties" : false,
+              "required" : [ "enforceStatus" ]
+            }
+          }
+        },
+        "properties" : {
+          "policySchema" : {
+            "$ref" : "#/components/schemas/PolicySchema"
+          },
+          "statusSchema" : {
+            "$ref" : "#/components/schemas/StatusSchema"
+          }
+        },
+        "required" : [ "policySchema" ],
+        "type" : "object"
+      },
+      "PolicySchema" : {
+        "description" : "The schemas are policy type specific",
+        "type" : "object"
+      },
+      "StatusSchema" : {
+        "description" : "The optional schema for policy status",
+        "type" : "object"
+      },
+      "PolicyStatusObject" : {
+        "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a policy status shall be valid according to the schema of its specific policy type.",
+        "type" : "object"
+      },
+      "void" : {
+        "description" : "Void/empty",
+        "type" : "object"
+      },
+      "StatusInfo" : {
+        "properties" : {
+          "status" : {
+            "description" : "status text",
+            "type" : "string"
+          }
+        },
+        "type" : "object"
+      },
+      "AuthorizationResult" : {
+        "description" : "Result of authorization",
+        "example" : {
+          "result" : true
+        },
+        "properties" : {
+          "result" : {
+            "description" : "If true, the access is granted",
+            "type" : "boolean"
+          }
+        },
+        "required" : [ "result" ],
+        "type" : "object"
+      },
+      "RicInfo" : {
+        "description" : "Information for a Near-RT RIC",
+        "properties" : {
+          "ricId" : {
+            "description" : "Identity of the Near-RT RIC",
+            "type" : "string"
+          },
+          "managedElementIds" : {
+            "description" : "O1 identities for managed entities",
+            "items" : {
+              "description" : "O1 identities for managed entities",
+              "type" : "string"
+            },
+            "type" : "array"
+          },
+          "state" : {
+            "description" : "Represents the states for a Near-RT RIC",
+            "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
+            "type" : "string"
+          },
+          "policyTypeIds" : {
+            "description" : "supported policy types",
+            "items" : {
+              "description" : "supported policy types",
+              "type" : "string"
+            },
+            "type" : "array"
+          }
+        },
+        "type" : "object"
+      },
+      "ServiceRegistrationInfo" : {
+        "description" : "Information for one service",
+        "properties" : {
+          "callbackUrl" : {
+            "description" : "callback for notifying of Near-RT RIC state changes",
+            "type" : "string"
+          },
+          "serviceId" : {
+            "description" : "Identity of the service",
+            "type" : "string"
+          },
+          "keepAliveIntervalSeconds" : {
+            "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+            "format" : "int64",
+            "type" : "integer"
+          }
+        },
+        "required" : [ "serviceId" ],
+        "type" : "object"
+      },
+      "PolicyStatusInfo" : {
+        "description" : "Status for one A1-P Policy",
+        "properties" : {
+          "lastModified" : {
+            "description" : "timestamp, last modification time",
+            "type" : "string"
+          },
+          "status" : {
+            "description" : "the Policy status",
+            "type" : "object"
+          }
+        },
+        "type" : "object"
+      },
+      "ServiceStatus" : {
+        "properties" : {
+          "callbackUrl" : {
+            "description" : "callback for notifying of RIC synchronization",
+            "type" : "string"
+          },
+          "serviceId" : {
+            "description" : "Identity of the service",
+            "type" : "string"
+          },
+          "keepAliveIntervalSeconds" : {
+            "description" : "policy keep alive timeout",
+            "format" : "int64",
+            "type" : "integer"
+          },
+          "timeSinceLastActivitySeconds" : {
+            "description" : "time since last invocation by the service",
+            "format" : "int64",
+            "type" : "integer"
+          }
+        },
+        "type" : "object"
+      },
+      "RicInfoList" : {
+        "description" : "List of Near-RT RIC information",
+        "properties" : {
+          "rics" : {
+            "description" : "List of Near-RT RIC information",
+            "items" : {
+              "$ref" : "#/components/schemas/RicInfo"
+            },
+            "type" : "array"
+          }
+        },
+        "type" : "object"
+      },
+      "input" : {
+        "description" : "input",
+        "properties" : {
+          "accessType" : {
+            "description" : "Access type",
+            "enum" : [ "READ", "WRITE", "DELETE" ],
+            "type" : "string"
+          },
+          "authToken" : {
+            "description" : "Authorization token",
+            "type" : "string"
+          },
+          "policyTypeId" : {
+            "description" : "Policy type identifier",
+            "type" : "string"
+          }
+        },
+        "required" : [ "accessType", "authToken", "policyTypeId" ],
+        "type" : "object"
+      },
+      "PolicyAuthorization" : {
+        "description" : "Authorization request for A1 policy requests",
+        "properties" : {
+          "input" : {
+            "$ref" : "#/components/schemas/input"
+          }
+        },
+        "required" : [ "input" ],
+        "type" : "object"
+      },
+      "NearRtRicId" : {
+        "description" : "Identity of the policy",
+        "type" : "string"
+      },
+      "PolicyInformation" : {
+        "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC",
+        "properties" : {
+          "policyId" : {
+            "description" : "Identity of the policy",
+            "type" : "string"
+          },
+          "nearRtRicId" : {
+            "$ref" : "#/components/schemas/NearRtRicId"
+          }
+        },
+        "required" : [ "nearRtRicId", "policyId" ],
+        "type" : "object"
+      },
+      "ServiceStatusList" : {
+        "properties" : {
+          "serviceList" : {
+            "description" : "List of service information",
+            "items" : {
+              "$ref" : "#/components/schemas/ServiceStatus"
+            },
+            "type" : "array"
+          }
+        },
+        "type" : "object"
+      },
+      "ServiceCallbackInfo" : {
+        "description" : "Information transferred as in Service callbacks (callback_url)",
+        "properties" : {
+          "ricId" : {
+            "description" : "Identity of a Near-RT RIC",
+            "type" : "string"
+          },
+          "eventType" : {
+            "description" : "values:\nAVAILABLE: the  Near-RT RIC has become available for A1 Policy management",
+            "enum" : [ "AVAILABLE" ],
+            "type" : "string"
+          }
+        },
+        "required" : [ "eventType", "ricId" ],
+        "type" : "object"
+      },
+      "Link" : {
+        "properties" : {
+          "templated" : {
+            "type" : "boolean"
+          },
+          "href" : {
+            "type" : "string"
+          }
+        },
+        "type" : "object"
+      },
+      "ProblemDetails" : {
+        "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
+        "properties" : {
+          "type" : {
+            "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type",
+            "type" : "string"
+          },
+          "title" : {
+            "description" : "human-readable summary of the problem type",
+            "type" : "string"
+          },
+          "status" : {
+            "description" : "the HTTP status code",
+            "type" : "number"
+          },
+          "detail" : {
+            "description" : "human-readable explanation ",
+            "type" : "string"
+          },
+          "instance" : {
+            "description" : "URI reference that identifies the specific occurrence of the problem",
+            "type" : "string"
+          }
+        },
+        "type" : "object"
+      }
+    }
+  }
+}
\ No newline at end of file
index d8d3041..0fc875f 100644 (file)
@@ -5,9 +5,9 @@
       "email" : "discuss-list@onap.com",
       "url" : "https://www.onap.org/"
     },
-    "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
+    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
     "license" : {
-      "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
+      "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
       "url" : "http://www.apache.org/licenses/LICENSE-2.0"
     },
     "title" : "A1 policy management API",
     "variables" : {
       "apiRoot" : {
         "default" : "https://example.com",
-        "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed"
+        "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance (r) R1-AP specifiactions for A1 Policy Management"
       }
     }
   } ],
   "tags" : [ {
-    "description" : "API used to create polices, Policy Instances and get  them as individual using an ID or get all policies/Instances.",
+    "description" : "**(Newer Version)** API used to create polices, Policy Instances and get  them as individual using an ID or get all policies/Instances.",
     "name" : "A1 Policy Management"
   }, {
     "description" : "API used to get the NearRT-RIC for the managed element.",
@@ -36,8 +36,6 @@
   }, {
     "description" : "API used to get the health status and statistics of this service",
     "name" : "Health Check"
-  }, {
-    "name" : "Service callbacks"
   }, {
     "description" : "API used to create or fetch the application configuration.",
     "name" : "Configuration"
           "RICStatus" : {
             "{$request.body#/callback_url}" : {
               "post" : {
-                "description" : "The URL to this call is registered at Service registration.",
+                "description" : "The URL to this call is registered at Service registration. <br>Callouts to indicate status changes relevant for Services. Note that these calls are called by A1-PMS and they are not provided.",
                 "operationId" : "serviceCallback",
                 "requestBody" : {
                   "content" : {
                     "description" : "Not Found"
                   }
                 },
-                "summary" : "Callback for Near-RT RIC status",
-                "tags" : [ "Service callbacks" ]
+                "summary" : "Callback for Near-RT RIC status."
               }
             }
           }
         "description" : "Information related to the creation of the policy",
         "properties" : {
           "nearRtRicId" : {
-            "description" : "identity of the target Near-RT RIC",
+            "description" : "Identity of the target Near-RT RIC",
             "example" : "Near-RT-Ric-ID",
             "type" : "string"
           },
           "transient" : {
             "default" : false,
-            "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+            "description" : "If true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
             "nullable" : false,
             "type" : "boolean"
           },
           "policyId" : {
-            "description" : "identity of the Policy",
+            "description" : "The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.",
             "example" : "POLICY-ID",
             "type" : "string"
           },
             "$ref" : "#/components/schemas/PolicyObject"
           },
           "policyTypeId" : {
-            "description" : "identity of the policy type",
+            "description" : "Identity of the policy type",
             "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
             "type" : "string"
           }
         "description" : "Information for a Near-RT RIC",
         "properties" : {
           "ricId" : {
-            "description" : "identity of the Near-RT RIC",
+            "description" : "Identity of the Near-RT RIC",
             "type" : "string"
           },
           "managedElementIds" : {
             "type" : "string"
           },
           "serviceId" : {
-            "description" : "identity of the service",
+            "description" : "Identity of the service",
             "type" : "string"
           },
           "keepAliveIntervalSeconds" : {
             "type" : "string"
           },
           "serviceId" : {
-            "description" : "identity of the service",
+            "description" : "Identity of the service",
             "type" : "string"
           },
           "keepAliveIntervalSeconds" : {
         "description" : "Information transferred as in Service callbacks (callback_url)",
         "properties" : {
           "ricId" : {
-            "description" : "identity of a Near-RT RIC",
+            "description" : "Identity of a Near-RT RIC",
             "type" : "string"
           },
           "eventType" : {
index 8bcfdf4..e21f679 100644 (file)
@@ -1,5 +1,5 @@
 #  ============LICENSE_START=======================================================
-#  Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+#  Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. All rights reserved.
 #  ================================================================================
 #  Licensed under the Apache License, Version 2.0 (the "License");
 #  you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ info:
   version: 1.0.0
   x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8
   x-audience: external-public
-  description: "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service\
+  description: "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service\
         \ provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the\
         \ service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring\
         \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining\
@@ -47,7 +47,7 @@ info:
         \ for access control of A1 Policy access. If configured, an external authorization\
         \ provider is requested to grant access to the A1 Policy type.</p>"
   license:
-    name: Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.
+    name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.
     url: http://www.apache.org/licenses/LICENSE-2.0
   contact:
     url: https://www.onap.org/
@@ -57,17 +57,17 @@ servers:
     variables:
       apiRoot:
         default: 'https://example.com'
-        description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed'
+        description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed.
+         Note: This URL path format aligns with the O-RAN Alliance (r) R1-AP specifiactions for A1 Policy Management'
 tags:
   - name: A1 Policy Management
-    description: "API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances."
+    description: "**(Newer Version)** API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances."
   - name: NearRT-RIC Repository
     description: "API used to get the NearRT-RIC for the managed element."
   - name: Service Registry and Supervision
     description: "API used to keep the service Alive with in the timeout period"
   - name: Health Check
     description: "API used to get the health status and statistics of this service"
-  - name: Service callbacks
   - name: Configuration
     description: "API used to create or fetch the application configuration."
 paths:
@@ -761,7 +761,7 @@ paths:
         RICStatus:
           "{$request.body#/callback_url}":
             post:
-              description: The URL to this call is registered at Service registration.
+              description: 'The URL to this call is registered at Service registration. <br>Callouts to indicate status changes relevant for Services. Note that these calls are called by A1-PMS and they are not provided.'
               operationId: serviceCallback
               requestBody:
                 content:
@@ -778,9 +778,7 @@ paths:
                   description: OK
                 "404":
                   $ref: '#/components/responses/404'
-              summary: Callback for Near-RT RIC status
-              tags:
-                - Service callbacks
+              summary: "Callback for Near-RT RIC status."
   /services/{serviceId}:
     delete:
       operationId: deleteService
@@ -953,19 +951,19 @@ components:
       type: object
       properties:
         nearRtRicId:
-          description: identity of the target Near-RT RIC
+          description: Identity of the target Near-RT RIC
           type: string
           example:
             'Near-RT-Ric-ID'
         transient:
           default: false
-          description: "if true, the policy is deleted at RIC restart. If false, its\
+          description: "If true, the policy is deleted at RIC restart. If false, its\
                 \ value is maintained by this service until explicitly deleted. Default\
                 \ false."
           nullable: false
           type: boolean
         policyId:
-          description: identity of the Policy
+          description: The identity of the Policy. If this value is present, it must be unique; otherwise, a random UUID is generated.
           type: string
           example:
             'POLICY-ID'
@@ -979,7 +977,7 @@ components:
         policyObject:
           $ref: '#/components/schemas/PolicyObject'
         policyTypeId:
-          description: identity of the policy type
+          description: Identity of the policy type
           type: string
           example: 'ORAN_QOS_1.0.0(typeName_SemVersion)'
       required:
@@ -1090,7 +1088,7 @@ components:
       description: Information for a Near-RT RIC
       properties:
         ricId:
-          description: identity of the Near-RT RIC
+          description: Identity of the Near-RT RIC
           type: string
         managedElementIds:
           description: O1 identities for managed entities
@@ -1120,7 +1118,7 @@ components:
           description: callback for notifying of Near-RT RIC state changes
           type: string
         serviceId:
-          description: identity of the service
+          description: Identity of the service
           type: string
         keepAliveIntervalSeconds:
           description: "keep alive interval for the service. This is used to enable\
@@ -1151,7 +1149,7 @@ components:
           description: callback for notifying of RIC synchronization
           type: string
         serviceId:
-          description: identity of the service
+          description: Identity of the service
           type: string
         keepAliveIntervalSeconds:
           description: policy keep alive timeout
@@ -1230,7 +1228,7 @@ components:
       description: Information transferred as in Service callbacks (callback_url)
       properties:
         ricId:
-          description: identity of a Near-RT RIC
+          description: Identity of a Near-RT RIC
           type: string
         eventType:
           description: "values:\nAVAILABLE: the  Near-RT RIC has become available\
index deb5743..036e7fe 100644 (file)
@@ -5,12 +5,12 @@
       "email" : "discuss-list@onap.com",
       "url" : "https://www.onap.org/"
     },
-    "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>",
+    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>",
     "license" : {
-      "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+      "name" : "Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved. Licensed under the Apache 2 License.",
       "url" : "http://www.apache.org/licenses/LICENSE-2.0"
     },
-    "title" : "A1 Policy Management Service",
+    "title" : "ONAP CCSDK A1 Policy Management Service",
     "version" : "1.3.0",
     "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
     "x-audience" : "external-public"
@@ -19,8 +19,8 @@
     "url" : "/"
   } ],
   "tags" : [ {
-    "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
-    "name" : "A1 Policy Management"
+    "description" : "Older API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+    "name" : "A1 Policy Management (Older version)"
   }, {
     "description" : "API used to get the NearRT-RIC for the managed element.",
     "name" : "NearRT-RIC Repository"
     "description" : "API used to get the health status and statistics of this service",
     "name" : "Health Check"
   }, {
+    "description" : "Callouts to indicate status schanges relevant for Services. <br> Note that these calls are called by A1-PMS, not provided.",
     "name" : "Service callbacks"
   }, {
-    "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided.",
+    "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by A1-PMS, it is not provided.",
     "name" : "Authorization API"
   }, {
     "description" : "API used to create or fetch the application configuration.",
index c0b50d4..421201e 100644 (file)
@@ -1,6 +1,4 @@
-#  ============LICENSE_START=======================================================
-#  Copyright (C) 2020-2023 Nordix Foundation
-#  Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved.
+#  Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved.
 #  Modifications Copyright (C) 2021 Pantheon.tech
 #  Modifications Copyright (C) 2021 Bell Canada
 #  ================================================================================
@@ -23,7 +21,7 @@ openapi: 3.0.3
 info:
   x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8
   x-audience: external-public
-  description: "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service\
+  description: "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service\
     \ provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the\
     \ service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring\
     \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining\
@@ -50,9 +48,10 @@ info:
     \ Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring\
     \ web application.</p>"
   license:
-    name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.
+    name: Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. 
+      All rights reserved. Licensed under the Apache 2 License.
     url: http://www.apache.org/licenses/LICENSE-2.0
-  title: A1 Policy Management Service
+  title: ONAP CCSDK A1 Policy Management Service
   version: 1.3.0
   contact:
     url: https://www.onap.org/
@@ -60,9 +59,9 @@ info:
 servers:
   - url: /
 tags:
-  - name: A1 Policy Management
-    description: "API used to create polices, Policy Instances and get them as individual
-    using an ID or get all policies/Instances."
+  - name: A1 Policy Management (Older version)
+    description: "Older API used to create polices, Policy Instances and get them as individual
+     using an ID or get all policies/Instances."
   - name: NearRT-RIC Repository
     description: "API used to get the NearRT-RIC for the managed element."
   - name: Service Registry and Supervision
@@ -70,10 +69,12 @@ tags:
   - name: Health Check
     description: "API used to get the health status and statistics of this service"
   - name: Service callbacks
+    description: "Callouts to indicate status schanges relevant for Services.
+     <br> Note that these calls are called by A1-PMS, not provided."
   - name: Authorization API
     description: "API used for authorization of information A1 policy access (this is
      provided by an authorization producer such as OPA). <br> Note that this API is called
-     by PMS, it is not provided."
+     by A1-PMS, it is not provided."
   - name: Configuration
     description: "API used to create or fetch the application configuration."
   - name: Actuator