diff options
author | PatrikBuhr <patrik.buhr@est.tech> | 2023-04-17 13:00:15 +0200 |
---|---|---|
committer | PatrikBuhr <patrik.buhr@est.tech> | 2023-04-19 09:09:31 +0200 |
commit | 9f1d9499e4e1ca40fddffb195353148cc3271b9c (patch) | |
tree | 5eef78509d35740629a0d0c7ae814a58b6a3919e /a1-policy-management | |
parent | f07e4b397c60c21ae275a7c98471b64e60f14f04 (diff) |
A1 PMS support for fine grained access control -A1 London
Documentation updates.
Issue-ID: CCSDK-3889
Signed-off-by: PatrikBuhr <patrik.buhr@est.tech>
Change-Id: Iaa73d0128a4c466ed2b3d1803af66368d3c37fa6
Diffstat (limited to 'a1-policy-management')
7 files changed, 413 insertions, 396 deletions
diff --git a/a1-policy-management/api/pms-api.json b/a1-policy-management/api/pms-api.json index 9efa7b75..33fa5e18 100644 --- a/a1-policy-management/api/pms-api.json +++ b/a1-policy-management/api/pms-api.json @@ -936,7 +936,7 @@ "description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}} }}, - "tags": ["Callbacks"] + "tags": ["Service callbacks"] }}, "/a1-policy/v2/services/{service_id}": {"delete": { "summary": "Unregister a service", @@ -999,9 +999,9 @@ "name": "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.", "url": "http://www.apache.org/licenses/LICENSE-2.0" }, - "description": "<h2>General<\/h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management 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 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>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>Spring Boot Actuator<\/h3><p>Provides generic functions used to monitor and manage the Spring web application.<\/p>", + "description": "<h2>General<\/h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management 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>", "title": "A1 Policy Management Service", - "version": "1.1.0" + "version": "1.2.0" }, "tags": [ { diff --git a/a1-policy-management/api/pms-api.yaml b/a1-policy-management/api/pms-api.yaml index a905c40e..44dc2ba4 100644 --- a/a1-policy-management/api/pms-api.yaml +++ b/a1-policy-management/api/pms-api.yaml @@ -6,28 +6,31 @@ info: \ 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 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>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\ + \ 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>Spring Boot Actuator</h3><p>Provides\ - \ generic functions used to monitor and manage the Spring web application.</p>" + \ 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. url: http://www.apache.org/licenses/LICENSE-2.0 title: A1 Policy Management Service - version: 1.1.0 + version: 1.2.0 servers: - url: / tags: @@ -879,7 +882,7 @@ paths: description: OK summary: Callback for Near-RT RIC status tags: - - Callbacks + - Service callbacks /a1-policy/v2/services/{service_id}: delete: operationId: deleteService diff --git a/a1-policy-management/api/pms-api/index.html b/a1-policy-management/api/pms-api/index.html index 8b29a313..c4aa60e7 100644 --- a/a1-policy-management/api/pms-api/index.html +++ b/a1-policy-management/api/pms-api/index.html @@ -1230,10 +1230,6 @@ ul.nav-tabs { <li data-group="AuthorizationAPI" data-name="performAccessControl" class=""> <a href="#api-AuthorizationAPI-performAccessControl">performAccessControl</a> </li> - <li class="nav-header" data-group="Callbacks"><a href="#api-Callbacks">API Methods - Callbacks</a></li> - <li data-group="Callbacks" data-name="serviceCallback" class=""> - <a href="#api-Callbacks-serviceCallback">serviceCallback</a> - </li> <li class="nav-header" data-group="HealthCheck"><a href="#api-HealthCheck">API Methods - HealthCheck</a></li> <li data-group="HealthCheck" data-name="getStatus" class=""> <a href="#api-HealthCheck-getStatus">getStatus</a> @@ -1255,6 +1251,10 @@ ul.nav-tabs { <li data-group="NearRTRICRepository" data-name="getRics" class=""> <a href="#api-NearRTRICRepository-getRics">getRics</a> </li> + <li class="nav-header" data-group="ServiceCallbacks"><a href="#api-ServiceCallbacks">API Methods - ServiceCallbacks</a></li> + <li data-group="ServiceCallbacks" data-name="serviceCallback" class=""> + <a href="#api-ServiceCallbacks-serviceCallback">serviceCallback</a> + </li> <li class="nav-header" data-group="ServiceRegistryAndSupervision"><a href="#api-ServiceRegistryAndSupervision">API Methods - ServiceRegistryAndSupervision</a></li> <li data-group="ServiceRegistryAndSupervision" data-name="deleteService" class=""> <a href="#api-ServiceRegistryAndSupervision-deleteService">deleteService</a> @@ -1281,10 +1281,10 @@ ul.nav-tabs { <div id="header"> <div id="api-_"> <h2 id="welcome-to-apidoc">API and SDK Documentation</h2> - <div class="app-desc">Version: 1.1.0</div> + <div class="app-desc">Version: 1.2.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 management 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 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>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>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p> + <h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management 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> @@ -9628,368 +9628,6 @@ $(document).ready(function() { </div> <hr> </section> - <section id="api-Callbacks"> - <h1>Callbacks</h1> - <div id="api-Callbacks-serviceCallback"> - <article id="api-Callbacks-serviceCallback-0" data-group="User" data-name="serviceCallback" data-version="0"> - <div class="pull-left"> - <h1>serviceCallback</h1> - <p>Callback for Near-RT RIC status</p> - </div> - <div class="pull-right"></div> - <div class="clearfix"></div> - <p></p> - <p class="marked">The URL to this call is registered at Service registration.</p> - <p></p> - <br /> - <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/r-app/near-rt-ric-status</span></code></pre> - <p> - <h3>Usage and SDK Samples</h3> - </p> - <ul class="nav nav-tabs nav-tabs-examples"> - <li class="active"><a href="#examples-Callbacks-serviceCallback-0-curl">Curl</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-java">Java</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-android">Android</a></li> - <!--<li class=""><a href="#examples-Callbacks-serviceCallback-0-groovy">Groovy</a></li>--> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-objc">Obj-C</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-javascript">JavaScript</a></li> - <!--<li class=""><a href="#examples-Callbacks-serviceCallback-0-angular">Angular</a></li>--> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-csharp">C#</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-php">PHP</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-perl">Perl</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-python">Python</a></li> - <li class=""><a href="#examples-Callbacks-serviceCallback-0-rust">Rust</a></li> - </ul> - - <div class="tab-content"> - <div class="tab-pane active" id="examples-Callbacks-serviceCallback-0-curl"> - <pre class="prettyprint"><code class="language-bsh">curl -X POST \ - -H "Accept: application/json" \ - -H "Content-Type: application/json" \ - "http://localhost/r-app/near-rt-ric-status" \ - -d '' -</code></pre> - </div> - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-java"> - <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*; -import org.openapitools.client.auth.*; -import org.openapitools.client.model.*; -import org.openapitools.client.api.CallbacksApi; - -import java.io.File; -import java.util.*; - -public class CallbacksApiExample { - public static void main(String[] args) { - - // Create an instance of the API class - CallbacksApi apiInstance = new CallbacksApi(); - ServiceCallbackInfoV2 serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 | - - try { - Object result = apiInstance.serviceCallback(serviceCallbackInfoV2); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling CallbacksApi#serviceCallback"); - e.printStackTrace(); - } - } -} -</code></pre> - </div> - - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-android"> - <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.CallbacksApi; - -public class CallbacksApiExample { - public static void main(String[] args) { - CallbacksApi apiInstance = new CallbacksApi(); - ServiceCallbackInfoV2 serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 | - - try { - Object result = apiInstance.serviceCallback(serviceCallbackInfoV2); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling CallbacksApi#serviceCallback"); - e.printStackTrace(); - } - } -}</code></pre> - </div> - <!-- - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-groovy"> - <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre> - </div> --> - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-objc"> - <pre class="prettyprint"><code class="language-cpp"> - -// Create an instance of the API class -CallbacksApi *apiInstance = [[CallbacksApi alloc] init]; -ServiceCallbackInfoV2 *serviceCallbackInfoV2 = ; // - -// Callback for Near-RT RIC status -[apiInstance serviceCallbackWith:serviceCallbackInfoV2 - completionHandler: ^(Object output, NSError* error) { - if (output) { - NSLog(@"%@", output); - } - if (error) { - NSLog(@"Error: %@", error); - } -}]; -</code></pre> - </div> - - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-javascript"> - <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service'); - -// Create an instance of the API class -var api = new A1PolicyManagementService.CallbacksApi() -var serviceCallbackInfoV2 = ; // {ServiceCallbackInfoV2} - -var callback = function(error, data, response) { - if (error) { - console.error(error); - } else { - console.log('API called successfully. Returned data: ' + data); - } -}; -api.serviceCallback(serviceCallbackInfoV2, callback); -</code></pre> - </div> - - <!--<div class="tab-pane" id="examples-Callbacks-serviceCallback-0-angular"> - <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre> - </div>--> - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-csharp"> - <pre class="prettyprint"><code class="language-cs">using System; -using System.Diagnostics; -using Org.OpenAPITools.Api; -using Org.OpenAPITools.Client; -using Org.OpenAPITools.Model; - -namespace Example -{ - public class serviceCallbackExample - { - public void main() - { - - // Create an instance of the API class - var apiInstance = new CallbacksApi(); - var serviceCallbackInfoV2 = new ServiceCallbackInfoV2(); // ServiceCallbackInfoV2 | - - try { - // Callback for Near-RT RIC status - Object result = apiInstance.serviceCallback(serviceCallbackInfoV2); - Debug.WriteLine(result); - } catch (Exception e) { - Debug.Print("Exception when calling CallbacksApi.serviceCallback: " + e.Message ); - } - } - } -} -</code></pre> - </div> - - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-php"> - <pre class="prettyprint"><code class="language-php"><?php -require_once(__DIR__ . '/vendor/autoload.php'); - -// Create an instance of the API class -$api_instance = new OpenAPITools\Client\Api\CallbacksApi(); -$serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 | - -try { - $result = $api_instance->serviceCallback($serviceCallbackInfoV2); - print_r($result); -} catch (Exception $e) { - echo 'Exception when calling CallbacksApi->serviceCallback: ', $e->getMessage(), PHP_EOL; -} -?></code></pre> - </div> - - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-perl"> - <pre class="prettyprint"><code class="language-perl">use Data::Dumper; -use WWW::OPenAPIClient::Configuration; -use WWW::OPenAPIClient::CallbacksApi; - -# Create an instance of the API class -my $api_instance = WWW::OPenAPIClient::CallbacksApi->new(); -my $serviceCallbackInfoV2 = WWW::OPenAPIClient::Object::ServiceCallbackInfoV2->new(); # ServiceCallbackInfoV2 | - -eval { - my $result = $api_instance->serviceCallback(serviceCallbackInfoV2 => $serviceCallbackInfoV2); - print Dumper($result); -}; -if ($@) { - warn "Exception when calling CallbacksApi->serviceCallback: $@\n"; -}</code></pre> - </div> - - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-python"> - <pre class="prettyprint"><code class="language-python">from __future__ import print_statement -import time -import openapi_client -from openapi_client.rest import ApiException -from pprint import pprint - -# Create an instance of the API class -api_instance = openapi_client.CallbacksApi() -serviceCallbackInfoV2 = # ServiceCallbackInfoV2 | - -try: - # Callback for Near-RT RIC status - api_response = api_instance.service_callback(serviceCallbackInfoV2) - pprint(api_response) -except ApiException as e: - print("Exception when calling CallbacksApi->serviceCallback: %s\n" % e)</code></pre> - </div> - - <div class="tab-pane" id="examples-Callbacks-serviceCallback-0-rust"> - <pre class="prettyprint"><code class="language-rust">extern crate CallbacksApi; - -pub fn main() { - let serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 - - let mut context = CallbacksApi::Context::default(); - let result = client.serviceCallback(serviceCallbackInfoV2, &context).wait(); - - println!("{:?}", result); -} -</code></pre> - </div> - </div> - - <h2>Scopes</h2> - <table> - - </table> - - <h2>Parameters</h2> - - - - <div class="methodsubtabletitle">Body parameters</div> - <table id="methodsubtable"> - <tr> - <th width="150px">Name</th> - <th>Description</th> - </tr> - <tr><td style="width:150px;">serviceCallbackInfoV2 <span style="color:red;">*</span></td> -<td> -<p class="marked"></p> -<script> -$(document).ready(function() { - var schemaWrapper = { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/service_callback_info_v2" - } - } - }, - "required" : true -}; - - var schema = findNode('schema',schemaWrapper).schema; - if (!schema) { - schema = schemaWrapper.schema; - } - if (schema.$ref != null) { - schema = defsParser.$refs.get(schema.$ref); - } else { - schemaWrapper.definitions = Object.assign({}, defs); - $RefParser.dereference(schemaWrapper).catch(function(err) { - console.log(err); - }); - } - - var view = new JSONSchemaView(schema,2,{isBodyParam: true}); - var result = $('#d2e199_serviceCallback_serviceCallbackInfoV2'); - result.empty(); - result.append(view.render()); -}); -</script> -<div id="d2e199_serviceCallback_serviceCallbackInfoV2"></div> -</td> -</tr> - - </table> - - - - <h2>Responses</h2> - <h3 id="examples-Callbacks-serviceCallback-title-200"></h3> - <p id="examples-Callbacks-serviceCallback-description-200" class="marked"></p> - <script> - var responseCallbacks200_description = `OK`; - var responseCallbacks200_description_break = responseCallbacks200_description.indexOf('\n'); - if (responseCallbacks200_description_break == -1) { - $("#examples-Callbacks-serviceCallback-title-200").text("Status: 200 - " + responseCallbacks200_description); - } else { - $("#examples-Callbacks-serviceCallback-title-200").text("Status: 200 - " + responseCallbacks200_description.substring(0, responseCallbacks200_description_break)); - $("#examples-Callbacks-serviceCallback-description-200").html(responseCallbacks200_description.substring(responseCallbacks200_description_break)); - } - </script> - - - <ul id="responses-detail-Callbacks-serviceCallback-200" class="nav nav-tabs nav-tabs-examples" > - <li class="active"> - <a data-toggle="tab" href="#responses-Callbacks-serviceCallback-200-schema">Schema</a> - </li> - - - - - </ul> - - - <div class="tab-content" id="responses-Callbacks-serviceCallback-200-wrapper" style='margin-bottom: 10px;'> - <div class="tab-pane active" id="responses-Callbacks-serviceCallback-200-schema"> - <div id="responses-Callbacks-serviceCallback-schema-200" class="exampleStyle"> - <script> - $(document).ready(function() { - var schemaWrapper = { - "description" : "OK", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/void" - } - } - } -}; - var schema = findNode('schema',schemaWrapper).schema; - if (!schema) { - schema = schemaWrapper.schema; - } - if (schema.$ref != null) { - schema = defsParser.$refs.get(schema.$ref); - } else if (schema.items != null && schema.items.$ref != null) { - schema.items = defsParser.$refs.get(schema.items.$ref); - } else { - schemaWrapper.definitions = Object.assign({}, defs); - $RefParser.dereference(schemaWrapper).catch(function(err) { - console.log(err); - }); - } - - var view = new JSONSchemaView(schema, 3); - $('#responses-Callbacks-serviceCallback-200-schema-data').val(JSON.stringify(schema)); - var result = $('#responses-Callbacks-serviceCallback-schema-200'); - result.empty(); - result.append(view.render()); - }); - </script> - </div> - <input id='responses-Callbacks-serviceCallback-200-schema-data' type='hidden' value=''></input> - </div> - </div> - </article> - </div> - <hr> - </section> <section id="api-HealthCheck"> <h1>HealthCheck</h1> <div id="api-HealthCheck-getStatus"> @@ -12301,6 +11939,368 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy </div> <hr> </section> + <section id="api-ServiceCallbacks"> + <h1>ServiceCallbacks</h1> + <div id="api-ServiceCallbacks-serviceCallback"> + <article id="api-ServiceCallbacks-serviceCallback-0" data-group="User" data-name="serviceCallback" data-version="0"> + <div class="pull-left"> + <h1>serviceCallback</h1> + <p>Callback for Near-RT RIC status</p> + </div> + <div class="pull-right"></div> + <div class="clearfix"></div> + <p></p> + <p class="marked">The URL to this call is registered at Service registration.</p> + <p></p> + <br /> + <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/r-app/near-rt-ric-status</span></code></pre> + <p> + <h3>Usage and SDK Samples</h3> + </p> + <ul class="nav nav-tabs nav-tabs-examples"> + <li class="active"><a href="#examples-ServiceCallbacks-serviceCallback-0-curl">Curl</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-java">Java</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-android">Android</a></li> + <!--<li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-groovy">Groovy</a></li>--> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-objc">Obj-C</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-javascript">JavaScript</a></li> + <!--<li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-angular">Angular</a></li>--> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-csharp">C#</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-php">PHP</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-perl">Perl</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-python">Python</a></li> + <li class=""><a href="#examples-ServiceCallbacks-serviceCallback-0-rust">Rust</a></li> + </ul> + + <div class="tab-content"> + <div class="tab-pane active" id="examples-ServiceCallbacks-serviceCallback-0-curl"> + <pre class="prettyprint"><code class="language-bsh">curl -X POST \ + -H "Accept: application/json" \ + -H "Content-Type: application/json" \ + "http://localhost/r-app/near-rt-ric-status" \ + -d '' +</code></pre> + </div> + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-java"> + <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*; +import org.openapitools.client.auth.*; +import org.openapitools.client.model.*; +import org.openapitools.client.api.ServiceCallbacksApi; + +import java.io.File; +import java.util.*; + +public class ServiceCallbacksApiExample { + public static void main(String[] args) { + + // Create an instance of the API class + ServiceCallbacksApi apiInstance = new ServiceCallbacksApi(); + ServiceCallbackInfoV2 serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 | + + try { + Object result = apiInstance.serviceCallback(serviceCallbackInfoV2); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServiceCallbacksApi#serviceCallback"); + e.printStackTrace(); + } + } +} +</code></pre> + </div> + + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-android"> + <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.ServiceCallbacksApi; + +public class ServiceCallbacksApiExample { + public static void main(String[] args) { + ServiceCallbacksApi apiInstance = new ServiceCallbacksApi(); + ServiceCallbackInfoV2 serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 | + + try { + Object result = apiInstance.serviceCallback(serviceCallbackInfoV2); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServiceCallbacksApi#serviceCallback"); + e.printStackTrace(); + } + } +}</code></pre> + </div> + <!-- + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-groovy"> + <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre> + </div> --> + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-objc"> + <pre class="prettyprint"><code class="language-cpp"> + +// Create an instance of the API class +ServiceCallbacksApi *apiInstance = [[ServiceCallbacksApi alloc] init]; +ServiceCallbackInfoV2 *serviceCallbackInfoV2 = ; // + +// Callback for Near-RT RIC status +[apiInstance serviceCallbackWith:serviceCallbackInfoV2 + completionHandler: ^(Object output, NSError* error) { + if (output) { + NSLog(@"%@", output); + } + if (error) { + NSLog(@"Error: %@", error); + } +}]; +</code></pre> + </div> + + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-javascript"> + <pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service'); + +// Create an instance of the API class +var api = new A1PolicyManagementService.ServiceCallbacksApi() +var serviceCallbackInfoV2 = ; // {ServiceCallbackInfoV2} + +var callback = function(error, data, response) { + if (error) { + console.error(error); + } else { + console.log('API called successfully. Returned data: ' + data); + } +}; +api.serviceCallback(serviceCallbackInfoV2, callback); +</code></pre> + </div> + + <!--<div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-angular"> + <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre> + </div>--> + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-csharp"> + <pre class="prettyprint"><code class="language-cs">using System; +using System.Diagnostics; +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Client; +using Org.OpenAPITools.Model; + +namespace Example +{ + public class serviceCallbackExample + { + public void main() + { + + // Create an instance of the API class + var apiInstance = new ServiceCallbacksApi(); + var serviceCallbackInfoV2 = new ServiceCallbackInfoV2(); // ServiceCallbackInfoV2 | + + try { + // Callback for Near-RT RIC status + Object result = apiInstance.serviceCallback(serviceCallbackInfoV2); + Debug.WriteLine(result); + } catch (Exception e) { + Debug.Print("Exception when calling ServiceCallbacksApi.serviceCallback: " + e.Message ); + } + } + } +} +</code></pre> + </div> + + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-php"> + <pre class="prettyprint"><code class="language-php"><?php +require_once(__DIR__ . '/vendor/autoload.php'); + +// Create an instance of the API class +$api_instance = new OpenAPITools\Client\Api\ServiceCallbacksApi(); +$serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 | + +try { + $result = $api_instance->serviceCallback($serviceCallbackInfoV2); + print_r($result); +} catch (Exception $e) { + echo 'Exception when calling ServiceCallbacksApi->serviceCallback: ', $e->getMessage(), PHP_EOL; +} +?></code></pre> + </div> + + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-perl"> + <pre class="prettyprint"><code class="language-perl">use Data::Dumper; +use WWW::OPenAPIClient::Configuration; +use WWW::OPenAPIClient::ServiceCallbacksApi; + +# Create an instance of the API class +my $api_instance = WWW::OPenAPIClient::ServiceCallbacksApi->new(); +my $serviceCallbackInfoV2 = WWW::OPenAPIClient::Object::ServiceCallbackInfoV2->new(); # ServiceCallbackInfoV2 | + +eval { + my $result = $api_instance->serviceCallback(serviceCallbackInfoV2 => $serviceCallbackInfoV2); + print Dumper($result); +}; +if ($@) { + warn "Exception when calling ServiceCallbacksApi->serviceCallback: $@\n"; +}</code></pre> + </div> + + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-python"> + <pre class="prettyprint"><code class="language-python">from __future__ import print_statement +import time +import openapi_client +from openapi_client.rest import ApiException +from pprint import pprint + +# Create an instance of the API class +api_instance = openapi_client.ServiceCallbacksApi() +serviceCallbackInfoV2 = # ServiceCallbackInfoV2 | + +try: + # Callback for Near-RT RIC status + api_response = api_instance.service_callback(serviceCallbackInfoV2) + pprint(api_response) +except ApiException as e: + print("Exception when calling ServiceCallbacksApi->serviceCallback: %s\n" % e)</code></pre> + </div> + + <div class="tab-pane" id="examples-ServiceCallbacks-serviceCallback-0-rust"> + <pre class="prettyprint"><code class="language-rust">extern crate ServiceCallbacksApi; + +pub fn main() { + let serviceCallbackInfoV2 = ; // ServiceCallbackInfoV2 + + let mut context = ServiceCallbacksApi::Context::default(); + let result = client.serviceCallback(serviceCallbackInfoV2, &context).wait(); + + println!("{:?}", result); +} +</code></pre> + </div> + </div> + + <h2>Scopes</h2> + <table> + + </table> + + <h2>Parameters</h2> + + + + <div class="methodsubtabletitle">Body parameters</div> + <table id="methodsubtable"> + <tr> + <th width="150px">Name</th> + <th>Description</th> + </tr> + <tr><td style="width:150px;">serviceCallbackInfoV2 <span style="color:red;">*</span></td> +<td> +<p class="marked"></p> +<script> +$(document).ready(function() { + var schemaWrapper = { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/service_callback_info_v2" + } + } + }, + "required" : true +}; + + var schema = findNode('schema',schemaWrapper).schema; + if (!schema) { + schema = schemaWrapper.schema; + } + if (schema.$ref != null) { + schema = defsParser.$refs.get(schema.$ref); + } else { + schemaWrapper.definitions = Object.assign({}, defs); + $RefParser.dereference(schemaWrapper).catch(function(err) { + console.log(err); + }); + } + + var view = new JSONSchemaView(schema,2,{isBodyParam: true}); + var result = $('#d2e199_serviceCallback_serviceCallbackInfoV2'); + result.empty(); + result.append(view.render()); +}); +</script> +<div id="d2e199_serviceCallback_serviceCallbackInfoV2"></div> +</td> +</tr> + + </table> + + + + <h2>Responses</h2> + <h3 id="examples-ServiceCallbacks-serviceCallback-title-200"></h3> + <p id="examples-ServiceCallbacks-serviceCallback-description-200" class="marked"></p> + <script> + var responseServiceCallbacks200_description = `OK`; + var responseServiceCallbacks200_description_break = responseServiceCallbacks200_description.indexOf('\n'); + if (responseServiceCallbacks200_description_break == -1) { + $("#examples-ServiceCallbacks-serviceCallback-title-200").text("Status: 200 - " + responseServiceCallbacks200_description); + } else { + $("#examples-ServiceCallbacks-serviceCallback-title-200").text("Status: 200 - " + responseServiceCallbacks200_description.substring(0, responseServiceCallbacks200_description_break)); + $("#examples-ServiceCallbacks-serviceCallback-description-200").html(responseServiceCallbacks200_description.substring(responseServiceCallbacks200_description_break)); + } + </script> + + + <ul id="responses-detail-ServiceCallbacks-serviceCallback-200" class="nav nav-tabs nav-tabs-examples" > + <li class="active"> + <a data-toggle="tab" href="#responses-ServiceCallbacks-serviceCallback-200-schema">Schema</a> + </li> + + + + + </ul> + + + <div class="tab-content" id="responses-ServiceCallbacks-serviceCallback-200-wrapper" style='margin-bottom: 10px;'> + <div class="tab-pane active" id="responses-ServiceCallbacks-serviceCallback-200-schema"> + <div id="responses-ServiceCallbacks-serviceCallback-schema-200" class="exampleStyle"> + <script> + $(document).ready(function() { + var schemaWrapper = { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + } +}; + var schema = findNode('schema',schemaWrapper).schema; + if (!schema) { + schema = schemaWrapper.schema; + } + if (schema.$ref != null) { + schema = defsParser.$refs.get(schema.$ref); + } else if (schema.items != null && schema.items.$ref != null) { + schema.items = defsParser.$refs.get(schema.items.$ref); + } else { + schemaWrapper.definitions = Object.assign({}, defs); + $RefParser.dereference(schemaWrapper).catch(function(err) { + console.log(err); + }); + } + + var view = new JSONSchemaView(schema, 3); + $('#responses-ServiceCallbacks-serviceCallback-200-schema-data').val(JSON.stringify(schema)); + var result = $('#responses-ServiceCallbacks-serviceCallback-schema-200'); + result.empty(); + result.append(view.render()); + }); + </script> + </div> + <input id='responses-ServiceCallbacks-serviceCallback-200-schema-data' type='hidden' value=''></input> + </div> + </div> + </article> + </div> + <hr> + </section> <section id="api-ServiceRegistryAndSupervision"> <h1>ServiceRegistryAndSupervision</h1> <div id="api-ServiceRegistryAndSupervision-deleteService"> diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SwaggerConfig.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SwaggerConfig.java index b6d3a076..9f4f4420 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SwaggerConfig.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SwaggerConfig.java @@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.info.Info; import io.swagger.v3.oas.annotations.info.License; +import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.AuthorizationConsts; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.ConfigurationController; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.PolicyController; @@ -63,7 +64,7 @@ public class SwaggerConfig { "<li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li>" + // "</ul>" + // - "<h2>APIs provided by the service</h2>" + // + "<h2>APIs provided or defined by the service</h2>" + // H3 + PolicyController.API_NAME + H3_END + // "<p>This is an API for management of A1 Policies.</p>" + // "<ul>" + // @@ -75,23 +76,36 @@ public class SwaggerConfig { H3 + ConfigurationController.API_NAME + H3_END + // "<p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p>" + // + H3 + Consts.V2_API_SERVICE_CALLBACKS_NAME + H3_END + // "<p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p>" + // + H3 + RicRepositoryController.API_NAME + H3_END + // "<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 + StatusController.API_NAME + H3_END + // - "<p>API used for supervision of the PMS component.</p>" + // + + // + + H3 + StatusController.API_NAME + H3_END + // + "<p>API used for supervision of the PMS component.</p>" // + + // + H3 + ServiceController.API_NAME + H3_END + // "<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 + AuthorizationConsts.API_NAME + H3_END + // + "<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_END + // "<p>" // + "Provides generic functions used to monitor and manage the Spring web application." + // "</p>"; - public static final String VERSION = "1.1.0"; + public static final String VERSION = "1.2.0"; } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationConsts.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationConsts.java index a905b9d1..cc2d2341 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationConsts.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationConsts.java @@ -22,8 +22,8 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization; public class AuthorizationConsts { - public static final String AUTH_API_NAME = "Authorization API"; - public static final String AUTH_API_DESCRIPTION = + public static final String API_NAME = "Authorization API"; + public static final String API_DESCRIPTION = """ API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that this API is called by PMS, it is not provided. diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/Consts.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/Consts.java index 7f954e90..c554dbd5 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/Consts.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/Consts.java @@ -32,7 +32,7 @@ public class Consts { public static final String V2_API_ROOT = "/a1-policy/v2"; - public static final String V2_API_SERVICE_CALLBACKS_NAME = "Callbacks"; + public static final String V2_API_SERVICE_CALLBACKS_NAME = "Service callbacks"; public static final String V2_API_SERVICE_CALLBACKS_DESCRIPTION = ""; private Consts() {} diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/OpenPolicyAgentSimulatorController.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/OpenPolicyAgentSimulatorController.java index 236c31b8..3e63b468 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/OpenPolicyAgentSimulatorController.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/OpenPolicyAgentSimulatorController.java @@ -52,7 +52,7 @@ import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; @RestController("OpenPolicyAgentSimulatorController") -@Tag(name = AuthorizationConsts.AUTH_API_NAME, description = AuthorizationConsts.AUTH_API_DESCRIPTION) +@Tag(name = AuthorizationConsts.API_NAME, description = AuthorizationConsts.API_DESCRIPTION) public class OpenPolicyAgentSimulatorController { private static Gson gson = new GsonBuilder().disableHtmlEscaping().create(); |